90 lines
2.0 KiB
TypeScript
90 lines
2.0 KiB
TypeScript
import { configureChains, createConfig } from '@wagmi/core';
|
|
import { gnosis } from '@wagmi/core/chains';
|
|
import { publicProvider } from '@wagmi/core/providers/public';
|
|
import { InjectedConnector } from '@wagmi/core/connectors/injected';
|
|
import { WalletConnectConnector } from '@wagmi/core/connectors/walletConnect';
|
|
import { jsonRpcProvider } from '@wagmi/core/providers/jsonRpc';
|
|
import { createMessage } from '$lib/services/messages';
|
|
|
|
export interface ProviderData {
|
|
walletConnectId: string;
|
|
}
|
|
|
|
const chronicleChain = {
|
|
id: 175177,
|
|
name: 'Chronicle',
|
|
network: 'chronicle',
|
|
|
|
nativeCurrency: {
|
|
decimals: 18,
|
|
name: 'Chronicle - Lit Protocol Testnet',
|
|
symbol: 'LIT'
|
|
},
|
|
rpcUrls: {
|
|
default: {
|
|
http: ['https://chain-rpc.litprotocol.com/http']
|
|
},
|
|
public: {
|
|
http: ['https://chain-rpc.litprotocol.com/http']
|
|
}
|
|
},
|
|
blockExplorers: {
|
|
default: {
|
|
name: 'Chronicle - Lit Protocol Testnet',
|
|
url: 'https://chain.litprotocol.com'
|
|
}
|
|
},
|
|
testnet: true
|
|
};
|
|
|
|
export function initProvider(data: ProviderData) {
|
|
createMessage({
|
|
text: 'Provider setup initialization started...',
|
|
sender: '$lib/services/provider.ts',
|
|
type: 'SYSTEM'
|
|
});
|
|
|
|
const { chains, publicClient } = configureChains(
|
|
[chronicleChain, gnosis],
|
|
[
|
|
jsonRpcProvider({
|
|
rpc: (chain) => ({ http: chain.rpcUrls.default.http[0] })
|
|
}),
|
|
jsonRpcProvider({
|
|
rpc: () => ({
|
|
http: `https://rpc.gnosischain.com/`,
|
|
wss: `wss://rpc.gnosischain.com/wss`
|
|
})
|
|
}),
|
|
publicProvider()
|
|
]
|
|
);
|
|
|
|
createMessage({
|
|
text: 'Chains configured successfully...',
|
|
sender: '$lib/services/provider.ts',
|
|
type: 'SYSTEM'
|
|
});
|
|
|
|
createConfig({
|
|
autoConnect: true,
|
|
connectors: [
|
|
new InjectedConnector({ chains }),
|
|
new WalletConnectConnector({
|
|
chains,
|
|
options: {
|
|
projectId: data.walletConnectId
|
|
}
|
|
})
|
|
],
|
|
publicClient
|
|
});
|
|
|
|
createMessage({
|
|
text: 'Chain Provider configuration created and autoConnect enabled...',
|
|
sender: '$lib/services/provider.ts',
|
|
type: 'SYSTEM'
|
|
});
|
|
}
|
|
|