@walletconnect/ethereum-provider 2.3.2-2 → 2.3.2-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("events"),a=require("@walletconnect/utils"),h=require("@walletconnect/universal-provider"),o=require("@web3modal/standalone");const d="https://rpc.walletconnect.com/v1/",p=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],l=["chainChanged","accountsChanged"];function u(c){return Number(c[0].split(":")[1])}class n{constructor(){this.events=new r.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(t){const s=new n;return await s.initialize(t),s}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,s){this.signer.sendAsync(t,s,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);try{const s=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:t?.pairingTopic});if(!s)return;this.setChainIds(this.rpc.chains);const i=a.getAccountsFromNamespaces(s.namespaces,[this.namespace]);this.setAccounts(i),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(s){throw new Error(s.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(t,s){this.events.on(t,s)}once(t,s){this.events.once(t,s)}removeListener(t,s){this.events.removeListener(t,s)}off(t,s){this.events.off(t,s)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:s}=t;if(!this.rpc.chains.includes(s.chainId))return;const{event:i}=s;i.name==="accountsChanged"?(this.accounts=i.data,this.events.emit("accountsChanged",this.accounts)):i.name==="chainChanged"?this.setChainId(i.data):this.events.emit(i.name,i.data),this.events.emit("session_event",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t)}),this.signer.on("display_uri",t=>{var s;this.rpc.showQrModal&&((s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}setHttpProvider(t){const s=this.formatChainId(t);this.signer.setDefaultChain(s,this.getRpcUrl(t))}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit("chainChanged",this.chainId))}setChainId(t){if(this.isCompatibleChainId(t)){const s=this.parseChainId(t);this.chainId=s,this.setHttpProvider(s)
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("events"),a=require("@walletconnect/utils"),h=require("@walletconnect/universal-provider"),o=require("@web3modal/standalone");const d="https://rpc.walletconnect.com/v1/",p=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],l=["chainChanged","accountsChanged"];function u(c){return Number(c[0].split(":")[1])}class n{constructor(){this.events=new r.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(t){const s=new n;return await s.initialize(t),s}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,s){this.signer.sendAsync(t,s,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);try{const s=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:t?.pairingTopic});if(!s)return;this.setChainIds(this.rpc.chains);const i=a.getAccountsFromNamespaces(s.namespaces,[this.namespace]);this.setAccounts(i),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(s){throw new Error(s.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(t,s){this.events.on(t,s)}once(t,s){this.events.once(t,s)}removeListener(t,s){this.events.removeListener(t,s)}off(t,s){this.events.off(t,s)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:s}=t;if(!this.rpc.chains.includes(s.chainId))return;const{event:i}=s;i.name==="accountsChanged"?(this.accounts=i.data,this.events.emit("accountsChanged",this.accounts)):i.name==="chainChanged"?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>this.events.emit("chainChanged",t)),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t)}),this.signer.on("display_uri",t=>{var s;this.rpc.showQrModal&&((s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}setHttpProvider(t){const s=this.formatChainId(t);this.signer.setDefaultChain(s,this.getRpcUrl(t))}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit("chainChanged",this.chainId))}setChainId(t){if(this.isCompatibleChainId(t)){const s=this.parseChainId(t);this.chainId=s,this.setHttpProvider(s)}}parseAccountId(t){const[s,i,e]=t.split(":");return{chainId:`${s}:${i}`,address:e}}setAccounts(t){this.accounts=t.filter(s=>this.parseChainId(this.parseAccountId(s).chainId)===this.chainId).map(s=>this.parseAccountId(s).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){return{chains:t.chains.map(s=>this.formatChainId(s))||[`${this.namespace}:1`],methods:t?.methods||p,events:t?.events||l,rpcMap:t?.rpcMap||this.buildRpcMap(t.chains,t.projectId),showQrModal:t?.showQrModal||!0,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,s){const i={};return t.forEach(e=>{i[e]=this.getRpcUrl(e,s)}),i}async initialize(t){this.rpc=this.getRpcConfig(t),this.chainId=u(this.rpc.chains),this.signer=await h.UniversalProvider.init({projectId:this.rpc.projectId}),this.registerEventListeners(),this.loadPersistedSession(),this.rpc.showQrModal&&(this.modal=new o.Web3Modal({projectId:this.rpc.projectId,standaloneChains:this.rpc.chains}))}loadConnectOpts(t){if(!t)return;const{chains:s,rpcMap:i}=t;!a.isValidArray(s)||!s||(this.rpc.chains=this.rpc.chains.concat(s.map(e=>this.formatChainId(e))),this.rpc.chains=[...new Set(this.rpc.chains)],s.forEach(e=>{this.rpc.rpcMap[e]=i?.[e]||this.getRpcUrl(e)}))}getRpcUrl(t,s){var i;return((i=this.rpc.rpcMap)==null?void 0:i[t])||`${d}?chainId=eip155:${t}&projectId=${s||this.rpc.projectId}`}loadPersistedSession(){this.session&&(this.setChainIds(this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts))}reset(){this.chainId=1,this.accounts=[]}}const m=n;exports.EthereumProvider=m,exports.default=n;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/EthereumProvider.ts","../src/index.ts"],"sourcesContent":["import { EventEmitter } from \"events\";\nimport { getAccountsFromNamespaces, isValidArray } from \"@walletconnect/utils\";\nimport {\n IEthereumProvider as IProvider,\n ProviderAccounts,\n RequestArguments,\n} from \"eip1193-provider\";\nimport { Metadata, UniversalProvider } from \"@walletconnect/universal-provider\";\nimport { Web3Modal } from \"@web3modal/standalone\";\n\nexport const RPC_URL = \"https://rpc.walletconnect.com/v1/\";\n\nexport const signerMethods = [\n \"eth_requestAccounts\",\n \"eth_accounts\",\n \"eth_chainId\",\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"personal_sign\",\n];\n\nexport const signerEvents = [\"chainChanged\", \"accountsChanged\"];\n\nexport interface EthereumRpcMap {\n [chainId: string]: string;\n}\n\nexport interface SessionEvent {\n event: { name: string; data: any };\n chainId: string;\n}\n\nexport interface EthereumRpcConfig {\n chains: string[];\n methods: string[];\n events: string[];\n rpcMap: EthereumRpcMap;\n projectId: string;\n metadata?: Metadata;\n showQrModal: boolean;\n}\n\nexport interface ConnectOps {\n chains?: number[];\n rpcMap?: EthereumRpcMap;\n pairingTopic?: string;\n}\n\nexport interface IEthereumProvider extends IProvider {\n connect(opts?: ConnectOps | undefined): Promise<void>;\n}\n\nexport function getRpcUrl(chainId: string, rpc: EthereumRpcConfig): string | undefined {\n let rpcUrl: string | undefined;\n if (rpc.rpcMap) {\n rpcUrl = rpc.rpcMap[getEthereumChainId([chainId])];\n }\n return rpcUrl;\n}\n\nexport function getEthereumChainId(chains: string[]): number {\n return Number(chains[0].split(\":\")[1]);\n}\nexport interface EthereumProviderOptions {\n projectId: string;\n chains: number[];\n methods?: string[];\n events?: string[];\n rpcMap?: EthereumRpcMap;\n metadata?: Metadata;\n showQrModal?: boolean;\n}\n\nexport class EthereumProvider implements IEthereumProvider {\n public events: any = new EventEmitter();\n public namespace = \"eip155\";\n public accounts: string[] = [];\n public signer: InstanceType<typeof UniversalProvider>;\n public chainId = 1;\n public modal?: Web3Modal;\n\n private rpc: EthereumRpcConfig;\n\n constructor() {\n // assigned during initialize\n this.signer = {} as InstanceType<typeof UniversalProvider>;\n this.rpc = {} as EthereumRpcConfig;\n }\n\n static async init(opts: EthereumProviderOptions): Promise<EthereumProvider> {\n const provider = new EthereumProvider();\n await provider.initialize(opts);\n return provider;\n }\n\n public async request<T = unknown>(args: RequestArguments): Promise<T> {\n return await this.signer.request(args, this.formatChainId(this.chainId));\n }\n\n public sendAsync(\n args: RequestArguments,\n callback: (error: Error | null, response: any) => void,\n ): void {\n this.signer.sendAsync(args, callback, this.formatChainId(this.chainId));\n }\n\n get connected(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connected;\n }\n\n get connecting(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connecting;\n }\n\n public async enable(): Promise<ProviderAccounts> {\n if (!this.session) await this.connect();\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts as ProviderAccounts;\n }\n\n public async connect(opts?: ConnectOps): Promise<void> {\n if (!this.signer.client) {\n throw new Error(\"Provider not initialized. Call init() first\");\n }\n\n this.loadConnectOpts(opts);\n\n try {\n const session = await this.signer.connect({\n namespaces: {\n [this.namespace]: {\n chains: this.rpc.chains,\n methods: this.rpc.methods,\n events: this.rpc.events,\n rpcMap: this.rpc.rpcMap,\n },\n },\n pairingTopic: opts?.pairingTopic,\n });\n if (!session) return;\n this.setChainIds(this.rpc.chains);\n const accounts = getAccountsFromNamespaces(session.namespaces, [this.namespace]);\n this.setAccounts(accounts);\n this.events.emit(\"connect\", { chainId: this.chainId, accounts: this.accounts });\n } catch (error) {\n throw new Error((error as Error).message);\n } finally {\n if (this.modal) this.modal.closeModal();\n }\n }\n\n public async disconnect(): Promise<void> {\n await this.signer.disconnect();\n }\n\n public on(event: any, listener: any): void {\n this.events.on(event, listener);\n }\n\n public once(event: string, listener: any): void {\n this.events.once(event, listener);\n }\n\n public removeListener(event: string, listener: any): void {\n this.events.removeListener(event, listener);\n }\n\n public off(event: string, listener: any): void {\n this.events.off(event, listener);\n }\n\n get isWalletConnect() {\n return true;\n }\n\n get session() {\n return this.signer.session;\n }\n // ---------- Private ----------------------------------------------- //\n\n private registerEventListeners() {\n this.signer.on(\"session_event\", (payload: any) => {\n const { params } = payload;\n if (!this.rpc.chains.includes(params.chainId)) return;\n const { event } = params;\n if (event.name === \"accountsChanged\") {\n this.accounts = event.data;\n this.events.emit(\"accountsChanged\", this.accounts);\n } else if (event.name === \"chainChanged\") {\n this.setChainId(event.data);\n } else {\n this.events.emit(event.name, event.data);\n }\n this.events.emit(\"session_event\", payload);\n });\n\n this.signer.on(\"session_delete\", (payload: string) => {\n this.reset();\n this.events.emit(\"session_delete\", payload);\n });\n\n this.signer.on(\"display_uri\", (uri: string) => {\n if (this.rpc.showQrModal) {\n this.modal?.openModal({ uri });\n }\n this.events.emit(\"display_uri\", uri);\n });\n }\n\n private setHttpProvider(chainId: number): void {\n const formattedChain = this.formatChainId(chainId);\n this.signer.setDefaultChain(formattedChain, this.getRpcUrl(chainId));\n }\n\n private isCompatibleChainId(chainId: string): boolean {\n return typeof chainId === \"string\" ? chainId.startsWith(`${this.namespace}:`) : false;\n }\n\n private formatChainId(chainId: number): string {\n return `${this.namespace}:${chainId}`;\n }\n\n private parseChainId(chainId: string): number {\n return Number(chainId.split(\":\")[1]);\n }\n\n private setChainIds(chains: string[]) {\n const compatible = chains.filter((x) => this.isCompatibleChainId(x));\n const chainIds = compatible.map((c) => this.parseChainId(c));\n if (chainIds.length) {\n this.chainId = chainIds[0];\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private setChainId(chain: string) {\n if (this.isCompatibleChainId(chain)) {\n const chainId = this.parseChainId(chain);\n this.chainId = chainId;\n this.setHttpProvider(chainId);\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private parseAccountId(account: string): { chainId: string; address: string } {\n const [namespace, reference, address] = account.split(\":\");\n const chainId = `${namespace}:${reference}`;\n return { chainId, address };\n }\n\n private setAccounts(accounts: string[]) {\n this.accounts = accounts\n .filter((x) => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)\n .map((x) => this.parseAccountId(x).address);\n this.events.emit(\"accountsChanged\", this.accounts);\n }\n\n private getRpcConfig(opts: EthereumProviderOptions): EthereumRpcConfig {\n return {\n chains: opts.chains.map((chain) => this.formatChainId(chain)) || [`${this.namespace}:1`],\n methods: opts?.methods || signerMethods,\n events: opts?.events || signerEvents,\n rpcMap: opts?.rpcMap || this.buildRpcMap(opts.chains, opts.projectId),\n showQrModal: opts?.showQrModal || true,\n projectId: opts.projectId,\n metadata: opts.metadata,\n };\n }\n\n private buildRpcMap(chains: number[], projectId: string): EthereumRpcMap {\n const map: EthereumRpcMap = {};\n chains.forEach((chain) => {\n map[chain] = this.getRpcUrl(chain, projectId);\n });\n return map;\n }\n\n private async initialize(opts: EthereumProviderOptions) {\n this.rpc = this.getRpcConfig(opts);\n this.chainId = getEthereumChainId(this.rpc.chains);\n this.signer = await UniversalProvider.init({ projectId: this.rpc.projectId });\n this.registerEventListeners();\n this.loadPersistedSession();\n if (this.rpc.showQrModal)\n this.modal = new Web3Modal({\n projectId: this.rpc.projectId,\n standaloneChains: this.rpc.chains,\n });\n }\n\n private loadConnectOpts(opts?: ConnectOps) {\n if (!opts) return;\n const { chains, rpcMap } = opts;\n if (!isValidArray(chains) || !chains) return;\n this.rpc.chains = this.rpc.chains.concat(chains.map((chain) => this.formatChainId(chain)));\n // filter duplicate chains\n this.rpc.chains = [...new Set(this.rpc.chains)];\n chains.forEach((chain) => {\n this.rpc.rpcMap[chain] = rpcMap?.[chain] || this.getRpcUrl(chain);\n });\n }\n\n private getRpcUrl(chainId: number, projectId?: string): string {\n const providedRpc = this.rpc.rpcMap?.[chainId];\n return (\n providedRpc ||\n `${RPC_URL}?chainId=eip155:${chainId}&projectId=${projectId || this.rpc.projectId}`\n );\n }\n\n private loadPersistedSession() {\n if (!this.session) return;\n this.setChainIds(this.session.namespaces[this.namespace].accounts);\n this.setAccounts(this.session.namespaces[this.namespace].accounts);\n }\n\n private reset() {\n this.chainId = 1;\n this.accounts = [];\n }\n}\n\nexport default EthereumProvider;\n","import { EthereumProvider as Provider } from \"./EthereumProvider\";\nexport const EthereumProvider = Provider;\nexport default Provider;\n"],"names":["chains","EthereumProvider","EventEmitter","opts","provider","args","callback","session","accounts","getAccountsFromNamespaces","error","event","listener","payload","params","uri","_a","chainId","formattedChain","chainIds","x","c","chain","account","namespace","reference","address","projectId","map","UniversalProvider","Web3Modal","rpcMap","isValidArray","Provider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/EthereumProvider.ts","../src/index.ts"],"sourcesContent":["import { EventEmitter } from \"events\";\nimport { getAccountsFromNamespaces, isValidArray } from \"@walletconnect/utils\";\nimport {\n IEthereumProvider as IProvider,\n ProviderAccounts,\n RequestArguments,\n} from \"eip1193-provider\";\nimport { Metadata, UniversalProvider } from \"@walletconnect/universal-provider\";\nimport { Web3Modal } from \"@web3modal/standalone\";\nimport { SignClientTypes } from \"@walletconnect/types\";\n\nexport const RPC_URL = \"https://rpc.walletconnect.com/v1/\";\n\nexport const signerMethods = [\n \"eth_requestAccounts\",\n \"eth_accounts\",\n \"eth_chainId\",\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"personal_sign\",\n];\n\nexport const signerEvents = [\"chainChanged\", \"accountsChanged\"];\n\nexport interface EthereumRpcMap {\n [chainId: string]: string;\n}\n\nexport interface SessionEvent {\n event: { name: string; data: any };\n chainId: string;\n}\n\nexport interface EthereumRpcConfig {\n chains: string[];\n methods: string[];\n events: string[];\n rpcMap: EthereumRpcMap;\n projectId: string;\n metadata?: Metadata;\n showQrModal: boolean;\n}\n\nexport interface ConnectOps {\n chains?: number[];\n rpcMap?: EthereumRpcMap;\n pairingTopic?: string;\n}\n\nexport interface IEthereumProvider extends IProvider {\n connect(opts?: ConnectOps | undefined): Promise<void>;\n}\n\nexport function getRpcUrl(chainId: string, rpc: EthereumRpcConfig): string | undefined {\n let rpcUrl: string | undefined;\n if (rpc.rpcMap) {\n rpcUrl = rpc.rpcMap[getEthereumChainId([chainId])];\n }\n return rpcUrl;\n}\n\nexport function getEthereumChainId(chains: string[]): number {\n return Number(chains[0].split(\":\")[1]);\n}\nexport interface EthereumProviderOptions {\n projectId: string;\n chains: number[];\n methods?: string[];\n events?: string[];\n rpcMap?: EthereumRpcMap;\n metadata?: Metadata;\n showQrModal?: boolean;\n}\n\nexport class EthereumProvider implements IEthereumProvider {\n public events: any = new EventEmitter();\n public namespace = \"eip155\";\n public accounts: string[] = [];\n public signer: InstanceType<typeof UniversalProvider>;\n public chainId = 1;\n public modal?: Web3Modal;\n\n private rpc: EthereumRpcConfig;\n\n constructor() {\n // assigned during initialize\n this.signer = {} as InstanceType<typeof UniversalProvider>;\n this.rpc = {} as EthereumRpcConfig;\n }\n\n static async init(opts: EthereumProviderOptions): Promise<EthereumProvider> {\n const provider = new EthereumProvider();\n await provider.initialize(opts);\n return provider;\n }\n\n public async request<T = unknown>(args: RequestArguments): Promise<T> {\n return await this.signer.request(args, this.formatChainId(this.chainId));\n }\n\n public sendAsync(\n args: RequestArguments,\n callback: (error: Error | null, response: any) => void,\n ): void {\n this.signer.sendAsync(args, callback, this.formatChainId(this.chainId));\n }\n\n get connected(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connected;\n }\n\n get connecting(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connecting;\n }\n\n public async enable(): Promise<ProviderAccounts> {\n if (!this.session) await this.connect();\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts as ProviderAccounts;\n }\n\n public async connect(opts?: ConnectOps): Promise<void> {\n if (!this.signer.client) {\n throw new Error(\"Provider not initialized. Call init() first\");\n }\n\n this.loadConnectOpts(opts);\n\n try {\n const session = await this.signer.connect({\n namespaces: {\n [this.namespace]: {\n chains: this.rpc.chains,\n methods: this.rpc.methods,\n events: this.rpc.events,\n rpcMap: this.rpc.rpcMap,\n },\n },\n pairingTopic: opts?.pairingTopic,\n });\n if (!session) return;\n this.setChainIds(this.rpc.chains);\n const accounts = getAccountsFromNamespaces(session.namespaces, [this.namespace]);\n this.setAccounts(accounts);\n this.events.emit(\"connect\", { chainId: this.chainId, accounts: this.accounts });\n } catch (error) {\n throw new Error((error as Error).message);\n } finally {\n if (this.modal) this.modal.closeModal();\n }\n }\n\n public async disconnect(): Promise<void> {\n await this.signer.disconnect();\n }\n\n public on(event: any, listener: any): void {\n this.events.on(event, listener);\n }\n\n public once(event: string, listener: any): void {\n this.events.once(event, listener);\n }\n\n public removeListener(event: string, listener: any): void {\n this.events.removeListener(event, listener);\n }\n\n public off(event: string, listener: any): void {\n this.events.off(event, listener);\n }\n\n get isWalletConnect() {\n return true;\n }\n\n get session() {\n return this.signer.session;\n }\n // ---------- Private ----------------------------------------------- //\n\n private registerEventListeners() {\n this.signer.on(\"session_event\", (payload: SignClientTypes.EventArguments[\"session_event\"]) => {\n const { params } = payload;\n if (!this.rpc.chains.includes(params.chainId)) return;\n const { event } = params;\n if (event.name === \"accountsChanged\") {\n this.accounts = event.data;\n this.events.emit(\"accountsChanged\", this.accounts);\n } else if (event.name === \"chainChanged\") {\n this.setChainId(this.formatChainId(event.data));\n } else {\n this.events.emit(event.name, event.data);\n }\n this.events.emit(\"session_event\", payload);\n });\n\n this.signer.on(\"chainChanged\", (chainId: number) => this.events.emit(\"chainChanged\", chainId));\n\n this.signer.on(\n \"session_update\",\n (payload: SignClientTypes.EventArguments[\"session_update\"]) => {\n this.events.emit(\"session_update\", payload);\n },\n );\n\n this.signer.on(\n \"session_delete\",\n (payload: SignClientTypes.EventArguments[\"session_delete\"]) => {\n this.reset();\n this.events.emit(\"session_delete\", payload);\n },\n );\n\n this.signer.on(\"display_uri\", (uri: string) => {\n if (this.rpc.showQrModal) {\n this.modal?.openModal({ uri });\n }\n this.events.emit(\"display_uri\", uri);\n });\n }\n\n private setHttpProvider(chainId: number): void {\n const formattedChain = this.formatChainId(chainId);\n this.signer.setDefaultChain(formattedChain, this.getRpcUrl(chainId));\n }\n\n private isCompatibleChainId(chainId: string): boolean {\n return typeof chainId === \"string\" ? chainId.startsWith(`${this.namespace}:`) : false;\n }\n\n private formatChainId(chainId: number): string {\n return `${this.namespace}:${chainId}`;\n }\n\n private parseChainId(chainId: string): number {\n return Number(chainId.split(\":\")[1]);\n }\n\n private setChainIds(chains: string[]) {\n const compatible = chains.filter((x) => this.isCompatibleChainId(x));\n const chainIds = compatible.map((c) => this.parseChainId(c));\n if (chainIds.length) {\n this.chainId = chainIds[0];\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private setChainId(chain: string) {\n if (this.isCompatibleChainId(chain)) {\n const chainId = this.parseChainId(chain);\n this.chainId = chainId;\n this.setHttpProvider(chainId);\n }\n }\n\n private parseAccountId(account: string): { chainId: string; address: string } {\n const [namespace, reference, address] = account.split(\":\");\n const chainId = `${namespace}:${reference}`;\n return { chainId, address };\n }\n\n private setAccounts(accounts: string[]) {\n this.accounts = accounts\n .filter((x) => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)\n .map((x) => this.parseAccountId(x).address);\n this.events.emit(\"accountsChanged\", this.accounts);\n }\n\n private getRpcConfig(opts: EthereumProviderOptions): EthereumRpcConfig {\n return {\n chains: opts.chains.map((chain) => this.formatChainId(chain)) || [`${this.namespace}:1`],\n methods: opts?.methods || signerMethods,\n events: opts?.events || signerEvents,\n rpcMap: opts?.rpcMap || this.buildRpcMap(opts.chains, opts.projectId),\n showQrModal: opts?.showQrModal || true,\n projectId: opts.projectId,\n metadata: opts.metadata,\n };\n }\n\n private buildRpcMap(chains: number[], projectId: string): EthereumRpcMap {\n const map: EthereumRpcMap = {};\n chains.forEach((chain) => {\n map[chain] = this.getRpcUrl(chain, projectId);\n });\n return map;\n }\n\n private async initialize(opts: EthereumProviderOptions) {\n this.rpc = this.getRpcConfig(opts);\n this.chainId = getEthereumChainId(this.rpc.chains);\n this.signer = await UniversalProvider.init({ projectId: this.rpc.projectId });\n this.registerEventListeners();\n this.loadPersistedSession();\n if (this.rpc.showQrModal)\n this.modal = new Web3Modal({\n projectId: this.rpc.projectId,\n standaloneChains: this.rpc.chains,\n });\n }\n\n private loadConnectOpts(opts?: ConnectOps) {\n if (!opts) return;\n const { chains, rpcMap } = opts;\n if (!isValidArray(chains) || !chains) return;\n this.rpc.chains = this.rpc.chains.concat(chains.map((chain) => this.formatChainId(chain)));\n // filter duplicate chains\n this.rpc.chains = [...new Set(this.rpc.chains)];\n chains.forEach((chain) => {\n this.rpc.rpcMap[chain] = rpcMap?.[chain] || this.getRpcUrl(chain);\n });\n }\n\n private getRpcUrl(chainId: number, projectId?: string): string {\n const providedRpc = this.rpc.rpcMap?.[chainId];\n return (\n providedRpc ||\n `${RPC_URL}?chainId=eip155:${chainId}&projectId=${projectId || this.rpc.projectId}`\n );\n }\n\n private loadPersistedSession() {\n if (!this.session) return;\n this.setChainIds(this.session.namespaces[this.namespace].accounts);\n this.setAccounts(this.session.namespaces[this.namespace].accounts);\n }\n\n private reset() {\n this.chainId = 1;\n this.accounts = [];\n }\n}\n\nexport default EthereumProvider;\n","import { EthereumProvider as Provider } from \"./EthereumProvider\";\nexport const EthereumProvider = Provider;\nexport default Provider;\n"],"names":["chains","EthereumProvider","EventEmitter","opts","provider","args","callback","session","accounts","getAccountsFromNamespaces","error","event","listener","payload","params","chainId","uri","_a","formattedChain","chainIds","x","c","chain","account","namespace","reference","address","projectId","map","UniversalProvider","Web3Modal","rpcMap","isValidArray","Provider"],"mappings":"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"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EventEmitter as c}from"events";import{getAccountsFromNamespaces as h,isValidArray as r}from"@walletconnect/utils";import{UniversalProvider as o}from"@walletconnect/universal-provider";import{Web3Modal as d}from"@web3modal/standalone";const p="https://rpc.walletconnect.com/v1/",l=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],u=["chainChanged","accountsChanged"];function m(a){return Number(a[0].split(":")[1])}class n{constructor(){this.events=new c,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(t){const s=new n;return await s.initialize(t),s}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,s){this.signer.sendAsync(t,s,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);try{const s=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:t?.pairingTopic});if(!s)return;this.setChainIds(this.rpc.chains);const i=h(s.namespaces,[this.namespace]);this.setAccounts(i),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(s){throw new Error(s.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(t,s){this.events.on(t,s)}once(t,s){this.events.once(t,s)}removeListener(t,s){this.events.removeListener(t,s)}off(t,s){this.events.off(t,s)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:s}=t;if(!this.rpc.chains.includes(s.chainId))return;const{event:i}=s;i.name==="accountsChanged"?(this.accounts=i.data,this.events.emit("accountsChanged",this.accounts)):i.name==="chainChanged"?this.setChainId(i.data):this.events.emit(i.name,i.data),this.events.emit("session_event",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t)}),this.signer.on("display_uri",t=>{var s;this.rpc.showQrModal&&((s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}setHttpProvider(t){const s=this.formatChainId(t);this.signer.setDefaultChain(s,this.getRpcUrl(t))}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit("chainChanged",this.chainId))}setChainId(t){if(this.isCompatibleChainId(t)){const s=this.parseChainId(t);this.chainId=s,this.setHttpProvider(s)
|
|
1
|
+
import{EventEmitter as c}from"events";import{getAccountsFromNamespaces as h,isValidArray as r}from"@walletconnect/utils";import{UniversalProvider as o}from"@walletconnect/universal-provider";import{Web3Modal as d}from"@web3modal/standalone";const p="https://rpc.walletconnect.com/v1/",l=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],u=["chainChanged","accountsChanged"];function m(a){return Number(a[0].split(":")[1])}class n{constructor(){this.events=new c,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(t){const s=new n;return await s.initialize(t),s}async request(t){return await this.signer.request(t,this.formatChainId(this.chainId))}sendAsync(t,s){this.signer.sendAsync(t,s,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);try{const s=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:t?.pairingTopic});if(!s)return;this.setChainIds(this.rpc.chains);const i=h(s.namespaces,[this.namespace]);this.setAccounts(i),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(s){throw new Error(s.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(t,s){this.events.on(t,s)}once(t,s){this.events.once(t,s)}removeListener(t,s){this.events.removeListener(t,s)}off(t,s){this.events.off(t,s)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:s}=t;if(!this.rpc.chains.includes(s.chainId))return;const{event:i}=s;i.name==="accountsChanged"?(this.accounts=i.data,this.events.emit("accountsChanged",this.accounts)):i.name==="chainChanged"?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>this.events.emit("chainChanged",t)),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t)}),this.signer.on("display_uri",t=>{var s;this.rpc.showQrModal&&((s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}setHttpProvider(t){const s=this.formatChainId(t);this.signer.setDefaultChain(s,this.getRpcUrl(t))}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit("chainChanged",this.chainId))}setChainId(t){if(this.isCompatibleChainId(t)){const s=this.parseChainId(t);this.chainId=s,this.setHttpProvider(s)}}parseAccountId(t){const[s,i,e]=t.split(":");return{chainId:`${s}:${i}`,address:e}}setAccounts(t){this.accounts=t.filter(s=>this.parseChainId(this.parseAccountId(s).chainId)===this.chainId).map(s=>this.parseAccountId(s).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){return{chains:t.chains.map(s=>this.formatChainId(s))||[`${this.namespace}:1`],methods:t?.methods||l,events:t?.events||u,rpcMap:t?.rpcMap||this.buildRpcMap(t.chains,t.projectId),showQrModal:t?.showQrModal||!0,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,s){const i={};return t.forEach(e=>{i[e]=this.getRpcUrl(e,s)}),i}async initialize(t){this.rpc=this.getRpcConfig(t),this.chainId=m(this.rpc.chains),this.signer=await o.init({projectId:this.rpc.projectId}),this.registerEventListeners(),this.loadPersistedSession(),this.rpc.showQrModal&&(this.modal=new d({projectId:this.rpc.projectId,standaloneChains:this.rpc.chains}))}loadConnectOpts(t){if(!t)return;const{chains:s,rpcMap:i}=t;!r(s)||!s||(this.rpc.chains=this.rpc.chains.concat(s.map(e=>this.formatChainId(e))),this.rpc.chains=[...new Set(this.rpc.chains)],s.forEach(e=>{this.rpc.rpcMap[e]=i?.[e]||this.getRpcUrl(e)}))}getRpcUrl(t,s){var i;return((i=this.rpc.rpcMap)==null?void 0:i[t])||`${p}?chainId=eip155:${t}&projectId=${s||this.rpc.projectId}`}loadPersistedSession(){this.session&&(this.setChainIds(this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts))}reset(){this.chainId=1,this.accounts=[]}}const g=n;export{g as EthereumProvider,n as default};
|
|
2
2
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/EthereumProvider.ts","../src/index.ts"],"sourcesContent":["import { EventEmitter } from \"events\";\nimport { getAccountsFromNamespaces, isValidArray } from \"@walletconnect/utils\";\nimport {\n IEthereumProvider as IProvider,\n ProviderAccounts,\n RequestArguments,\n} from \"eip1193-provider\";\nimport { Metadata, UniversalProvider } from \"@walletconnect/universal-provider\";\nimport { Web3Modal } from \"@web3modal/standalone\";\n\nexport const RPC_URL = \"https://rpc.walletconnect.com/v1/\";\n\nexport const signerMethods = [\n \"eth_requestAccounts\",\n \"eth_accounts\",\n \"eth_chainId\",\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"personal_sign\",\n];\n\nexport const signerEvents = [\"chainChanged\", \"accountsChanged\"];\n\nexport interface EthereumRpcMap {\n [chainId: string]: string;\n}\n\nexport interface SessionEvent {\n event: { name: string; data: any };\n chainId: string;\n}\n\nexport interface EthereumRpcConfig {\n chains: string[];\n methods: string[];\n events: string[];\n rpcMap: EthereumRpcMap;\n projectId: string;\n metadata?: Metadata;\n showQrModal: boolean;\n}\n\nexport interface ConnectOps {\n chains?: number[];\n rpcMap?: EthereumRpcMap;\n pairingTopic?: string;\n}\n\nexport interface IEthereumProvider extends IProvider {\n connect(opts?: ConnectOps | undefined): Promise<void>;\n}\n\nexport function getRpcUrl(chainId: string, rpc: EthereumRpcConfig): string | undefined {\n let rpcUrl: string | undefined;\n if (rpc.rpcMap) {\n rpcUrl = rpc.rpcMap[getEthereumChainId([chainId])];\n }\n return rpcUrl;\n}\n\nexport function getEthereumChainId(chains: string[]): number {\n return Number(chains[0].split(\":\")[1]);\n}\nexport interface EthereumProviderOptions {\n projectId: string;\n chains: number[];\n methods?: string[];\n events?: string[];\n rpcMap?: EthereumRpcMap;\n metadata?: Metadata;\n showQrModal?: boolean;\n}\n\nexport class EthereumProvider implements IEthereumProvider {\n public events: any = new EventEmitter();\n public namespace = \"eip155\";\n public accounts: string[] = [];\n public signer: InstanceType<typeof UniversalProvider>;\n public chainId = 1;\n public modal?: Web3Modal;\n\n private rpc: EthereumRpcConfig;\n\n constructor() {\n // assigned during initialize\n this.signer = {} as InstanceType<typeof UniversalProvider>;\n this.rpc = {} as EthereumRpcConfig;\n }\n\n static async init(opts: EthereumProviderOptions): Promise<EthereumProvider> {\n const provider = new EthereumProvider();\n await provider.initialize(opts);\n return provider;\n }\n\n public async request<T = unknown>(args: RequestArguments): Promise<T> {\n return await this.signer.request(args, this.formatChainId(this.chainId));\n }\n\n public sendAsync(\n args: RequestArguments,\n callback: (error: Error | null, response: any) => void,\n ): void {\n this.signer.sendAsync(args, callback, this.formatChainId(this.chainId));\n }\n\n get connected(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connected;\n }\n\n get connecting(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connecting;\n }\n\n public async enable(): Promise<ProviderAccounts> {\n if (!this.session) await this.connect();\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts as ProviderAccounts;\n }\n\n public async connect(opts?: ConnectOps): Promise<void> {\n if (!this.signer.client) {\n throw new Error(\"Provider not initialized. Call init() first\");\n }\n\n this.loadConnectOpts(opts);\n\n try {\n const session = await this.signer.connect({\n namespaces: {\n [this.namespace]: {\n chains: this.rpc.chains,\n methods: this.rpc.methods,\n events: this.rpc.events,\n rpcMap: this.rpc.rpcMap,\n },\n },\n pairingTopic: opts?.pairingTopic,\n });\n if (!session) return;\n this.setChainIds(this.rpc.chains);\n const accounts = getAccountsFromNamespaces(session.namespaces, [this.namespace]);\n this.setAccounts(accounts);\n this.events.emit(\"connect\", { chainId: this.chainId, accounts: this.accounts });\n } catch (error) {\n throw new Error((error as Error).message);\n } finally {\n if (this.modal) this.modal.closeModal();\n }\n }\n\n public async disconnect(): Promise<void> {\n await this.signer.disconnect();\n }\n\n public on(event: any, listener: any): void {\n this.events.on(event, listener);\n }\n\n public once(event: string, listener: any): void {\n this.events.once(event, listener);\n }\n\n public removeListener(event: string, listener: any): void {\n this.events.removeListener(event, listener);\n }\n\n public off(event: string, listener: any): void {\n this.events.off(event, listener);\n }\n\n get isWalletConnect() {\n return true;\n }\n\n get session() {\n return this.signer.session;\n }\n // ---------- Private ----------------------------------------------- //\n\n private registerEventListeners() {\n this.signer.on(\"session_event\", (payload: any) => {\n const { params } = payload;\n if (!this.rpc.chains.includes(params.chainId)) return;\n const { event } = params;\n if (event.name === \"accountsChanged\") {\n this.accounts = event.data;\n this.events.emit(\"accountsChanged\", this.accounts);\n } else if (event.name === \"chainChanged\") {\n this.setChainId(event.data);\n } else {\n this.events.emit(event.name, event.data);\n }\n this.events.emit(\"session_event\", payload);\n });\n\n this.signer.on(\"session_delete\", (payload: string) => {\n this.reset();\n this.events.emit(\"session_delete\", payload);\n });\n\n this.signer.on(\"display_uri\", (uri: string) => {\n if (this.rpc.showQrModal) {\n this.modal?.openModal({ uri });\n }\n this.events.emit(\"display_uri\", uri);\n });\n }\n\n private setHttpProvider(chainId: number): void {\n const formattedChain = this.formatChainId(chainId);\n this.signer.setDefaultChain(formattedChain, this.getRpcUrl(chainId));\n }\n\n private isCompatibleChainId(chainId: string): boolean {\n return typeof chainId === \"string\" ? chainId.startsWith(`${this.namespace}:`) : false;\n }\n\n private formatChainId(chainId: number): string {\n return `${this.namespace}:${chainId}`;\n }\n\n private parseChainId(chainId: string): number {\n return Number(chainId.split(\":\")[1]);\n }\n\n private setChainIds(chains: string[]) {\n const compatible = chains.filter((x) => this.isCompatibleChainId(x));\n const chainIds = compatible.map((c) => this.parseChainId(c));\n if (chainIds.length) {\n this.chainId = chainIds[0];\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private setChainId(chain: string) {\n if (this.isCompatibleChainId(chain)) {\n const chainId = this.parseChainId(chain);\n this.chainId = chainId;\n this.setHttpProvider(chainId);\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private parseAccountId(account: string): { chainId: string; address: string } {\n const [namespace, reference, address] = account.split(\":\");\n const chainId = `${namespace}:${reference}`;\n return { chainId, address };\n }\n\n private setAccounts(accounts: string[]) {\n this.accounts = accounts\n .filter((x) => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)\n .map((x) => this.parseAccountId(x).address);\n this.events.emit(\"accountsChanged\", this.accounts);\n }\n\n private getRpcConfig(opts: EthereumProviderOptions): EthereumRpcConfig {\n return {\n chains: opts.chains.map((chain) => this.formatChainId(chain)) || [`${this.namespace}:1`],\n methods: opts?.methods || signerMethods,\n events: opts?.events || signerEvents,\n rpcMap: opts?.rpcMap || this.buildRpcMap(opts.chains, opts.projectId),\n showQrModal: opts?.showQrModal || true,\n projectId: opts.projectId,\n metadata: opts.metadata,\n };\n }\n\n private buildRpcMap(chains: number[], projectId: string): EthereumRpcMap {\n const map: EthereumRpcMap = {};\n chains.forEach((chain) => {\n map[chain] = this.getRpcUrl(chain, projectId);\n });\n return map;\n }\n\n private async initialize(opts: EthereumProviderOptions) {\n this.rpc = this.getRpcConfig(opts);\n this.chainId = getEthereumChainId(this.rpc.chains);\n this.signer = await UniversalProvider.init({ projectId: this.rpc.projectId });\n this.registerEventListeners();\n this.loadPersistedSession();\n if (this.rpc.showQrModal)\n this.modal = new Web3Modal({\n projectId: this.rpc.projectId,\n standaloneChains: this.rpc.chains,\n });\n }\n\n private loadConnectOpts(opts?: ConnectOps) {\n if (!opts) return;\n const { chains, rpcMap } = opts;\n if (!isValidArray(chains) || !chains) return;\n this.rpc.chains = this.rpc.chains.concat(chains.map((chain) => this.formatChainId(chain)));\n // filter duplicate chains\n this.rpc.chains = [...new Set(this.rpc.chains)];\n chains.forEach((chain) => {\n this.rpc.rpcMap[chain] = rpcMap?.[chain] || this.getRpcUrl(chain);\n });\n }\n\n private getRpcUrl(chainId: number, projectId?: string): string {\n const providedRpc = this.rpc.rpcMap?.[chainId];\n return (\n providedRpc ||\n `${RPC_URL}?chainId=eip155:${chainId}&projectId=${projectId || this.rpc.projectId}`\n );\n }\n\n private loadPersistedSession() {\n if (!this.session) return;\n this.setChainIds(this.session.namespaces[this.namespace].accounts);\n this.setAccounts(this.session.namespaces[this.namespace].accounts);\n }\n\n private reset() {\n this.chainId = 1;\n this.accounts = [];\n }\n}\n\nexport default EthereumProvider;\n","import { EthereumProvider as Provider } from \"./EthereumProvider\";\nexport const EthereumProvider = Provider;\nexport default Provider;\n"],"names":["chains","EthereumProvider","EventEmitter","opts","provider","args","callback","session","accounts","getAccountsFromNamespaces","error","event","listener","payload","params","uri","_a","chainId","formattedChain","chainIds","x","c","chain","account","namespace","reference","address","projectId","map","UniversalProvider","Web3Modal","rpcMap","isValidArray","Provider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/EthereumProvider.ts","../src/index.ts"],"sourcesContent":["import { EventEmitter } from \"events\";\nimport { getAccountsFromNamespaces, isValidArray } from \"@walletconnect/utils\";\nimport {\n IEthereumProvider as IProvider,\n ProviderAccounts,\n RequestArguments,\n} from \"eip1193-provider\";\nimport { Metadata, UniversalProvider } from \"@walletconnect/universal-provider\";\nimport { Web3Modal } from \"@web3modal/standalone\";\nimport { SignClientTypes } from \"@walletconnect/types\";\n\nexport const RPC_URL = \"https://rpc.walletconnect.com/v1/\";\n\nexport const signerMethods = [\n \"eth_requestAccounts\",\n \"eth_accounts\",\n \"eth_chainId\",\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"personal_sign\",\n];\n\nexport const signerEvents = [\"chainChanged\", \"accountsChanged\"];\n\nexport interface EthereumRpcMap {\n [chainId: string]: string;\n}\n\nexport interface SessionEvent {\n event: { name: string; data: any };\n chainId: string;\n}\n\nexport interface EthereumRpcConfig {\n chains: string[];\n methods: string[];\n events: string[];\n rpcMap: EthereumRpcMap;\n projectId: string;\n metadata?: Metadata;\n showQrModal: boolean;\n}\n\nexport interface ConnectOps {\n chains?: number[];\n rpcMap?: EthereumRpcMap;\n pairingTopic?: string;\n}\n\nexport interface IEthereumProvider extends IProvider {\n connect(opts?: ConnectOps | undefined): Promise<void>;\n}\n\nexport function getRpcUrl(chainId: string, rpc: EthereumRpcConfig): string | undefined {\n let rpcUrl: string | undefined;\n if (rpc.rpcMap) {\n rpcUrl = rpc.rpcMap[getEthereumChainId([chainId])];\n }\n return rpcUrl;\n}\n\nexport function getEthereumChainId(chains: string[]): number {\n return Number(chains[0].split(\":\")[1]);\n}\nexport interface EthereumProviderOptions {\n projectId: string;\n chains: number[];\n methods?: string[];\n events?: string[];\n rpcMap?: EthereumRpcMap;\n metadata?: Metadata;\n showQrModal?: boolean;\n}\n\nexport class EthereumProvider implements IEthereumProvider {\n public events: any = new EventEmitter();\n public namespace = \"eip155\";\n public accounts: string[] = [];\n public signer: InstanceType<typeof UniversalProvider>;\n public chainId = 1;\n public modal?: Web3Modal;\n\n private rpc: EthereumRpcConfig;\n\n constructor() {\n // assigned during initialize\n this.signer = {} as InstanceType<typeof UniversalProvider>;\n this.rpc = {} as EthereumRpcConfig;\n }\n\n static async init(opts: EthereumProviderOptions): Promise<EthereumProvider> {\n const provider = new EthereumProvider();\n await provider.initialize(opts);\n return provider;\n }\n\n public async request<T = unknown>(args: RequestArguments): Promise<T> {\n return await this.signer.request(args, this.formatChainId(this.chainId));\n }\n\n public sendAsync(\n args: RequestArguments,\n callback: (error: Error | null, response: any) => void,\n ): void {\n this.signer.sendAsync(args, callback, this.formatChainId(this.chainId));\n }\n\n get connected(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connected;\n }\n\n get connecting(): boolean {\n if (!this.signer.client) return false;\n return this.signer.client.core.relayer.connecting;\n }\n\n public async enable(): Promise<ProviderAccounts> {\n if (!this.session) await this.connect();\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts as ProviderAccounts;\n }\n\n public async connect(opts?: ConnectOps): Promise<void> {\n if (!this.signer.client) {\n throw new Error(\"Provider not initialized. Call init() first\");\n }\n\n this.loadConnectOpts(opts);\n\n try {\n const session = await this.signer.connect({\n namespaces: {\n [this.namespace]: {\n chains: this.rpc.chains,\n methods: this.rpc.methods,\n events: this.rpc.events,\n rpcMap: this.rpc.rpcMap,\n },\n },\n pairingTopic: opts?.pairingTopic,\n });\n if (!session) return;\n this.setChainIds(this.rpc.chains);\n const accounts = getAccountsFromNamespaces(session.namespaces, [this.namespace]);\n this.setAccounts(accounts);\n this.events.emit(\"connect\", { chainId: this.chainId, accounts: this.accounts });\n } catch (error) {\n throw new Error((error as Error).message);\n } finally {\n if (this.modal) this.modal.closeModal();\n }\n }\n\n public async disconnect(): Promise<void> {\n await this.signer.disconnect();\n }\n\n public on(event: any, listener: any): void {\n this.events.on(event, listener);\n }\n\n public once(event: string, listener: any): void {\n this.events.once(event, listener);\n }\n\n public removeListener(event: string, listener: any): void {\n this.events.removeListener(event, listener);\n }\n\n public off(event: string, listener: any): void {\n this.events.off(event, listener);\n }\n\n get isWalletConnect() {\n return true;\n }\n\n get session() {\n return this.signer.session;\n }\n // ---------- Private ----------------------------------------------- //\n\n private registerEventListeners() {\n this.signer.on(\"session_event\", (payload: SignClientTypes.EventArguments[\"session_event\"]) => {\n const { params } = payload;\n if (!this.rpc.chains.includes(params.chainId)) return;\n const { event } = params;\n if (event.name === \"accountsChanged\") {\n this.accounts = event.data;\n this.events.emit(\"accountsChanged\", this.accounts);\n } else if (event.name === \"chainChanged\") {\n this.setChainId(this.formatChainId(event.data));\n } else {\n this.events.emit(event.name, event.data);\n }\n this.events.emit(\"session_event\", payload);\n });\n\n this.signer.on(\"chainChanged\", (chainId: number) => this.events.emit(\"chainChanged\", chainId));\n\n this.signer.on(\n \"session_update\",\n (payload: SignClientTypes.EventArguments[\"session_update\"]) => {\n this.events.emit(\"session_update\", payload);\n },\n );\n\n this.signer.on(\n \"session_delete\",\n (payload: SignClientTypes.EventArguments[\"session_delete\"]) => {\n this.reset();\n this.events.emit(\"session_delete\", payload);\n },\n );\n\n this.signer.on(\"display_uri\", (uri: string) => {\n if (this.rpc.showQrModal) {\n this.modal?.openModal({ uri });\n }\n this.events.emit(\"display_uri\", uri);\n });\n }\n\n private setHttpProvider(chainId: number): void {\n const formattedChain = this.formatChainId(chainId);\n this.signer.setDefaultChain(formattedChain, this.getRpcUrl(chainId));\n }\n\n private isCompatibleChainId(chainId: string): boolean {\n return typeof chainId === \"string\" ? chainId.startsWith(`${this.namespace}:`) : false;\n }\n\n private formatChainId(chainId: number): string {\n return `${this.namespace}:${chainId}`;\n }\n\n private parseChainId(chainId: string): number {\n return Number(chainId.split(\":\")[1]);\n }\n\n private setChainIds(chains: string[]) {\n const compatible = chains.filter((x) => this.isCompatibleChainId(x));\n const chainIds = compatible.map((c) => this.parseChainId(c));\n if (chainIds.length) {\n this.chainId = chainIds[0];\n this.events.emit(\"chainChanged\", this.chainId);\n }\n }\n\n private setChainId(chain: string) {\n if (this.isCompatibleChainId(chain)) {\n const chainId = this.parseChainId(chain);\n this.chainId = chainId;\n this.setHttpProvider(chainId);\n }\n }\n\n private parseAccountId(account: string): { chainId: string; address: string } {\n const [namespace, reference, address] = account.split(\":\");\n const chainId = `${namespace}:${reference}`;\n return { chainId, address };\n }\n\n private setAccounts(accounts: string[]) {\n this.accounts = accounts\n .filter((x) => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)\n .map((x) => this.parseAccountId(x).address);\n this.events.emit(\"accountsChanged\", this.accounts);\n }\n\n private getRpcConfig(opts: EthereumProviderOptions): EthereumRpcConfig {\n return {\n chains: opts.chains.map((chain) => this.formatChainId(chain)) || [`${this.namespace}:1`],\n methods: opts?.methods || signerMethods,\n events: opts?.events || signerEvents,\n rpcMap: opts?.rpcMap || this.buildRpcMap(opts.chains, opts.projectId),\n showQrModal: opts?.showQrModal || true,\n projectId: opts.projectId,\n metadata: opts.metadata,\n };\n }\n\n private buildRpcMap(chains: number[], projectId: string): EthereumRpcMap {\n const map: EthereumRpcMap = {};\n chains.forEach((chain) => {\n map[chain] = this.getRpcUrl(chain, projectId);\n });\n return map;\n }\n\n private async initialize(opts: EthereumProviderOptions) {\n this.rpc = this.getRpcConfig(opts);\n this.chainId = getEthereumChainId(this.rpc.chains);\n this.signer = await UniversalProvider.init({ projectId: this.rpc.projectId });\n this.registerEventListeners();\n this.loadPersistedSession();\n if (this.rpc.showQrModal)\n this.modal = new Web3Modal({\n projectId: this.rpc.projectId,\n standaloneChains: this.rpc.chains,\n });\n }\n\n private loadConnectOpts(opts?: ConnectOps) {\n if (!opts) return;\n const { chains, rpcMap } = opts;\n if (!isValidArray(chains) || !chains) return;\n this.rpc.chains = this.rpc.chains.concat(chains.map((chain) => this.formatChainId(chain)));\n // filter duplicate chains\n this.rpc.chains = [...new Set(this.rpc.chains)];\n chains.forEach((chain) => {\n this.rpc.rpcMap[chain] = rpcMap?.[chain] || this.getRpcUrl(chain);\n });\n }\n\n private getRpcUrl(chainId: number, projectId?: string): string {\n const providedRpc = this.rpc.rpcMap?.[chainId];\n return (\n providedRpc ||\n `${RPC_URL}?chainId=eip155:${chainId}&projectId=${projectId || this.rpc.projectId}`\n );\n }\n\n private loadPersistedSession() {\n if (!this.session) return;\n this.setChainIds(this.session.namespaces[this.namespace].accounts);\n this.setAccounts(this.session.namespaces[this.namespace].accounts);\n }\n\n private reset() {\n this.chainId = 1;\n this.accounts = [];\n }\n}\n\nexport default EthereumProvider;\n","import { EthereumProvider as Provider } from \"./EthereumProvider\";\nexport const EthereumProvider = Provider;\nexport default Provider;\n"],"names":["chains","EthereumProvider","EventEmitter","opts","provider","args","callback","session","accounts","getAccountsFromNamespaces","error","event","listener","payload","params","chainId","uri","_a","formattedChain","chainIds","x","c","chain","account","namespace","reference","address","projectId","map","UniversalProvider","Web3Modal","rpcMap","isValidArray","Provider"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
*
|
|
69
69
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
70
70
|
* @license MIT
|
|
71
|
-
*/(function(t){const e=ps,r=Ea,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=a,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const m=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(m,h),m.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(m){if(m>i)throw new RangeError('The value "'+m+'" is invalid for option "size"');const h=new Uint8Array(m);return Object.setPrototypeOf(h,a.prototype),h}function a(m,h,d){if(typeof m=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(m)}return c(m,h,d)}a.poolSize=8192;function c(m,h,d){if(typeof m=="string")return b(m,h);if(ArrayBuffer.isView(m))return D(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(me(m,ArrayBuffer)||m&&me(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(me(m,SharedArrayBuffer)||m&&me(m.buffer,SharedArrayBuffer)))return A(m,h,d);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const S=m.valueOf&&m.valueOf();if(S!=null&&S!==m)return a.from(S,h,d);const T=N(m);if(T)return T;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return a.from(m[Symbol.toPrimitive]("string"),h,d);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}a.from=function(m,h,d){return c(m,h,d)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function p(m,h,d){return l(m),m<=0?o(m):h!==void 0?typeof d=="string"?o(m).fill(h,d):o(m).fill(h):o(m)}a.alloc=function(m,h,d){return p(m,h,d)};function y(m){return l(m),o(m<0?0:R(m)|0)}a.allocUnsafe=function(m){return y(m)},a.allocUnsafeSlow=function(m){return y(m)};function b(m,h){if((typeof h!="string"||h==="")&&(h="utf8"),!a.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const d=x(m,h)|0;let S=o(d);const T=S.write(m,h);return T!==d&&(S=S.slice(0,T)),S}function _(m){const h=m.length<0?0:R(m.length)|0,d=o(h);for(let S=0;S<h;S+=1)d[S]=m[S]&255;return d}function D(m){if(me(m,Uint8Array)){const h=new Uint8Array(m);return A(h.buffer,h.byteOffset,h.byteLength)}return _(m)}function A(m,h,d){if(h<0||m.byteLength<h)throw new RangeError('"offset" is outside of buffer bounds');if(m.byteLength<h+(d||0))throw new RangeError('"length" is outside of buffer bounds');let S;return h===void 0&&d===void 0?S=new Uint8Array(m):d===void 0?S=new Uint8Array(m,h):S=new Uint8Array(m,h,d),Object.setPrototypeOf(S,a.prototype),S}function N(m){if(a.isBuffer(m)){const h=R(m.length)|0,d=o(h);return d.length===0||m.copy(d,0,0,h),d}if(m.length!==void 0)return typeof m.length!="number"||Se(m.length)?o(0):_(m);if(m.type==="Buffer"&&Array.isArray(m.data))return _(m.data)}function R(m){if(m>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return m|0}function g(m){return+m!=m&&(m=0),a.alloc(+m)}a.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==a.prototype},a.compare=function(h,d){if(me(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),me(d,Uint8Array)&&(d=a.from(d,d.offset,d.byteLength)),!a.isBuffer(h)||!a.isBuffer(d))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===d)return 0;let S=h.length,T=d.length;for(let F=0,H=Math.min(S,T);F<H;++F)if(h[F]!==d[F]){S=h[F],T=d[F];break}return S<T?-1:T<S?1:0},a.isEncoding=function(h){switch(String(h).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(h,d){if(!Array.isArray(h))throw new TypeError('"list" argument must be an Array of Buffers');if(h.length===0)return a.alloc(0);let S;if(d===void 0)for(d=0,S=0;S<h.length;++S)d+=h[S].length;const T=a.allocUnsafe(d);let F=0;for(S=0;S<h.length;++S){let H=h[S];if(me(H,Uint8Array))F+H.length>T.length?(a.isBuffer(H)||(H=a.from(H)),H.copy(T,F)):Uint8Array.prototype.set.call(T,H,F);else if(a.isBuffer(H))H.copy(T,F);else throw new TypeError('"list" argument must be an Array of Buffers');F+=H.length}return T};function x(m,h){if(a.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||me(m,ArrayBuffer))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);const d=m.length,S=arguments.length>2&&arguments[2]===!0;if(!S&&d===0)return 0;let T=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return d;case"utf8":case"utf-8":return Fe(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return d*2;case"hex":return d>>>1;case"base64":return Pe(m).length;default:if(T)return S?-1:Fe(m).length;h=(""+h).toLowerCase(),T=!0}}a.byteLength=x;function w(m,h,d){let S=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((d===void 0||d>this.length)&&(d=this.length),d<=0)||(d>>>=0,h>>>=0,d<=h))return"";for(m||(m="utf8");;)switch(m){case"hex":return z(this,h,d);case"utf8":case"utf-8":return I(this,h,d);case"ascii":return K(this,h,d);case"latin1":case"binary":return W(this,h,d);case"base64":return re(this,h,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return J(this,h,d);default:if(S)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),S=!0}}a.prototype._isBuffer=!0;function E(m,h,d){const S=m[h];m[h]=m[d],m[d]=S}a.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let d=0;d<h;d+=2)E(this,d,d+1);return this},a.prototype.swap32=function(){const h=this.length;if(h%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let d=0;d<h;d+=4)E(this,d,d+3),E(this,d+1,d+2);return this},a.prototype.swap64=function(){const h=this.length;if(h%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let d=0;d<h;d+=8)E(this,d,d+7),E(this,d+1,d+6),E(this,d+2,d+5),E(this,d+3,d+4);return this},a.prototype.toString=function(){const h=this.length;return h===0?"":arguments.length===0?I(this,0,h):w.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(h){if(!a.isBuffer(h))throw new TypeError("Argument must be a Buffer");return this===h?!0:a.compare(this,h)===0},a.prototype.inspect=function(){let h="";const d=t.INSPECT_MAX_BYTES;return h=this.toString("hex",0,d).replace(/(.{2})/g,"$1 ").trim(),this.length>d&&(h+=" ... "),"<Buffer "+h+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(h,d,S,T,F){if(me(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),!a.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(d===void 0&&(d=0),S===void 0&&(S=h?h.length:0),T===void 0&&(T=0),F===void 0&&(F=this.length),d<0||S>h.length||T<0||F>this.length)throw new RangeError("out of range index");if(T>=F&&d>=S)return 0;if(T>=F)return-1;if(d>=S)return 1;if(d>>>=0,S>>>=0,T>>>=0,F>>>=0,this===h)return 0;let H=F-T,oe=S-d;const he=Math.min(H,oe),Re=this.slice(T,F),Be=h.slice(d,S);for(let Le=0;Le<he;++Le)if(Re[Le]!==Be[Le]){H=Re[Le],oe=Be[Le];break}return H<oe?-1:oe<H?1:0};function C(m,h,d,S,T){if(m.length===0)return-1;if(typeof d=="string"?(S=d,d=0):d>2147483647?d=2147483647:d<-2147483648&&(d=-2147483648),d=+d,Se(d)&&(d=T?0:m.length-1),d<0&&(d=m.length+d),d>=m.length){if(T)return-1;d=m.length-1}else if(d<0)if(T)d=0;else return-1;if(typeof h=="string"&&(h=a.from(h,S)),a.isBuffer(h))return h.length===0?-1:u(m,h,d,S,T);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?T?Uint8Array.prototype.indexOf.call(m,h,d):Uint8Array.prototype.lastIndexOf.call(m,h,d):u(m,[h],d,S,T);throw new TypeError("val must be string, number or Buffer")}function u(m,h,d,S,T){let F=1,H=m.length,oe=h.length;if(S!==void 0&&(S=String(S).toLowerCase(),S==="ucs2"||S==="ucs-2"||S==="utf16le"||S==="utf-16le")){if(m.length<2||h.length<2)return-1;F=2,H/=2,oe/=2,d/=2}function he(Be,Le){return F===1?Be[Le]:Be.readUInt16BE(Le*F)}let Re;if(T){let Be=-1;for(Re=d;Re<H;Re++)if(he(m,Re)===he(h,Be===-1?0:Re-Be)){if(Be===-1&&(Be=Re),Re-Be+1===oe)return Be*F}else Be!==-1&&(Re-=Re-Be),Be=-1}else for(d+oe>H&&(d=H-oe),Re=d;Re>=0;Re--){let Be=!0;for(let Le=0;Le<oe;Le++)if(he(m,Re+Le)!==he(h,Le)){Be=!1;break}if(Be)return Re}return-1}a.prototype.includes=function(h,d,S){return this.indexOf(h,d,S)!==-1},a.prototype.indexOf=function(h,d,S){return C(this,h,d,S,!0)},a.prototype.lastIndexOf=function(h,d,S){return C(this,h,d,S,!1)};function v(m,h,d,S){d=Number(d)||0;const T=m.length-d;S?(S=Number(S),S>T&&(S=T)):S=T;const F=h.length;S>F/2&&(S=F/2);let H;for(H=0;H<S;++H){const oe=parseInt(h.substr(H*2,2),16);if(Se(oe))return H;m[d+H]=oe}return H}function j(m,h,d,S){return Ie(Fe(h,m.length-d),m,d,S)}function k(m,h,d,S){return Ie(Ge(h),m,d,S)}function q(m,h,d,S){return Ie(Pe(h),m,d,S)}function X(m,h,d,S){return Ie(qe(h,m.length-d),m,d,S)}a.prototype.write=function(h,d,S,T){if(d===void 0)T="utf8",S=this.length,d=0;else if(S===void 0&&typeof d=="string")T=d,S=this.length,d=0;else if(isFinite(d))d=d>>>0,isFinite(S)?(S=S>>>0,T===void 0&&(T="utf8")):(T=S,S=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const F=this.length-d;if((S===void 0||S>F)&&(S=F),h.length>0&&(S<0||d<0)||d>this.length)throw new RangeError("Attempt to write outside buffer bounds");T||(T="utf8");let H=!1;for(;;)switch(T){case"hex":return v(this,h,d,S);case"utf8":case"utf-8":return j(this,h,d,S);case"ascii":case"latin1":case"binary":return k(this,h,d,S);case"base64":return q(this,h,d,S);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X(this,h,d,S);default:if(H)throw new TypeError("Unknown encoding: "+T);T=(""+T).toLowerCase(),H=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function re(m,h,d){return h===0&&d===m.length?e.fromByteArray(m):e.fromByteArray(m.slice(h,d))}function I(m,h,d){d=Math.min(m.length,d);const S=[];let T=h;for(;T<d;){const F=m[T];let H=null,oe=F>239?4:F>223?3:F>191?2:1;if(T+oe<=d){let he,Re,Be,Le;switch(oe){case 1:F<128&&(H=F);break;case 2:he=m[T+1],(he&192)===128&&(Le=(F&31)<<6|he&63,Le>127&&(H=Le));break;case 3:he=m[T+1],Re=m[T+2],(he&192)===128&&(Re&192)===128&&(Le=(F&15)<<12|(he&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(H=Le));break;case 4:he=m[T+1],Re=m[T+2],Be=m[T+3],(he&192)===128&&(Re&192)===128&&(Be&192)===128&&(Le=(F&15)<<18|(he&63)<<12|(Re&63)<<6|Be&63,Le>65535&&Le<1114112&&(H=Le))}}H===null?(H=65533,oe=1):H>65535&&(H-=65536,S.push(H>>>10&1023|55296),H=56320|H&1023),S.push(H),T+=oe}return G(S)}const $=4096;function G(m){const h=m.length;if(h<=$)return String.fromCharCode.apply(String,m);let d="",S=0;for(;S<h;)d+=String.fromCharCode.apply(String,m.slice(S,S+=$));return d}function K(m,h,d){let S="";d=Math.min(m.length,d);for(let T=h;T<d;++T)S+=String.fromCharCode(m[T]&127);return S}function W(m,h,d){let S="";d=Math.min(m.length,d);for(let T=h;T<d;++T)S+=String.fromCharCode(m[T]);return S}function z(m,h,d){const S=m.length;(!h||h<0)&&(h=0),(!d||d<0||d>S)&&(d=S);let T="";for(let F=h;F<d;++F)T+=Oe[m[F]];return T}function J(m,h,d){const S=m.slice(h,d);let T="";for(let F=0;F<S.length-1;F+=2)T+=String.fromCharCode(S[F]+S[F+1]*256);return T}a.prototype.slice=function(h,d){const S=this.length;h=~~h,d=d===void 0?S:~~d,h<0?(h+=S,h<0&&(h=0)):h>S&&(h=S),d<0?(d+=S,d<0&&(d=0)):d>S&&(d=S),d<h&&(d=h);const T=this.subarray(h,d);return Object.setPrototypeOf(T,a.prototype),T};function Z(m,h,d){if(m%1!==0||m<0)throw new RangeError("offset is not uint");if(m+h>d)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h],F=1,H=0;for(;++H<d&&(F*=256);)T+=this[h+H]*F;return T},a.prototype.readUintBE=a.prototype.readUIntBE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h+--d],F=1;for(;d>0&&(F*=256);)T+=this[h+--d]*F;return T},a.prototype.readUint8=a.prototype.readUInt8=function(h,d){return h=h>>>0,d||Z(h,1,this.length),this[h]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(h,d){return h=h>>>0,d||Z(h,2,this.length),this[h]|this[h+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(h,d){return h=h>>>0,d||Z(h,2,this.length),this[h]<<8|this[h+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},a.prototype.readBigUInt64LE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=d+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,F=this[++h]+this[++h]*2**8+this[++h]*2**16+S*2**24;return BigInt(T)+(BigInt(F)<<BigInt(32))}),a.prototype.readBigUInt64BE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=d*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],F=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+S;return(BigInt(T)<<BigInt(32))+BigInt(F)}),a.prototype.readIntLE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h],F=1,H=0;for(;++H<d&&(F*=256);)T+=this[h+H]*F;return F*=128,T>=F&&(T-=Math.pow(2,8*d)),T},a.prototype.readIntBE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=d,F=1,H=this[h+--T];for(;T>0&&(F*=256);)H+=this[h+--T]*F;return F*=128,H>=F&&(H-=Math.pow(2,8*d)),H},a.prototype.readInt8=function(h,d){return h=h>>>0,d||Z(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},a.prototype.readInt16LE=function(h,d){h=h>>>0,d||Z(h,2,this.length);const S=this[h]|this[h+1]<<8;return S&32768?S|4294901760:S},a.prototype.readInt16BE=function(h,d){h=h>>>0,d||Z(h,2,this.length);const S=this[h+1]|this[h]<<8;return S&32768?S|4294901760:S},a.prototype.readInt32LE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},a.prototype.readInt32BE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},a.prototype.readBigInt64LE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(S<<24);return(BigInt(T)<<BigInt(32))+BigInt(d+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24)}),a.prototype.readBigInt64BE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=(d<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(T)<<BigInt(32))+BigInt(this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+S)}),a.prototype.readFloatLE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),r.read(this,h,!0,23,4)},a.prototype.readFloatBE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),r.read(this,h,!1,23,4)},a.prototype.readDoubleLE=function(h,d){return h=h>>>0,d||Z(h,8,this.length),r.read(this,h,!0,52,8)},a.prototype.readDoubleBE=function(h,d){return h=h>>>0,d||Z(h,8,this.length),r.read(this,h,!1,52,8)};function ue(m,h,d,S,T,F){if(!a.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>T||h<F)throw new RangeError('"value" argument is out of bounds');if(d+S>m.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(h,d,S,T){if(h=+h,d=d>>>0,S=S>>>0,!T){const oe=Math.pow(2,8*S)-1;ue(this,h,d,S,oe,0)}let F=1,H=0;for(this[d]=h&255;++H<S&&(F*=256);)this[d+H]=h/F&255;return d+S},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(h,d,S,T){if(h=+h,d=d>>>0,S=S>>>0,!T){const oe=Math.pow(2,8*S)-1;ue(this,h,d,S,oe,0)}let F=S-1,H=1;for(this[d+F]=h&255;--F>=0&&(H*=256);)this[d+F]=h/H&255;return d+S},a.prototype.writeUint8=a.prototype.writeUInt8=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,1,255,0),this[d]=h&255,d+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,65535,0),this[d]=h&255,this[d+1]=h>>>8,d+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,65535,0),this[d]=h>>>8,this[d+1]=h&255,d+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,4294967295,0),this[d+3]=h>>>24,this[d+2]=h>>>16,this[d+1]=h>>>8,this[d]=h&255,d+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,4294967295,0),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4};function Q(m,h,d,S,T){ee(h,S,T,m,d,7);let F=Number(h&BigInt(4294967295));m[d++]=F,F=F>>8,m[d++]=F,F=F>>8,m[d++]=F,F=F>>8,m[d++]=F;let H=Number(h>>BigInt(32)&BigInt(4294967295));return m[d++]=H,H=H>>8,m[d++]=H,H=H>>8,m[d++]=H,H=H>>8,m[d++]=H,d}function fe(m,h,d,S,T){ee(h,S,T,m,d,7);let F=Number(h&BigInt(4294967295));m[d+7]=F,F=F>>8,m[d+6]=F,F=F>>8,m[d+5]=F,F=F>>8,m[d+4]=F;let H=Number(h>>BigInt(32)&BigInt(4294967295));return m[d+3]=H,H=H>>8,m[d+2]=H,H=H>>8,m[d+1]=H,H=H>>8,m[d]=H,d+8}a.prototype.writeBigUInt64LE=pe(function(h,d=0){return Q(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=pe(function(h,d=0){return fe(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(h,d,S,T){if(h=+h,d=d>>>0,!T){const he=Math.pow(2,8*S-1);ue(this,h,d,S,he-1,-he)}let F=0,H=1,oe=0;for(this[d]=h&255;++F<S&&(H*=256);)h<0&&oe===0&&this[d+F-1]!==0&&(oe=1),this[d+F]=(h/H>>0)-oe&255;return d+S},a.prototype.writeIntBE=function(h,d,S,T){if(h=+h,d=d>>>0,!T){const he=Math.pow(2,8*S-1);ue(this,h,d,S,he-1,-he)}let F=S-1,H=1,oe=0;for(this[d+F]=h&255;--F>=0&&(H*=256);)h<0&&oe===0&&this[d+F+1]!==0&&(oe=1),this[d+F]=(h/H>>0)-oe&255;return d+S},a.prototype.writeInt8=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,1,127,-128),h<0&&(h=255+h+1),this[d]=h&255,d+1},a.prototype.writeInt16LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,32767,-32768),this[d]=h&255,this[d+1]=h>>>8,d+2},a.prototype.writeInt16BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,32767,-32768),this[d]=h>>>8,this[d+1]=h&255,d+2},a.prototype.writeInt32LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,2147483647,-2147483648),this[d]=h&255,this[d+1]=h>>>8,this[d+2]=h>>>16,this[d+3]=h>>>24,d+4},a.prototype.writeInt32BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4},a.prototype.writeBigInt64LE=pe(function(h,d=0){return Q(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=pe(function(h,d=0){return fe(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ae(m,h,d,S,T,F){if(d+S>m.length)throw new RangeError("Index out of range");if(d<0)throw new RangeError("Index out of range")}function Ce(m,h,d,S,T){return h=+h,d=d>>>0,T||ae(m,h,d,4),r.write(m,h,d,S,23,4),d+4}a.prototype.writeFloatLE=function(h,d,S){return Ce(this,h,d,!0,S)},a.prototype.writeFloatBE=function(h,d,S){return Ce(this,h,d,!1,S)};function B(m,h,d,S,T){return h=+h,d=d>>>0,T||ae(m,h,d,8),r.write(m,h,d,S,52,8),d+8}a.prototype.writeDoubleLE=function(h,d,S){return B(this,h,d,!0,S)},a.prototype.writeDoubleBE=function(h,d,S){return B(this,h,d,!1,S)},a.prototype.copy=function(h,d,S,T){if(!a.isBuffer(h))throw new TypeError("argument should be a Buffer");if(S||(S=0),!T&&T!==0&&(T=this.length),d>=h.length&&(d=h.length),d||(d=0),T>0&&T<S&&(T=S),T===S||h.length===0||this.length===0)return 0;if(d<0)throw new RangeError("targetStart out of bounds");if(S<0||S>=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=this.length),h.length-d<T-S&&(T=h.length-d+S);const F=T-S;return this===h&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(d,S,T):Uint8Array.prototype.set.call(h,this.subarray(S,T),d),F},a.prototype.fill=function(h,d,S,T){if(typeof h=="string"){if(typeof d=="string"?(T=d,d=0,S=this.length):typeof S=="string"&&(T=S,S=this.length),T!==void 0&&typeof T!="string")throw new TypeError("encoding must be a string");if(typeof T=="string"&&!a.isEncoding(T))throw new TypeError("Unknown encoding: "+T);if(h.length===1){const H=h.charCodeAt(0);(T==="utf8"&&H<128||T==="latin1")&&(h=H)}}else typeof h=="number"?h=h&255:typeof h=="boolean"&&(h=Number(h));if(d<0||this.length<d||this.length<S)throw new RangeError("Out of range index");if(S<=d)return this;d=d>>>0,S=S===void 0?this.length:S>>>0,h||(h=0);let F;if(typeof h=="number")for(F=d;F<S;++F)this[F]=h;else{const H=a.isBuffer(h)?h:a.from(h,T),oe=H.length;if(oe===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for(F=0;F<S-d;++F)this[F+d]=H[F%oe]}return this};const U={};function L(m,h,d){U[m]=class extends d{constructor(){super(),Object.defineProperty(this,"message",{value:h.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${m}]`,this.stack,delete this.name}get code(){return m}set code(T){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:T,writable:!0})}toString(){return`${this.name} [${m}]: ${this.message}`}}}L("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),L("ERR_INVALID_ARG_TYPE",function(m,h){return`The "${m}" argument must be of type number. Received type ${typeof h}`},TypeError),L("ERR_OUT_OF_RANGE",function(m,h,d){let S=`The value of "${m}" is out of range.`,T=d;return Number.isInteger(d)&&Math.abs(d)>2**32?T=f(String(d)):typeof d=="bigint"&&(T=String(d),(d>BigInt(2)**BigInt(32)||d<-(BigInt(2)**BigInt(32)))&&(T=f(T)),T+="n"),S+=` It must be ${h}. Received ${T}`,S},RangeError);function f(m){let h="",d=m.length;const S=m[0]==="-"?1:0;for(;d>=S+4;d-=3)h=`_${m.slice(d-3,d)}${h}`;return`${m.slice(0,d)}${h}`}function P(m,h,d){ne(h,"offset"),(m[h]===void 0||m[h+d]===void 0)&&Ee(h,m.length-(d+1))}function ee(m,h,d,S,T,F){if(m>d||m<h){const H=typeof h=="bigint"?"n":"";let oe;throw F>3?h===0||h===BigInt(0)?oe=`>= 0${H} and < 2${H} ** ${(F+1)*8}${H}`:oe=`>= -(2${H} ** ${(F+1)*8-1}${H}) and < 2 ** ${(F+1)*8-1}${H}`:oe=`>= ${h}${H} and <= ${d}${H}`,new U.ERR_OUT_OF_RANGE("value",oe,m)}P(S,T,F)}function ne(m,h){if(typeof m!="number")throw new U.ERR_INVALID_ARG_TYPE(h,"number",m)}function Ee(m,h,d){throw Math.floor(m)!==m?(ne(m,d),new U.ERR_OUT_OF_RANGE(d||"offset","an integer",m)):h<0?new U.ERR_BUFFER_OUT_OF_BOUNDS:new U.ERR_OUT_OF_RANGE(d||"offset",`>= ${d?1:0} and <= ${h}`,m)}const Me=/[^+/0-9A-Za-z-_]/g;function $e(m){if(m=m.split("=")[0],m=m.trim().replace(Me,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function Fe(m,h){h=h||1/0;let d;const S=m.length;let T=null;const F=[];for(let H=0;H<S;++H){if(d=m.charCodeAt(H),d>55295&&d<57344){if(!T){if(d>56319){(h-=3)>-1&&F.push(239,191,189);continue}else if(H+1===S){(h-=3)>-1&&F.push(239,191,189);continue}T=d;continue}if(d<56320){(h-=3)>-1&&F.push(239,191,189),T=d;continue}d=(T-55296<<10|d-56320)+65536}else T&&(h-=3)>-1&&F.push(239,191,189);if(T=null,d<128){if((h-=1)<0)break;F.push(d)}else if(d<2048){if((h-=2)<0)break;F.push(d>>6|192,d&63|128)}else if(d<65536){if((h-=3)<0)break;F.push(d>>12|224,d>>6&63|128,d&63|128)}else if(d<1114112){if((h-=4)<0)break;F.push(d>>18|240,d>>12&63|128,d>>6&63|128,d&63|128)}else throw new Error("Invalid code point")}return F}function Ge(m){const h=[];for(let d=0;d<m.length;++d)h.push(m.charCodeAt(d)&255);return h}function qe(m,h){let d,S,T;const F=[];for(let H=0;H<m.length&&!((h-=2)<0);++H)d=m.charCodeAt(H),S=d>>8,T=d%256,F.push(T),F.push(S);return F}function Pe(m){return e.toByteArray($e(m))}function Ie(m,h,d,S){let T;for(T=0;T<S&&!(T+d>=h.length||T>=m.length);++T)h[T+d]=m[T];return T}function me(m,h){return m instanceof h||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===h.name}function Se(m){return m!==m}const Oe=function(){const m="0123456789abcdef",h=new Array(256);for(let d=0;d<16;++d){const S=d*16;for(let T=0;T<16;++T)h[S+T]=m[d]+m[T]}return h}();function pe(m){return typeof BigInt>"u"?xe:m}function xe(){throw new Error("BigInt not supported")}})(Vh);const He=br({selectedChain:void 0,chains:void 0,standaloneChains:void 0,standaloneUri:void 0,address:void 0,profileName:void 0,profileAvatar:void 0,profileLoading:!1,balanceLoading:!1,balance:void 0,isConnected:!1,isStandalone:!1,isCustomDesktop:!1,isCustomMobile:!1,isExplorer:!1,isDataLoaded:!1,isUiLoaded:!1}),te={state:He,subscribe(t){return ci(He,()=>t(He))},setChains(t){He.chains=t},setStandaloneChains(t){He.standaloneChains=t},setStandaloneUri(t){He.standaloneUri=t},getSelectedChain(){const t=Ke.client().getNetwork().chain;return t&&(He.selectedChain=t),He.selectedChain},setSelectedChain(t){He.selectedChain=t},setIsStandalone(t){He.isStandalone=t},setIsCustomDesktop(t){He.isCustomDesktop=t},setIsCustomMobile(t){He.isCustomMobile=t},setIsExplorer(t){He.isExplorer=t},getAccount(){const t=Ke.client().getAccount();He.address=t.address,He.isConnected=t.isConnected},setAddress(t){He.address=t},setIsConnected(t){He.isConnected=t},setProfileName(t){He.profileName=t},setProfileAvatar(t){He.profileAvatar=t},setProfileLoading(t){He.profileLoading=t},setBalanceLoading(t){He.balanceLoading=t},setBalance(t){He.balance=t},setIsDataLoaded(t){He.isDataLoaded=t},setIsUiLoaded(t){He.isUiLoaded=t},resetEnsProfile(){He.profileName=void 0,He.profileAvatar=void 0},resetBalance(){He.balance=void 0},resetAccount(){He.address=void 0,te.resetEnsProfile(),te.resetBalance()}},li=br({initialized:!1,ethereumClient:void 0}),Ke={setEthereumClient(t){!li.initialized&&t&&(li.ethereumClient=t,te.setChains(t.chains),li.initialized=!0)},client(){if(li.ethereumClient)return li.ethereumClient;throw new Error("ClientCtrl has no client set")}},Te={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",isMobile(){return typeof window<"u"?Boolean(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},isAndroid(){return Te.isMobile()&&navigator.userAgent.toLowerCase().includes("android")},isEmptyObject(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.getOwnPropertyNames(t).length===0&&Object.getOwnPropertySymbols(t).length===0},isHttpUrl(t){return t.startsWith("http://")||t.startsWith("https://")},formatNativeUrl(t,e,r){if(Te.isHttpUrl(t))return this.formatUniversalUrl(t,e,r);let n=t;n.includes("://")||(n=t.replaceAll("/","").replaceAll(":",""),n=`${n}://`),this.setWalletConnectDeepLink(n,r);const i=encodeURIComponent(e);return`${n}wc?uri=${i}`},formatUniversalUrl(t,e,r){if(!Te.isHttpUrl(t))return this.formatNativeUrl(t,e,r);let n=t;t.endsWith("/")&&(n=t.slice(0,-1)),this.setWalletConnectDeepLink(n,r);const i=encodeURIComponent(e);return`${n}/wc?uri=${i}`},async wait(t){return new Promise(e=>{setTimeout(e,t)})},openHref(t,e="_self"){window.open(t,e,"noreferrer noopener")},setWalletConnectDeepLink(t,e){localStorage.setItem(Te.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:e}))},setWalletConnectAndroidDeepLink(t){const[e]=t.split("?");localStorage.setItem(Te.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:"Android"}))},removeWalletConnectDeepLink(){localStorage.removeItem(Te.WALLETCONNECT_DEEPLINK_CHOICE)},isNull(t){return t===null},getWalletConnectVersion(){const{isStandalone:t}=te.state;let e=1;return t||(e=Ke.client().walletConnectVersion),e}};function pb(){return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches}const ui=br({projectId:void 0,themeMode:pb()?"dark":"light",themeColor:"default",themeBackground:Te.isMobile()?"themeColor":"gradient",themeZIndex:89,mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chainImages:void 0,tokenImages:void 0,standaloneChains:void 0,enableStandaloneMode:!1,enableNetworkView:!1,defaultChain:void 0,explorerAllowList:void 0,explorerDenyList:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),et={state:ui,subscribe(t){return ci(ui,()=>t(ui))},setConfig(t){var e,r,n,i;if(te.setStandaloneChains(t.standaloneChains),te.setIsStandalone(Boolean((e=t.standaloneChains)==null?void 0:e.length)||Boolean(t.enableStandaloneMode)),te.setIsCustomMobile(Boolean((r=t.mobileWallets)==null?void 0:r.length)),te.setIsCustomDesktop(Boolean((n=t.desktopWallets)==null?void 0:n.length)),te.setIsExplorer(Boolean((i=t.projectId)==null?void 0:i.length)),t.defaultChain)te.setSelectedChain(t.defaultChain);else if(!te.state.isStandalone){const s=Ke.client().getDefaultChain();te.setSelectedChain(s)}Object.assign(ui,t)},setThemeConfig(t){Object.assign(ui,t)}},Gh="https://explorer-api.walletconnect.com";function gb(t){const e=Object.fromEntries(Object.entries(t).filter(([r,n])=>typeof n<"u"&&n!==null&&n!=="").map(([r,n])=>[r,n.toString()]));return new URLSearchParams(e).toString()}const gs={async fetchWallets(t,e){const r=gb(e),n=`${Gh}/v3/wallets?projectId=${t}&${r}`;return(await fetch(n)).json()},formatImageUrl(t,e){return`${Gh}/v3/logo/lg/${e}?projectId=${t}`}},Br=br({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},previewWallets:[],recomendedWallets:[]});function ms(){const{projectId:t}=et.state;if(!t)throw new Error("projectId is required to work with explorer api");return t}const at={state:Br,async getPreviewWallets(t){const{listings:e}=await gs.fetchWallets(ms(),t);return Br.previewWallets=Object.values(e),Br.previewWallets},async getRecomendedWallets(){const{listings:t}=await gs.fetchWallets(ms(),{page:1,entries:6});Br.recomendedWallets=Object.values(t)},async getPaginatedWallets(t){const{page:e,search:r}=t,{listings:n,total:i}=await gs.fetchWallets(ms(),t),s=Object.values(n),o=r?"search":"wallets";return Br[o]={listings:[...Br[o].listings,...s],total:i,page:e??1},{listings:s,total:i}},getImageUrl(t){return gs.formatImageUrl(ms(),t)},resetSearch(){Br.search={listings:[],total:0,page:1}}},Ft=br({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),Ne={state:Ft,subscribe(t){return ci(Ft,()=>t(Ft))},push(t,e){t!==Ft.view&&(Ft.view=t,e&&(Ft.data=e),Ft.history.push(t))},replace(t){Ft.view=t,Ft.history=[t]},goBack(){if(Ft.history.length>1){Ft.history.pop();const[t]=Ft.history.slice(-1);Ft.view=t}}},pn=br({open:!1}),ht={state:pn,subscribe(t){return ci(pn,()=>t(pn))},async open(t){return new Promise(e=>{const{isConnected:r,isStandalone:n,isUiLoaded:i,isDataLoaded:s}=te.state,{enableNetworkView:o}=et.state;if(n?(te.setStandaloneUri(t?.uri),te.setStandaloneChains(t?.standaloneChains),Ne.replace("ConnectWallet")):t!=null&&t.route?Ne.replace(t.route):r?Ne.replace("Account"):o?Ne.replace("SelectNetwork"):Ne.replace("ConnectWallet"),i&&s)pn.open=!0,e();else{const a=setInterval(()=>{te.state.isUiLoaded&&te.state.isDataLoaded&&(clearInterval(a),pn.open=!0,e())},200)}})},close(){pn.open=!1}},jr=br({open:!1,message:"",variant:"success"}),Rt={state:jr,subscribe(t){return ci(jr,()=>t(jr))},openToast(t,e){jr.open=!0,jr.message=t,jr.variant=e},closeToast(){jr.open=!1}};typeof window<"u"&&(window.Buffer||(window.Buffer=Vh.Buffer),window.global||(window.global=window),window.process||(window.process={env:{}}));var mb=Object.defineProperty,Zh=Object.getOwnPropertySymbols,wb=Object.prototype.hasOwnProperty,yb=Object.prototype.propertyIsEnumerable,Yh=(t,e,r)=>e in t?mb(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,bb=(t,e)=>{for(var r in e||(e={}))wb.call(e,r)&&Yh(t,r,e[r]);if(Zh)for(var r of Zh(e))yb.call(e,r)&&Yh(t,r,e[r]);return t};class vb{constructor(e){this.openModal=ht.open,this.closeModal=ht.close,this.subscribeModal=ht.subscribe,this.setTheme=et.setThemeConfig,et.setConfig(bb({enableStandaloneMode:!0},e)),this.initUi()}async initUi(){if(typeof window<"u"){await Promise.resolve().then(function(){return O_});const e=document.createElement("w3m-modal");document.body.insertAdjacentElement("beforeend",e),te.setIsUiLoaded(!0)}}}const _b="https://rpc.walletconnect.com/v1/",Eb=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],xb=["chainChanged","accountsChanged"];function Cb(t){return Number(t[0].split(":")[1])}class ws{constructor(){this.events=new vt.exports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(e){const r=new ws;return await r.initialize(e),r}async request(e){return await this.signer.request(e,this.formatChainId(this.chainId))}sendAsync(e,r){this.signer.sendAsync(e,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(e){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);try{const r=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:e?.pairingTopic});if(!r)return;this.setChainIds(this.rpc.chains);const n=Up(r.namespaces,[this.namespace]);this.setAccounts(n),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(r){throw new Error(r.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}removeListener(e,r){this.events.removeListener(e,r)}off(e,r){this.events.off(e,r)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",e=>{const{params:r}=e;if(!this.rpc.chains.includes(r.chainId))return;const{event:n}=r;n.name==="accountsChanged"?(this.accounts=n.data,this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(n.data):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.signer.on("session_delete",e=>{this.reset(),this.events.emit("session_delete",e)}),this.signer.on("display_uri",e=>{var r;this.rpc.showQrModal&&((r=this.modal)==null||r.openModal({uri:e})),this.events.emit("display_uri",e)})}setHttpProvider(e){const r=this.formatChainId(e);this.signer.setDefaultChain(r,this.getRpcUrl(e))}isCompatibleChainId(e){return typeof e=="string"?e.startsWith(`${this.namespace}:`):!1}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){const r=e.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",this.chainId))}setChainId(e){if(this.isCompatibleChainId(e)){const r=this.parseChainId(e);this.chainId=r,this.setHttpProvider(r),this.events.emit("chainChanged",this.chainId)}}parseAccountId(e){const[r,n,i]=e.split(":");return{chainId:`${r}:${n}`,address:i}}setAccounts(e){this.accounts=e.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){return{chains:e.chains.map(r=>this.formatChainId(r))||[`${this.namespace}:1`],methods:e?.methods||Eb,events:e?.events||xb,rpcMap:e?.rpcMap||this.buildRpcMap(e.chains,e.projectId),showQrModal:e?.showQrModal||!0,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,r){const n={};return e.forEach(i=>{n[i]=this.getRpcUrl(i,r)}),n}async initialize(e){this.rpc=this.getRpcConfig(e),this.chainId=Cb(this.rpc.chains),this.signer=await Qy.init({projectId:this.rpc.projectId}),this.registerEventListeners(),this.loadPersistedSession(),this.rpc.showQrModal&&(this.modal=new vb({projectId:this.rpc.projectId,standaloneChains:this.rpc.chains}))}loadConnectOpts(e){if(!e)return;const{chains:r,rpcMap:n}=e;!Bp(r)||!r||(this.rpc.chains=this.rpc.chains.concat(r.map(i=>this.formatChainId(i))),this.rpc.chains=[...new Set(this.rpc.chains)],r.forEach(i=>{this.rpc.rpcMap[i]=n?.[i]||this.getRpcUrl(i)}))}getRpcUrl(e,r){var n;return((n=this.rpc.rpcMap)==null?void 0:n[e])||`${_b}?chainId=eip155:${e}&projectId=${r||this.rpc.projectId}`}loadPersistedSession(){this.session&&(this.setChainIds(this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts))}reset(){this.chainId=1,this.accounts=[]}}const Sb=ws;/**
|
|
71
|
+
*/(function(t){const e=ps,r=Ea,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=a,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50;const i=2147483647;t.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const m=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(m,h),m.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(m){if(m>i)throw new RangeError('The value "'+m+'" is invalid for option "size"');const h=new Uint8Array(m);return Object.setPrototypeOf(h,a.prototype),h}function a(m,h,d){if(typeof m=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(m)}return c(m,h,d)}a.poolSize=8192;function c(m,h,d){if(typeof m=="string")return b(m,h);if(ArrayBuffer.isView(m))return D(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(me(m,ArrayBuffer)||m&&me(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(me(m,SharedArrayBuffer)||m&&me(m.buffer,SharedArrayBuffer)))return A(m,h,d);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const S=m.valueOf&&m.valueOf();if(S!=null&&S!==m)return a.from(S,h,d);const T=N(m);if(T)return T;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return a.from(m[Symbol.toPrimitive]("string"),h,d);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}a.from=function(m,h,d){return c(m,h,d)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function p(m,h,d){return l(m),m<=0?o(m):h!==void 0?typeof d=="string"?o(m).fill(h,d):o(m).fill(h):o(m)}a.alloc=function(m,h,d){return p(m,h,d)};function y(m){return l(m),o(m<0?0:R(m)|0)}a.allocUnsafe=function(m){return y(m)},a.allocUnsafeSlow=function(m){return y(m)};function b(m,h){if((typeof h!="string"||h==="")&&(h="utf8"),!a.isEncoding(h))throw new TypeError("Unknown encoding: "+h);const d=x(m,h)|0;let S=o(d);const T=S.write(m,h);return T!==d&&(S=S.slice(0,T)),S}function _(m){const h=m.length<0?0:R(m.length)|0,d=o(h);for(let S=0;S<h;S+=1)d[S]=m[S]&255;return d}function D(m){if(me(m,Uint8Array)){const h=new Uint8Array(m);return A(h.buffer,h.byteOffset,h.byteLength)}return _(m)}function A(m,h,d){if(h<0||m.byteLength<h)throw new RangeError('"offset" is outside of buffer bounds');if(m.byteLength<h+(d||0))throw new RangeError('"length" is outside of buffer bounds');let S;return h===void 0&&d===void 0?S=new Uint8Array(m):d===void 0?S=new Uint8Array(m,h):S=new Uint8Array(m,h,d),Object.setPrototypeOf(S,a.prototype),S}function N(m){if(a.isBuffer(m)){const h=R(m.length)|0,d=o(h);return d.length===0||m.copy(d,0,0,h),d}if(m.length!==void 0)return typeof m.length!="number"||Se(m.length)?o(0):_(m);if(m.type==="Buffer"&&Array.isArray(m.data))return _(m.data)}function R(m){if(m>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return m|0}function g(m){return+m!=m&&(m=0),a.alloc(+m)}a.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==a.prototype},a.compare=function(h,d){if(me(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),me(d,Uint8Array)&&(d=a.from(d,d.offset,d.byteLength)),!a.isBuffer(h)||!a.isBuffer(d))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===d)return 0;let S=h.length,T=d.length;for(let F=0,H=Math.min(S,T);F<H;++F)if(h[F]!==d[F]){S=h[F],T=d[F];break}return S<T?-1:T<S?1:0},a.isEncoding=function(h){switch(String(h).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(h,d){if(!Array.isArray(h))throw new TypeError('"list" argument must be an Array of Buffers');if(h.length===0)return a.alloc(0);let S;if(d===void 0)for(d=0,S=0;S<h.length;++S)d+=h[S].length;const T=a.allocUnsafe(d);let F=0;for(S=0;S<h.length;++S){let H=h[S];if(me(H,Uint8Array))F+H.length>T.length?(a.isBuffer(H)||(H=a.from(H)),H.copy(T,F)):Uint8Array.prototype.set.call(T,H,F);else if(a.isBuffer(H))H.copy(T,F);else throw new TypeError('"list" argument must be an Array of Buffers');F+=H.length}return T};function x(m,h){if(a.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||me(m,ArrayBuffer))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);const d=m.length,S=arguments.length>2&&arguments[2]===!0;if(!S&&d===0)return 0;let T=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return d;case"utf8":case"utf-8":return Fe(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return d*2;case"hex":return d>>>1;case"base64":return Pe(m).length;default:if(T)return S?-1:Fe(m).length;h=(""+h).toLowerCase(),T=!0}}a.byteLength=x;function w(m,h,d){let S=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((d===void 0||d>this.length)&&(d=this.length),d<=0)||(d>>>=0,h>>>=0,d<=h))return"";for(m||(m="utf8");;)switch(m){case"hex":return z(this,h,d);case"utf8":case"utf-8":return I(this,h,d);case"ascii":return K(this,h,d);case"latin1":case"binary":return W(this,h,d);case"base64":return re(this,h,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return J(this,h,d);default:if(S)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),S=!0}}a.prototype._isBuffer=!0;function E(m,h,d){const S=m[h];m[h]=m[d],m[d]=S}a.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let d=0;d<h;d+=2)E(this,d,d+1);return this},a.prototype.swap32=function(){const h=this.length;if(h%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let d=0;d<h;d+=4)E(this,d,d+3),E(this,d+1,d+2);return this},a.prototype.swap64=function(){const h=this.length;if(h%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let d=0;d<h;d+=8)E(this,d,d+7),E(this,d+1,d+6),E(this,d+2,d+5),E(this,d+3,d+4);return this},a.prototype.toString=function(){const h=this.length;return h===0?"":arguments.length===0?I(this,0,h):w.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(h){if(!a.isBuffer(h))throw new TypeError("Argument must be a Buffer");return this===h?!0:a.compare(this,h)===0},a.prototype.inspect=function(){let h="";const d=t.INSPECT_MAX_BYTES;return h=this.toString("hex",0,d).replace(/(.{2})/g,"$1 ").trim(),this.length>d&&(h+=" ... "),"<Buffer "+h+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(h,d,S,T,F){if(me(h,Uint8Array)&&(h=a.from(h,h.offset,h.byteLength)),!a.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(d===void 0&&(d=0),S===void 0&&(S=h?h.length:0),T===void 0&&(T=0),F===void 0&&(F=this.length),d<0||S>h.length||T<0||F>this.length)throw new RangeError("out of range index");if(T>=F&&d>=S)return 0;if(T>=F)return-1;if(d>=S)return 1;if(d>>>=0,S>>>=0,T>>>=0,F>>>=0,this===h)return 0;let H=F-T,oe=S-d;const he=Math.min(H,oe),Re=this.slice(T,F),Be=h.slice(d,S);for(let Le=0;Le<he;++Le)if(Re[Le]!==Be[Le]){H=Re[Le],oe=Be[Le];break}return H<oe?-1:oe<H?1:0};function C(m,h,d,S,T){if(m.length===0)return-1;if(typeof d=="string"?(S=d,d=0):d>2147483647?d=2147483647:d<-2147483648&&(d=-2147483648),d=+d,Se(d)&&(d=T?0:m.length-1),d<0&&(d=m.length+d),d>=m.length){if(T)return-1;d=m.length-1}else if(d<0)if(T)d=0;else return-1;if(typeof h=="string"&&(h=a.from(h,S)),a.isBuffer(h))return h.length===0?-1:u(m,h,d,S,T);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?T?Uint8Array.prototype.indexOf.call(m,h,d):Uint8Array.prototype.lastIndexOf.call(m,h,d):u(m,[h],d,S,T);throw new TypeError("val must be string, number or Buffer")}function u(m,h,d,S,T){let F=1,H=m.length,oe=h.length;if(S!==void 0&&(S=String(S).toLowerCase(),S==="ucs2"||S==="ucs-2"||S==="utf16le"||S==="utf-16le")){if(m.length<2||h.length<2)return-1;F=2,H/=2,oe/=2,d/=2}function he(Be,Le){return F===1?Be[Le]:Be.readUInt16BE(Le*F)}let Re;if(T){let Be=-1;for(Re=d;Re<H;Re++)if(he(m,Re)===he(h,Be===-1?0:Re-Be)){if(Be===-1&&(Be=Re),Re-Be+1===oe)return Be*F}else Be!==-1&&(Re-=Re-Be),Be=-1}else for(d+oe>H&&(d=H-oe),Re=d;Re>=0;Re--){let Be=!0;for(let Le=0;Le<oe;Le++)if(he(m,Re+Le)!==he(h,Le)){Be=!1;break}if(Be)return Re}return-1}a.prototype.includes=function(h,d,S){return this.indexOf(h,d,S)!==-1},a.prototype.indexOf=function(h,d,S){return C(this,h,d,S,!0)},a.prototype.lastIndexOf=function(h,d,S){return C(this,h,d,S,!1)};function v(m,h,d,S){d=Number(d)||0;const T=m.length-d;S?(S=Number(S),S>T&&(S=T)):S=T;const F=h.length;S>F/2&&(S=F/2);let H;for(H=0;H<S;++H){const oe=parseInt(h.substr(H*2,2),16);if(Se(oe))return H;m[d+H]=oe}return H}function j(m,h,d,S){return Ie(Fe(h,m.length-d),m,d,S)}function k(m,h,d,S){return Ie(Ge(h),m,d,S)}function q(m,h,d,S){return Ie(Pe(h),m,d,S)}function X(m,h,d,S){return Ie(qe(h,m.length-d),m,d,S)}a.prototype.write=function(h,d,S,T){if(d===void 0)T="utf8",S=this.length,d=0;else if(S===void 0&&typeof d=="string")T=d,S=this.length,d=0;else if(isFinite(d))d=d>>>0,isFinite(S)?(S=S>>>0,T===void 0&&(T="utf8")):(T=S,S=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const F=this.length-d;if((S===void 0||S>F)&&(S=F),h.length>0&&(S<0||d<0)||d>this.length)throw new RangeError("Attempt to write outside buffer bounds");T||(T="utf8");let H=!1;for(;;)switch(T){case"hex":return v(this,h,d,S);case"utf8":case"utf-8":return j(this,h,d,S);case"ascii":case"latin1":case"binary":return k(this,h,d,S);case"base64":return q(this,h,d,S);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X(this,h,d,S);default:if(H)throw new TypeError("Unknown encoding: "+T);T=(""+T).toLowerCase(),H=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function re(m,h,d){return h===0&&d===m.length?e.fromByteArray(m):e.fromByteArray(m.slice(h,d))}function I(m,h,d){d=Math.min(m.length,d);const S=[];let T=h;for(;T<d;){const F=m[T];let H=null,oe=F>239?4:F>223?3:F>191?2:1;if(T+oe<=d){let he,Re,Be,Le;switch(oe){case 1:F<128&&(H=F);break;case 2:he=m[T+1],(he&192)===128&&(Le=(F&31)<<6|he&63,Le>127&&(H=Le));break;case 3:he=m[T+1],Re=m[T+2],(he&192)===128&&(Re&192)===128&&(Le=(F&15)<<12|(he&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(H=Le));break;case 4:he=m[T+1],Re=m[T+2],Be=m[T+3],(he&192)===128&&(Re&192)===128&&(Be&192)===128&&(Le=(F&15)<<18|(he&63)<<12|(Re&63)<<6|Be&63,Le>65535&&Le<1114112&&(H=Le))}}H===null?(H=65533,oe=1):H>65535&&(H-=65536,S.push(H>>>10&1023|55296),H=56320|H&1023),S.push(H),T+=oe}return G(S)}const $=4096;function G(m){const h=m.length;if(h<=$)return String.fromCharCode.apply(String,m);let d="",S=0;for(;S<h;)d+=String.fromCharCode.apply(String,m.slice(S,S+=$));return d}function K(m,h,d){let S="";d=Math.min(m.length,d);for(let T=h;T<d;++T)S+=String.fromCharCode(m[T]&127);return S}function W(m,h,d){let S="";d=Math.min(m.length,d);for(let T=h;T<d;++T)S+=String.fromCharCode(m[T]);return S}function z(m,h,d){const S=m.length;(!h||h<0)&&(h=0),(!d||d<0||d>S)&&(d=S);let T="";for(let F=h;F<d;++F)T+=Oe[m[F]];return T}function J(m,h,d){const S=m.slice(h,d);let T="";for(let F=0;F<S.length-1;F+=2)T+=String.fromCharCode(S[F]+S[F+1]*256);return T}a.prototype.slice=function(h,d){const S=this.length;h=~~h,d=d===void 0?S:~~d,h<0?(h+=S,h<0&&(h=0)):h>S&&(h=S),d<0?(d+=S,d<0&&(d=0)):d>S&&(d=S),d<h&&(d=h);const T=this.subarray(h,d);return Object.setPrototypeOf(T,a.prototype),T};function Z(m,h,d){if(m%1!==0||m<0)throw new RangeError("offset is not uint");if(m+h>d)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h],F=1,H=0;for(;++H<d&&(F*=256);)T+=this[h+H]*F;return T},a.prototype.readUintBE=a.prototype.readUIntBE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h+--d],F=1;for(;d>0&&(F*=256);)T+=this[h+--d]*F;return T},a.prototype.readUint8=a.prototype.readUInt8=function(h,d){return h=h>>>0,d||Z(h,1,this.length),this[h]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(h,d){return h=h>>>0,d||Z(h,2,this.length),this[h]|this[h+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(h,d){return h=h>>>0,d||Z(h,2,this.length),this[h]<<8|this[h+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},a.prototype.readBigUInt64LE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=d+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,F=this[++h]+this[++h]*2**8+this[++h]*2**16+S*2**24;return BigInt(T)+(BigInt(F)<<BigInt(32))}),a.prototype.readBigUInt64BE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=d*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],F=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+S;return(BigInt(T)<<BigInt(32))+BigInt(F)}),a.prototype.readIntLE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=this[h],F=1,H=0;for(;++H<d&&(F*=256);)T+=this[h+H]*F;return F*=128,T>=F&&(T-=Math.pow(2,8*d)),T},a.prototype.readIntBE=function(h,d,S){h=h>>>0,d=d>>>0,S||Z(h,d,this.length);let T=d,F=1,H=this[h+--T];for(;T>0&&(F*=256);)H+=this[h+--T]*F;return F*=128,H>=F&&(H-=Math.pow(2,8*d)),H},a.prototype.readInt8=function(h,d){return h=h>>>0,d||Z(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},a.prototype.readInt16LE=function(h,d){h=h>>>0,d||Z(h,2,this.length);const S=this[h]|this[h+1]<<8;return S&32768?S|4294901760:S},a.prototype.readInt16BE=function(h,d){h=h>>>0,d||Z(h,2,this.length);const S=this[h+1]|this[h]<<8;return S&32768?S|4294901760:S},a.prototype.readInt32LE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},a.prototype.readInt32BE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},a.prototype.readBigInt64LE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(S<<24);return(BigInt(T)<<BigInt(32))+BigInt(d+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24)}),a.prototype.readBigInt64BE=pe(function(h){h=h>>>0,ne(h,"offset");const d=this[h],S=this[h+7];(d===void 0||S===void 0)&&Ee(h,this.length-8);const T=(d<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(T)<<BigInt(32))+BigInt(this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+S)}),a.prototype.readFloatLE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),r.read(this,h,!0,23,4)},a.prototype.readFloatBE=function(h,d){return h=h>>>0,d||Z(h,4,this.length),r.read(this,h,!1,23,4)},a.prototype.readDoubleLE=function(h,d){return h=h>>>0,d||Z(h,8,this.length),r.read(this,h,!0,52,8)},a.prototype.readDoubleBE=function(h,d){return h=h>>>0,d||Z(h,8,this.length),r.read(this,h,!1,52,8)};function ue(m,h,d,S,T,F){if(!a.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>T||h<F)throw new RangeError('"value" argument is out of bounds');if(d+S>m.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(h,d,S,T){if(h=+h,d=d>>>0,S=S>>>0,!T){const oe=Math.pow(2,8*S)-1;ue(this,h,d,S,oe,0)}let F=1,H=0;for(this[d]=h&255;++H<S&&(F*=256);)this[d+H]=h/F&255;return d+S},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(h,d,S,T){if(h=+h,d=d>>>0,S=S>>>0,!T){const oe=Math.pow(2,8*S)-1;ue(this,h,d,S,oe,0)}let F=S-1,H=1;for(this[d+F]=h&255;--F>=0&&(H*=256);)this[d+F]=h/H&255;return d+S},a.prototype.writeUint8=a.prototype.writeUInt8=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,1,255,0),this[d]=h&255,d+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,65535,0),this[d]=h&255,this[d+1]=h>>>8,d+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,65535,0),this[d]=h>>>8,this[d+1]=h&255,d+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,4294967295,0),this[d+3]=h>>>24,this[d+2]=h>>>16,this[d+1]=h>>>8,this[d]=h&255,d+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,4294967295,0),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4};function Q(m,h,d,S,T){ee(h,S,T,m,d,7);let F=Number(h&BigInt(4294967295));m[d++]=F,F=F>>8,m[d++]=F,F=F>>8,m[d++]=F,F=F>>8,m[d++]=F;let H=Number(h>>BigInt(32)&BigInt(4294967295));return m[d++]=H,H=H>>8,m[d++]=H,H=H>>8,m[d++]=H,H=H>>8,m[d++]=H,d}function fe(m,h,d,S,T){ee(h,S,T,m,d,7);let F=Number(h&BigInt(4294967295));m[d+7]=F,F=F>>8,m[d+6]=F,F=F>>8,m[d+5]=F,F=F>>8,m[d+4]=F;let H=Number(h>>BigInt(32)&BigInt(4294967295));return m[d+3]=H,H=H>>8,m[d+2]=H,H=H>>8,m[d+1]=H,H=H>>8,m[d]=H,d+8}a.prototype.writeBigUInt64LE=pe(function(h,d=0){return Q(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=pe(function(h,d=0){return fe(this,h,d,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(h,d,S,T){if(h=+h,d=d>>>0,!T){const he=Math.pow(2,8*S-1);ue(this,h,d,S,he-1,-he)}let F=0,H=1,oe=0;for(this[d]=h&255;++F<S&&(H*=256);)h<0&&oe===0&&this[d+F-1]!==0&&(oe=1),this[d+F]=(h/H>>0)-oe&255;return d+S},a.prototype.writeIntBE=function(h,d,S,T){if(h=+h,d=d>>>0,!T){const he=Math.pow(2,8*S-1);ue(this,h,d,S,he-1,-he)}let F=S-1,H=1,oe=0;for(this[d+F]=h&255;--F>=0&&(H*=256);)h<0&&oe===0&&this[d+F+1]!==0&&(oe=1),this[d+F]=(h/H>>0)-oe&255;return d+S},a.prototype.writeInt8=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,1,127,-128),h<0&&(h=255+h+1),this[d]=h&255,d+1},a.prototype.writeInt16LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,32767,-32768),this[d]=h&255,this[d+1]=h>>>8,d+2},a.prototype.writeInt16BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,2,32767,-32768),this[d]=h>>>8,this[d+1]=h&255,d+2},a.prototype.writeInt32LE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,2147483647,-2147483648),this[d]=h&255,this[d+1]=h>>>8,this[d+2]=h>>>16,this[d+3]=h>>>24,d+4},a.prototype.writeInt32BE=function(h,d,S){return h=+h,d=d>>>0,S||ue(this,h,d,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[d]=h>>>24,this[d+1]=h>>>16,this[d+2]=h>>>8,this[d+3]=h&255,d+4},a.prototype.writeBigInt64LE=pe(function(h,d=0){return Q(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=pe(function(h,d=0){return fe(this,h,d,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ae(m,h,d,S,T,F){if(d+S>m.length)throw new RangeError("Index out of range");if(d<0)throw new RangeError("Index out of range")}function Ce(m,h,d,S,T){return h=+h,d=d>>>0,T||ae(m,h,d,4),r.write(m,h,d,S,23,4),d+4}a.prototype.writeFloatLE=function(h,d,S){return Ce(this,h,d,!0,S)},a.prototype.writeFloatBE=function(h,d,S){return Ce(this,h,d,!1,S)};function B(m,h,d,S,T){return h=+h,d=d>>>0,T||ae(m,h,d,8),r.write(m,h,d,S,52,8),d+8}a.prototype.writeDoubleLE=function(h,d,S){return B(this,h,d,!0,S)},a.prototype.writeDoubleBE=function(h,d,S){return B(this,h,d,!1,S)},a.prototype.copy=function(h,d,S,T){if(!a.isBuffer(h))throw new TypeError("argument should be a Buffer");if(S||(S=0),!T&&T!==0&&(T=this.length),d>=h.length&&(d=h.length),d||(d=0),T>0&&T<S&&(T=S),T===S||h.length===0||this.length===0)return 0;if(d<0)throw new RangeError("targetStart out of bounds");if(S<0||S>=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=this.length),h.length-d<T-S&&(T=h.length-d+S);const F=T-S;return this===h&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(d,S,T):Uint8Array.prototype.set.call(h,this.subarray(S,T),d),F},a.prototype.fill=function(h,d,S,T){if(typeof h=="string"){if(typeof d=="string"?(T=d,d=0,S=this.length):typeof S=="string"&&(T=S,S=this.length),T!==void 0&&typeof T!="string")throw new TypeError("encoding must be a string");if(typeof T=="string"&&!a.isEncoding(T))throw new TypeError("Unknown encoding: "+T);if(h.length===1){const H=h.charCodeAt(0);(T==="utf8"&&H<128||T==="latin1")&&(h=H)}}else typeof h=="number"?h=h&255:typeof h=="boolean"&&(h=Number(h));if(d<0||this.length<d||this.length<S)throw new RangeError("Out of range index");if(S<=d)return this;d=d>>>0,S=S===void 0?this.length:S>>>0,h||(h=0);let F;if(typeof h=="number")for(F=d;F<S;++F)this[F]=h;else{const H=a.isBuffer(h)?h:a.from(h,T),oe=H.length;if(oe===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for(F=0;F<S-d;++F)this[F+d]=H[F%oe]}return this};const U={};function L(m,h,d){U[m]=class extends d{constructor(){super(),Object.defineProperty(this,"message",{value:h.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${m}]`,this.stack,delete this.name}get code(){return m}set code(T){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:T,writable:!0})}toString(){return`${this.name} [${m}]: ${this.message}`}}}L("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),L("ERR_INVALID_ARG_TYPE",function(m,h){return`The "${m}" argument must be of type number. Received type ${typeof h}`},TypeError),L("ERR_OUT_OF_RANGE",function(m,h,d){let S=`The value of "${m}" is out of range.`,T=d;return Number.isInteger(d)&&Math.abs(d)>2**32?T=f(String(d)):typeof d=="bigint"&&(T=String(d),(d>BigInt(2)**BigInt(32)||d<-(BigInt(2)**BigInt(32)))&&(T=f(T)),T+="n"),S+=` It must be ${h}. Received ${T}`,S},RangeError);function f(m){let h="",d=m.length;const S=m[0]==="-"?1:0;for(;d>=S+4;d-=3)h=`_${m.slice(d-3,d)}${h}`;return`${m.slice(0,d)}${h}`}function P(m,h,d){ne(h,"offset"),(m[h]===void 0||m[h+d]===void 0)&&Ee(h,m.length-(d+1))}function ee(m,h,d,S,T,F){if(m>d||m<h){const H=typeof h=="bigint"?"n":"";let oe;throw F>3?h===0||h===BigInt(0)?oe=`>= 0${H} and < 2${H} ** ${(F+1)*8}${H}`:oe=`>= -(2${H} ** ${(F+1)*8-1}${H}) and < 2 ** ${(F+1)*8-1}${H}`:oe=`>= ${h}${H} and <= ${d}${H}`,new U.ERR_OUT_OF_RANGE("value",oe,m)}P(S,T,F)}function ne(m,h){if(typeof m!="number")throw new U.ERR_INVALID_ARG_TYPE(h,"number",m)}function Ee(m,h,d){throw Math.floor(m)!==m?(ne(m,d),new U.ERR_OUT_OF_RANGE(d||"offset","an integer",m)):h<0?new U.ERR_BUFFER_OUT_OF_BOUNDS:new U.ERR_OUT_OF_RANGE(d||"offset",`>= ${d?1:0} and <= ${h}`,m)}const Me=/[^+/0-9A-Za-z-_]/g;function $e(m){if(m=m.split("=")[0],m=m.trim().replace(Me,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function Fe(m,h){h=h||1/0;let d;const S=m.length;let T=null;const F=[];for(let H=0;H<S;++H){if(d=m.charCodeAt(H),d>55295&&d<57344){if(!T){if(d>56319){(h-=3)>-1&&F.push(239,191,189);continue}else if(H+1===S){(h-=3)>-1&&F.push(239,191,189);continue}T=d;continue}if(d<56320){(h-=3)>-1&&F.push(239,191,189),T=d;continue}d=(T-55296<<10|d-56320)+65536}else T&&(h-=3)>-1&&F.push(239,191,189);if(T=null,d<128){if((h-=1)<0)break;F.push(d)}else if(d<2048){if((h-=2)<0)break;F.push(d>>6|192,d&63|128)}else if(d<65536){if((h-=3)<0)break;F.push(d>>12|224,d>>6&63|128,d&63|128)}else if(d<1114112){if((h-=4)<0)break;F.push(d>>18|240,d>>12&63|128,d>>6&63|128,d&63|128)}else throw new Error("Invalid code point")}return F}function Ge(m){const h=[];for(let d=0;d<m.length;++d)h.push(m.charCodeAt(d)&255);return h}function qe(m,h){let d,S,T;const F=[];for(let H=0;H<m.length&&!((h-=2)<0);++H)d=m.charCodeAt(H),S=d>>8,T=d%256,F.push(T),F.push(S);return F}function Pe(m){return e.toByteArray($e(m))}function Ie(m,h,d,S){let T;for(T=0;T<S&&!(T+d>=h.length||T>=m.length);++T)h[T+d]=m[T];return T}function me(m,h){return m instanceof h||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===h.name}function Se(m){return m!==m}const Oe=function(){const m="0123456789abcdef",h=new Array(256);for(let d=0;d<16;++d){const S=d*16;for(let T=0;T<16;++T)h[S+T]=m[d]+m[T]}return h}();function pe(m){return typeof BigInt>"u"?xe:m}function xe(){throw new Error("BigInt not supported")}})(Vh);const He=br({selectedChain:void 0,chains:void 0,standaloneChains:void 0,standaloneUri:void 0,address:void 0,profileName:void 0,profileAvatar:void 0,profileLoading:!1,balanceLoading:!1,balance:void 0,isConnected:!1,isStandalone:!1,isCustomDesktop:!1,isCustomMobile:!1,isExplorer:!1,isDataLoaded:!1,isUiLoaded:!1}),te={state:He,subscribe(t){return ci(He,()=>t(He))},setChains(t){He.chains=t},setStandaloneChains(t){He.standaloneChains=t},setStandaloneUri(t){He.standaloneUri=t},getSelectedChain(){const t=Ke.client().getNetwork().chain;return t&&(He.selectedChain=t),He.selectedChain},setSelectedChain(t){He.selectedChain=t},setIsStandalone(t){He.isStandalone=t},setIsCustomDesktop(t){He.isCustomDesktop=t},setIsCustomMobile(t){He.isCustomMobile=t},setIsExplorer(t){He.isExplorer=t},getAccount(){const t=Ke.client().getAccount();He.address=t.address,He.isConnected=t.isConnected},setAddress(t){He.address=t},setIsConnected(t){He.isConnected=t},setProfileName(t){He.profileName=t},setProfileAvatar(t){He.profileAvatar=t},setProfileLoading(t){He.profileLoading=t},setBalanceLoading(t){He.balanceLoading=t},setBalance(t){He.balance=t},setIsDataLoaded(t){He.isDataLoaded=t},setIsUiLoaded(t){He.isUiLoaded=t},resetEnsProfile(){He.profileName=void 0,He.profileAvatar=void 0},resetBalance(){He.balance=void 0},resetAccount(){He.address=void 0,te.resetEnsProfile(),te.resetBalance()}},li=br({initialized:!1,ethereumClient:void 0}),Ke={setEthereumClient(t){!li.initialized&&t&&(li.ethereumClient=t,te.setChains(t.chains),li.initialized=!0)},client(){if(li.ethereumClient)return li.ethereumClient;throw new Error("ClientCtrl has no client set")}},Te={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",isMobile(){return typeof window<"u"?Boolean(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},isAndroid(){return Te.isMobile()&&navigator.userAgent.toLowerCase().includes("android")},isEmptyObject(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.getOwnPropertyNames(t).length===0&&Object.getOwnPropertySymbols(t).length===0},isHttpUrl(t){return t.startsWith("http://")||t.startsWith("https://")},formatNativeUrl(t,e,r){if(Te.isHttpUrl(t))return this.formatUniversalUrl(t,e,r);let n=t;n.includes("://")||(n=t.replaceAll("/","").replaceAll(":",""),n=`${n}://`),this.setWalletConnectDeepLink(n,r);const i=encodeURIComponent(e);return`${n}wc?uri=${i}`},formatUniversalUrl(t,e,r){if(!Te.isHttpUrl(t))return this.formatNativeUrl(t,e,r);let n=t;t.endsWith("/")&&(n=t.slice(0,-1)),this.setWalletConnectDeepLink(n,r);const i=encodeURIComponent(e);return`${n}/wc?uri=${i}`},async wait(t){return new Promise(e=>{setTimeout(e,t)})},openHref(t,e="_self"){window.open(t,e,"noreferrer noopener")},setWalletConnectDeepLink(t,e){localStorage.setItem(Te.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:e}))},setWalletConnectAndroidDeepLink(t){const[e]=t.split("?");localStorage.setItem(Te.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:"Android"}))},removeWalletConnectDeepLink(){localStorage.removeItem(Te.WALLETCONNECT_DEEPLINK_CHOICE)},isNull(t){return t===null},getWalletConnectVersion(){const{isStandalone:t}=te.state;let e=1;return t||(e=Ke.client().walletConnectVersion),e}};function pb(){return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches}const ui=br({projectId:void 0,themeMode:pb()?"dark":"light",themeColor:"default",themeBackground:Te.isMobile()?"themeColor":"gradient",themeZIndex:89,mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chainImages:void 0,tokenImages:void 0,standaloneChains:void 0,enableStandaloneMode:!1,enableNetworkView:!1,defaultChain:void 0,explorerAllowList:void 0,explorerDenyList:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),et={state:ui,subscribe(t){return ci(ui,()=>t(ui))},setConfig(t){var e,r,n,i;if(te.setStandaloneChains(t.standaloneChains),te.setIsStandalone(Boolean((e=t.standaloneChains)==null?void 0:e.length)||Boolean(t.enableStandaloneMode)),te.setIsCustomMobile(Boolean((r=t.mobileWallets)==null?void 0:r.length)),te.setIsCustomDesktop(Boolean((n=t.desktopWallets)==null?void 0:n.length)),te.setIsExplorer(Boolean((i=t.projectId)==null?void 0:i.length)),t.defaultChain)te.setSelectedChain(t.defaultChain);else if(!te.state.isStandalone){const s=Ke.client().getDefaultChain();te.setSelectedChain(s)}Object.assign(ui,t)},setThemeConfig(t){Object.assign(ui,t)}},Gh="https://explorer-api.walletconnect.com";function gb(t){const e=Object.fromEntries(Object.entries(t).filter(([r,n])=>typeof n<"u"&&n!==null&&n!=="").map(([r,n])=>[r,n.toString()]));return new URLSearchParams(e).toString()}const gs={async fetchWallets(t,e){const r=gb(e),n=`${Gh}/v3/wallets?projectId=${t}&${r}`;return(await fetch(n)).json()},formatImageUrl(t,e){return`${Gh}/v3/logo/lg/${e}?projectId=${t}`}},Br=br({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},previewWallets:[],recomendedWallets:[]});function ms(){const{projectId:t}=et.state;if(!t)throw new Error("projectId is required to work with explorer api");return t}const at={state:Br,async getPreviewWallets(t){const{listings:e}=await gs.fetchWallets(ms(),t);return Br.previewWallets=Object.values(e),Br.previewWallets},async getRecomendedWallets(){const{listings:t}=await gs.fetchWallets(ms(),{page:1,entries:6});Br.recomendedWallets=Object.values(t)},async getPaginatedWallets(t){const{page:e,search:r}=t,{listings:n,total:i}=await gs.fetchWallets(ms(),t),s=Object.values(n),o=r?"search":"wallets";return Br[o]={listings:[...Br[o].listings,...s],total:i,page:e??1},{listings:s,total:i}},getImageUrl(t){return gs.formatImageUrl(ms(),t)},resetSearch(){Br.search={listings:[],total:0,page:1}}},Ft=br({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),Ne={state:Ft,subscribe(t){return ci(Ft,()=>t(Ft))},push(t,e){t!==Ft.view&&(Ft.view=t,e&&(Ft.data=e),Ft.history.push(t))},replace(t){Ft.view=t,Ft.history=[t]},goBack(){if(Ft.history.length>1){Ft.history.pop();const[t]=Ft.history.slice(-1);Ft.view=t}}},pn=br({open:!1}),ht={state:pn,subscribe(t){return ci(pn,()=>t(pn))},async open(t){return new Promise(e=>{const{isConnected:r,isStandalone:n,isUiLoaded:i,isDataLoaded:s}=te.state,{enableNetworkView:o}=et.state;if(n?(te.setStandaloneUri(t?.uri),te.setStandaloneChains(t?.standaloneChains),Ne.replace("ConnectWallet")):t!=null&&t.route?Ne.replace(t.route):r?Ne.replace("Account"):o?Ne.replace("SelectNetwork"):Ne.replace("ConnectWallet"),i&&s)pn.open=!0,e();else{const a=setInterval(()=>{te.state.isUiLoaded&&te.state.isDataLoaded&&(clearInterval(a),pn.open=!0,e())},200)}})},close(){pn.open=!1}},jr=br({open:!1,message:"",variant:"success"}),Rt={state:jr,subscribe(t){return ci(jr,()=>t(jr))},openToast(t,e){jr.open=!0,jr.message=t,jr.variant=e},closeToast(){jr.open=!1}};typeof window<"u"&&(window.Buffer||(window.Buffer=Vh.Buffer),window.global||(window.global=window),window.process||(window.process={env:{}}));var mb=Object.defineProperty,Zh=Object.getOwnPropertySymbols,wb=Object.prototype.hasOwnProperty,yb=Object.prototype.propertyIsEnumerable,Yh=(t,e,r)=>e in t?mb(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,bb=(t,e)=>{for(var r in e||(e={}))wb.call(e,r)&&Yh(t,r,e[r]);if(Zh)for(var r of Zh(e))yb.call(e,r)&&Yh(t,r,e[r]);return t};class vb{constructor(e){this.openModal=ht.open,this.closeModal=ht.close,this.subscribeModal=ht.subscribe,this.setTheme=et.setThemeConfig,et.setConfig(bb({enableStandaloneMode:!0},e)),this.initUi()}async initUi(){if(typeof window<"u"){await Promise.resolve().then(function(){return O_});const e=document.createElement("w3m-modal");document.body.insertAdjacentElement("beforeend",e),te.setIsUiLoaded(!0)}}}const _b="https://rpc.walletconnect.com/v1/",Eb=["eth_requestAccounts","eth_accounts","eth_chainId","eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","personal_sign"],xb=["chainChanged","accountsChanged"];function Cb(t){return Number(t[0].split(":")[1])}class ws{constructor(){this.events=new vt.exports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.signer={},this.rpc={}}static async init(e){const r=new ws;return await r.initialize(e),r}async request(e){return await this.signer.request(e,this.formatChainId(this.chainId))}sendAsync(e,r){this.signer.sendAsync(e,r,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(e){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(e);try{const r=await this.signer.connect({namespaces:{[this.namespace]:{chains:this.rpc.chains,methods:this.rpc.methods,events:this.rpc.events,rpcMap:this.rpc.rpcMap}},pairingTopic:e?.pairingTopic});if(!r)return;this.setChainIds(this.rpc.chains);const n=Up(r.namespaces,[this.namespace]);this.setAccounts(n),this.events.emit("connect",{chainId:this.chainId,accounts:this.accounts})}catch(r){throw new Error(r.message)}finally{this.modal&&this.modal.closeModal()}}async disconnect(){await this.signer.disconnect()}on(e,r){this.events.on(e,r)}once(e,r){this.events.once(e,r)}removeListener(e,r){this.events.removeListener(e,r)}off(e,r){this.events.off(e,r)}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",e=>{const{params:r}=e;if(!this.rpc.chains.includes(r.chainId))return;const{event:n}=r;n.name==="accountsChanged"?(this.accounts=n.data,this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit("session_event",e)}),this.signer.on("chainChanged",e=>this.events.emit("chainChanged",e)),this.signer.on("session_update",e=>{this.events.emit("session_update",e)}),this.signer.on("session_delete",e=>{this.reset(),this.events.emit("session_delete",e)}),this.signer.on("display_uri",e=>{var r;this.rpc.showQrModal&&((r=this.modal)==null||r.openModal({uri:e})),this.events.emit("display_uri",e)})}setHttpProvider(e){const r=this.formatChainId(e);this.signer.setDefaultChain(r,this.getRpcUrl(e))}isCompatibleChainId(e){return typeof e=="string"?e.startsWith(`${this.namespace}:`):!1}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(":")[1])}setChainIds(e){const r=e.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));r.length&&(this.chainId=r[0],this.events.emit("chainChanged",this.chainId))}setChainId(e){if(this.isCompatibleChainId(e)){const r=this.parseChainId(e);this.chainId=r,this.setHttpProvider(r)}}parseAccountId(e){const[r,n,i]=e.split(":");return{chainId:`${r}:${n}`,address:i}}setAccounts(e){this.accounts=e.filter(r=>this.parseChainId(this.parseAccountId(r).chainId)===this.chainId).map(r=>this.parseAccountId(r).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(e){return{chains:e.chains.map(r=>this.formatChainId(r))||[`${this.namespace}:1`],methods:e?.methods||Eb,events:e?.events||xb,rpcMap:e?.rpcMap||this.buildRpcMap(e.chains,e.projectId),showQrModal:e?.showQrModal||!0,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,r){const n={};return e.forEach(i=>{n[i]=this.getRpcUrl(i,r)}),n}async initialize(e){this.rpc=this.getRpcConfig(e),this.chainId=Cb(this.rpc.chains),this.signer=await Qy.init({projectId:this.rpc.projectId}),this.registerEventListeners(),this.loadPersistedSession(),this.rpc.showQrModal&&(this.modal=new vb({projectId:this.rpc.projectId,standaloneChains:this.rpc.chains}))}loadConnectOpts(e){if(!e)return;const{chains:r,rpcMap:n}=e;!Bp(r)||!r||(this.rpc.chains=this.rpc.chains.concat(r.map(i=>this.formatChainId(i))),this.rpc.chains=[...new Set(this.rpc.chains)],r.forEach(i=>{this.rpc.rpcMap[i]=n?.[i]||this.getRpcUrl(i)}))}getRpcUrl(e,r){var n;return((n=this.rpc.rpcMap)==null?void 0:n[e])||`${_b}?chainId=eip155:${e}&projectId=${r||this.rpc.projectId}`}loadPersistedSession(){this.session&&(this.setChainIds(this.session.namespaces[this.namespace].accounts),this.setAccounts(this.session.namespaces[this.namespace].accounts))}reset(){this.chainId=1,this.accounts=[]}}const Sb=ws;/**
|
|
72
72
|
* @license
|
|
73
73
|
* Copyright 2019 Google LLC
|
|
74
74
|
* SPDX-License-Identifier: BSD-3-Clause
|