@avalabs/evm-module 1.4.5 → 1.4.6
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@ Message
|
|
|
31
31
|
`;return e},Rr=t=>{let e="";return t.forEach(r=>{e+=`${r.name}:
|
|
32
32
|
`,e+=`${q(String(r.value))}
|
|
33
33
|
|
|
34
|
-
`;}),e},q=t=>{let e={0:"\u{1D7EC}",1:"\u{1D7ED}",2:"\u{1D7EE}",3:"\u{1D7EF}",4:"\u{1D7F0}",5:"\u{1D7F1}",6:"\u{1D7F2}",7:"\u{1D7F3}",8:"\u{1D7F4}",9:"\u{1D7F5}",a:"\u{1D5EE}",b:"\u{1D5EF}",c:"\u{1D5F0}",d:"\u{1D5F1}",e:"\u{1D5F2}",f:"\u{1D5F3}",g:"\u{1D5F4}",h:"\u{1D5F5}",i:"\u{1D5F6}",j:"\u{1D5F7}",k:"\u{1D5F8}",l:"\u{1D5F9}",m:"\u{1D5FA}",n:"\u{1D5FB}",o:"\u{1D5FC}",p:"\u{1D5FD}",q:"\u{1D5FE}",r:"\u{1D5FF}",s:"\u{1D600}",t:"\u{1D601}",u:"\u{1D602}",v:"\u{1D603}",w:"\u{1D604}",x:"\u{1D605}",y:"\u{1D606}",z:"\u{1D607}",A:"\u{1D5D4}",B:"\u{1D5D5}",C:"\u{1D5D6}",D:"\u{1D5D7}",E:"\u{1D5D8}",F:"\u{1D5D9}",G:"\u{1D5DA}",H:"\u{1D5DB}",I:"\u{1D5DC}",J:"\u{1D5DD}",K:"\u{1D5DE}",L:"\u{1D5DF}",M:"\u{1D5E0}",N:"\u{1D5E1}",O:"\u{1D5E2}",P:"\u{1D5E3}",Q:"\u{1D5E4}",R:"\u{1D5E5}",S:"\u{1D5E6}",T:"\u{1D5E7}",U:"\u{1D5E8}",V:"\u{1D5E9}",W:"\u{1D5EA}",X:"\u{1D5EB}",Y:"\u{1D5EC}",Z:"\u{1D5ED}"};return t.split("").map(r=>e[r]||r).join("")};var Te=z$1.string().describe("message"),N=z$1.string().describe("address");var Pr=z$1.object({method:z$1.literal(RpcMethod.ETH_SIGN),params:z$1.tuple([N,Te])});var xr=z$1.object({name:z$1.string(),type:z$1.string()}),ae=z$1.object({types:z$1.object({EIP712Domain:z$1.array(xr)}).catchall(z$1.array(xr)),primaryType:z$1.string(),domain:z$1.record(z$1.any()),message:z$1.record(z$1.any())}),gt=z$1.array(z$1.object({type:z$1.string(),name:z$1.string(),value:z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.object({}).passthrough(),z$1.array(z$1.unknown()),z$1.null()])})).nonempty(),ht=ae.or(gt),Ar=z$1.union([z$1.string().describe("data string"),ae]),wr=z$1.union([z$1.string().describe("data string"),ht]),Cr=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA),params:z$1.tuple([N,wr])}),Nr=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V1),params:z$1.tuple([N,wr])}),Br=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V3),params:z$1.tuple([N,Ar])}),_r=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V4),params:z$1.tuple([N,Ar])});var Dr=z$1.object({method:z$1.literal(RpcMethod.PERSONAL_SIGN),params:z$1.union([z$1.tuple([Te,N]),z$1.tuple([Te,N,z$1.string().optional().describe("password")])])});var ka=z$1.discriminatedUnion("method",[Dr,Pr,Cr,Nr,Br,_r]).transform((t,e)=>{let{method:r,params:n}=t;switch(r){case RpcMethod.PERSONAL_SIGN:return {data:n[0],address:n[1],method:r};case RpcMethod.ETH_SIGN:return {data:n[1],address:n[0],method:r};case RpcMethod.SIGN_TYPED_DATA:case RpcMethod.SIGN_TYPED_DATA_V1:{let o=n[0],a=n[1];if(typeof a!="string")return {data:a,address:o,method:r};try{let s=JSON.parse(a);return {data:ht.parse(s),address:o,method:r}}catch{return e.addIssue({code:z$1.ZodIssueCode.custom,message:"param is not a valid json"}),z$1.NEVER}}case RpcMethod.SIGN_TYPED_DATA_V3:case RpcMethod.SIGN_TYPED_DATA_V4:{let o=n[0],a=n[1];if(typeof a!="string")return {data:a,address:o,method:r};try{let s=JSON.parse(a);return {data:ae.parse(s),address:o,method:r}}catch{return e.addIssue({code:z$1.ZodIssueCode.custom,message:"param is not a valid json"}),z$1.NEVER}}}});function Ur(t){return ka.safeParse(t)}var Fr=t=>gt.safeParse(t).success,Xc=t=>ae.safeParse(t).success;var Gr=t=>{try{let{EIP712Domain:e,...r}=t.types;return TypedDataEncoder.getPayload(t.domain,r,t.message),{isValid:!0}}catch(e){return {isValid:!1,error:e}}};var Lr=async({request:t,network:e,approvalController:r,proxyApiUrl:n})=>{let o=Ur({method:t.method,params:t.params});if(!o.success)return console.error("invalid params",o.error),{success:!1,error:rpcErrors.invalidParams({message:"Params are invalid",data:{cause:o.error}})};let{method:a,data:s,address:i}=o.data,c;(a===RpcMethod.SIGN_TYPED_DATA_V3||a===RpcMethod.SIGN_TYPED_DATA_V4)&&(c=Gr(s));let l,p,m,d;if(c&&!c.isValid&&(d={type:AlertType.INFO,details:{title:"Warning: Verify Message Content",description:"This message contains non-standard elements.",detailedDescription:c.error.toString()}}),a===RpcMethod.ETH_SIGN)l={type:a,account:i,data:s},p=s,m="Signing this message can be dangerous. This signature could potentially perform any operation on your account's behalf, including granting complete control of your account and all of its assets to the requesting site. Only sign this message if you know what you're doing or completely trust the requesting site";else if(a===RpcMethod.PERSONAL_SIGN)l={type:a,account:i,data:s},p=toUtf8String(s);else if(a===RpcMethod.SIGN_TYPED_DATA||a===RpcMethod.SIGN_TYPED_DATA_V1)l={type:a,account:i,data:s},p=Fr(s)?Rr(s):ft(s);else if(a===RpcMethod.SIGN_TYPED_DATA_V3||a===RpcMethod.SIGN_TYPED_DATA_V4){l={type:a,account:i,data:s};let{types:v,primaryType:E,...T}=s;p=ft(T);}if(!l||!p)return {success:!1,error:rpcErrors.internal("Unable to generate signing data")};let u=await cr({request:t,proxyApiUrl:n,accountAddress:i,chainId:e.chainId,data:{method:a,params:t.params},dAppUrl:t.dappInfo.url}),g={title:"Sign Message",dAppInfo:{name:t.dappInfo.name,action:`${t.dappInfo.name} requests you to sign the following message`,logoUri:t.dappInfo.icon},network:{chainId:e.chainId,name:e.chainName,logoUri:e.logoUri},account:i,details:[{title:"Message",items:[p]}],disclaimer:m,alert:u?.alert??d,balanceChange:u?.balanceChange,tokenApprovals:u?.tokenApprovals},y=await r.requestApproval({request:t,displayData:g,signingData:l});return "error"in y?{error:y.error}:"signedData"in y?{result:y.signedData}:{error:rpcErrors.internal("No signed data returned")}};var Mr=async(t,e)=>{try{return {result:await(await w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3})).send(t.method,t.params)}}catch(r){let n=r.info?.error?.message||r.error?.message||r.message;return {error:rpcErrors.internal(n)}}};var Hr=async({accountIndex:t,xpub:e,walletType:r})=>{switch(r){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:return {[NetworkVMType.EVM]:getAddressFromXPub(e,t)};case WalletType.LedgerLive:case WalletType.Seedless:{let n=Buffer.from(e,"hex");return {[NetworkVMType.EVM]:getEvmAddressFromPubKey(n)}}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}};var ie,je=class{constructor(e){this.baseUrl=e;c(this,ie,[]);}async isNetworkSupported(e){return (await this.getChainList()).map(o=>o.community_id).some(o=>o===e)}async getChainInfo({chainId:e}){return (await this.getChainList()).find(n=>n.id===e)}async getTokenBalance({chainId:e,address:r,tokenId:n}){let o=await fetch(`${this.baseUrl}/v1/user/token?id=${r}&chain_id=${e}&token_id=${n}`);if(o.ok)return await o.json();throw new Error(`${o.status}:${o.statusText}`)}async getTokensBalanceOnChain({chainId:e,address:r}){let n=await fetch(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${e}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getTokenList({chainId:e,address:r}){let n=await fetch(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${e}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getChainList(){if(b(this,ie).length===0){let e=await fetch(`${this.baseUrl}/v1/chain/list`);if(e.ok)d(this,ie,await e.json());else throw new Error(`${e.status}:${e.statusText}`)}return b(this,ie)}async getNftList({address:e,chainId:r}){return D([`${this.baseUrl}/v1/user/nft_list?id=${e}&chain_id=${r}`],Ca)}};ie=new WeakMap;var Aa=z$1.object({id:z$1.union([z$1.custom(isHexString),z$1.string()]),chain:z$1.string(),name:z$1.string()}),wa=Aa.merge(z$1.object({contract_id:z$1.string(),description:z$1.string(),content_type:z$1.string(),content:z$1.string(),thumbnail_url:z$1.string(),total_supply:z$1.number(),detail_url:z$1.string(),collection_id:z$1.string(),is_core:z$1.boolean(),inner_id:z$1.string(),collection_name:z$1.string(),contract_name:z$1.string(),amount:z$1.number(),usd_price:z$1.number(),is_erc721:z$1.boolean().optional(),is_erc1155:z$1.boolean().optional()})),Ca=z$1.array(wa);var B,ce,Je,Ye,Or,ze=class{constructor({proxyApiUrl:e}){c(this,ce);c(this,Ye);c(this,B,void 0);d(this,B,new je(`${e}/proxy/debank`));}async isNetworkSupported(e){return b(this,B).isNetworkSupported(e)}async getNativeBalance({chainId:e$1,address:r,currency:n}){if(!isHexString(r))throw rpcErrors.invalidParams("getNativeBalance: not valid address: "+r);let{chainInfo:o,chainIdString:a}=await e(this,ce,Je).call(this,e$1),s=o.native_token_id,i=await b(this,B).getTokenBalance({address:r,chainId:a,tokenId:s}),c=new TokenUnit(i.raw_amount,i.decimals,i.symbol),l=c.toDisplay(),m=(await Ve()).usd[n.toLowerCase()],d=m?m*i.price:void 0,u=d?c.mul(d).toDisplay({fixedDp:2}):void 0,g=d?c.mul(d).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {name:i.name,symbol:i.symbol,decimals:i.decimals,type:TokenType.NATIVE,logoUri:i.logo_url,balance:c.toSubUnit(),balanceDisplayValue:l,balanceInCurrency:g,balanceCurrencyDisplayValue:u,priceInCurrency:d}}async listErc20Balances({chainId:e$1,address:r,currency:n}){if(!isHexString(r))throw rpcErrors.invalidParams("listErc20Balances: not valid address");let{chainInfo:o,chainIdString:a}=await e(this,ce,Je).call(this,e$1),s=await b(this,B).getTokensBalanceOnChain({chainId:a,address:r}),i=await Ve(),c={};for(let l of s){if(l.id===o.native_token_id||l.is_core===!1)continue;let p=new TokenUnit(l.raw_amount,l.decimals,l.symbol),m=p.toDisplay(),d=i.usd[n.toLowerCase()],u=d?d*l.price:void 0,g=u?p.mul(u).toDisplay({fixedDp:2}):void 0,y=u?p.mul(u).toDisplay({fixedDp:2,asNumber:!0}):void 0;c[l.id]={chainId:o.community_id,address:l.id,name:l.name,symbol:l.symbol,decimals:l.decimals,logoUri:l.logo_url,balance:p.toSubUnit(),balanceCurrencyDisplayValue:g,balanceDisplayValue:m,balanceInCurrency:y,priceInCurrency:u,type:TokenType.ERC20,reputation:null};}return c}async listNftBalances({chainId:e$1,address:r}){if(!isHexString(r))throw rpcErrors.invalidParams("listNftBalances: not valid address");let{chainIdString:n}=await e(this,ce,Je).call(this,e$1),o=await b(this,B).getNftList({chainId:n,address:r});return e(this,Ye,Or).call(this,o)}};B=new WeakMap,ce=new WeakSet,Je=async function(e){let n=(await b(this,B).getChainList()).find(a=>a.community_id===e)?.id;if(!n)throw rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+e);let o=await b(this,B).getChainInfo({chainId:n});if(!o)throw rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+e);return {chainInfo:o,chainIdString:n}},Ye=new WeakSet,Or=function(e){return e.reduce((r,n)=>({...r,[`${n.contract_id}-${n.id}`]:{address:n.contract_id,description:n.description,logoUri:n.thumbnail_url,logoSmall:$e(n.content),name:n.name,symbol:"",tokenId:`${n.inner_id}`,tokenUri:n.detail_url,collectionName:n.collection_name,balance:BigInt(n.amount),balanceDisplayValue:`${n.amount}`,type:n.is_erc721?TokenType.ERC721:TokenType.ERC1155,metadata:{description:n.description,properties:""}}}),{})};var Ba=z$1.tuple([X,X]).rest(X).refine(t=>Et(t,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(t=>Et(t,"from"),{message:'All transactions must use the same "from" address'}).refine(t=>Da(t,"nonce")||_a(t,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'});function _a(t,e){return !Et(t,e)}function Da(t,e){return t.every(r=>r[e]===void 0||r[e]==="")}function Et(t,e){return new Set(t.map(n=>n[e])).size===1}var Wr=t=>Ba.safeParse(t);var jr=async(t,e)=>{if(t[0].nonce)return;let r=await Ae({from:t[0].from,provider:e});return Promise.all(t.map(async(n,o)=>{n.nonce=String(r+o);}))};var Ke=new Map,qr=(t,e,r)=>(Ke.set(t,{signingRequests:e,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:o},a)=>{let s=Ke.get(t);if(!s)throw rpcErrors.resourceNotFound();let{signingRequests:i}=s,l={signingRequests:i.map((p,m)=>{if(a===void 0||a===m){let{signingData:d}=p;return {signingData:{...d,data:{...d.data,maxFeePerGas:n??d.data.maxFeePerGas,maxPriorityFeePerGas:o??d.data.maxPriorityFeePerGas}},displayData:p.displayData}}return p}),displayData:r};return Ke.set(t,l),l},cleanup:()=>Ke.delete(t)});var zr=async({rpcMethod:t,dAppUrl:e,params:r,chainId:n,proxyApiUrl:o,provider:a,populateMissingGas:s})=>{let i;try{i=await zt({proxyApiUrl:o,chainId:n,params:r,domain:e,withGasEstimation:s});}catch(u){return console.error("simulateTransactionBatch error",u),{isSimulationSuccessful:!1,alert:G[AlertType.WARNING],scans:[]}}let c=await Promise.all(i.map(async(u,g)=>{let y=r[g],v=await lt({chainId:n,params:r[g],provider:a,rpcMethod:t,simulationResult:u});return s&&!y.gas&&v.estimatedGasLimit&&(y.gas=`0x${v.estimatedGasLimit.toString(16)}`),{transaction:y,...v}})),l=c.every(u=>u.isSimulationSuccessful),p=Fa(c),m=La(c),d=Ga(c);return {isSimulationSuccessful:l,alert:p,balanceChange:m,tokenApprovals:d,scans:c.map(u=>(u.tokenApprovals&&(u.tokenApprovals.isEditable=!1),u))}},Fa=t=>{let e={[AlertType.INFO]:0,[AlertType.WARNING]:1,[AlertType.DANGER]:2};return t.reduce((r,{alert:n})=>n&&(!r||e[n.type]>e[r.type])?n:r,void 0)},Ga=t=>{let e=t.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(o=>{let a=r.approvals.find(s=>o.token.address===s.token.address&&o.spenderAddress===s.spenderAddress);if(!a){r.approvals.push({...o});return}a.value=o.value,a.usdPrice=o.usdPrice;}),r),{approvals:[],isEditable:!1});return Ma(e,t),ct(e)?void 0:e},La=t=>{let e=t.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(o=>{let a=Jr(r.ins,o);a?a.items.push(...o.items):r.ins.push(o);}),n.outs.forEach(o=>{let a=Jr(r.outs,o);a?a.items.push(...o.items):r.outs.push({...o});})),r),{ins:[],outs:[]});return ct(e)?void 0:e},Jr=(t,e)=>t.find(r=>W(r.token)&&W(e.token)?r.token.symbol===e.token.symbol:!W(r.token)&&!W(e.token)?r.token.address===e.token.address:!1),Ma=(t,e)=>{for(let r of t.approvals)for(let n of e)if(!(!n.isSimulationSuccessful||!n.balanceChange||!n.balanceChange.outs.some(a=>!W(a.token)&&!W(r.token)&&a.token.address===r.token.address)))if(!n.tokenApprovals)t.approvals=t.approvals.filter(a=>a.spenderAddress!==r.spenderAddress&&r.token.address!==a.token.address);else {let a=n.tokenApprovals.approvals.find(s=>s.spenderAddress===r.spenderAddress&&s.token.address===r.token.address);if(!a)continue;r.usdPrice=a.usdPrice,r.value=a.value;}};var Yr=async({request:t,network:e,approvalController:r,proxyApiUrl:n})=>{let{params:o}=t,{data:a,success:s,error:i}=Wr(o);if(!s)return console.error("invalid params",i),{error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:i}})};let c=await w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3});try{await jr(a,c);}catch(x){return console.error("Unable to calculate nonce",x),{error:rpcErrors.internal({message:"Unable to calculate nonce",data:{originalError:x}})}}let l=a.every(x=>Number(x.gas)>0),{alert:p,balanceChange:m,isSimulationSuccessful:d,tokenApprovals:u,scans:g}=await zr({rpcMethod:t.method,proxyApiUrl:n,chainId:e.chainId,params:a,dAppUrl:t.dappInfo.url,provider:c,populateMissingGas:!l});if(!g.every(({transaction:x})=>Number(x.gas)>0))return console.error("Gas limit is missing in some transactions"),{error:rpcErrors.internal({message:"Gas limit is missing in some transactions"})};let v={title:"Approve Transaction Batch",details:[{title:"Transaction Details",items:[_e("Website",t.dappInfo),Y("From",a[0].from)]}],network:{chainId:e.chainId,name:e.chainName,logoUri:e.logoUri},isSimulationSuccessful:d,balanceChange:m,alert:p,tokenApprovals:u,networkFeeSelector:!0},E=g.map(x=>De(t,e,x.transaction,x)),{cleanup:T,updateTx:k}=qr(t.requestId,E,v),P=await r.requestBatchApproval({request:t,signingRequests:E,displayData:v,updateTx:k});if(T(),"error"in P)return {error:P.error};if(P.result.length!==a.length)return {error:rpcErrors.internal({message:`Invalid number of signatures. Expected ${a.length}, got ${P.result.length}`})};let Re=[];for(let[x,Ze]of P.result.entries()){let Ie=x===P.result.length-1,pe=await Le(c,Ze),Zr=Ge({provider:c,txHash:pe,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,requestId:t.requestId});if(!Ie&&!await Zr)return {error:rpcErrors.internal({message:`Transaction ${x+1} failed! Batch execution stopped`})};Re.push(pe);}return {result:Re}};var le,Se,_,$,Xr=class{constructor({approvalController:e,environment:r,appInfo:n}){c(this,le,void 0);c(this,Se,void 0);c(this,_,void 0);c(this,$,void 0);let{glacierApiUrl:o,proxyApiUrl:a}=kr(r);d(this,le,new Oe({glacierApiUrl:o,headers:ut(n)})),d(this,Se,new ze({proxyApiUrl:a})),d(this,_,a),d(this,$,e);}getProvider(e){return w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3})}getAddress({accountIndex:e,xpub:r,walletType:n}){return Hr({accountIndex:e,xpub:r,walletType:n})}getBalances({addresses:e,network:r,currency:n,customTokens:o,storage:a,tokenTypes:s}){return hr({addresses:e,currency:n,network:r,proxyApiUrl:b(this,_),customTokens:o,balanceServices:[b(this,le),b(this,Se)],storage:a,tokenTypes:s})}getManifest(){let e=parseManifest(Wt);return e.success?e.data:void 0}getNetworkFee(e){let{chainId:r,chainName:n,rpcUrl:o,utilityAddresses:a,caipId:s}=e;return St({chainId:r,chainName:n,rpcUrl:o,multiContractAddress:a?.multicall,caipId:s,proxyApiUrl:b(this,_)})}getTransactionHistory(e){let{network:r,address:n,nextPageToken:o,offset:a}=e,{chainId:s,isTestnet:i,networkToken:c,explorerUrl:l=""}=r;return Ot({chainId:s,isTestnet:i,networkToken:c,explorerUrl:l,address:n,nextPageToken:o,offset:a,glacierService:b(this,le)})}getTokens(e){let{chainId:r}=e;return Pe({chainId:r,proxyApiUrl:b(this,_)})}async onRpcRequest(e,r){switch(e.method){case RpcMethod.ETH_SEND_TRANSACTION:return pr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)});case RpcMethod.ETH_SEND_TRANSACTION_BATCH:return rr(b(this,$))?Yr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)}):{error:rpcErrors.methodNotSupported(`Method ${e.method} requires BatchApprovalController`)};case RpcMethod.PERSONAL_SIGN:case RpcMethod.ETH_SIGN:case RpcMethod.SIGN_TYPED_DATA:case RpcMethod.SIGN_TYPED_DATA_V1:case RpcMethod.SIGN_TYPED_DATA_V3:case RpcMethod.SIGN_TYPED_DATA_V4:return Lr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)});default:return Ha(e.method)?Mr(e,r):{error:rpcErrors.methodNotSupported(`Method ${e.method} not supported`)}}}};le=new WeakMap,Se=new WeakMap,_=new WeakMap,$=new WeakMap;var Ha=t=>t.startsWith("eth_")||["web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"].includes(t);
|
|
34
|
+
`;}),e},q=t=>{let e={0:"\u{1D7EC}",1:"\u{1D7ED}",2:"\u{1D7EE}",3:"\u{1D7EF}",4:"\u{1D7F0}",5:"\u{1D7F1}",6:"\u{1D7F2}",7:"\u{1D7F3}",8:"\u{1D7F4}",9:"\u{1D7F5}",a:"\u{1D5EE}",b:"\u{1D5EF}",c:"\u{1D5F0}",d:"\u{1D5F1}",e:"\u{1D5F2}",f:"\u{1D5F3}",g:"\u{1D5F4}",h:"\u{1D5F5}",i:"\u{1D5F6}",j:"\u{1D5F7}",k:"\u{1D5F8}",l:"\u{1D5F9}",m:"\u{1D5FA}",n:"\u{1D5FB}",o:"\u{1D5FC}",p:"\u{1D5FD}",q:"\u{1D5FE}",r:"\u{1D5FF}",s:"\u{1D600}",t:"\u{1D601}",u:"\u{1D602}",v:"\u{1D603}",w:"\u{1D604}",x:"\u{1D605}",y:"\u{1D606}",z:"\u{1D607}",A:"\u{1D5D4}",B:"\u{1D5D5}",C:"\u{1D5D6}",D:"\u{1D5D7}",E:"\u{1D5D8}",F:"\u{1D5D9}",G:"\u{1D5DA}",H:"\u{1D5DB}",I:"\u{1D5DC}",J:"\u{1D5DD}",K:"\u{1D5DE}",L:"\u{1D5DF}",M:"\u{1D5E0}",N:"\u{1D5E1}",O:"\u{1D5E2}",P:"\u{1D5E3}",Q:"\u{1D5E4}",R:"\u{1D5E5}",S:"\u{1D5E6}",T:"\u{1D5E7}",U:"\u{1D5E8}",V:"\u{1D5E9}",W:"\u{1D5EA}",X:"\u{1D5EB}",Y:"\u{1D5EC}",Z:"\u{1D5ED}"};return t.split("").map(r=>e[r]||r).join("")};var Te=z$1.string().describe("message"),N=z$1.string().describe("address");var Pr=z$1.object({method:z$1.literal(RpcMethod.ETH_SIGN),params:z$1.tuple([N,Te])});var xr=z$1.object({name:z$1.string(),type:z$1.string()}),ae=z$1.object({types:z$1.object({EIP712Domain:z$1.array(xr)}).catchall(z$1.array(xr)),primaryType:z$1.string(),domain:z$1.record(z$1.any()),message:z$1.record(z$1.any())}),gt=z$1.array(z$1.object({type:z$1.string(),name:z$1.string(),value:z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.object({}).passthrough(),z$1.array(z$1.unknown()),z$1.null()])})).nonempty(),ht=ae.or(gt),Ar=z$1.union([z$1.string().describe("data string"),ae]),wr=z$1.union([z$1.string().describe("data string"),ht]),Cr=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA),params:z$1.tuple([N,wr])}),Nr=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V1),params:z$1.tuple([N,wr])}),Br=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V3),params:z$1.tuple([N,Ar])}),_r=z$1.object({method:z$1.literal(RpcMethod.SIGN_TYPED_DATA_V4),params:z$1.tuple([N,Ar])});var Dr=z$1.object({method:z$1.literal(RpcMethod.PERSONAL_SIGN),params:z$1.union([z$1.tuple([Te,N]),z$1.tuple([Te,N,z$1.string().optional().describe("password")])])});var ka=z$1.discriminatedUnion("method",[Dr,Pr,Cr,Nr,Br,_r]).transform((t,e)=>{let{method:r,params:n}=t;switch(r){case RpcMethod.PERSONAL_SIGN:return {data:n[0],address:n[1],method:r};case RpcMethod.ETH_SIGN:return {data:n[1],address:n[0],method:r};case RpcMethod.SIGN_TYPED_DATA:case RpcMethod.SIGN_TYPED_DATA_V1:{let o=n[0],a=n[1];if(typeof a!="string")return {data:a,address:o,method:r};try{let s=JSON.parse(a);return {data:ht.parse(s),address:o,method:r}}catch{return e.addIssue({code:z$1.ZodIssueCode.custom,message:"param is not a valid json"}),z$1.NEVER}}case RpcMethod.SIGN_TYPED_DATA_V3:case RpcMethod.SIGN_TYPED_DATA_V4:{let o=n[0],a=n[1];if(typeof a!="string")return {data:a,address:o,method:r};try{let s=JSON.parse(a);return {data:ae.parse(s),address:o,method:r}}catch{return e.addIssue({code:z$1.ZodIssueCode.custom,message:"param is not a valid json"}),z$1.NEVER}}}});function Ur(t){return ka.safeParse(t)}var Fr=t=>gt.safeParse(t).success,Xc=t=>ae.safeParse(t).success;var Gr=t=>{try{let{EIP712Domain:e,...r}=t.types;return TypedDataEncoder.getPayload(t.domain,r,t.message),{isValid:!0}}catch(e){return {isValid:!1,error:e}}};var Lr=async({request:t,network:e,approvalController:r,proxyApiUrl:n})=>{let o=Ur({method:t.method,params:t.params});if(!o.success)return console.error("invalid params",o.error),{success:!1,error:rpcErrors.invalidParams({message:"Params are invalid",data:{cause:o.error}})};let{method:a,data:s,address:i}=o.data,c;(a===RpcMethod.SIGN_TYPED_DATA_V3||a===RpcMethod.SIGN_TYPED_DATA_V4)&&(c=Gr(s));let l,p,m,d;if(c&&!c.isValid&&(d={type:AlertType.INFO,details:{title:"Warning: Verify Message Content",description:"This message contains non-standard elements.",detailedDescription:c.error.toString()}}),a===RpcMethod.ETH_SIGN)l={type:a,account:i,data:s},p=s,m="Signing this message can be dangerous. This signature could potentially perform any operation on your account's behalf, including granting complete control of your account and all of its assets to the requesting site. Only sign this message if you know what you're doing or completely trust the requesting site";else if(a===RpcMethod.PERSONAL_SIGN)l={type:a,account:i,data:s},p=toUtf8String(s);else if(a===RpcMethod.SIGN_TYPED_DATA||a===RpcMethod.SIGN_TYPED_DATA_V1)l={type:a,account:i,data:s},p=Fr(s)?Rr(s):ft(s);else if(a===RpcMethod.SIGN_TYPED_DATA_V3||a===RpcMethod.SIGN_TYPED_DATA_V4){l={type:a,account:i,data:s};let{types:v,primaryType:E,...T}=s;p=ft(T);}if(!l||!p)return {success:!1,error:rpcErrors.internal("Unable to generate signing data")};let u=await cr({request:t,proxyApiUrl:n,accountAddress:i,chainId:e.chainId,data:{method:a,params:t.params},dAppUrl:t.dappInfo.url}),g={title:"Sign Message",dAppInfo:{name:t.dappInfo.name,action:`${t.dappInfo.name} requests you to sign the following message`,logoUri:t.dappInfo.icon},network:{chainId:e.chainId,name:e.chainName,logoUri:e.logoUri},account:i,details:[{title:"Message",items:[p]}],disclaimer:m,alert:u?.alert??d,balanceChange:u?.balanceChange,tokenApprovals:u?.tokenApprovals},y=await r.requestApproval({request:t,displayData:g,signingData:l});return "error"in y?{error:y.error}:"signedData"in y?{result:y.signedData}:{error:rpcErrors.internal("No signed data returned")}};var Mr=async(t,e)=>{try{return {result:await(await w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3})).send(t.method,t.params)}}catch(r){let n=r.info?.error?.message||r.error?.message||r.message;return {error:rpcErrors.internal(n)}}};var Hr=async({accountIndex:t,xpub:e,walletType:r})=>{switch(r){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:return {[NetworkVMType.EVM]:getAddressFromXPub(e,t)};case WalletType.LedgerLive:case WalletType.Seedless:{let n=Buffer.from(e,"hex");return {[NetworkVMType.EVM]:getEvmAddressFromPubKey(n)}}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}};var ie,je=class{constructor(e){this.baseUrl=e;c(this,ie,[]);}async isNetworkSupported(e){return (await this.getChainList()).map(o=>o.community_id).some(o=>o===e)}async getChainInfo({chainId:e}){return (await this.getChainList()).find(n=>n.id===e)}async getTokenBalance({chainId:e,address:r,tokenId:n}){let o=await fetch(`${this.baseUrl}/v1/user/token?id=${r}&chain_id=${e}&token_id=${n}`);if(o.ok)return await o.json();throw new Error(`${o.status}:${o.statusText}`)}async getTokensBalanceOnChain({chainId:e,address:r}){let n=await fetch(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${e}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getTokenList({chainId:e,address:r}){let n=await fetch(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${e}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getChainList(){if(b(this,ie).length===0){let e=await fetch(`${this.baseUrl}/v1/chain/list`);if(e.ok)d(this,ie,await e.json());else throw new Error(`${e.status}:${e.statusText}`)}return b(this,ie)}async getNftList({address:e,chainId:r}){return D([`${this.baseUrl}/v1/user/nft_list?id=${e}&chain_id=${r}`],Ca)}};ie=new WeakMap;var Aa=z$1.object({id:z$1.union([z$1.custom(isHexString),z$1.string()]),chain:z$1.string(),name:z$1.string()}),wa=Aa.merge(z$1.object({contract_id:z$1.string(),description:z$1.string().nullable(),content_type:z$1.string().nullable(),content:z$1.string(),thumbnail_url:z$1.string(),total_supply:z$1.number(),detail_url:z$1.string(),collection_id:z$1.string(),is_core:z$1.boolean(),inner_id:z$1.string(),collection_name:z$1.string(),contract_name:z$1.string(),amount:z$1.number(),usd_price:z$1.number().optional(),is_erc721:z$1.boolean().optional(),is_erc1155:z$1.boolean().optional()})),Ca=z$1.array(wa);var B,ce,Je,Ye,Or,ze=class{constructor({proxyApiUrl:e}){c(this,ce);c(this,Ye);c(this,B,void 0);d(this,B,new je(`${e}/proxy/debank`));}async isNetworkSupported(e){return b(this,B).isNetworkSupported(e)}async getNativeBalance({chainId:e$1,address:r,currency:n}){if(!isHexString(r))throw rpcErrors.invalidParams("getNativeBalance: not valid address: "+r);let{chainInfo:o,chainIdString:a}=await e(this,ce,Je).call(this,e$1),s=o.native_token_id,i=await b(this,B).getTokenBalance({address:r,chainId:a,tokenId:s}),c=new TokenUnit(i.raw_amount,i.decimals,i.symbol),l=c.toDisplay(),m=(await Ve()).usd[n.toLowerCase()],d=m?m*i.price:void 0,u=d?c.mul(d).toDisplay({fixedDp:2}):void 0,g=d?c.mul(d).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {name:i.name,symbol:i.symbol,decimals:i.decimals,type:TokenType.NATIVE,logoUri:i.logo_url,balance:c.toSubUnit(),balanceDisplayValue:l,balanceInCurrency:g,balanceCurrencyDisplayValue:u,priceInCurrency:d}}async listErc20Balances({chainId:e$1,address:r,currency:n}){if(!isHexString(r))throw rpcErrors.invalidParams("listErc20Balances: not valid address");let{chainInfo:o,chainIdString:a}=await e(this,ce,Je).call(this,e$1),s=await b(this,B).getTokensBalanceOnChain({chainId:a,address:r}),i=await Ve(),c={};for(let l of s){if(l.id===o.native_token_id||l.is_core===!1)continue;let p=new TokenUnit(l.raw_amount,l.decimals,l.symbol),m=p.toDisplay(),d=i.usd[n.toLowerCase()],u=d?d*l.price:void 0,g=u?p.mul(u).toDisplay({fixedDp:2}):void 0,y=u?p.mul(u).toDisplay({fixedDp:2,asNumber:!0}):void 0;c[l.id]={chainId:o.community_id,address:l.id,name:l.name,symbol:l.symbol,decimals:l.decimals,logoUri:l.logo_url,balance:p.toSubUnit(),balanceCurrencyDisplayValue:g,balanceDisplayValue:m,balanceInCurrency:y,priceInCurrency:u,type:TokenType.ERC20,reputation:null};}return c}async listNftBalances({chainId:e$1,address:r}){if(!isHexString(r))throw rpcErrors.invalidParams("listNftBalances: not valid address");let{chainIdString:n}=await e(this,ce,Je).call(this,e$1),o=await b(this,B).getNftList({chainId:n,address:r});return e(this,Ye,Or).call(this,o)}};B=new WeakMap,ce=new WeakSet,Je=async function(e){let n=(await b(this,B).getChainList()).find(a=>a.community_id===e)?.id;if(!n)throw rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+e);let o=await b(this,B).getChainInfo({chainId:n});if(!o)throw rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+e);return {chainInfo:o,chainIdString:n}},Ye=new WeakSet,Or=function(e){return e.reduce((r,n)=>({...r,[`${n.contract_id}-${n.id}`]:{address:n.contract_id,description:n.description??"",logoUri:n.thumbnail_url,logoSmall:$e(n.content),name:n.name,symbol:"",tokenId:`${n.inner_id}`,tokenUri:n.detail_url,collectionName:n.collection_name,balance:BigInt(n.amount),balanceDisplayValue:`${n.amount}`,type:n.is_erc721?TokenType.ERC721:TokenType.ERC1155,metadata:{description:n.description??"",properties:""}}}),{})};var Ba=z$1.tuple([X,X]).rest(X).refine(t=>Et(t,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(t=>Et(t,"from"),{message:'All transactions must use the same "from" address'}).refine(t=>Da(t,"nonce")||_a(t,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'});function _a(t,e){return !Et(t,e)}function Da(t,e){return t.every(r=>r[e]===void 0||r[e]==="")}function Et(t,e){return new Set(t.map(n=>n[e])).size===1}var Wr=t=>Ba.safeParse(t);var jr=async(t,e)=>{if(t[0].nonce)return;let r=await Ae({from:t[0].from,provider:e});return Promise.all(t.map(async(n,o)=>{n.nonce=String(r+o);}))};var Ke=new Map,qr=(t,e,r)=>(Ke.set(t,{signingRequests:e,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:o},a)=>{let s=Ke.get(t);if(!s)throw rpcErrors.resourceNotFound();let{signingRequests:i}=s,l={signingRequests:i.map((p,m)=>{if(a===void 0||a===m){let{signingData:d}=p;return {signingData:{...d,data:{...d.data,maxFeePerGas:n??d.data.maxFeePerGas,maxPriorityFeePerGas:o??d.data.maxPriorityFeePerGas}},displayData:p.displayData}}return p}),displayData:r};return Ke.set(t,l),l},cleanup:()=>Ke.delete(t)});var zr=async({rpcMethod:t,dAppUrl:e,params:r,chainId:n,proxyApiUrl:o,provider:a,populateMissingGas:s})=>{let i;try{i=await zt({proxyApiUrl:o,chainId:n,params:r,domain:e,withGasEstimation:s});}catch(u){return console.error("simulateTransactionBatch error",u),{isSimulationSuccessful:!1,alert:G[AlertType.WARNING],scans:[]}}let c=await Promise.all(i.map(async(u,g)=>{let y=r[g],v=await lt({chainId:n,params:r[g],provider:a,rpcMethod:t,simulationResult:u});return s&&!y.gas&&v.estimatedGasLimit&&(y.gas=`0x${v.estimatedGasLimit.toString(16)}`),{transaction:y,...v}})),l=c.every(u=>u.isSimulationSuccessful),p=Fa(c),m=La(c),d=Ga(c);return {isSimulationSuccessful:l,alert:p,balanceChange:m,tokenApprovals:d,scans:c.map(u=>(u.tokenApprovals&&(u.tokenApprovals.isEditable=!1),u))}},Fa=t=>{let e={[AlertType.INFO]:0,[AlertType.WARNING]:1,[AlertType.DANGER]:2};return t.reduce((r,{alert:n})=>n&&(!r||e[n.type]>e[r.type])?n:r,void 0)},Ga=t=>{let e=t.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(o=>{let a=r.approvals.find(s=>o.token.address===s.token.address&&o.spenderAddress===s.spenderAddress);if(!a){r.approvals.push({...o});return}a.value=o.value,a.usdPrice=o.usdPrice;}),r),{approvals:[],isEditable:!1});return Ma(e,t),ct(e)?void 0:e},La=t=>{let e=t.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(o=>{let a=Jr(r.ins,o);a?a.items.push(...o.items):r.ins.push(o);}),n.outs.forEach(o=>{let a=Jr(r.outs,o);a?a.items.push(...o.items):r.outs.push({...o});})),r),{ins:[],outs:[]});return ct(e)?void 0:e},Jr=(t,e)=>t.find(r=>W(r.token)&&W(e.token)?r.token.symbol===e.token.symbol:!W(r.token)&&!W(e.token)?r.token.address===e.token.address:!1),Ma=(t,e)=>{for(let r of t.approvals)for(let n of e)if(!(!n.isSimulationSuccessful||!n.balanceChange||!n.balanceChange.outs.some(a=>!W(a.token)&&!W(r.token)&&a.token.address===r.token.address)))if(!n.tokenApprovals)t.approvals=t.approvals.filter(a=>a.spenderAddress!==r.spenderAddress&&r.token.address!==a.token.address);else {let a=n.tokenApprovals.approvals.find(s=>s.spenderAddress===r.spenderAddress&&s.token.address===r.token.address);if(!a)continue;r.usdPrice=a.usdPrice,r.value=a.value;}};var Yr=async({request:t,network:e,approvalController:r,proxyApiUrl:n})=>{let{params:o}=t,{data:a,success:s,error:i}=Wr(o);if(!s)return console.error("invalid params",i),{error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:i}})};let c=await w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3});try{await jr(a,c);}catch(x){return console.error("Unable to calculate nonce",x),{error:rpcErrors.internal({message:"Unable to calculate nonce",data:{originalError:x}})}}let l=a.every(x=>Number(x.gas)>0),{alert:p,balanceChange:m,isSimulationSuccessful:d,tokenApprovals:u,scans:g}=await zr({rpcMethod:t.method,proxyApiUrl:n,chainId:e.chainId,params:a,dAppUrl:t.dappInfo.url,provider:c,populateMissingGas:!l});if(!g.every(({transaction:x})=>Number(x.gas)>0))return console.error("Gas limit is missing in some transactions"),{error:rpcErrors.internal({message:"Gas limit is missing in some transactions"})};let v={title:"Approve Transaction Batch",details:[{title:"Transaction Details",items:[_e("Website",t.dappInfo),Y("From",a[0].from)]}],network:{chainId:e.chainId,name:e.chainName,logoUri:e.logoUri},isSimulationSuccessful:d,balanceChange:m,alert:p,tokenApprovals:u,networkFeeSelector:!0},E=g.map(x=>De(t,e,x.transaction,x)),{cleanup:T,updateTx:k}=qr(t.requestId,E,v),P=await r.requestBatchApproval({request:t,signingRequests:E,displayData:v,updateTx:k});if(T(),"error"in P)return {error:P.error};if(P.result.length!==a.length)return {error:rpcErrors.internal({message:`Invalid number of signatures. Expected ${a.length}, got ${P.result.length}`})};let Re=[];for(let[x,Ze]of P.result.entries()){let Ie=x===P.result.length-1,pe=await Le(c,Ze),Zr=Ge({provider:c,txHash:pe,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,requestId:t.requestId});if(!Ie&&!await Zr)return {error:rpcErrors.internal({message:`Transaction ${x+1} failed! Batch execution stopped`})};Re.push(pe);}return {result:Re}};var le,Se,_,$,Xr=class{constructor({approvalController:e,environment:r,appInfo:n}){c(this,le,void 0);c(this,Se,void 0);c(this,_,void 0);c(this,$,void 0);let{glacierApiUrl:o,proxyApiUrl:a}=kr(r);d(this,le,new Oe({glacierApiUrl:o,headers:ut(n)})),d(this,Se,new ze({proxyApiUrl:a})),d(this,_,a),d(this,$,e);}getProvider(e){return w({chainId:e.chainId,chainName:e.chainName,rpcUrl:e.rpcUrl,multiContractAddress:e.utilityAddresses?.multicall,pollingInterval:1e3})}getAddress({accountIndex:e,xpub:r,walletType:n}){return Hr({accountIndex:e,xpub:r,walletType:n})}getBalances({addresses:e,network:r,currency:n,customTokens:o,storage:a,tokenTypes:s}){return hr({addresses:e,currency:n,network:r,proxyApiUrl:b(this,_),customTokens:o,balanceServices:[b(this,le),b(this,Se)],storage:a,tokenTypes:s})}getManifest(){let e=parseManifest(Wt);return e.success?e.data:void 0}getNetworkFee(e){let{chainId:r,chainName:n,rpcUrl:o,utilityAddresses:a,caipId:s}=e;return St({chainId:r,chainName:n,rpcUrl:o,multiContractAddress:a?.multicall,caipId:s,proxyApiUrl:b(this,_)})}getTransactionHistory(e){let{network:r,address:n,nextPageToken:o,offset:a}=e,{chainId:s,isTestnet:i,networkToken:c,explorerUrl:l=""}=r;return Ot({chainId:s,isTestnet:i,networkToken:c,explorerUrl:l,address:n,nextPageToken:o,offset:a,glacierService:b(this,le)})}getTokens(e){let{chainId:r}=e;return Pe({chainId:r,proxyApiUrl:b(this,_)})}async onRpcRequest(e,r){switch(e.method){case RpcMethod.ETH_SEND_TRANSACTION:return pr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)});case RpcMethod.ETH_SEND_TRANSACTION_BATCH:return rr(b(this,$))?Yr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)}):{error:rpcErrors.methodNotSupported(`Method ${e.method} requires BatchApprovalController`)};case RpcMethod.PERSONAL_SIGN:case RpcMethod.ETH_SIGN:case RpcMethod.SIGN_TYPED_DATA:case RpcMethod.SIGN_TYPED_DATA_V1:case RpcMethod.SIGN_TYPED_DATA_V3:case RpcMethod.SIGN_TYPED_DATA_V4:return Lr({request:e,network:r,approvalController:b(this,$),proxyApiUrl:b(this,_)});default:return Ha(e.method)?Mr(e,r):{error:rpcErrors.methodNotSupported(`Method ${e.method} not supported`)}}}};le=new WeakMap,Se=new WeakMap,_=new WeakMap,$=new WeakMap;var Ha=t=>t.startsWith("eth_")||["web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"].includes(t);
|
|
35
35
|
|
|
36
36
|
export { O as ERC20TransactionType, Xr as EvmModule, Vt as NonContractCallTypes, Z as addIdToPromise, Xc as isTypedData, Fr as isTypedDataV1, Q as settleAllIdPromises };
|
|
37
37
|
//# sourceMappingURL=out.js.map
|