docs(provider.ts): Add README documentation, +cleanup
This commit is contained in:
89
src/lib/services/provider/provider.ts
Normal file
89
src/lib/services/provider/provider.ts
Normal file
@ -0,0 +1,89 @@
|
||||
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: 'Provider configuration created and autoConnect enabled...',
|
||||
sender: '$lib/services/provider.ts',
|
||||
type: 'SYSTEM'
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user