UNPKG

unich-web3-sdk

Version:

Web3 SDK for DEX applications with multi-chain support

6 lines (5 loc) 4.71 kB
"use client"; "use strict"; import {createPublicClient,http,defineChain,createWalletClient,custom}from'viem';import {mainnet,goerli,sepolia,polygon,polygonMumbai,optimism,optimismGoerli,arbitrum,arbitrumGoerli,base,baseGoerli}from'viem/chains';import {Connection,PublicKey}from'@solana/web3.js';function p(t){return [mainnet,goerli,sepolia,polygon,polygonMumbai,optimism,optimismGoerli,arbitrum,arbitrumGoerli,base,baseGoerli].find(e=>e.id===t)}var r=class{constructor(){this.clientCache=new Map;}getProvider(n){let e=n.id;if(this.clientCache.has(e))return this.clientCache.get(e);let o=p(e),i;if(o)i=createPublicClient({chain:o,transport:http()});else {let s=defineChain({id:Number(e),name:n.name,nativeCurrency:{name:n.nativeCurrency.name,symbol:n.nativeCurrency.symbol,decimals:n.nativeCurrency.decimals},rpcUrls:{default:{http:n.rpcUrls}},blockExplorers:n.blockExplorerUrls?{default:{name:n.name,url:n.blockExplorerUrls[0]}}:void 0});i=createPublicClient({chain:s,transport:http()});}return this.clientCache.set(e,i),i}async getBalance(n,e){return await this.getProvider(n).getBalance({address:e})}async getBlockNumber(n){return await this.getProvider(n).getBlockNumber()}getWalletClient(n){if(typeof window<"u"&&window.ethereum){let e=p(n.id);if(e)return createWalletClient({chain:e,transport:custom(window.ethereum)})}return null}};var a=class{constructor(){this.connection=null;}async getProvider(n){return this.connection||(this.connection=new Connection(n.rpcUrls[0])),this.connection}async getBalance(n,e){let o=await this.getProvider(n),i=new PublicKey(e),s=await o.getBalance(i);return BigInt(s)}async getBlockNumber(n){let o=await(await this.getProvider(n)).getBlockHeight();return BigInt(o)}};var A={id:1,name:"Ethereum",type:"evm",networkType:"mainnet",rpcUrls:["https://eth-mainnet.g.alchemy.com/v2/your-api-key","https://mainnet.infura.io/v3/your-api-key"],nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io"],iconUrl:"https://cryptologos.cc/logos/ethereum-eth-logo.png"},V={id:137,name:"Polygon",type:"evm",networkType:"mainnet",rpcUrls:["https://polygon-rpc.com","https://polygon-mainnet.g.alchemy.com/v2/your-api-key"],nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},blockExplorerUrls:["https://polygonscan.com"],iconUrl:"https://cryptologos.cc/logos/polygon-matic-logo.png"},B={id:42161,name:"Arbitrum",type:"evm",networkType:"mainnet",rpcUrls:["https://arb1.arbitrum.io/rpc","https://arb-mainnet.g.alchemy.com/v2/your-api-key"],nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockExplorerUrls:["https://arbiscan.io"],iconUrl:"https://cryptologos.cc/logos/arbitrum-arb-logo.png"},P={id:10,name:"Optimism",type:"evm",networkType:"mainnet",rpcUrls:["https://mainnet.optimism.io","https://opt-mainnet.g.alchemy.com/v2/your-api-key"],nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockExplorerUrls:["https://optimistic.etherscan.io"],iconUrl:"https://cryptologos.cc/logos/optimism-op-logo.png"},S={id:56,name:"BNB Smart Chain",type:"evm",networkType:"mainnet",rpcUrls:["https://bsc-dataseed.binance.org","https://bsc-dataseed1.defibit.io"],nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},blockExplorerUrls:["https://bscscan.com"],iconUrl:"https://cryptologos.cc/logos/bnb-bnb-logo.png"},m=[A,V,B,P,S];var I={id:"mainnet-beta",name:"Solana",type:"svm",networkType:"mainnet",rpcUrls:["https://api.mainnet-beta.solana.com","https://solana-api.projectserum.com"],nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},blockExplorerUrls:["https://explorer.solana.com"],iconUrl:"https://cryptologos.cc/logos/solana-sol-logo.png"},H={id:"devnet",name:"Solana Devnet",type:"svm",networkType:"devnet",rpcUrls:["https://api.devnet.solana.com"],nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},blockExplorerUrls:["https://explorer.solana.com/?cluster=devnet"],iconUrl:"https://cryptologos.cc/logos/solana-sol-logo.png"},O={id:"testnet",name:"Solana Testnet",type:"svm",networkType:"testnet",rpcUrls:["https://api.testnet.solana.com"],nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},blockExplorerUrls:["https://explorer.solana.com/?cluster=testnet"],iconUrl:"https://cryptologos.cc/logos/solana-sol-logo.png"},h=[I,H,O];var D={evm:new r,svm:new a};function G(t){let n=D[t];if(!n)throw new Error(`Chain adapter not found for chain type: ${t}`);return n}function _(t){return G(t.type)}function L(){return [...m,...h]}function nn(t){return L().find(n=>n.id===t)||null} export{r as EVMChainAdapter,a as SVMChainAdapter,L as getAllChains,G as getChainAdapter,_ as getChainAdapterForChain,nn as getChainById,m as popularEVMChains,h as popularSVMChains};//# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map