@avalabs/evm-module 3.9.4 → 3.10.0

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 CHANGED
@@ -23,32 +23,32 @@ var en__default = /*#__PURE__*/_interopDefault(en);
23
23
  var Zr__default = /*#__PURE__*/_interopDefault(Zr);
24
24
  var ms__default = /*#__PURE__*/_interopDefault(ms);
25
25
 
26
- function Tr(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}chunkVYIKXRYZ_cjs.a(Tr,"charsum");function Ut(e){let t,r=0;for(t=0;t<e.length;t++){let n=Tr(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}chunkVYIKXRYZ_cjs.a(Ut,"arrayHash");var se=chunkVYIKXRYZ_cjs.a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=M.exponential()})=>{let a=0,i=0,o;for(;i<r;){i>0&&await fa(a);try{let l=await e(i);if(t(l))return l}catch(l){o=l;}a=n(i),i++;}let c=o?`Max retry exceeded. ${o}`:"Max retry exceeded.";throw new Error(c)},"retry"),Mt=class Mt{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return r=>t*1e3}static constantMs(t){return r=>t}static linearThenExponential(t,r){return n=>{if(n<t)return (n+1)*r;let a=n-t+1,i=t*r,o=2*r*(Math.pow(2,a)-1);return i+o}}};chunkVYIKXRYZ_cjs.a(Mt,"RetryBackoffPolicy");var M=Mt;function fa(e){return new Promise(t=>setTimeout(t,e))}chunkVYIKXRYZ_cjs.a(fa,"delay");var Lt=chunkVYIKXRYZ_cjs.a(e=>se({operation:t=>e(t>0),maxRetries:2,backoffPolicy:M.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function F(e,t,r=fetch){let n=await r(...e);if(!n.ok)throw new Error(`Request failed with status ${n.status}`);let a=await n.json();return t.parse(a)}chunkVYIKXRYZ_cjs.a(F,"fetchAndVerify");var Gt=class Gt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return F([`${this.proxyApiUrl}/proxy/coingecko/simple/price?${r}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}simplePriceByContractAddresses(t){let{id:r,...n}=t,a=new URLSearchParams(n);return F([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};chunkVYIKXRYZ_cjs.a(Gt,"CoingeckoProxyClient");var Ge=Gt;var ya=zod.z.array(zod.z.object({internalId:zod.z.string(),id:zod.z.string(),symbol:zod.z.string(),name:zod.z.string(),image:zod.z.string().optional().nullable(),current_price:zod.z.number().optional().nullable(),price_change_percentage_24h:zod.z.number().optional().nullable(),market_cap:zod.z.number().optional().nullable(),total_volume:zod.z.number().optional().nullable(),platforms:zod.z.record(zod.z.string(),zod.z.string())})),Vt=class Vt{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return F([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],ya)}};chunkVYIKXRYZ_cjs.a(Vt,"WatchlistProxyClient");var at=Vt;var Z,ie,ce,he,Ot=class Ot{constructor({storage:t,proxyApiUrl:r,fetch:n}){chunkVYIKXRYZ_cjs.d(this,Z,void 0);chunkVYIKXRYZ_cjs.d(this,ie,void 0);chunkVYIKXRYZ_cjs.d(this,ce,void 0);chunkVYIKXRYZ_cjs.d(this,he,void 0);chunkVYIKXRYZ_cjs.b(this,"transformSimplePriceResponse",chunkVYIKXRYZ_cjs.a((t,r=[coreCoingeckoSdk.VsCurrencyType.USD])=>{let n={};return Object.keys(t).forEach(a=>{let i=t[a];n[a]={},r.forEach(o=>{n[a]={[o]:{price:i?.[o],change24:i?.[`${o}_24h_change`],vol24:i?.[`${o}_24h_vol`],marketCap:i?.[`${o}_market_cap`]}};});}),n},"transformSimplePriceResponse"));chunkVYIKXRYZ_cjs.e(this,Z,t),chunkVYIKXRYZ_cjs.e(this,ie,r),chunkVYIKXRYZ_cjs.e(this,ce,n??globalThis.fetch),chunkVYIKXRYZ_cjs.e(this,he,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,chunkVYIKXRYZ_cjs.c(this,ce)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new at(chunkVYIKXRYZ_cjs.c(this,ie)).watchlistToken({tokens:t.symbol,currency:r})).filter(i=>t.isNative?i.internalId===`NATIVE-${t.symbol.toLowerCase()}`:i.platforms[t.caip2Id]===t.address),[a]=n;return a?{priceInCurrency:a.current_price??0,change24:a.price_change_percentage_24h??0,marketCap:a.market_cap??0,vol24:a.total_volume??0}:{priceInCurrency:0,change24:0,marketCap:0,vol24:0}}async getSimplePrice({coinIds:t=[],currencies:r=[coreCoingeckoSdk.VsCurrencyType.USD]}){let n,i=`getSimplePrice-${t?`${Ut(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=chunkVYIKXRYZ_cjs.c(this,Z)?.get?.(i),n)return n;try{n=await Lt(o=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:o}));}catch{n=void 0;}return chunkVYIKXRYZ_cjs.c(this,Z)?.set?.(i,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let a,o=`getPricesWithMarketDataByAddresses-${`${Ut(t)}-${r}-${n}`}`;if(a=chunkVYIKXRYZ_cjs.c(this,Z)?.get?.(o),a)return a;try{a=await Lt(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),a=void 0;}return chunkVYIKXRYZ_cjs.c(this,Z)?.set?.(o,a),a}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:a=!1}){if(a){let i=await new Ge(chunkVYIKXRYZ_cjs.c(this,ie),chunkVYIKXRYZ_cjs.c(this,ce)).simplePriceByContractAddresses({id:t,contract_addresses:r,vs_currencies:[n],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0});return this.transformSimplePriceResponse(i,[n])}return coreCoingeckoSdk.simpleTokenPrice(chunkVYIKXRYZ_cjs.c(this,he),{assetPlatformId:t,tokenAddresses:r,currencies:[n],marketCap:!0,vol24:!0,change24:!0})}async simplePrice({coinIds:t=[],currencies:r=[coreCoingeckoSdk.VsCurrencyType.USD],marketCap:n=!1,vol24:a=!1,change24:i=!1,lastUpdated:o=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let p=await new Ge(chunkVYIKXRYZ_cjs.c(this,ie),chunkVYIKXRYZ_cjs.c(this,ce)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:a,include_24hr_change:i,include_last_updated_at:o});return this.transformSimplePriceResponse(p,r)}return coreCoingeckoSdk.simplePrice(chunkVYIKXRYZ_cjs.c(this,he),{coinIds:t,currencies:r,marketCap:n,vol24:a,change24:i,lastUpdated:o,shouldThrow:l})}};Z=new WeakMap,ie=new WeakMap,ce=new WeakMap,he=new WeakMap,chunkVYIKXRYZ_cjs.a(Ot,"TokenService");var Q=Ot;var Ea="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.min.json",Ia="https://latest.currency-api.pages.dev/v1/currencies/usd.min.json",Rr=zod.object({date:zod.string(),usd:zod.record(zod.number())}),ot=chunkVYIKXRYZ_cjs.a(async()=>{try{return await F([Ea],Rr)}catch{return await F([Ia],Rr)}},"getExchangeRates");var V=chunkVYIKXRYZ_cjs.a((e,t,r="horizontal")=>({label:e,alignment:r,type:vmModuleTypes.DetailItemType.TEXT,value:t}),"textItem"),Te=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,value:t,type:vmModuleTypes.DetailItemType.LINK}),"linkItem"),j=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS,value:t}),"addressItem");var it=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var Ht=chunkVYIKXRYZ_cjs.a(({name:e,version:t})=>{switch(e){case vmModuleTypes.AppName.CORE_MOBILE_IOS:case vmModuleTypes.AppName.CORE_MOBILE_ANDROID:case vmModuleTypes.AppName.CORE_WEB:case vmModuleTypes.AppName.CORE_EXTENSION:case vmModuleTypes.AppName.EXPLORER:return {"x-application-name":e,"x-application-version":t};case vmModuleTypes.AppName.OTHER:return}},"getCoreHeaders");var br=process.env.GLACIER_API_KEY;var Ve=chunkVYIKXRYZ_cjs.a(()=>br,"getGlacierApiKey");var Sa={rltoken:Ve()},le,ct,lt,Er,pt,Ir,$t=class $t extends glacierSdk.FetchHttpRequest{constructor(r){super(r);chunkVYIKXRYZ_cjs.d(this,lt);chunkVYIKXRYZ_cjs.d(this,pt);chunkVYIKXRYZ_cjs.d(this,le,0);chunkVYIKXRYZ_cjs.d(this,ct,M.exponential());}request(r){let n={...Sa,...r.query||{}},a={...r,query:Object.keys(n).length>0?n:void 0},i=chunkVYIKXRYZ_cjs.a(()=>super.request(a),"getRequest");return chunkVYIKXRYZ_cjs.c(this,le)>0?chunkVYIKXRYZ_cjs.f(this,pt,Ir).call(this,i):chunkVYIKXRYZ_cjs.f(this,lt,Er).call(this,i)}};le=new WeakMap,ct=new WeakMap,lt=new WeakSet,Er=chunkVYIKXRYZ_cjs.a(function(r){let n=r();return new glacierSdk.CancelablePromise((a,i,o)=>{o(()=>n.cancel()),n.then(c=>{chunkVYIKXRYZ_cjs.e(this,le,0),a(c);}).catch(c=>{if(c instanceof glacierSdk.ApiError){let l=c.status===429,p=c.status>=500&&c.status<600;chunkVYIKXRYZ_cjs.e(this,le,chunkVYIKXRYZ_cjs.c(this,le)+Number(l||p));}i(c);});})},"#request"),pt=new WeakSet,Ir=chunkVYIKXRYZ_cjs.a(function(r){let n=chunkVYIKXRYZ_cjs.c(this,ct).call(this,chunkVYIKXRYZ_cjs.c(this,le));return new glacierSdk.CancelablePromise((a,i,o)=>{let c=setTimeout(()=>{let l=r();o(()=>{l.cancel(),clearTimeout(c);}),l.then(a).catch(i);},n);})},"#postponeRequest"),chunkVYIKXRYZ_cjs.a($t,"GlacierFetchHttpRequest");var Oe=$t;var G=chunkVYIKXRYZ_cjs.a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var Pr={name:"EVM",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/index.js",packageName:"@avalabs/evm-module",registry:"https://registry.npmjs.org"}}},provider:{checksum:"",location:{npm:{filePath:"dist/provider/index.js",packageName:"@avalabs/evm-module",registry:"https://registry.npmjs.org"}}}},network:{chainIds:[],namespaces:["eip155"]},cointype:"60",permissions:{rpc:{dapps:!0,methods:["personal_sign","avalanche_declareAgentIdentity","eth_sendTransaction","eth_sendTransactionBatch","eth_*","web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"],nonRestrictedMethods:["eth_requestAccounts","eth_decrypt","eth_getEncryptionPublicKey","eth_subscribe","eth_unsubscribe","eth_blockNumber","eth_call","eth_chainId","eth_coinbase","eth_estimateGas","eth_feeHistory","eth_gasPrice","eth_getBalance","eth_getBlockByHash","eth_getBlockByNumber","eth_getBlockTransactionCountByHash","eth_getBlockTransactionCountByNumber","eth_getCode","eth_getFilterChanges","eth_getFilterLogs","eth_getLogs","eth_getProof","eth_getStorageAt","eth_getTransactionByBlockHashAndIndex","eth_getTransactionByBlockNumberAndIndex","eth_getTransactionByHash","eth_getTransactionCount","eth_getTransactionReceipt","eth_getUncleCountByBlockHash","eth_getUncleCountByBlockNumber","eth_newBlockFilter","eth_newFilter","eth_newPendingTransactionFilter","eth_syncing","eth_uninstallFilter","net_version","net_peerCount","net_listening","web3_sha3","web3_clientVersion"]}},manifestVersion:"0.1"};var Ar="DUMMY_API_KEY";var Na={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},Ca={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},xr=chunkVYIKXRYZ_cjs.a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return Na;case vmModuleTypes.Environment.DEV:return Ca}},"getEnv");var Re=chunkVYIKXRYZ_cjs.a(({accountIndex:e,derivationPathType:t})=>{if(e<0)throw rpcErrors.rpcErrors.invalidParams("Account index must be a non-negative integer");switch(t){case"bip44":return {[vmModuleTypes.NetworkVMType.EVM]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[vmModuleTypes.NetworkVMType.EVM]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var D=chunkVYIKXRYZ_cjs.a(async e=>{let{chainId:t,chainName:r,rpcUrl:n,multiContractAddress:a,pollingInterval:i=2e3,customRpcHeaders:o}=e,c=Fa(n),l=c;if(o){let m=new ethers.FetchRequest(c);for(let[u,y]of Object.entries(o))m.setHeader(u,y);l=m;}let p=new coreWalletsSdk.JsonRpcBatchInternal({maxCalls:40,multiContractAddress:a},l,new ethers.Network(r,t));return p.pollingInterval=i,p},"getProvider"),Ba=["glacier-api.avax.network","proxy-api.avax.network"];function Fa(e){let t=new URL(e),r=Ve();if(r&&Ba.includes(t.hostname)){let n=t.searchParams;return n.set("token",r),t.search=n.toString(),t.toString()}return e}chunkVYIKXRYZ_cjs.a(Fa,"addGlacierAPIKeyIfNeeded");var Ma=5*60*1e3,La={43114:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"},Ga=["function ownerOf(uint256 tokenId) view returns (address)","function tokenURI(uint256 tokenId) view returns (string)","function agentURI(uint256 agentId) view returns (string)","function getMetadata(uint256 agentId, string metadataKey) view returns (bytes)"],Va=["function getSummary(uint256 agentId, address[] clientAddresses, string tag1, string tag2) view returns (uint64 count, int128 summaryValue, uint8 summaryValueDecimals)","function readAllFeedback(uint256 agentId, address[] clientAddresses, string tag1, string tag2, bool includeRevoked) view returns (address[] clients, uint64[] feedbackIndexes, int128[] values, uint8[] valueDecimals, string[] tag1s, string[] tag2s, bool[] isRevoked)","function getIdentityRegistry() view returns (address)"],_r=new Map,Oa=chunkVYIKXRYZ_cjs.a(e=>e===null?"unknown":e>=75?"high":e>=40?"medium":"low","getTrustLevel"),Ha=chunkVYIKXRYZ_cjs.a(e=>e===null||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.trunc(e))),"clampScore"),qt=chunkVYIKXRYZ_cjs.a(e=>{let t=typeof e=="bigint"?Number(e):e;return Number.isFinite(t)?t:null},"toNumber"),Dr=chunkVYIKXRYZ_cjs.a((e,t)=>{let r=qt(e),n=qt(t);return r===null||n===null||n<0?null:r/10**n},"scaleFixedPoint"),$a=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationSummaryTuple"),be=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationFeedbackTuple"),Wa=chunkVYIKXRYZ_cjs.a(e=>$a(e)?{count:e[0],summaryValue:e[1],summaryValueDecimals:e[2]}:e,"getSummaryValue"),ja=chunkVYIKXRYZ_cjs.a(e=>{let t=be(e)?e[2]:e.values,r=be(e)?e[3]:e.valueDecimals,n=be(e)?e[4]:e.tag1s,a=be(e)?e[5]:e.tag2s,i=be(e)?e[6]:e.isRevoked;return t.map((o,c)=>({value:o,valueDecimals:r[c]??0,tag1:n[c],tag2:a[c],isRevoked:i[c]}))},"getFeedbackValues"),qa=chunkVYIKXRYZ_cjs.a(e=>{let t=e.filter(r=>r!==null);return t.length?t.reduce((r,n)=>r+n,0)/t.length:null},"averageScores"),Wt="starred",za=chunkVYIKXRYZ_cjs.a(e=>{let t=new Set,r=[];for(let n of e)try{let a=ethers.getAddress(n);t.has(a)||(t.add(a),r.push(a));}catch{continue}return r},"dedupeAddresses"),Ya=chunkVYIKXRYZ_cjs.a(e=>be(e)?e[0]:e.clients,"getFeedbackClients"),Ka=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{try{if(ethers.getAddress(await e.getIdentityRegistry())!==t)return null;let a=await e.readAllFeedback(r,[],Wt,"",!1),i=ja(a).filter(c=>c.tag1===void 0||c.tag1===Wt).filter(c=>!c.isRevoked),o=za(Ya(a));if(o.length)try{let c=Wa(await e.getSummary(r,o,Wt,""));if(qt(c.count))return Dr(c.summaryValue,c.summaryValueDecimals)}catch{}return qa(i.map(c=>Dr(c.value,c.valueDecimals)))}catch{return null}},"resolveReputationScore"),Ja=chunkVYIKXRYZ_cjs.a(e=>{let[t,r,n]=e.split(":");if(t!=="eip155"||!r||!n)return null;let a=Number(r);if(!Number.isInteger(a))return null;try{return {chainId:a,address:ethers.getAddress(n)}}catch{return null}},"parseAgentRegistry"),jt=chunkVYIKXRYZ_cjs.a(e=>({agentId:e.agentId,agentRegistry:e.agentRegistry,owner:null,reputationScore:null,metadataUri:null,trustLevel:"unknown"}),"buildFallback"),Br=chunkVYIKXRYZ_cjs.a(async e=>{let t=await Promise.allSettled(e.map(r=>r()));for(let r of t)if(r.status==="fulfilled"&&r.value!=null)return r.value;return null},"callFirst"),Fr=chunkVYIKXRYZ_cjs.a(e=>{if(!e||e==="0x")return null;try{return ethers.toUtf8String(e)}catch{return null}},"decodeMetadata"),ee=chunkVYIKXRYZ_cjs.a(async({declaration:e,rpcUrl:t,chainId:r,chainName:n,customRpcHeaders:a})=>{let i=_r.get(`${t}:${e.agentRegistry}:${e.agentId}`);if(i&&i.expiresAt>Date.now())return i.value;let o=Ja(e.agentRegistry);if(!o)return jt(e);if(!/^\d+$/.test(e.agentId))return jt({...e,agentRegistry:`eip155:${o.chainId}:${o.address}`});let c={...e,agentRegistry:`eip155:${o.chainId}:${o.address}`},l=jt(c),p=await D({chainId:r,chainName:n,rpcUrl:t,customRpcHeaders:a}),m=new ethers.Contract(o.address,Ga,p),u=La[o.chainId],y=u?new ethers.Contract(u,Va,p):null,[f,g,k]=await Promise.all([Br([async()=>ethers.getAddress(await m.ownerOf(BigInt(e.agentId)))]),Br([async()=>await m.tokenURI(BigInt(e.agentId)),async()=>await m.agentURI(BigInt(e.agentId)),async()=>Fr(await m.getMetadata(BigInt(e.agentId),"agentURI")),async()=>Fr(await m.getMetadata(BigInt(e.agentId),"uri"))]),y?Ka(y,o.address,BigInt(e.agentId)):Promise.resolve(null)]),R=Ha(k??null),b={...l,owner:f??null,metadataUri:g??null,reputationScore:R,trustLevel:Oa(R)};return _r.set(`${t}:${e.agentRegistry}:${e.agentId}`,{expiresAt:Date.now()+Ma,value:b}),b},"resolveAgentIdentity");var Za=zod.z.object({agentId:zod.z.coerce.string().regex(/^\d+$/),agentRegistry:zod.z.string().min(1)}),Ur=chunkVYIKXRYZ_cjs.a(async({request:e,network:t})=>{let r=Za.safeParse(e.params);return r.success?{result:await ee({declaration:r.data,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders})}:(console.error("invalid params",r.error),{error:rpcErrors.rpcErrors.invalidParams({message:"Agent identity params are invalid",data:{cause:r.error.flatten()}})})},"avalancheDeclareAgentIdentity");var Mr=chunkVYIKXRYZ_cjs.a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var Lr=chunkVYIKXRYZ_cjs.a(async e=>{let{secretId:t,approvalController:r}=e,n=Mr(e)?Re(e).EVM:void 0,a=await r.requestPublicKey({curve:"secp256k1",secretId:t,derivationPath:n});return {[vmModuleTypes.NetworkVMType.EVM]:ethers.computeAddress(`0x${a}`)}},"deriveAddress");var Gr=chunkVYIKXRYZ_cjs.a(async e=>{let{approvalController:t,secretId:r,accountIndices:n,derivationPathType:a}=e;if(n.length===0)return [];await cryptoSdk.init();let i=await Promise.all(n.map(async c=>{let l=Re({accountIndex:c,derivationPathType:a}).EVM,p=await t.requestPublicKey({curve:"secp256k1",secretId:r,derivationPath:l});return Uint8Array.from(Buffer.from(p,"hex"))}));return (await cryptoSdk.deriveAddressesForEvm(i)).map(c=>({[vmModuleTypes.NetworkVMType.EVM]:c}))},"deriveAddresses");var ve=zod.z.object({from:zod.z.string().length(42),to:zod.z.string().length(42).optional(),data:zod.z.string().optional(),value:zod.z.string().startsWith("0x").optional(),gas:zod.z.string().startsWith("0x").optional(),gasPrice:zod.z.string().startsWith("0x").optional(),maxFeePerGas:zod.z.string().startsWith("0x").optional(),maxPriorityFeePerGas:zod.z.string().startsWith("0x").optional(),nonce:zod.z.string().optional(),chainId:zod.z.string().optional().or(zod.z.number().optional()),accessList:zod.z.array(zod.z.object({address:zod.z.string().startsWith("0x"),storageKeys:zod.z.array(zod.z.string())})).optional()});var Vr=zod.z.tuple([ve,ve]).rest(ve).refine(e=>Yt(e,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(e=>Yt(e,"from"),{message:'All transactions must use the same "from" address'}).refine(e=>io(e,"nonce")||so(e,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'}),ao=zod.z.object({skipIntermediateTxs:zod.z.boolean().optional()}),oo=zod.z.union([Vr,zod.z.object({transactions:Vr,options:ao.optional()})]);function so(e,t){return !Yt(e,t)}chunkVYIKXRYZ_cjs.a(so,"areAllDifferentByProp");function io(e,t){return e.every(r=>r[t]===void 0||r[t]==="")}chunkVYIKXRYZ_cjs.a(io,"areAllEmptyByProp");function Yt(e,t){return new Set(e.map(n=>n[t])).size===1}chunkVYIKXRYZ_cjs.a(Yt,"areAllEqualByProp");var Or=chunkVYIKXRYZ_cjs.a(e=>{let t=oo.safeParse(e);return t.success?Array.isArray(t.data)?{success:!0,data:{transactions:t.data,options:{}}}:{success:!0,data:{transactions:t.data.transactions,options:t.data.options??{}}}:t},"parseRequestParams");var dt=chunkVYIKXRYZ_cjs.a(async({from:e,provider:t})=>t.getTransactionCount(e),"getNonce");var Hr=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(e[0].nonce)return;let r=await dt({from:e[0].from,provider:t});return Promise.all(e.map(async(n,a)=>{n.nonce=String(r+a);}))},"ensureProperNonces");var co=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("https://")||e.startsWith("http://")||e.startsWith("ipfs://"),"isNavigableMetadataUri"),lo=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("data:"),"isEmbeddedDataUri"),Ee=chunkVYIKXRYZ_cjs.a(e=>{let t=[V("Agent ID",e.agentId),V("Registry",e.agentRegistry,"vertical"),V("Trust level",e.trustLevel)];return e.reputationScore!==null&&t.push(V("Reputation score",String(e.reputationScore))),e.owner&&t.push(j("Owner",e.owner)),e.metadataUri&&t.push(co(e.metadataUri)?Te("Metadata",{url:e.metadataUri,name:e.metadataUri}):lo(e.metadataUri)?V("Metadata","Embedded data URI","vertical"):V("Metadata",e.metadataUri,"vertical")),{title:"Agent Identity",items:t}},"buildAgentIdentityDetailSection");var $r=[vmModuleTypes.TransactionType.SEND,vmModuleTypes.TransactionType.RECEIVE,vmModuleTypes.TransactionType.TRANSFER,vmModuleTypes.TransactionType.NFT_SEND,vmModuleTypes.TransactionType.NFT_RECEIVE],q=(o=>(o.TOTAL_SUPPLY="totalSupply",o.BALANCE_OF="balanceOf",o.TRANSFER="transfer",o.TRANSFER_FROM="transferFrom",o.APPROVE="approve",o.ALLOWANCE="allowance",o))(q||{}),Kt=(n=>(n.NATIVE_TRANSFER="native_transfer",n.ERC20_TRANSFER="erc20_transfer",n.CONTRACT_CALL="contract_call",n))(Kt||{});var Ie=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(en__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;return n&&uo(n)?n:void 0}catch{return}},"parseERC20TransactionType");function uo(e){return Object.values(q).includes(e)}chunkVYIKXRYZ_cjs.a(uo,"isERC20TransactionType");var Wr=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(en__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;if(n==="transfer"||n==="transferFrom"){let a=r?.args.to;if(typeof a=="string")return a}}catch{}return e.to},"getRecipientAddress");var jr=chunkVYIKXRYZ_cjs.a(e=>{if(!!!(e.data&&e.data!=="0x"))return "native_transfer";let r=Ie(e);return r==="transfer"||r==="transferFrom"?"erc20_transfer":"contract_call"},"classifyTransaction");var ut=chunkVYIKXRYZ_cjs.a((e,t,r,{isSimulationSuccessful:n,balanceChange:a,tokenApprovals:i,alert:o},c)=>{let{dappInfo:l}=e,p=Ie(r),m="Do you approve this transaction?";p==="approve"&&(m="Do you approve this spend limit?");let u=Wr(r),y=[j("Account",r.from),it("Network",{name:t.chainName,logoUri:t.logoUri}),Te("Website",l)].filter(R=>!!R),f=jr(r);f!=="contract_call"&&u&&y.push(j("To",u)),r.to&&["erc20_transfer","contract_call"].includes(f)&&y.push(j("Contract",r.to));let g={title:m,details:[{title:"Transaction Details",items:y},...c?[Ee(c)]:[]],networkFeeSelector:!0,alert:o,balanceChange:a,tokenApprovals:i,isSimulationSuccessful:n},k={type:vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION,account:r.from,data:{type:2,nonce:Number(r.nonce),gasLimit:Number(r.gas),maxFeePerGas:r.maxFeePerGas,maxPriorityFeePerGas:r.maxPriorityFeePerGas,to:r.to,from:r.from,data:r.data,value:r.value,chainId:r.chainId??t.chainId,accessList:r.accessList}};return {displayData:g,signingData:k}},"buildTxApprovalRequest");var ft=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let n=chunkVYIKXRYZ_cjs.a(()=>e.send("eth_sendRawTransaction",[t.signedData]),"broadcast");return r?.shouldRetry?se({operation:()=>n(),isSuccess:()=>!0,maxRetries:6,backoffPolicy:M.linearThenExponential(4,1e3)}):n()},"getTxHash");function Pe(e,t,r="tx"){return `${e}/${r}/${t}`}chunkVYIKXRYZ_cjs.a(Pe,"getExplorerAddressByNetwork");var We=chunkVYIKXRYZ_cjs.a(async({explorerUrl:e,provider:t,txHash:r,onTransactionPending:n,onTransactionConfirmed:a,onTransactionReverted:i,request:o})=>{try{let c=Pe(e,r);if(n({txHash:r,request:o,explorerLink:c}),(await se({operation:async()=>t.getTransactionReceipt(r),isSuccess:m=>!!m,backoffPolicy:M.linearThenExponential(15,750),maxRetries:20}))?.status===1)return a({txHash:r,explorerLink:c,request:o}),!0}catch(c){console.error(c);}return i({txHash:r,request:o}),!1},"waitForTransactionReceipt");var yt=new Map,qr=chunkVYIKXRYZ_cjs.a((e,t,r)=>(yt.set(e,{signingRequests:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a},i)=>{let o=yt.get(e);if(!o)throw rpcErrors.rpcErrors.resourceNotFound();let{signingRequests:c}=o,p={signingRequests:c.map((m,u)=>{if(i===void 0||i===u){let{signingData:y}=m;return {signingData:{...y,data:{...y.data,maxFeePerGas:n??y.data.maxFeePerGas,maxPriorityFeePerGas:a??y.data.maxPriorityFeePerGas}},displayData:m.displayData}}return m}),displayData:r};return yt.set(e,p),p},cleanup:()=>yt.delete(e)}),"getTxBatchUpdater");function pe(e){return !("type"in e)}chunkVYIKXRYZ_cjs.a(pe,"isNetworkToken");function gt(e){return e.type===vmModuleTypes.TokenType.ERC20}chunkVYIKXRYZ_cjs.a(gt,"isERC20Token");function zr(e){return typeof e.to=="string"}chunkVYIKXRYZ_cjs.a(zr,"hasToField");function Yr(e){return "requestBatchApproval"in e&&typeof e.requestBatchApproval=="function"}chunkVYIKXRYZ_cjs.a(Yr,"supportsBatchApprovals");function ko(e){return typeof e=="object"&&e!==null&&"ins"in e&&"outs"in e&&Array.isArray(e.ins)&&Array.isArray(e.outs)}chunkVYIKXRYZ_cjs.a(ko,"isBalanceChange");function Ro(e){return typeof e=="object"&&e!==null&&"approvals"in e&&"isEditable"in e&&Array.isArray(e.approvals)}chunkVYIKXRYZ_cjs.a(Ro,"isTokenApprovals");function Jt(e){return ko(e)?e.ins.length===0&&e.outs.length===0:Ro(e)?e.approvals.length===0:!1}chunkVYIKXRYZ_cjs.a(Jt,"isEmpty");var Kr=chunkVYIKXRYZ_cjs.a(async({chainId:e,params:t,domain:r,withGasEstimation:n,blockaid:a})=>{let i=["validation","simulation"];return n&&i.push("gas_estimation"),a.evm.transactionBulk.scan({chain:e.toString(),options:i,data:t,metadata:r&&r.length>0?{domain:r}:{non_dapp:!0}})},"scanTransactionBatch"),Jr=chunkVYIKXRYZ_cjs.a(async({chainId:e,params:t,domain:r,blockaid:n})=>n.evm.transaction.scan({account_address:t.from,chain:e.toString(),options:["validation","simulation"],data:{from:t.from,to:t.to,data:t.data,value:t.value,gas:t.gas,gas_price:t.gasPrice},metadata:r&&r.length>0?{domain:r}:{non_dapp:!0}}),"scanTransaction"),Xr=chunkVYIKXRYZ_cjs.a(async({chainId:e,accountAddress:t,data:r,domain:n,blockaid:a})=>a.evm.jsonRpc.scan({chain:e.toString(),options:["validation","simulation"],account_address:t,data:r,metadata:n&&n.length>0?{domain:n}:{non_dapp:!0}}),"scanJsonRpc");var tn=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{if(!e.data)return {tokenApprovals:void 0,balanceChange:void 0};try{let n=new ethers.ethers.Contract(e.to,en__default.default.abi,r),a=await Promise.all([n.name?.(),n.symbol?.(),n.decimals?.()]),i=Zr__default.default(a[0]),o=Zr__default.default(a[1]),c=parseInt(a[2]),l={type:vmModuleTypes.TokenType.ERC20,name:i,chainId:t,symbol:o,decimals:c,address:e.to,contractType:"ERC-20"},p=new ethers.ethers.Interface(en__default.default.abi),m=p.getFunction(e.data.slice(0,10)),u=p.decodeFunctionData(e.data.slice(0,10),e.data);if(m?.name==="transfer")return {balanceChange:{outs:[{items:[{displayValue:new coreUtilsSdk.TokenUnit(u.amount,l.decimals,l.symbol).toDisplay(),usdPrice:void 0}],token:l}],ins:[]}};if(m?.name==="approve")return {tokenApprovals:{isEditable:!0,approvals:[{token:l,spenderAddress:u.spender,value:u.amount}]}}}catch(n){console.error("parseErc20Tx error",n);}return {tokenApprovals:void 0,balanceChange:void 0}},"parseWithErc20Abi");var te={[vmModuleTypes.AlertType.WARNING]:{type:vmModuleTypes.AlertType.WARNING,details:{title:"Suspicious transaction",description:"Use caution, this transaction might be malicious."}},[vmModuleTypes.AlertType.DANGER]:{type:vmModuleTypes.AlertType.DANGER,details:{title:"Scam transaction",description:"This transaction has been flagged as malicious, I understand the risk.",body:["This transaction is malicious","do not proceed"],actionTitles:{reject:"Reject Transaction",proceed:"Proceed Anyway"}}}};var nn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,blockaid:i})=>{let o;try{o=await Jr({chainId:n,params:r,domain:t,blockaid:i});}catch(c){console.error("simulateTransaction error",c);}return Xt({rpcMethod:e,params:r,chainId:n,provider:a,simulationResult:o})},"simulateTransaction"),Xt=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,params:t,chainId:r,provider:n,simulationResult:a})=>{let i,o,c,l=!1,p;if(a){let{validation:m,simulation:u,gas_estimation:y}=a;m?.result_type==="Warning"?i=te[vmModuleTypes.AlertType.WARNING]:m?.result_type==="Malicious"&&(i=te[vmModuleTypes.AlertType.DANGER]),u?.status==="Success"&&(l=!0,c=an(e,u.account_summary),o=on(u.account_summary.assets_diffs)),y?.status==="Success"&&(p=Number(y.estimate));}if(!l&&zr(t)){let m=await tn(t,r,n);o=m.balanceChange,c=m.tokenApprovals;}return {alert:i,balanceChange:o,tokenApprovals:c,isSimulationSuccessful:l,estimatedGasLimit:p}},"processTransactionSimulation"),xo=chunkVYIKXRYZ_cjs.a(e=>e.trace_type==="ExposureTrace","isExposureTrace"),No=chunkVYIKXRYZ_cjs.a((e,t)=>`${e.toLowerCase()}.${t.toLowerCase()}`,"normalizeAddresses"),Co=chunkVYIKXRYZ_cjs.a(e=>e===void 0||e.length===0?{}:e.reduce((t,r)=>xo(r)?{[No(r.spender,r.asset.address)]:r}:t,{}),"mapExposureTracesToSpenderAsset"),an=chunkVYIKXRYZ_cjs.a((e,t)=>{let{traces:r}=t,n=Co(r),a=Object.entries(n).map(([o,c])=>{let l=sn(c.asset);if(!l)return;let p={token:l,spenderAddress:c.spender,logoUri:l.logoUri};if(c.type==="ERC20ExposureTrace"){let{exposed:{raw_value:m,value:u,usd_price:y}}=c;if(!u||u<=0)return;p.value=m,p.usdPrice=`${y}`;}if(c.type==="ERC721ExposureTrace")if(!c.exposed)p.value=`0x${ethers.MaxUint256.toString(16)}`;else {let{usd_price:m,amount:u}=c.exposed;p.value=`${u}`,p.usdPrice=`${m}`;}return p}).filter(Boolean);return a.length===0?void 0:{isEditable:a.length===1&&a[0]?.token.type===vmModuleTypes.TokenType.ERC20&&e===vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION,approvals:a}},"processTokenApprovals"),on=chunkVYIKXRYZ_cjs.a(e=>{let t=rn(e,"in"),r=rn(e,"out");if(!(t.length===0&&r.length===0))return {ins:t,outs:r}},"processBalanceChange"),rn=chunkVYIKXRYZ_cjs.a((e,t)=>e.filter(r=>r[t].length>0).sort((r,n)=>r[t].length-n[t].length).map(r=>{let n=r.asset,a="address"in n?sn(n):wo(n);if(!a)return;let i=r[t].map(o=>{let c;if("value"in o&&o.value)if("decimals"in a){let u=coreUtilsSdk.numberToBN(o.value,a.decimals);c=coreUtilsSdk.balanceToDisplayValue(u,a.decimals);}else ethers.isHexString(o.value)&&(c=parseInt(o.value,16).toString());else "type"in a&&a.type===vmModuleTypes.TokenType.ERC721&&(c="1");if(!c)return;let l="logo_url"in o?o.logo_url:void 0,p="token_id"in o?o.token_id:void 0;return {displayValue:c,usdPrice:o.usd_price,...l!==void 0&&{logoUri:l},...p!==void 0&&{tokenId:p}}}).filter(o=>o!==void 0);return {token:a,items:i}}).filter(r=>r!==void 0),"processAssetDiffs"),sn=chunkVYIKXRYZ_cjs.a(e=>{let t;return e.type==="ERC20"?t={type:vmModuleTypes.TokenType.ERC20,address:e.address,decimals:e.decimals,name:e.name??e.symbol??"",symbol:e.symbol??"",logoUri:e.logo_url}:e.type==="ERC1155"?t={type:vmModuleTypes.TokenType.ERC1155,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}:e.type==="ERC721"?t={type:vmModuleTypes.TokenType.ERC721,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}:e.type==="NONERC"&&(t={type:vmModuleTypes.TokenType.NONERC,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}),t},"convertAssetToNetworkContractToken"),wo=chunkVYIKXRYZ_cjs.a(e=>({name:e.name??"",symbol:e.symbol??"",decimals:e.decimals,description:"",logoUri:e.logo_url}),"convertNativeAssetToToken"),cn=chunkVYIKXRYZ_cjs.a(async({request:e,dAppUrl:t,accountAddress:r,chainId:n,data:a,blockaid:i})=>{let o,c,l;try{let{validation:p,simulation:m}=await Xr({chainId:n,accountAddress:r,data:a,domain:t,blockaid:i});p?.result_type==="Warning"?o=te[vmModuleTypes.AlertType.WARNING]:p?.result_type==="Malicious"&&(o=te[vmModuleTypes.AlertType.DANGER]),m?.status==="Success"&&(l=an(e.method,m.account_summary),c=on(m.account_summary.assets_diffs));}catch(p){console.error("processJsonRpcSimulation error",p),o=te[vmModuleTypes.AlertType.WARNING];}return {alert:o,balanceChange:c,tokenApprovals:l}},"processJsonRpcSimulation");var pn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,populateMissingGas:i,blockaid:o})=>{let c;try{c=await Kr({chainId:n,params:r,domain:t,withGasEstimation:i,blockaid:o});}catch(f){return console.error("simulateTransactionBatch error",f),{isSimulationSuccessful:!1,alert:te[vmModuleTypes.AlertType.WARNING],scans:[]}}let l=await Promise.all(c.map(async(f,g)=>{let k=r[g],R=await Xt({chainId:n,params:r[g],provider:a,rpcMethod:e,simulationResult:f});return i&&!k.gas&&R.estimatedGasLimit&&(k.gas=`0x${R.estimatedGasLimit.toString(16)}`),{transaction:k,...R}})),p=l.every(f=>f.isSimulationSuccessful),m=_o(l),u=Bo(l),y=Do(l);return {isSimulationSuccessful:p,alert:m,balanceChange:u,tokenApprovals:y,scans:l.map(f=>(f.tokenApprovals&&(f.tokenApprovals.isEditable=!1),f))}},"simulateTransactionBatch"),_o=chunkVYIKXRYZ_cjs.a(e=>{let t={[vmModuleTypes.AlertType.INFO]:0,[vmModuleTypes.AlertType.WARNING]:1,[vmModuleTypes.AlertType.DANGER]:2};return e.reduce((r,{alert:n})=>n&&(!r||t[n.type]>t[r.type])?n:r,void 0)},"getHighestAlert"),Do=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(a=>{let i=r.approvals.find(o=>a.token.address===o.token.address&&a.spenderAddress===o.spenderAddress);if(!i){r.approvals.push({...a});return}i.value=a.value,i.usdPrice=a.usdPrice;}),r),{approvals:[],isEditable:!1});return Fo(t,e),Jt(t)?void 0:t},"aggregateTokenApprovals"),Bo=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(a=>{let i=ln(r.ins,a);i?i.items.push(...a.items):r.ins.push(a);}),n.outs.forEach(a=>{let i=ln(r.outs,a);i?i.items.push(...a.items):r.outs.push({...a});})),r),{ins:[],outs:[]});return Jt(t)?void 0:t},"aggregateBalanceChange"),ln=chunkVYIKXRYZ_cjs.a((e,t)=>e.find(r=>pe(r.token)&&pe(t.token)?r.token.symbol===t.token.symbol:!pe(r.token)&&!pe(t.token)?r.token.address===t.token.address:!1),"findTokenDiff"),Fo=chunkVYIKXRYZ_cjs.a((e,t)=>{for(let r of e.approvals)for(let n of t)if(!(!n.isSimulationSuccessful||!n.balanceChange||!n.balanceChange.outs.some(i=>!pe(i.token)&&!pe(r.token)&&i.token.address===r.token.address)))if(!n.tokenApprovals)e.approvals=e.approvals.filter(i=>i.spenderAddress!==r.spenderAddress&&r.token.address!==i.token.address);else {let i=n.tokenApprovals.approvals.find(o=>o.spenderAddress===r.spenderAddress&&o.token.address===r.token.address);if(!i)continue;r.usdPrice=i.usdPrice,r.value=i.value;}},"clearSpentApprovals");var Uo=chunkVYIKXRYZ_cjs.a(e=>{if(!e||typeof e!="object")return !1;let t=e;return typeof t.agentId=="string"&&typeof t.agentRegistry=="string"},"isAgentIdentityDeclaration"),Se=chunkVYIKXRYZ_cjs.a(e=>{let t=e.context?.agentIdentity;return Uo(t)?t:null},"getAgentIdentityFromContext");var mn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,success:o,error:c}=Or(a);if(!o)return console.error("invalid params",c),{error:rpcErrors.rpcErrors.invalidParams(G("Transaction params are invalid",c))};let{transactions:l,options:p={}}=i,{skipIntermediateTxs:m=!1}=p,u=await D({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});try{await Hr(l,u);}catch(U){return console.error("Unable to calculate nonce",U),{error:rpcErrors.rpcErrors.internal(G("Unable to calculate nonce",U))}}let y=l.every(U=>Number(U.gas)>0),{alert:f,balanceChange:g,isSimulationSuccessful:k,tokenApprovals:R,scans:b}=await pn({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:u,populateMissingGas:!y,blockaid:n});if(!b.every(({transaction:U})=>Number(U.gas)>0))return console.error("Gas limit is missing in some transactions"),{error:rpcErrors.rpcErrors.internal({message:"Gas limit is missing in some transactions"})};let S=Se(e),h=S?await ee({declaration:S,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,E={title:"Do you approve these transactions?",details:[{title:"Transaction Details",items:[j("Account",l[0].from),it("Network",{name:t.chainName,logoUri:t.logoUri}),Te("Website",e.dappInfo)]},...h?[Ee(h)]:[]],isSimulationSuccessful:k,balanceChange:g,alert:f,tokenApprovals:R,networkFeeSelector:!0},L=b.map(U=>ut(e,t,U.transaction,U,h)),{cleanup:Bt,updateTx:nt}=qr(e.requestId,L,E),W=await r.requestBatchApproval({request:e,signingRequests:L,displayData:E,updateTx:nt});if(Bt(),"error"in W)return {error:W.error};if(W.result.length!==l.length)return {error:rpcErrors.rpcErrors.internal({message:`Invalid number of signatures. Expected ${l.length}, got ${W.result.length}`})};let gr=[];for(let[U,ua]of W.result.entries()){let hr=U===W.result.length-1,Ft=await ft(u,ua);if(hr&&We({explorerUrl:t.explorerUrl??"",provider:u,txHash:Ft,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),!hr&&!m&&!await We({explorerUrl:t.explorerUrl??"",provider:u,txHash:Ft,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}))return {error:rpcErrors.rpcErrors.internal({message:`Transaction ${U+1} failed! Batch execution stopped`})};gr.push(Ft);}return {result:gr}},"ethSendTransactionBatch");function dn(e,t,r){return new ethers.ethers.Contract(e,en__default.default.abi).interface.encodeFunctionData("approve",[t,r])}chunkVYIKXRYZ_cjs.a(dn,"encodeApprovalLimit");var kt=new Map,un=chunkVYIKXRYZ_cjs.a((e,t,r)=>(kt.set(e,{signingData:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a,approvalLimit:i,gasLimit:o})=>{let c=kt.get(e);if(!c)throw rpcErrors.rpcErrors.resourceNotFound();let{signingData:l,displayData:p}=c,m={...l,data:{...l.data,gasLimit:o??l.data.gasLimit,maxFeePerGas:n??l.data.maxFeePerGas,maxPriorityFeePerGas:a??l.data.maxPriorityFeePerGas}},u={...p};if(typeof i=="string"){if(!i.startsWith("0x"))throw rpcErrors.rpcErrors.invalidInput("Expected approvalLimit to be a hexadecimal number (0x-prefixed)");let f=p.tokenApprovals;Go(f),Vo(l.data.data);let g=f.approvals[0];m.data.data=dn(g.token.address,g.spenderAddress,i),u.tokenApprovals={approvals:[{...g,value:i}],isEditable:!0};}let y={signingData:m,displayData:u};return kt.set(e,y),y},cleanup:()=>kt.delete(e)}),"getTxUpdater");function Go(e){if(!e||!e.isEditable||e.approvals.length!==1)throw rpcErrors.rpcErrors.invalidInput("Cannot edit the token approval for this request. Please start a new request instead.")}chunkVYIKXRYZ_cjs.a(Go,"ensureTokenApprovalCanBeEdited");function Vo(e){if((!e||e==="0x"?null:Ie({data:e??void 0}))!=="approve")throw rpcErrors.rpcErrors.invalidInput("Cannot change invoked method for requests in progress. Please start a new request instead.")}chunkVYIKXRYZ_cjs.a(Vo,"ensureApproveWasCalled");var fn=chunkVYIKXRYZ_cjs.a(async({transactionParams:{from:e,to:t,data:r,value:n,accessList:a},provider:i})=>{let o=await i.getTransactionCount(e);return Number(await i.estimateGas({from:e,to:t,nonce:o,data:r,value:n,accessList:a}))},"estimateGasLimit");var Ho=zod.z.tuple([ve]),yn=chunkVYIKXRYZ_cjs.a(e=>Ho.safeParse(e),"parseRequestParams");var gn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,error:o,success:c}=yn(a);if(!c)return console.error("invalid params",o),{error:rpcErrors.rpcErrors.invalidParams(G("Transaction params are invalid",o))};let[l]=i,p=await D({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});if(!l.gas||Number(l.gas)<0)try{let h=await fn({transactionParams:{from:l.from,to:l.to,data:l.data,value:l.value,accessList:l.accessList},provider:p});l.gas="0x"+h.toString(16);}catch(h){return {error:rpcErrors.rpcErrors.internal(G("Unable to calculate gas limit",h))}}if(!l.nonce)try{let h=await dt({from:l.from,provider:p});l.nonce=String(h);}catch(h){return {error:rpcErrors.rpcErrors.internal(G("Unable to calculate nonce",h))}}let m=Se(e),u=m?await ee({declaration:m,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,y=await nn({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:p,blockaid:n}),{displayData:f,signingData:g}=ut(e,t,l,y,u),{updateTx:k,cleanup:R}=un(e.requestId,g,f),b=await r.requestApproval({request:e,displayData:f,signingData:g,updateTx:k});if(R(),"error"in b)return {error:b.error};let v,S=e.context?.shouldRetry===!0;try{v=await ft(p,b,{shouldRetry:S});}catch(h){return {error:rpcErrors.rpcErrors.internal(G("Unable to get transaction hash",h))}}return We({explorerUrl:t.explorerUrl??"",provider:p,txHash:v,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:v}},"ethSendTransaction");var Zt=chunkVYIKXRYZ_cjs.a(e=>{let t="";t+=`Domain
27
- `;for(let r in e.domain)t+=` ${r}: ${me(String(e.domain[r]))}
26
+ function Tr(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}chunkVYIKXRYZ_cjs.a(Tr,"charsum");function Mt(e){let t,r=0;for(t=0;t<e.length;t++){let n=Tr(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}chunkVYIKXRYZ_cjs.a(Mt,"arrayHash");var ce=chunkVYIKXRYZ_cjs.a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=G.exponential()})=>{let a=0,i=0,o;for(;i<r;){i>0&&await fa(a);try{let l=await e(i);if(t(l))return l}catch(l){o=l;}a=n(i),i++;}let c=o?`Max retry exceeded. ${o}`:"Max retry exceeded.";throw new Error(c)},"retry"),Lt=class Lt{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return r=>t*1e3}static constantMs(t){return r=>t}static linearThenExponential(t,r){return n=>{if(n<t)return (n+1)*r;let a=n-t+1,i=t*r,o=2*r*(Math.pow(2,a)-1);return i+o}}};chunkVYIKXRYZ_cjs.a(Lt,"RetryBackoffPolicy");var G=Lt;function fa(e){return new Promise(t=>setTimeout(t,e))}chunkVYIKXRYZ_cjs.a(fa,"delay");var Gt=chunkVYIKXRYZ_cjs.a(e=>ce({operation:t=>e(t>0),maxRetries:2,backoffPolicy:G.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function M(e,t,r=fetch){let n=await r(...e);if(!n.ok)throw new Error(`Request failed with status ${n.status}`);let a=await n.json();return t.parse(a)}chunkVYIKXRYZ_cjs.a(M,"fetchAndVerify");var Vt=class Vt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return M([`${this.proxyApiUrl}/proxy/coingecko/simple/price?${r}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}simplePriceByContractAddresses(t){let{id:r,...n}=t,a=new URLSearchParams(n);return M([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};chunkVYIKXRYZ_cjs.a(Vt,"CoingeckoProxyClient");var He=Vt;var ya=zod.z.array(zod.z.object({internalId:zod.z.string(),id:zod.z.string(),symbol:zod.z.string(),name:zod.z.string(),image:zod.z.string().optional().nullable(),current_price:zod.z.number().optional().nullable(),price_change_percentage_24h:zod.z.number().optional().nullable(),market_cap:zod.z.number().optional().nullable(),total_volume:zod.z.number().optional().nullable(),platforms:zod.z.record(zod.z.string(),zod.z.string())})),Ot=class Ot{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return M([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],ya)}};chunkVYIKXRYZ_cjs.a(Ot,"WatchlistProxyClient");var st=Ot;var ee,le,pe,ke,Ht=class Ht{constructor({storage:t,proxyApiUrl:r,fetch:n}){chunkVYIKXRYZ_cjs.d(this,ee,void 0);chunkVYIKXRYZ_cjs.d(this,le,void 0);chunkVYIKXRYZ_cjs.d(this,pe,void 0);chunkVYIKXRYZ_cjs.d(this,ke,void 0);chunkVYIKXRYZ_cjs.b(this,"transformSimplePriceResponse",chunkVYIKXRYZ_cjs.a((t,r=[coreCoingeckoSdk.VsCurrencyType.USD])=>{let n={};return Object.keys(t).forEach(a=>{let i=t[a];n[a]={},r.forEach(o=>{n[a]={[o]:{price:i?.[o],change24:i?.[`${o}_24h_change`],vol24:i?.[`${o}_24h_vol`],marketCap:i?.[`${o}_market_cap`]}};});}),n},"transformSimplePriceResponse"));chunkVYIKXRYZ_cjs.e(this,ee,t),chunkVYIKXRYZ_cjs.e(this,le,r),chunkVYIKXRYZ_cjs.e(this,pe,n??globalThis.fetch),chunkVYIKXRYZ_cjs.e(this,ke,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,chunkVYIKXRYZ_cjs.c(this,pe)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new st(chunkVYIKXRYZ_cjs.c(this,le)).watchlistToken({tokens:t.symbol,currency:r})).filter(i=>t.isNative?i.internalId===`NATIVE-${t.symbol.toLowerCase()}`:i.platforms[t.caip2Id]===t.address),[a]=n;return a?{priceInCurrency:a.current_price??0,change24:a.price_change_percentage_24h??0,marketCap:a.market_cap??0,vol24:a.total_volume??0}:{priceInCurrency:0,change24:0,marketCap:0,vol24:0}}async getSimplePrice({coinIds:t=[],currencies:r=[coreCoingeckoSdk.VsCurrencyType.USD]}){let n,i=`getSimplePrice-${t?`${Mt(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=chunkVYIKXRYZ_cjs.c(this,ee)?.get?.(i),n)return n;try{n=await Gt(o=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:o}));}catch{n=void 0;}return chunkVYIKXRYZ_cjs.c(this,ee)?.set?.(i,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let a,o=`getPricesWithMarketDataByAddresses-${`${Mt(t)}-${r}-${n}`}`;if(a=chunkVYIKXRYZ_cjs.c(this,ee)?.get?.(o),a)return a;try{a=await Gt(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),a=void 0;}return chunkVYIKXRYZ_cjs.c(this,ee)?.set?.(o,a),a}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:a=!1}){if(a){let i=await new He(chunkVYIKXRYZ_cjs.c(this,le),chunkVYIKXRYZ_cjs.c(this,pe)).simplePriceByContractAddresses({id:t,contract_addresses:r,vs_currencies:[n],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0});return this.transformSimplePriceResponse(i,[n])}return coreCoingeckoSdk.simpleTokenPrice(chunkVYIKXRYZ_cjs.c(this,ke),{assetPlatformId:t,tokenAddresses:r,currencies:[n],marketCap:!0,vol24:!0,change24:!0})}async simplePrice({coinIds:t=[],currencies:r=[coreCoingeckoSdk.VsCurrencyType.USD],marketCap:n=!1,vol24:a=!1,change24:i=!1,lastUpdated:o=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let p=await new He(chunkVYIKXRYZ_cjs.c(this,le),chunkVYIKXRYZ_cjs.c(this,pe)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:a,include_24hr_change:i,include_last_updated_at:o});return this.transformSimplePriceResponse(p,r)}return coreCoingeckoSdk.simplePrice(chunkVYIKXRYZ_cjs.c(this,ke),{coinIds:t,currencies:r,marketCap:n,vol24:a,change24:i,lastUpdated:o,shouldThrow:l})}};ee=new WeakMap,le=new WeakMap,pe=new WeakMap,ke=new WeakMap,chunkVYIKXRYZ_cjs.a(Ht,"TokenService");var te=Ht;var Ea="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.min.json",Ia="https://latest.currency-api.pages.dev/v1/currencies/usd.min.json",Rr=zod.object({date:zod.string(),usd:zod.record(zod.number())}),it=chunkVYIKXRYZ_cjs.a(async()=>{try{return await M([Ea],Rr)}catch{return await M([Ia],Rr)}},"getExchangeRates");var H=chunkVYIKXRYZ_cjs.a((e,t,r="horizontal")=>({label:e,alignment:r,type:vmModuleTypes.DetailItemType.TEXT,value:t}),"textItem"),Re=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,value:t,type:vmModuleTypes.DetailItemType.LINK}),"linkItem"),q=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS,value:t}),"addressItem");var lt=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var $t=chunkVYIKXRYZ_cjs.a(({name:e,version:t})=>{switch(e){case vmModuleTypes.AppName.CORE_MOBILE_IOS:case vmModuleTypes.AppName.CORE_MOBILE_ANDROID:case vmModuleTypes.AppName.CORE_WEB:case vmModuleTypes.AppName.CORE_EXTENSION:case vmModuleTypes.AppName.EXPLORER:return {"x-application-name":e,"x-application-version":t};case vmModuleTypes.AppName.OTHER:return}},"getCoreHeaders");var br=process.env.GLACIER_API_KEY;var $e=chunkVYIKXRYZ_cjs.a(()=>br,"getGlacierApiKey");var Sa={rltoken:$e()},me,pt,mt,Er,dt,Ir,Wt=class Wt extends glacierSdk.FetchHttpRequest{constructor(r){super(r);chunkVYIKXRYZ_cjs.d(this,mt);chunkVYIKXRYZ_cjs.d(this,dt);chunkVYIKXRYZ_cjs.d(this,me,0);chunkVYIKXRYZ_cjs.d(this,pt,G.exponential());}request(r){let n={...Sa,...r.query||{}},a={...r,query:Object.keys(n).length>0?n:void 0},i=chunkVYIKXRYZ_cjs.a(()=>super.request(a),"getRequest");return chunkVYIKXRYZ_cjs.c(this,me)>0?chunkVYIKXRYZ_cjs.f(this,dt,Ir).call(this,i):chunkVYIKXRYZ_cjs.f(this,mt,Er).call(this,i)}};me=new WeakMap,pt=new WeakMap,mt=new WeakSet,Er=chunkVYIKXRYZ_cjs.a(function(r){let n=r();return new glacierSdk.CancelablePromise((a,i,o)=>{o(()=>n.cancel()),n.then(c=>{chunkVYIKXRYZ_cjs.e(this,me,0),a(c);}).catch(c=>{if(c instanceof glacierSdk.ApiError){let l=c.status===429,p=c.status>=500&&c.status<600;chunkVYIKXRYZ_cjs.e(this,me,chunkVYIKXRYZ_cjs.c(this,me)+Number(l||p));}i(c);});})},"#request"),dt=new WeakSet,Ir=chunkVYIKXRYZ_cjs.a(function(r){let n=chunkVYIKXRYZ_cjs.c(this,pt).call(this,chunkVYIKXRYZ_cjs.c(this,me));return new glacierSdk.CancelablePromise((a,i,o)=>{let c=setTimeout(()=>{let l=r();o(()=>{l.cancel(),clearTimeout(c);}),l.then(a).catch(i);},n);})},"#postponeRequest"),chunkVYIKXRYZ_cjs.a(Wt,"GlacierFetchHttpRequest");var We=Wt;var O=chunkVYIKXRYZ_cjs.a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var Pr={name:"EVM",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/index.js",packageName:"@avalabs/evm-module",registry:"https://registry.npmjs.org"}}},provider:{checksum:"",location:{npm:{filePath:"dist/provider/index.js",packageName:"@avalabs/evm-module",registry:"https://registry.npmjs.org"}}}},network:{chainIds:[],namespaces:["eip155"]},cointype:"60",permissions:{rpc:{dapps:!0,methods:["personal_sign","avalanche_declareAgentIdentity","eth_sendTransaction","eth_sendTransactionBatch","eth_*","web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"],nonRestrictedMethods:["eth_requestAccounts","eth_decrypt","eth_getEncryptionPublicKey","eth_subscribe","eth_unsubscribe","eth_blockNumber","eth_call","eth_chainId","eth_coinbase","eth_estimateGas","eth_feeHistory","eth_gasPrice","eth_getBalance","eth_getBlockByHash","eth_getBlockByNumber","eth_getBlockTransactionCountByHash","eth_getBlockTransactionCountByNumber","eth_getCode","eth_getFilterChanges","eth_getFilterLogs","eth_getLogs","eth_getProof","eth_getStorageAt","eth_getTransactionByBlockHashAndIndex","eth_getTransactionByBlockNumberAndIndex","eth_getTransactionByHash","eth_getTransactionCount","eth_getTransactionReceipt","eth_getUncleCountByBlockHash","eth_getUncleCountByBlockNumber","eth_newBlockFilter","eth_newFilter","eth_newPendingTransactionFilter","eth_syncing","eth_uninstallFilter","net_version","net_peerCount","net_listening","web3_sha3","web3_clientVersion"]}},manifestVersion:"0.1"};var Ar="DUMMY_API_KEY";var Ca={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},Na={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},xr=chunkVYIKXRYZ_cjs.a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return Ca;case vmModuleTypes.Environment.DEV:return Na}},"getEnv");var ve=chunkVYIKXRYZ_cjs.a(({accountIndex:e,derivationPathType:t})=>{if(e<0)throw rpcErrors.rpcErrors.invalidParams("Account index must be a non-negative integer");switch(t){case"bip44":return {[vmModuleTypes.NetworkVMType.EVM]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[vmModuleTypes.NetworkVMType.EVM]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var F=chunkVYIKXRYZ_cjs.a(async e=>{let{chainId:t,chainName:r,rpcUrl:n,multiContractAddress:a,pollingInterval:i=2e3,customRpcHeaders:o}=e,c=Fa(n),l=c;if(o){let m=new ethers.FetchRequest(c);for(let[u,f]of Object.entries(o))m.setHeader(u,f);l=m;}let p=new coreWalletsSdk.JsonRpcBatchInternal({maxCalls:40,multiContractAddress:a},l,new ethers.Network(r,t));return p.pollingInterval=i,p},"getProvider"),Ba=["glacier-api.avax.network","proxy-api.avax.network"];function Fa(e){let t=new URL(e),r=$e();if(r&&Ba.includes(t.hostname)){let n=t.searchParams;return n.set("token",r),t.search=n.toString(),t.toString()}return e}chunkVYIKXRYZ_cjs.a(Fa,"addGlacierAPIKeyIfNeeded");var Ma=5*60*1e3,La={43114:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"},Ga=["function ownerOf(uint256 tokenId) view returns (address)","function tokenURI(uint256 tokenId) view returns (string)","function agentURI(uint256 agentId) view returns (string)","function getMetadata(uint256 agentId, string metadataKey) view returns (bytes)"],Va=["function getSummary(uint256 agentId, address[] clientAddresses, string tag1, string tag2) view returns (uint64 count, int128 summaryValue, uint8 summaryValueDecimals)","function readAllFeedback(uint256 agentId, address[] clientAddresses, string tag1, string tag2, bool includeRevoked) view returns (address[] clients, uint64[] feedbackIndexes, int128[] values, uint8[] valueDecimals, string[] tag1s, string[] tag2s, bool[] isRevoked)","function getIdentityRegistry() view returns (address)"],_r=new Map,Oa=chunkVYIKXRYZ_cjs.a(e=>e===null?"unknown":e>=75?"high":e>=40?"medium":"low","getTrustLevel"),Ha=chunkVYIKXRYZ_cjs.a(e=>e===null||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.trunc(e))),"clampScore"),zt=chunkVYIKXRYZ_cjs.a(e=>{let t=typeof e=="bigint"?Number(e):e;return Number.isFinite(t)?t:null},"toNumber"),Dr=chunkVYIKXRYZ_cjs.a((e,t)=>{let r=zt(e),n=zt(t);return r===null||n===null||n<0?null:r/10**n},"scaleFixedPoint"),$a=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationSummaryTuple"),Ee=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationFeedbackTuple"),Wa=chunkVYIKXRYZ_cjs.a(e=>$a(e)?{count:e[0],summaryValue:e[1],summaryValueDecimals:e[2]}:e,"getSummaryValue"),ja=chunkVYIKXRYZ_cjs.a(e=>{let t=Ee(e)?e[2]:e.values,r=Ee(e)?e[3]:e.valueDecimals,n=Ee(e)?e[4]:e.tag1s,a=Ee(e)?e[5]:e.tag2s,i=Ee(e)?e[6]:e.isRevoked;return t.map((o,c)=>({value:o,valueDecimals:r[c]??0,tag1:n[c],tag2:a[c],isRevoked:i[c]}))},"getFeedbackValues"),qa=chunkVYIKXRYZ_cjs.a(e=>{let t=e.filter(r=>r!==null);return t.length?t.reduce((r,n)=>r+n,0)/t.length:null},"averageScores"),jt="starred",za=chunkVYIKXRYZ_cjs.a(e=>{let t=new Set,r=[];for(let n of e)try{let a=ethers.getAddress(n);t.has(a)||(t.add(a),r.push(a));}catch{continue}return r},"dedupeAddresses"),Ya=chunkVYIKXRYZ_cjs.a(e=>Ee(e)?e[0]:e.clients,"getFeedbackClients"),Ka=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{try{if(ethers.getAddress(await e.getIdentityRegistry())!==t)return null;let a=await e.readAllFeedback(r,[],jt,"",!1),i=ja(a).filter(c=>c.tag1===void 0||c.tag1===jt).filter(c=>!c.isRevoked),o=za(Ya(a));if(o.length)try{let c=Wa(await e.getSummary(r,o,jt,""));if(zt(c.count))return Dr(c.summaryValue,c.summaryValueDecimals)}catch{}return qa(i.map(c=>Dr(c.value,c.valueDecimals)))}catch{return null}},"resolveReputationScore"),Ja=chunkVYIKXRYZ_cjs.a(e=>{let[t,r,n]=e.split(":");if(t!=="eip155"||!r||!n)return null;let a=Number(r);if(!Number.isInteger(a))return null;try{return {chainId:a,address:ethers.getAddress(n)}}catch{return null}},"parseAgentRegistry"),qt=chunkVYIKXRYZ_cjs.a(e=>({agentId:e.agentId,agentRegistry:e.agentRegistry,owner:null,reputationScore:null,metadataUri:null,trustLevel:"unknown"}),"buildFallback"),Br=chunkVYIKXRYZ_cjs.a(async e=>{let t=await Promise.allSettled(e.map(r=>r()));for(let r of t)if(r.status==="fulfilled"&&r.value!=null)return r.value;return null},"callFirst"),Fr=chunkVYIKXRYZ_cjs.a(e=>{if(!e||e==="0x")return null;try{return ethers.toUtf8String(e)}catch{return null}},"decodeMetadata"),re=chunkVYIKXRYZ_cjs.a(async({declaration:e,rpcUrl:t,chainId:r,chainName:n,customRpcHeaders:a})=>{let i=_r.get(`${t}:${e.agentRegistry}:${e.agentId}`);if(i&&i.expiresAt>Date.now())return i.value;let o=Ja(e.agentRegistry);if(!o)return qt(e);if(!/^\d+$/.test(e.agentId))return qt({...e,agentRegistry:`eip155:${o.chainId}:${o.address}`});let c={...e,agentRegistry:`eip155:${o.chainId}:${o.address}`},l=qt(c),p=await F({chainId:r,chainName:n,rpcUrl:t,customRpcHeaders:a}),m=new ethers.Contract(o.address,Ga,p),u=La[o.chainId],f=u?new ethers.Contract(u,Va,p):null,[y,h,R]=await Promise.all([Br([async()=>ethers.getAddress(await m.ownerOf(BigInt(e.agentId)))]),Br([async()=>await m.tokenURI(BigInt(e.agentId)),async()=>await m.agentURI(BigInt(e.agentId)),async()=>Fr(await m.getMetadata(BigInt(e.agentId),"agentURI")),async()=>Fr(await m.getMetadata(BigInt(e.agentId),"uri"))]),f?Ka(f,o.address,BigInt(e.agentId)):Promise.resolve(null)]),g=Ha(R??null),I={...l,owner:y??null,metadataUri:h??null,reputationScore:g,trustLevel:Oa(g)};return _r.set(`${t}:${e.agentRegistry}:${e.agentId}`,{expiresAt:Date.now()+Ma,value:I}),I},"resolveAgentIdentity");var Za=zod.z.object({agentId:zod.z.coerce.string().regex(/^\d+$/),agentRegistry:zod.z.string().min(1)}),Ur=chunkVYIKXRYZ_cjs.a(async({request:e,network:t})=>{let r=Za.safeParse(e.params);return r.success?{result:await re({declaration:r.data,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders})}:(console.error("invalid params",r.error),{error:rpcErrors.rpcErrors.invalidParams({message:"Agent identity params are invalid",data:{cause:r.error.flatten()}})})},"avalancheDeclareAgentIdentity");var Mr=chunkVYIKXRYZ_cjs.a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var Lr=chunkVYIKXRYZ_cjs.a(async e=>{let{secretId:t,approvalController:r}=e,n=Mr(e)?ve(e).EVM:void 0,a=await r.requestPublicKey({curve:"secp256k1",secretId:t,derivationPath:n});return {[vmModuleTypes.NetworkVMType.EVM]:ethers.computeAddress(`0x${a}`)}},"deriveAddress");var Gr=chunkVYIKXRYZ_cjs.a(async e=>{let{approvalController:t,secretId:r,accountIndices:n,derivationPathType:a}=e;if(n.length===0)return [];await cryptoSdk.init();let i=await Promise.all(n.map(async c=>{let l=ve({accountIndex:c,derivationPathType:a}).EVM,p=await t.requestPublicKey({curve:"secp256k1",secretId:r,derivationPath:l});return Uint8Array.from(Buffer.from(p,"hex"))}));return (await cryptoSdk.deriveAddressesForEvm(i)).map(c=>({[vmModuleTypes.NetworkVMType.EVM]:c}))},"deriveAddresses");var Ie=zod.z.object({from:zod.z.string().length(42),to:zod.z.string().length(42).optional(),data:zod.z.string().optional(),value:zod.z.string().startsWith("0x").optional(),gas:zod.z.string().startsWith("0x").optional(),gasPrice:zod.z.string().startsWith("0x").optional(),maxFeePerGas:zod.z.string().startsWith("0x").optional(),maxPriorityFeePerGas:zod.z.string().startsWith("0x").optional(),nonce:zod.z.string().optional(),chainId:zod.z.string().optional().or(zod.z.number().optional()),accessList:zod.z.array(zod.z.object({address:zod.z.string().startsWith("0x"),storageKeys:zod.z.array(zod.z.string())})).optional()});var Vr=zod.z.tuple([Ie,Ie]).rest(Ie).refine(e=>Kt(e,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(e=>Kt(e,"from"),{message:'All transactions must use the same "from" address'}).refine(e=>io(e,"nonce")||so(e,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'}),ao=zod.z.object({skipIntermediateTxs:zod.z.boolean().optional()}),oo=zod.z.union([Vr,zod.z.object({transactions:Vr,options:ao.optional()})]);function so(e,t){return !Kt(e,t)}chunkVYIKXRYZ_cjs.a(so,"areAllDifferentByProp");function io(e,t){return e.every(r=>r[t]===void 0||r[t]==="")}chunkVYIKXRYZ_cjs.a(io,"areAllEmptyByProp");function Kt(e,t){return new Set(e.map(n=>n[t])).size===1}chunkVYIKXRYZ_cjs.a(Kt,"areAllEqualByProp");var Or=chunkVYIKXRYZ_cjs.a(e=>{let t=oo.safeParse(e);return t.success?Array.isArray(t.data)?{success:!0,data:{transactions:t.data,options:{}}}:{success:!0,data:{transactions:t.data.transactions,options:t.data.options??{}}}:t},"parseRequestParams");var ft=chunkVYIKXRYZ_cjs.a(async({from:e,provider:t})=>t.getTransactionCount(e),"getNonce");var Hr=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(e[0].nonce)return;let r=await ft({from:e[0].from,provider:t});return Promise.all(e.map(async(n,a)=>{n.nonce=String(r+a);}))},"ensureProperNonces");var co=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("https://")||e.startsWith("http://")||e.startsWith("ipfs://"),"isNavigableMetadataUri"),lo=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("data:"),"isEmbeddedDataUri"),Pe=chunkVYIKXRYZ_cjs.a(e=>{let t=[H("Agent ID",e.agentId),H("Registry",e.agentRegistry,"vertical"),H("Trust level",e.trustLevel)];return e.reputationScore!==null&&t.push(H("Reputation score",String(e.reputationScore))),e.owner&&t.push(q("Owner",e.owner)),e.metadataUri&&t.push(co(e.metadataUri)?Re("Metadata",{url:e.metadataUri,name:e.metadataUri}):lo(e.metadataUri)?H("Metadata","Embedded data URI","vertical"):H("Metadata",e.metadataUri,"vertical")),{title:"Agent Identity",items:t}},"buildAgentIdentityDetailSection");var $r=[vmModuleTypes.TransactionType.SEND,vmModuleTypes.TransactionType.RECEIVE,vmModuleTypes.TransactionType.TRANSFER,vmModuleTypes.TransactionType.NFT_SEND,vmModuleTypes.TransactionType.NFT_RECEIVE],z=(o=>(o.TOTAL_SUPPLY="totalSupply",o.BALANCE_OF="balanceOf",o.TRANSFER="transfer",o.TRANSFER_FROM="transferFrom",o.APPROVE="approve",o.ALLOWANCE="allowance",o))(z||{}),Jt=(n=>(n.NATIVE_TRANSFER="native_transfer",n.ERC20_TRANSFER="erc20_transfer",n.CONTRACT_CALL="contract_call",n))(Jt||{});var Ae=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(en__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;return n&&uo(n)?n:void 0}catch{return}},"parseERC20TransactionType");function uo(e){return Object.values(z).includes(e)}chunkVYIKXRYZ_cjs.a(uo,"isERC20TransactionType");var Wr=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(en__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;if(n==="transfer"||n==="transferFrom"){let a=r?.args.to;if(typeof a=="string")return a}}catch{}return e.to},"getRecipientAddress");var jr=chunkVYIKXRYZ_cjs.a(e=>{if(!!!(e.data&&e.data!=="0x"))return "native_transfer";let r=Ae(e);return r==="transfer"||r==="transferFrom"?"erc20_transfer":"contract_call"},"classifyTransaction");var yt=chunkVYIKXRYZ_cjs.a((e,t,r,{isSimulationSuccessful:n,balanceChange:a,tokenApprovals:i,alert:o},c)=>{let{dappInfo:l}=e,p=Ae(r),m="Do you approve this transaction?";p==="approve"&&(m="Do you approve this spend limit?");let u=Wr(r),f=[q("Account",r.from),lt("Network",{name:t.chainName,logoUri:t.logoUri}),Re("Website",l)].filter(g=>!!g),y=jr(r);y!=="contract_call"&&u&&f.push(q("To",u)),r.to&&["erc20_transfer","contract_call"].includes(y)&&f.push(q("Contract",r.to));let h={title:m,details:[{title:"Transaction Details",items:f},...c?[Pe(c)]:[]],networkFeeSelector:!0,alert:o,balanceChange:a,tokenApprovals:i,isSimulationSuccessful:n},R={type:vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION,account:r.from,data:{type:2,nonce:Number(r.nonce),gasLimit:Number(r.gas),maxFeePerGas:r.maxFeePerGas,maxPriorityFeePerGas:r.maxPriorityFeePerGas,to:r.to,from:r.from,data:r.data,value:r.value,chainId:r.chainId??t.chainId,accessList:r.accessList}};return {displayData:h,signingData:R}},"buildTxApprovalRequest");var gt=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let n=chunkVYIKXRYZ_cjs.a(()=>e.send("eth_sendRawTransaction",[t.signedData]),"broadcast");return r?.shouldRetry?ce({operation:()=>n(),isSuccess:()=>!0,maxRetries:6,backoffPolicy:G.linearThenExponential(4,1e3)}):n()},"getTxHash");function Se(e,t,r="tx"){return `${e}/${r}/${t}`}chunkVYIKXRYZ_cjs.a(Se,"getExplorerAddressByNetwork");var ze=chunkVYIKXRYZ_cjs.a(async({explorerUrl:e,provider:t,txHash:r,onTransactionPending:n,onTransactionConfirmed:a,onTransactionReverted:i,request:o})=>{try{let c=Se(e,r);if(n({txHash:r,request:o,explorerLink:c}),(await ce({operation:async()=>t.getTransactionReceipt(r),isSuccess:m=>!!m,backoffPolicy:G.linearThenExponential(15,750),maxRetries:20}))?.status===1)return a({txHash:r,explorerLink:c,request:o}),!0}catch(c){console.error(c);}return i({txHash:r,request:o}),!1},"waitForTransactionReceipt");var ht=new Map,qr=chunkVYIKXRYZ_cjs.a((e,t,r)=>(ht.set(e,{signingRequests:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a},i)=>{let o=ht.get(e);if(!o)throw rpcErrors.rpcErrors.resourceNotFound();let{signingRequests:c}=o,p={signingRequests:c.map((m,u)=>{if(i===void 0||i===u){let{signingData:f}=m;return {signingData:{...f,data:{...f.data,maxFeePerGas:n??f.data.maxFeePerGas,maxPriorityFeePerGas:a??f.data.maxPriorityFeePerGas}},displayData:m.displayData}}return m}),displayData:r};return ht.set(e,p),p},cleanup:()=>ht.delete(e)}),"getTxBatchUpdater");function de(e){return !("type"in e)}chunkVYIKXRYZ_cjs.a(de,"isNetworkToken");function Tt(e){return e.type===vmModuleTypes.TokenType.ERC20}chunkVYIKXRYZ_cjs.a(Tt,"isERC20Token");function zr(e){return typeof e.to=="string"}chunkVYIKXRYZ_cjs.a(zr,"hasToField");function Yr(e){return "requestBatchApproval"in e&&typeof e.requestBatchApproval=="function"}chunkVYIKXRYZ_cjs.a(Yr,"supportsBatchApprovals");function ko(e){return typeof e=="object"&&e!==null&&"ins"in e&&"outs"in e&&Array.isArray(e.ins)&&Array.isArray(e.outs)}chunkVYIKXRYZ_cjs.a(ko,"isBalanceChange");function Ro(e){return typeof e=="object"&&e!==null&&"approvals"in e&&"isEditable"in e&&Array.isArray(e.approvals)}chunkVYIKXRYZ_cjs.a(Ro,"isTokenApprovals");function Xt(e){return ko(e)?e.ins.length===0&&e.outs.length===0:Ro(e)?e.approvals.length===0:!1}chunkVYIKXRYZ_cjs.a(Xt,"isEmpty");var Kr=chunkVYIKXRYZ_cjs.a(async({chainId:e,params:t,domain:r,withGasEstimation:n,blockaid:a})=>{let i=["validation","simulation"];return n&&i.push("gas_estimation"),a.evm.transactionBulk.scan({chain:e.toString(),options:i,data:t,metadata:r&&r.length>0?{domain:r}:{non_dapp:!0}})},"scanTransactionBatch"),Jr=chunkVYIKXRYZ_cjs.a(async({chainId:e,params:t,domain:r,blockaid:n})=>n.evm.transaction.scan({account_address:t.from,chain:e.toString(),options:["validation","simulation"],data:{from:t.from,to:t.to,data:t.data,value:t.value,gas:t.gas,gas_price:t.gasPrice},metadata:r&&r.length>0?{domain:r}:{non_dapp:!0}}),"scanTransaction"),Xr=chunkVYIKXRYZ_cjs.a(async({chainId:e,accountAddress:t,data:r,domain:n,blockaid:a})=>a.evm.jsonRpc.scan({chain:e.toString(),options:["validation","simulation"],account_address:t,data:r,metadata:n&&n.length>0?{domain:n}:{non_dapp:!0}}),"scanJsonRpc");var tn=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{if(!e.data)return {tokenApprovals:void 0,balanceChange:void 0};try{let n=new ethers.ethers.Contract(e.to,en__default.default.abi,r),a=await Promise.all([n.name?.(),n.symbol?.(),n.decimals?.()]),i=Zr__default.default(a[0]),o=Zr__default.default(a[1]),c=parseInt(a[2]),l={type:vmModuleTypes.TokenType.ERC20,name:i,chainId:t,symbol:o,decimals:c,address:e.to,contractType:"ERC-20"},p=new ethers.ethers.Interface(en__default.default.abi),m=p.getFunction(e.data.slice(0,10)),u=p.decodeFunctionData(e.data.slice(0,10),e.data);if(m?.name==="transfer")return {balanceChange:{outs:[{items:[{displayValue:new coreUtilsSdk.TokenUnit(u.amount,l.decimals,l.symbol).toDisplay(),usdPrice:void 0}],token:l}],ins:[]}};if(m?.name==="approve")return {tokenApprovals:{isEditable:!0,approvals:[{token:l,spenderAddress:u.spender,value:u.amount}]}}}catch(n){console.error("parseErc20Tx error",n);}return {tokenApprovals:void 0,balanceChange:void 0}},"parseWithErc20Abi");var ne={[vmModuleTypes.AlertType.WARNING]:{type:vmModuleTypes.AlertType.WARNING,details:{title:"Suspicious transaction",description:"Use caution, this transaction might be malicious."}},[vmModuleTypes.AlertType.DANGER]:{type:vmModuleTypes.AlertType.DANGER,details:{title:"Scam transaction",description:"This transaction has been flagged as malicious, I understand the risk.",body:["This transaction is malicious","do not proceed"],actionTitles:{reject:"Reject Transaction",proceed:"Proceed Anyway"}}}};var nn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,blockaid:i})=>{let o;try{o=await Jr({chainId:n,params:r,domain:t,blockaid:i});}catch(c){console.error("simulateTransaction error",c);}return Zt({rpcMethod:e,params:r,chainId:n,provider:a,simulationResult:o})},"simulateTransaction"),Zt=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,params:t,chainId:r,provider:n,simulationResult:a})=>{let i,o,c,l=!1,p;if(a){let{validation:m,simulation:u,gas_estimation:f}=a;m?.result_type==="Warning"?i=ne[vmModuleTypes.AlertType.WARNING]:m?.result_type==="Malicious"&&(i=ne[vmModuleTypes.AlertType.DANGER]),u?.status==="Success"&&(l=!0,c=an(e,u.account_summary),o=on(u.account_summary.assets_diffs)),f?.status==="Success"&&(p=Number(f.estimate));}if(!l&&zr(t)){let m=await tn(t,r,n);o=m.balanceChange,c=m.tokenApprovals;}return {alert:i,balanceChange:o,tokenApprovals:c,isSimulationSuccessful:l,estimatedGasLimit:p}},"processTransactionSimulation"),xo=chunkVYIKXRYZ_cjs.a(e=>e.trace_type==="ExposureTrace","isExposureTrace"),Co=chunkVYIKXRYZ_cjs.a((e,t)=>`${e.toLowerCase()}.${t.toLowerCase()}`,"normalizeAddresses"),No=chunkVYIKXRYZ_cjs.a(e=>e===void 0||e.length===0?{}:e.reduce((t,r)=>xo(r)?{[Co(r.spender,r.asset.address)]:r}:t,{}),"mapExposureTracesToSpenderAsset"),an=chunkVYIKXRYZ_cjs.a((e,t)=>{let{traces:r}=t,n=No(r),a=Object.entries(n).map(([o,c])=>{let l=sn(c.asset);if(!l)return;let p={token:l,spenderAddress:c.spender,logoUri:l.logoUri};if(c.type==="ERC20ExposureTrace"){let{exposed:{raw_value:m,value:u,usd_price:f}}=c;if(!u||u<=0)return;p.value=m,p.usdPrice=`${f}`;}if(c.type==="ERC721ExposureTrace")if(!c.exposed)p.value=`0x${ethers.MaxUint256.toString(16)}`;else {let{usd_price:m,amount:u}=c.exposed;p.value=`${u}`,p.usdPrice=`${m}`;}return p}).filter(Boolean);return a.length===0?void 0:{isEditable:a.length===1&&a[0]?.token.type===vmModuleTypes.TokenType.ERC20&&e===vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION,approvals:a}},"processTokenApprovals"),on=chunkVYIKXRYZ_cjs.a(e=>{let t=rn(e,"in"),r=rn(e,"out");if(!(t.length===0&&r.length===0))return {ins:t,outs:r}},"processBalanceChange"),rn=chunkVYIKXRYZ_cjs.a((e,t)=>e.filter(r=>r[t].length>0).sort((r,n)=>r[t].length-n[t].length).map(r=>{let n=r.asset,a="address"in n?sn(n):wo(n);if(!a)return;let i=r[t].map(o=>{let c;if("value"in o&&o.value)if("decimals"in a){let u=coreUtilsSdk.numberToBN(o.value,a.decimals);c=coreUtilsSdk.balanceToDisplayValue(u,a.decimals);}else ethers.isHexString(o.value)&&(c=parseInt(o.value,16).toString());else "type"in a&&a.type===vmModuleTypes.TokenType.ERC721&&(c="1");if(!c)return;let l="logo_url"in o?o.logo_url:void 0,p="token_id"in o?o.token_id:void 0;return {displayValue:c,usdPrice:o.usd_price,...l!==void 0&&{logoUri:l},...p!==void 0&&{tokenId:p}}}).filter(o=>o!==void 0);return {token:a,items:i}}).filter(r=>r!==void 0),"processAssetDiffs"),sn=chunkVYIKXRYZ_cjs.a(e=>{let t;return e.type==="ERC20"?t={type:vmModuleTypes.TokenType.ERC20,address:e.address,decimals:e.decimals,name:e.name??e.symbol??"",symbol:e.symbol??"",logoUri:e.logo_url}:e.type==="ERC1155"?t={type:vmModuleTypes.TokenType.ERC1155,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}:e.type==="ERC721"?t={type:vmModuleTypes.TokenType.ERC721,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}:e.type==="NONERC"&&(t={type:vmModuleTypes.TokenType.NONERC,address:e.address,logoUri:e.logo_url,name:e.name,symbol:e.symbol}),t},"convertAssetToNetworkContractToken"),wo=chunkVYIKXRYZ_cjs.a(e=>({name:e.name??"",symbol:e.symbol??"",decimals:e.decimals,description:"",logoUri:e.logo_url}),"convertNativeAssetToToken"),cn=chunkVYIKXRYZ_cjs.a(async({request:e,dAppUrl:t,accountAddress:r,chainId:n,data:a,blockaid:i})=>{let o,c,l;try{let{validation:p,simulation:m}=await Xr({chainId:n,accountAddress:r,data:a,domain:t,blockaid:i});p?.result_type==="Warning"?o=ne[vmModuleTypes.AlertType.WARNING]:p?.result_type==="Malicious"&&(o=ne[vmModuleTypes.AlertType.DANGER]),m?.status==="Success"&&(l=an(e.method,m.account_summary),c=on(m.account_summary.assets_diffs));}catch(p){console.error("processJsonRpcSimulation error",p),o=ne[vmModuleTypes.AlertType.WARNING];}return {alert:o,balanceChange:c,tokenApprovals:l}},"processJsonRpcSimulation");var pn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,populateMissingGas:i,blockaid:o})=>{let c;try{c=await Kr({chainId:n,params:r,domain:t,withGasEstimation:i,blockaid:o});}catch(y){return console.error("simulateTransactionBatch error",y),{isSimulationSuccessful:!1,alert:ne[vmModuleTypes.AlertType.WARNING],scans:[]}}let l=await Promise.all(c.map(async(y,h)=>{let R=r[h],g=await Zt({chainId:n,params:r[h],provider:a,rpcMethod:e,simulationResult:y});return i&&!R.gas&&g.estimatedGasLimit&&(R.gas=`0x${g.estimatedGasLimit.toString(16)}`),{transaction:R,...g}})),p=l.every(y=>y.isSimulationSuccessful),m=_o(l),u=Bo(l),f=Do(l);return {isSimulationSuccessful:p,alert:m,balanceChange:u,tokenApprovals:f,scans:l.map(y=>(y.tokenApprovals&&(y.tokenApprovals.isEditable=!1),y))}},"simulateTransactionBatch"),_o=chunkVYIKXRYZ_cjs.a(e=>{let t={[vmModuleTypes.AlertType.INFO]:0,[vmModuleTypes.AlertType.WARNING]:1,[vmModuleTypes.AlertType.DANGER]:2};return e.reduce((r,{alert:n})=>n&&(!r||t[n.type]>t[r.type])?n:r,void 0)},"getHighestAlert"),Do=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(a=>{let i=r.approvals.find(o=>a.token.address===o.token.address&&a.spenderAddress===o.spenderAddress);if(!i){r.approvals.push({...a});return}i.value=a.value,i.usdPrice=a.usdPrice;}),r),{approvals:[],isEditable:!1});return Fo(t,e),Xt(t)?void 0:t},"aggregateTokenApprovals"),Bo=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(a=>{let i=ln(r.ins,a);i?i.items.push(...a.items):r.ins.push(a);}),n.outs.forEach(a=>{let i=ln(r.outs,a);i?i.items.push(...a.items):r.outs.push({...a});})),r),{ins:[],outs:[]});return Xt(t)?void 0:t},"aggregateBalanceChange"),ln=chunkVYIKXRYZ_cjs.a((e,t)=>e.find(r=>de(r.token)&&de(t.token)?r.token.symbol===t.token.symbol:!de(r.token)&&!de(t.token)?r.token.address===t.token.address:!1),"findTokenDiff"),Fo=chunkVYIKXRYZ_cjs.a((e,t)=>{for(let r of e.approvals)for(let n of t)if(!(!n.isSimulationSuccessful||!n.balanceChange||!n.balanceChange.outs.some(i=>!de(i.token)&&!de(r.token)&&i.token.address===r.token.address)))if(!n.tokenApprovals)e.approvals=e.approvals.filter(i=>i.spenderAddress!==r.spenderAddress&&r.token.address!==i.token.address);else {let i=n.tokenApprovals.approvals.find(o=>o.spenderAddress===r.spenderAddress&&o.token.address===r.token.address);if(!i)continue;r.usdPrice=i.usdPrice,r.value=i.value;}},"clearSpentApprovals");var Uo=chunkVYIKXRYZ_cjs.a(e=>{if(!e||typeof e!="object")return !1;let t=e;return typeof t.agentId=="string"&&typeof t.agentRegistry=="string"},"isAgentIdentityDeclaration"),Ce=chunkVYIKXRYZ_cjs.a(e=>{let t=e.context?.agentIdentity;return Uo(t)?t:null},"getAgentIdentityFromContext");var mn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,success:o,error:c}=Or(a);if(!o)return console.error("invalid params",c),{error:rpcErrors.rpcErrors.invalidParams(O("Transaction params are invalid",c))};let{transactions:l,options:p={}}=i,{skipIntermediateTxs:m=!1}=p,u=await F({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});try{await Hr(l,u);}catch(L){return console.error("Unable to calculate nonce",L),{error:rpcErrors.rpcErrors.internal(O("Unable to calculate nonce",L))}}let f=l.every(L=>Number(L.gas)>0),{alert:y,balanceChange:h,isSimulationSuccessful:R,tokenApprovals:g,scans:I}=await pn({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:u,populateMissingGas:!f,blockaid:n});if(!I.every(({transaction:L})=>Number(L.gas)>0))return console.error("Gas limit is missing in some transactions"),{error:rpcErrors.rpcErrors.internal({message:"Gas limit is missing in some transactions"})};let w=Ce(e),P=w?await re({declaration:w,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,V={title:"Do you approve these transactions?",details:[{title:"Transaction Details",items:[q("Account",l[0].from),lt("Network",{name:t.chainName,logoUri:t.logoUri}),Re("Website",e.dappInfo)]},...P?[Pe(P)]:[]],isSimulationSuccessful:R,balanceChange:h,alert:y,tokenApprovals:g,networkFeeSelector:!0},ie=I.map(L=>yt(e,t,L.transaction,L,P)),{cleanup:b,updateTx:E}=qr(e.requestId,ie,V),_=await r.requestBatchApproval({request:e,signingRequests:ie,displayData:V,updateTx:E});if(b(),"error"in _)return {error:_.error};if(_.result.length!==l.length)return {error:rpcErrors.rpcErrors.internal({message:`Invalid number of signatures. Expected ${l.length}, got ${_.result.length}`})};let Oe=[];for(let[L,ua]of _.result.entries()){let hr=L===_.result.length-1,Ut=await gt(u,ua);if(hr&&ze({explorerUrl:t.explorerUrl??"",provider:u,txHash:Ut,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),!hr&&!m&&!await ze({explorerUrl:t.explorerUrl??"",provider:u,txHash:Ut,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}))return {error:rpcErrors.rpcErrors.internal({message:`Transaction ${L+1} failed! Batch execution stopped`})};Oe.push(Ut);}return {result:Oe}},"ethSendTransactionBatch");function dn(e,t,r){return new ethers.ethers.Contract(e,en__default.default.abi).interface.encodeFunctionData("approve",[t,r])}chunkVYIKXRYZ_cjs.a(dn,"encodeApprovalLimit");var bt=new Map,un=chunkVYIKXRYZ_cjs.a((e,t,r)=>(bt.set(e,{signingData:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a,approvalLimit:i,gasLimit:o})=>{let c=bt.get(e);if(!c)throw rpcErrors.rpcErrors.resourceNotFound();let{signingData:l,displayData:p}=c,m={...l,data:{...l.data,gasLimit:o??l.data.gasLimit,maxFeePerGas:n??l.data.maxFeePerGas,maxPriorityFeePerGas:a??l.data.maxPriorityFeePerGas}},u={...p};if(typeof i=="string"){if(!i.startsWith("0x"))throw rpcErrors.rpcErrors.invalidInput("Expected approvalLimit to be a hexadecimal number (0x-prefixed)");let y=p.tokenApprovals;Go(y),Vo(l.data.data);let h=y.approvals[0];m.data.data=dn(h.token.address,h.spenderAddress,i),u.tokenApprovals={approvals:[{...h,value:i}],isEditable:!0};}let f={signingData:m,displayData:u};return bt.set(e,f),f},cleanup:()=>bt.delete(e)}),"getTxUpdater");function Go(e){if(!e||!e.isEditable||e.approvals.length!==1)throw rpcErrors.rpcErrors.invalidInput("Cannot edit the token approval for this request. Please start a new request instead.")}chunkVYIKXRYZ_cjs.a(Go,"ensureTokenApprovalCanBeEdited");function Vo(e){if((!e||e==="0x"?null:Ae({data:e??void 0}))!=="approve")throw rpcErrors.rpcErrors.invalidInput("Cannot change invoked method for requests in progress. Please start a new request instead.")}chunkVYIKXRYZ_cjs.a(Vo,"ensureApproveWasCalled");var fn=chunkVYIKXRYZ_cjs.a(async({transactionParams:{from:e,to:t,data:r,value:n,accessList:a},provider:i})=>{let o=await i.getTransactionCount(e);return Number(await i.estimateGas({from:e,to:t,nonce:o,data:r,value:n,accessList:a}))},"estimateGasLimit");var Ho=zod.z.tuple([Ie]),yn=chunkVYIKXRYZ_cjs.a(e=>Ho.safeParse(e),"parseRequestParams");var gn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,error:o,success:c}=yn(a);if(!c)return console.error("invalid params",o),{error:rpcErrors.rpcErrors.invalidParams(O("Transaction params are invalid",o))};let[l]=i,p=await F({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});if(!l.gas||Number(l.gas)<0)try{let P=await fn({transactionParams:{from:l.from,to:l.to,data:l.data,value:l.value,accessList:l.accessList},provider:p});l.gas="0x"+P.toString(16);}catch(P){return {error:rpcErrors.rpcErrors.internal(O("Unable to calculate gas limit",P))}}if(!l.nonce)try{let P=await ft({from:l.from,provider:p});l.nonce=String(P);}catch(P){return {error:rpcErrors.rpcErrors.internal(O("Unable to calculate nonce",P))}}let m=Ce(e),u=m?await re({declaration:m,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,f=await nn({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:p,blockaid:n}),{displayData:y,signingData:h}=yt(e,t,l,f,u),{updateTx:R,cleanup:g}=un(e.requestId,h,y),I=await r.requestApproval({request:e,displayData:y,signingData:h,updateTx:R});if(g(),"error"in I)return {error:I.error};let k,w=e.context?.shouldRetry===!0;try{k=await gt(p,I,{shouldRetry:w});}catch(P){return {error:rpcErrors.rpcErrors.internal(O("Unable to get transaction hash",P))}}return ze({explorerUrl:t.explorerUrl??"",provider:p,txHash:k,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:k}},"ethSendTransaction");var Qt=chunkVYIKXRYZ_cjs.a(e=>{let t="";t+=`Domain
27
+ `;for(let r in e.domain)t+=` ${r}: ${ue(String(e.domain[r]))}
28
28
  `;t+=`
29
29
  Message
30
30
  `;for(let r in e.message)if(typeof e.message[r]=="object"&&!Array.isArray(e.message[r])){t+=` ${r}:
31
31
  `;for(let n in e.message[r])Array.isArray(e.message[r][n])?(t+=` ${n}:
32
- `,e.message[r][n].forEach((a,i)=>{t+=` ${i}: ${me(a)}
33
- `;})):t+=` ${n}: ${me(String(e.message[r][n]))}
32
+ `,e.message[r][n].forEach((a,i)=>{t+=` ${i}: ${ue(a)}
33
+ `;})):t+=` ${n}: ${ue(String(e.message[r][n]))}
34
34
  `;}else Array.isArray(e.message[r])?(t+=` ${r}:
35
35
  `,e.message[r].forEach((n,a)=>{t+=` ${a}:
36
36
  `;for(let i in n)Array.isArray(n[i])?(t+=` ${i}:
37
- `,n[i].forEach((o,c)=>{t+=` ${c}: ${me(o)}
38
- `;})):t+=` ${i}: ${me(String(n[i]))}
39
- `;})):t+=` ${r}: ${me(String(e.message[r]))}
37
+ `,n[i].forEach((o,c)=>{t+=` ${c}: ${ue(o)}
38
+ `;})):t+=` ${i}: ${ue(String(n[i]))}
39
+ `;})):t+=` ${r}: ${ue(String(e.message[r]))}
40
40
  `;return t},"beautifyComplexMessage"),hn=chunkVYIKXRYZ_cjs.a(e=>{let t="";return e.forEach(r=>{t+=`${r.name}:
41
- `,t+=`${me(String(r.value))}
41
+ `,t+=`${ue(String(r.value))}
42
42
 
43
- `;}),t},"beautifySimpleMessage"),me=chunkVYIKXRYZ_cjs.a(e=>{let t={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 e.split("").map(r=>t[r]||r).join("")},"toUnicodeBold");var ze=zod.z.string().describe("message"),O=zod.z.string().describe("address");var kn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.ETH_SIGN),params:zod.z.tuple([O,ze])});var Rn=zod.z.object({name:zod.z.string(),type:zod.z.string()}),xe=zod.z.object({types:zod.z.object({EIP712Domain:zod.z.array(Rn)}).catchall(zod.z.array(Rn)),primaryType:zod.z.string(),domain:zod.z.record(zod.z.any()),message:zod.z.record(zod.z.any())}),er=zod.z.array(zod.z.object({type:zod.z.string(),name:zod.z.string(),value:zod.z.union([zod.z.string(),zod.z.number(),zod.z.boolean(),zod.z.object({}).passthrough(),zod.z.array(zod.z.unknown()),zod.z.null()])})).nonempty(),tr=xe.or(er),bn=zod.z.union([zod.z.string().describe("data string"),xe]),vn=zod.z.union([zod.z.string().describe("data string"),tr]),En=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA),params:zod.z.tuple([O,vn])}),In=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1),params:zod.z.tuple([O,vn])}),Pn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3),params:zod.z.tuple([O,bn])}),An=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4),params:zod.z.tuple([O,bn])});var Sn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.PERSONAL_SIGN),params:zod.z.union([zod.z.tuple([ze,O]),zod.z.tuple([ze,O,zod.z.string().optional().describe("password")])])});var jo=zod.z.discriminatedUnion("method",[Sn,kn,En,In,Pn,An]).transform((e,t)=>{let{method:r,params:n}=e;switch(r){case vmModuleTypes.RpcMethod.PERSONAL_SIGN:return {data:n[0],address:n[1],method:r};case vmModuleTypes.RpcMethod.ETH_SIGN:return {data:n[1],address:n[0],method:r};case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1:{let a=n[0],i=n[1];if(typeof i!="string")return {data:i,address:a,method:r};try{let o=JSON.parse(i);return {data:tr.parse(o),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4:{let a=n[0],i=n[1];if(typeof i!="string")return {data:i,address:a,method:r};try{let o=JSON.parse(i);return {data:xe.parse(o),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}}});function xn(e){return jo.safeParse(e)}chunkVYIKXRYZ_cjs.a(xn,"parseRequestParams");var Nn=chunkVYIKXRYZ_cjs.a(e=>er.safeParse(e).success,"isTypedDataV1"),jm=chunkVYIKXRYZ_cjs.a(e=>xe.safeParse(e).success,"isTypedData");var Cn=chunkVYIKXRYZ_cjs.a(e=>{try{let{EIP712Domain:t,...r}=e.types;return ethers.TypedDataEncoder.getPayload(e.domain,r,e.message),{isValid:!0}}catch(t){return {isValid:!1,error:t}}},"isTypedDataValid");var wn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let a=xn({method:e.method,params:e.params});if(!a.success)return console.error("invalid params",a.error),{success:!1,error:rpcErrors.rpcErrors.invalidParams(G("Params are invalid",a.error))};let{method:i,data:o,address:c}=a.data,l;(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4)&&(l=Cn(o));let p,m,u;if(l&&!l.isValid&&(u={type:vmModuleTypes.AlertType.INFO,details:{title:"Warning: Verify Message Content",description:"This message contains non-standard elements. Please verify message content!",detailedDescription:l.error.toString()}}),i===vmModuleTypes.RpcMethod.ETH_SIGN)p={type:i,account:c,data:o},m=o;else if(i===vmModuleTypes.RpcMethod.PERSONAL_SIGN)p={type:i,account:c,data:o},m=ethers.toUtf8String(o);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1)p={type:i,account:c,data:o},m=Nn(o)?hn(o):Zt(o);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4){p={type:i,account:c,data:o};let{types:b,primaryType:v,...S}=o;m=Zt(S);}if(!p||!m)return {success:!1,error:rpcErrors.rpcErrors.internal("Unable to generate signing data")};let y=await cn({request:e,accountAddress:c,chainId:t.chainId,data:{method:i,params:e.params},dAppUrl:e.dappInfo.url,blockaid:n}),f=Se(e),g=f?await ee({declaration:f,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,k={title:"Sign Message",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} is requesting to sign the following message`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},account:c,details:[{title:"Message",items:[V("Message",m,"vertical")]},...g?[Ee(g)]:[]],alert:y?.alert??u,balanceChange:y?.balanceChange,tokenApprovals:y?.tokenApprovals},R=await r.requestApproval({request:e,displayData:k,signingData:p});return "error"in R?{error:R.error}:"signedData"in R?{result:R.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"ethSign");var _n=chunkVYIKXRYZ_cjs.a(async(e,t)=>{try{return {result:await(await D({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders})).send(e.method,e.params)}}catch(r){let n=r.info?.error??r.error;return n&&typeof n.code=="number"?{error:n}:{error:rpcErrors.rpcErrors.internal(r.message)}}},"forwardToRpcNode");var Bn=chunkVYIKXRYZ_cjs.a(async({accountIndex:e,xpub:t,walletType:r})=>{switch(r){case vmModuleTypes.WalletType.Mnemonic:case vmModuleTypes.WalletType.Ledger:case vmModuleTypes.WalletType.Keystone:return {[vmModuleTypes.NetworkVMType.EVM]:coreWalletsSdk.getAddressFromXPub(t,e)};case vmModuleTypes.WalletType.LedgerLive:case vmModuleTypes.WalletType.Seedless:{let n=Buffer.from(t,"hex");return {[vmModuleTypes.NetworkVMType.EVM]:coreWalletsSdk.getEvmAddressFromPubKey(n)}}default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}},"getAddress");function we(e,t){return e.then(r=>({id:t,status:"fulfilled",value:r})).catch(r=>({id:t,status:"rejected",reason:r}))}chunkVYIKXRYZ_cjs.a(we,"addIdToPromise");async function _e(e){return await Promise.allSettled(e).then(t=>t.reduce((r,n)=>{if(n.status==="fulfilled"){let a=n.value;a.status==="fulfilled"?r[a.id]=a.value:r[a.id]={error:a.reason};}return r},{}))}chunkVYIKXRYZ_cjs.a(_e,"settleAllIdPromises");var Qo={"ERC-20":vmModuleTypes.TokenType.ERC20,"ERC-721":vmModuleTypes.TokenType.ERC721,"ERC-1155":vmModuleTypes.TokenType.ERC1155,"NON-ERC":vmModuleTypes.TokenType.NONERC,SPL:vmModuleTypes.TokenType.SPL},es=zod.z.string().transform((e,t)=>{let r=Qo[e];return r||(t.addIssue({code:zod.z.ZodIssueCode.custom,message:`Unknown contractType: ${e}`}),zod.z.NEVER)}),ts=zod.z.object({address:zod.z.string(),chainId:zod.z.number(),contractType:es,decimals:zod.z.number(),internalId:zod.z.string().nullish(),isNative:zod.z.boolean(),logoUri:zod.z.string().nullish(),name:zod.z.string(),symbol:zod.z.string(),caip2Id:zod.z.string().nullish(),color:zod.z.string().nullish()}),rs=zod.z.array(zod.z.unknown()).transform(e=>e.flatMap(t=>{let r=ts.safeParse(t);return r.success?[r.data]:[]}));async function Et({chainId:e,proxyApiUrl:t}){return (await F([`${t}/tokens?evmChainId=${e}`],rs)).map(n=>({...n,type:n.contractType}))}chunkVYIKXRYZ_cjs.a(Et,"getTokens");var _,De,de,Xe,Be,nr=class nr{constructor({network:t,storage:r,proxyApiUrl:n,customTokens:a,fetch:i}){chunkVYIKXRYZ_cjs.d(this,_,void 0);chunkVYIKXRYZ_cjs.d(this,De,void 0);chunkVYIKXRYZ_cjs.d(this,de,void 0);chunkVYIKXRYZ_cjs.d(this,Xe,void 0);chunkVYIKXRYZ_cjs.d(this,Be,void 0);chunkVYIKXRYZ_cjs.e(this,_,t),chunkVYIKXRYZ_cjs.e(this,De,r),chunkVYIKXRYZ_cjs.e(this,de,n),chunkVYIKXRYZ_cjs.e(this,Xe,a),chunkVYIKXRYZ_cjs.e(this,Be,i);}async isNetworkSupported(){return !0}async getNativeBalance({chainId:t,address:r,currency:n}){let a=await D({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,_).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,_).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,_).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,_).customRpcHeaders}),i=chunkVYIKXRYZ_cjs.c(this,_).pricingProviders?.coingecko.nativeTokenId,o=chunkVYIKXRYZ_cjs.c(this,_).networkToken,c=new Q({storage:chunkVYIKXRYZ_cjs.c(this,De),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,de),fetch:chunkVYIKXRYZ_cjs.c(this,Be)}),l=i?await c.getSimplePrice({coinIds:[i],currencies:[n]}):{},p=l?.[i??""]?.[n]?.price??void 0,m=l?.[i??""]?.[n]?.marketCap??void 0,u=l?.[i??""]?.[n]?.vol24??void 0,y=l?.[i??""]?.[n]?.change24??void 0,f=await a.getBalance(r),g=new coreUtilsSdk.TokenUnit(f,o.decimals,o.symbol),k=p!==void 0?g.mul(p):void 0;return {...o,coingeckoId:i??"",type:vmModuleTypes.TokenType.NATIVE,balance:f,balanceDisplayValue:g.toDisplay(),balanceInCurrency:k?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:k?.toDisplay({fixedDp:2}),priceInCurrency:p,marketCap:m,vol24:u,change24:y}}async listErc20Balances({chainId:t,address:r,currency:n}){let a=await D({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,_).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,_).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,_).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,_).customRpcHeaders}),i=chunkVYIKXRYZ_cjs.c(this,_).pricingProviders?.coingecko.assetPlatformId,o=chunkVYIKXRYZ_cjs.c(this,_).pricingProviders?.coingecko.nativeTokenId,c=await Et({chainId:Number(t),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,de)}),l=c.map(b=>b.address),p=[...c,...chunkVYIKXRYZ_cjs.c(this,Xe)].filter(gt),m=chunkVYIKXRYZ_cjs.a(async b=>{let h=await new ethers.ethers.Contract(b.address,en__default.default.abi,a).balanceOf?.(r)||0n;return {...b,balance:h}},"getTokenWithBalance"),u=p.map(b=>we(m(b),b.address)),y=await _e(u),f=new Q({storage:chunkVYIKXRYZ_cjs.c(this,De),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,de),fetch:chunkVYIKXRYZ_cjs.c(this,Be)}),g=i&&await f.getPricesByAddresses(l,i,n)||{},k=Object.keys(y),R={};for(let b=0;b<k.length;b++){let v=k[b];if(v===void 0)continue;let S=y[v];if(S===void 0||"error"in S){R[v]={error:`rpcService:getTokenWithBalance failed: ${S?.error??"unknown error"}`};continue}let h=g?.[o??""]?.[n]?.price??void 0,E=g?.[o??""]?.[n]?.marketCap??void 0,L=g?.[o??""]?.[n]?.vol24??void 0,Bt=g?.[o??""]?.[n]?.change24??void 0,nt=new coreUtilsSdk.TokenUnit(S.balance,S.decimals,S.symbol),W=h!==void 0?nt.mul(h):void 0;R[S.address.toLowerCase()]={...S,type:vmModuleTypes.TokenType.ERC20,balance:S.balance,balanceDisplayValue:nt.toDisplay(),balanceInCurrency:W?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:W?.toDisplay({fixedDp:2}),priceInCurrency:h,marketCap:E,change24:Bt,vol24:L,reputation:null};}return R}async listNftBalances(){return {}}};_=new WeakMap,De=new WeakMap,de=new WeakMap,Xe=new WeakMap,Be=new WeakMap,chunkVYIKXRYZ_cjs.a(nr,"RpcService");var It=nr;async function Mn(e,t){let r=e.map(async(i,o)=>({index:o,result:await t(i)})),a=(await Promise.allSettled(r)).filter(i=>i.status==="fulfilled").map(i=>i).find(i=>i.value.result);return a?e[a.value.index]:void 0}chunkVYIKXRYZ_cjs.a(Mn,"findAsync");var Ln=chunkVYIKXRYZ_cjs.a(async({addresses:e,currency:t,network:r,proxyApiUrl:n,tokenTypes:a=[vmModuleTypes.TokenType.NATIVE,vmModuleTypes.TokenType.ERC20,vmModuleTypes.TokenType.ERC721,vmModuleTypes.TokenType.ERC1155],customTokens:i=[],storage:o,balanceServices:c=[],tokenService:l,fetch:p})=>{let m=r.chainId,u=[...c,new It({network:r,storage:o,proxyApiUrl:n,customTokens:i,fetch:p})],y=await Mn(u,g=>g.isNetworkSupported(r.chainId)),f={};if(y){let g=[],k=[],R=[];e.forEach(h=>{a.includes(vmModuleTypes.TokenType.NATIVE)&&g.push(we(y.getNativeBalance({address:h,currency:t.toUpperCase(),chainId:m}).then(async E=>{if(E.symbol==="AVAX"){let L=await l.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:t.toUpperCase()});return {...E,priceInCurrency:L.priceInCurrency,marketCap:L.marketCap,vol24:L.vol24,change24:L.change24}}return E}),h)),a.includes(vmModuleTypes.TokenType.ERC20)&&k.push(we(y.listErc20Balances({customTokens:i.filter(gt),currency:t.toUpperCase(),chainId:m,address:h,pageSize:100}),h)),(a.includes(vmModuleTypes.TokenType.ERC721)||a.includes(vmModuleTypes.TokenType.ERC1155))&&R.push(we(y.listNftBalances({chainId:m,address:h}),h));});let b=await _e(g),v=await _e(k),S=await _e(R);Object.keys(b).forEach(h=>{let E=b[h];if(!E||"error"in E){f[h]={error:`getNativeBalance failed: ${E?.error??"unknown error"}`};return}let L=E.symbol;f[h]={[L]:E};}),Object.keys(v).forEach(h=>{let E=v[h];!E||"error"in E&&typeof E.error!="string"?f[h]={...f[h],error:"listErc20Balances failed: unknown error"}:"error"in E&&typeof E.error=="string"?f[h]={...f[h],error:`listErc20Balances failed: ${E.error}`}:f[h]={...f[h],...E};}),Object.keys(S).forEach(h=>{let E=S[h];!E||"error"in E&&typeof E.error!="string"?f[h]={...f[h],error:"listNftBalances failed: unknown error"}:"error"in E&&typeof E.error=="string"?f[h]={...f[h],error:`listNftBalances failed: ${E.error}`}:f[h]={...f[h],...E};});}else e.forEach(g=>{f[g]={error:"unsupported network"};});return f},"getBalances");var or={LOW:1n,MEDIUM:4n,HIGH:6n},sr=500000000n,os=chunkVYIKXRYZ_cjs.a(e=>e===coreChainsSdk.ChainId.AVALANCHE_TESTNET_ID||e===coreChainsSdk.ChainId.AVALANCHE_MAINNET_ID,"isCChain"),On=137,Hn=80002,ss=chunkVYIKXRYZ_cjs.a(e=>e===On||e===Hn,"isPolygon"),is={[On]:"https://gasstation.polygon.technology/v2",[Hn]:"https://gasstation.polygon.technology/amoy"};function ue(e){return BigInt(Math.round(e*1e9))}chunkVYIKXRYZ_cjs.a(ue,"gweiToWei");async function cs(e){let t=is[e];if(!t)throw new Error(`No gas station URL for Polygon chain ${e}`);let r=await fetch(t);if(!r.ok)throw new Error(`Polygon Gas Station returned ${r.status}`);let n=await r.json();return {baseFee:ue(n.estimatedBaseFee),low:{maxFeePerGas:ue(n.safeLow.maxFee),maxPriorityFeePerGas:ue(n.safeLow.maxPriorityFee)},medium:{maxFeePerGas:ue(n.standard.maxFee),maxPriorityFeePerGas:ue(n.standard.maxPriorityFee)},high:{maxFeePerGas:ue(n.fast.maxFee),maxPriorityFeePerGas:ue(n.fast.maxPriorityFee)},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(cs,"getPolygonGasStationFees");async function $n({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,caipId:a,proxyApiUrl:i,customRpcHeaders:o}){let c=await D({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,customRpcHeaders:o});if(!i)throw rpcErrors.rpcErrors.internal("Proxy API URL is needed");if(os(e))try{let v=await ls(c);return {...v,baseFee:v.medium.maxFeePerGas,displayDecimals:9,isFixedFee:!1}}catch{console.error("eth_suggestPriceOptions call failed, falling back to legacy fee fetching");}if(ss(e))try{return await cs(e)}catch{console.error("Polygon Gas Station call failed, falling back to generic fee fetching");}let l=await c.getBlock("latest",!1);if(!l)throw rpcErrors.rpcErrors.internal("There is no block");let p=l.baseFeePerGas;if(!p)throw rpcErrors.rpcErrors.internal("Pre-EIP-1559 networks are not supported");let m=await ps(i,a),u=new coreUtilsSdk.TokenUnit(m,0,""),y=new coreUtilsSdk.TokenUnit(p,0,""),f=BigInt("1000000000"),g=y.mul(u).add(f).toSubUnit(),k=sr*or.LOW,R=sr*or.MEDIUM,b=sr*or.HIGH;return {baseFee:g,low:{maxFeePerGas:g+k,maxPriorityFeePerGas:k},medium:{maxFeePerGas:g+R,maxPriorityFeePerGas:R},high:{maxFeePerGas:g+b,maxPriorityFeePerGas:b},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a($n,"getNetworkFee");async function ls(e){let t=await e.send("eth_suggestPriceOptions",[]);return {low:{maxFeePerGas:BigInt(t.slow.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.slow.maxPriorityFeePerGas)},medium:{maxFeePerGas:BigInt(t.normal.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.normal.maxPriorityFeePerGas)},high:{maxFeePerGas:BigInt(t.fast.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.fast.maxPriorityFeePerGas)}}}chunkVYIKXRYZ_cjs.a(ls,"suggestPriceOptions");async function ps(e,t){if(!t)return 1.5;try{let n=await fetch(`${e}/gas/multiplier`);if(!n.ok)throw new Error(n.statusText);let a=await n.json();return a[t]??a.default}catch{return 1.5}}chunkVYIKXRYZ_cjs.a(ps,"getGasMultiplier");function jn(e){return e===vmModuleTypes.TokenType.ERC721||e===vmModuleTypes.TokenType.ERC1155}chunkVYIKXRYZ_cjs.a(jn,"isNftTokenType");function ir(e){let{txType:t,isSender:r,walletAddress:n,tokens:a}=e;if(a.length===0)return t;let i=n.toLowerCase(),o=a.some(m=>jn(m.type)&&m.to?.address?.toLowerCase()===i),c=a.some(m=>jn(m.type)&&m.from?.address?.toLowerCase()===i),l=t===vmModuleTypes.TransactionType.RECEIVE||t===vmModuleTypes.TransactionType.UNKNOWN||t===vmModuleTypes.TransactionType.TRANSFER||t===vmModuleTypes.TransactionType.AIRDROP,p=t===vmModuleTypes.TransactionType.SEND||t===vmModuleTypes.TransactionType.UNKNOWN||t===vmModuleTypes.TransactionType.TRANSFER||t===vmModuleTypes.TransactionType.AIRDROP;return !r&&o&&l?vmModuleTypes.TransactionType.NFT_RECEIVE:r&&c&&p?vmModuleTypes.TransactionType.NFT_SEND:t}chunkVYIKXRYZ_cjs.a(ir,"convertTransactionType");var qn=chunkVYIKXRYZ_cjs.a(({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a,i)=>{let o=!t&&!r&&!n,c=ds(e.method?.methodName),l=a.toLowerCase(),p=c.toLowerCase().includes("swap"),m=o&&e.from.address.toLowerCase()===l,u=o&&e.to.address.toLowerCase()===l,y=c==="Market Buy Orders With Eth"||c==="Buy NFT",f=c==="Approve",g=c.toLowerCase().includes("transfer"),k=c.toLowerCase().includes("airdrop"),R=c.toLowerCase().includes("unwrap"),b=c==="Fill Order",v;p?v=vmModuleTypes.TransactionType.SWAP:m?v=vmModuleTypes.TransactionType.SEND:u?v=vmModuleTypes.TransactionType.RECEIVE:y?v=vmModuleTypes.TransactionType.NFT_BUY:f?v=vmModuleTypes.TransactionType.APPROVE:g?v=vmModuleTypes.TransactionType.TRANSFER:k?v=vmModuleTypes.TransactionType.AIRDROP:R?v=vmModuleTypes.TransactionType.UNWRAP:b?v=vmModuleTypes.TransactionType.FILL_ORDER:v=vmModuleTypes.TransactionType.UNKNOWN;let S=e.from.address.toLowerCase()===l;return ir({txType:v,isSender:S,walletAddress:a,tokens:i})},"getTxType"),ds=chunkVYIKXRYZ_cjs.a((e="")=>e.includes("(")?ms__default.default(e.split("(",1)[0]):e,"parseRawMethod");function zn({tx:e,networkToken:t,explorerUrl:r,chainId:n,address:a}){let i=e.from_address.toLowerCase()===a.toLowerCase(),o=new Date(e.block_timestamp).getTime(),c=ys(e.category),l=!us.has(e.category),p=Ts(e,t,a),m=Pe(r,e.hash);return c=ir({txType:c,isSender:i,walletAddress:a,tokens:p}),{isContractCall:l,isIncoming:!i,isOutgoing:i,isSender:i,timestamp:o,hash:e.hash,from:e.from_address,to:e.to_address??"",tokens:p,gasPrice:e.gas_price,gasUsed:e.receipt_gas_used,chainId:n.toString(),txType:c,method:e.method_label??void 0,explorerLink:m}}chunkVYIKXRYZ_cjs.a(zn,"convertMoralisTransaction");var us=new Set(["send","receive","token send","token receive"]),fs={send:vmModuleTypes.TransactionType.SEND,receive:vmModuleTypes.TransactionType.RECEIVE,"token send":vmModuleTypes.TransactionType.SEND,"token receive":vmModuleTypes.TransactionType.RECEIVE,"nft send":vmModuleTypes.TransactionType.NFT_SEND,"nft receive":vmModuleTypes.TransactionType.NFT_RECEIVE,"token swap":vmModuleTypes.TransactionType.SWAP,"nft purchase":vmModuleTypes.TransactionType.NFT_BUY,"nft sale":vmModuleTypes.TransactionType.NFT_SEND,airdrop:vmModuleTypes.TransactionType.AIRDROP,mint:vmModuleTypes.TransactionType.NFT_BUY,burn:vmModuleTypes.TransactionType.UNKNOWN,deposit:vmModuleTypes.TransactionType.UNKNOWN,withdraw:vmModuleTypes.TransactionType.UNKNOWN,borrow:vmModuleTypes.TransactionType.UNKNOWN,"contract interaction":vmModuleTypes.TransactionType.UNKNOWN};function ys(e){return fs[e]??vmModuleTypes.TransactionType.UNKNOWN}chunkVYIKXRYZ_cjs.a(ys,"getMoralisTransactionType");function ae(e){if(!(e==null||e===""))return {address:e}}chunkVYIKXRYZ_cjs.a(ae,"getTransferAddress");function Pt(e){return e?.trim()??""}chunkVYIKXRYZ_cjs.a(Pt,"trimOrEmpty");function gs(e){let t=e.trim().toLowerCase();return !t.startsWith("0x")||t.length<12?e.trim():`${t.slice(0,6)}\u2026${t.slice(-4)}`}chunkVYIKXRYZ_cjs.a(gs,"shortenHexAddress");function hs(e){let t=Pt(e.token_symbol);if(t!=="")return t;let r=Pt(e.token_name);return r!==""?r:gs(e.address)}chunkVYIKXRYZ_cjs.a(hs,"getErc20DisplaySymbol");function Ts(e,t,r){let n=[],a=e.native_transfers.map(o=>ks(o,t)),i=e.erc20_transfers.map(o=>Rs(o));n.push(...a,...i);for(let o of e.nft_transfers)n.push(bs(o));return n.length===0&&n.push(vs(e,t,r)),n}chunkVYIKXRYZ_cjs.a(Ts,"buildTokens");function ks(e,t){let r=Pt(e.token_symbol)||t.symbol,n=new coreUtilsSdk.TokenUnit(e.value,t.decimals,r);return {decimal:t.decimals.toString(),name:t.name,symbol:r,amount:n.toDisplay(),from:ae(e.from_address),to:ae(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(ks,"buildNativeToken");function Rs(e){let t=Number(e.token_decimals),r=hs(e),n=new coreUtilsSdk.TokenUnit(e.value,t,r),a=Pt(e.token_name)||r;return {decimal:e.token_decimals,name:a,symbol:r,amount:n.toDisplay(),from:ae(e.from_address),to:ae(e.to_address),type:vmModuleTypes.TokenType.ERC20,address:e.address}}chunkVYIKXRYZ_cjs.a(Rs,"buildErc20Token");function bs(e){let t=e.contract_type==="ERC1155"?vmModuleTypes.TokenType.ERC1155:vmModuleTypes.TokenType.ERC721;return {name:"",symbol:"",amount:e.amount,collectableTokenId:e.token_id,from:ae(e.from_address),to:ae(e.to_address),type:t,address:e.token_address}}chunkVYIKXRYZ_cjs.a(bs,"buildNftToken");function vs(e,t,r){let n=new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol),i=e.from_address.toLowerCase()===r.toLowerCase()?`-${n.toDisplay()}`:n.toDisplay();return {decimal:t.decimals.toString(),name:t.name,symbol:t.symbol,amount:i,from:ae(e.from_address),to:ae(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(vs,"buildFallbackNativeToken");var Es="https://proxy-api.avax.network/proxy/moralis-evm";async function Yn({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}){try{let o=`0x${e.toString(16)}`,c=new URLSearchParams({chain:o,limit:(i??25).toString()});a&&c.set("cursor",a);let l=`${Es}/wallets/${n}/history?${c.toString()}`,p=await fetch(l);if(!p.ok)return {transactions:[],nextPageToken:""};let m=await p.json();return Array.isArray(m.result)?{transactions:m.result.filter(y=>y.receipt_status==="1").map(y=>zn({tx:y,networkToken:t,explorerUrl:r,chainId:e,address:n})),nextPageToken:m.cursor??""}:{transactions:[],nextPageToken:""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(Yn,"getTransactionsFromMoralis");var Is=new Set([1,4,5,11155111,8453,42161,10]);function Kn(e){return Is.has(e)}chunkVYIKXRYZ_cjs.a(Kn,"isMoralisSupportedChain");var Jn=chunkVYIKXRYZ_cjs.a((e,{nativeTransaction:t,erc20Transfers:r,erc721Transfers:n},a)=>{let i=e===vmModuleTypes.TransactionType.TRANSFER,o=e===vmModuleTypes.TransactionType.SEND||e===vmModuleTypes.TransactionType.NFT_SEND,c=e===vmModuleTypes.TransactionType.RECEIVE||e===vmModuleTypes.TransactionType.NFT_RECEIVE,l=t?.from?.address,p=t?.to?.address;i&&r&&r[0]&&(l=r[0].from.address,p=r[0].to.address),i&&n&&n[0]&&(l=n[0].from.address,p=n[0].to.address);let m=o||i&&l.toLowerCase()===a.toLowerCase(),u=c||i&&p.toLowerCase()===a.toLowerCase();return {isOutgoing:m,isIncoming:u,isSender:l===a,from:l,to:p}},"getSenderInfo");async function Xn(e){try{return e.then(t=>[t,null]).catch(t=>[null,t])}catch(t){return Promise.resolve([null,t])}}chunkVYIKXRYZ_cjs.a(Xn,"resolve");var As="https://ipfs.io";function Fe(e,t=As){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Fe,"ipfsResolverWithFallback");async function Ss(e,t=5e3){let r=new AbortController;return setTimeout(()=>r.abort(),t),fetch(e,{signal:r.signal})}chunkVYIKXRYZ_cjs.a(Ss,"fetchWithTimeout");async function Zn(e){let t={};if(e)if(e.startsWith("data:application/json;base64,")){let r=e.substring(29);try{let n=Buffer.from(r,"base64").toString();t=JSON.parse(n);}catch{t={};}}else t=await Ss(Fe(e)).then(r=>r.json()).catch(()=>({}));else return {};return t}chunkVYIKXRYZ_cjs.a(Zn,"getNftMetadata");var xs="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Qn(e,t="256"){let r=Fe(e);return `${xs}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Qn,"getSmallImageForNFT");var ra=chunkVYIKXRYZ_cjs.a(async({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a)=>{let i=[];if(e.value!=="0"){let o=a.decimals,l=new coreUtilsSdk.TokenUnit(e.value,a.decimals,a.symbol).toDisplay();i.push({decimal:o.toString(),name:a.name,symbol:a.symbol,amount:l,from:e.from,to:e.to,type:vmModuleTypes.TokenType.NATIVE});}return t?.forEach(o=>{let c=o.erc20Token.decimals,p=new coreUtilsSdk.TokenUnit(o.value,c,o.erc20Token.symbol).toDisplay();i.push({decimal:c.toString(),address:o.erc20Token.address,name:o.erc20Token.name,symbol:o.erc20Token.symbol,amount:p,from:o.from,to:o.to,imageUri:o.erc20Token.logoUri,type:vmModuleTypes.TokenType.ERC20});}),r&&await Promise.allSettled(r.map(async o=>{let c=o.erc721Token,l=await ta(c.tokenUri,c.metadata.imageUri);i.push({name:o.erc721Token.name,symbol:o.erc721Token.symbol,address:o.erc721Token.address,amount:"1",imageUri:l,from:o.from,to:o.to,collectableTokenId:o.erc721Token.tokenId,type:vmModuleTypes.TokenType.ERC721});})),n&&await Promise.allSettled(n.map(async o=>{let c=o.erc1155Token,l=await ta(c.tokenUri,c.metadata.imageUri);i.push({name:o.erc1155Token.metadata.name??"",symbol:o.erc1155Token.metadata.symbol??"",address:o.erc1155Token.address,amount:o.value,imageUri:l,from:o.from,to:o.to,collectableTokenId:o.erc1155Token.tokenId,type:vmModuleTypes.TokenType.ERC1155});})),i},"getTokens"),ta=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(t)return t.startsWith("ipfs://")?Fe(t):t;{let[r,n]=await Xn(Zn(e));return n?"":r.image?Qn(r.image):""}},"getImageUri");var na=chunkVYIKXRYZ_cjs.a(async({transactions:e,explorerUrl:t,networkToken:r,chainId:n,address:a})=>{let i=await ra(e,r),o=qn(e,a,i),{isOutgoing:c,isIncoming:l,isSender:p,from:m,to:u}=Jn(o,e,a),{blockTimestamp:y,txHash:f,gasPrice:g,gasUsed:k}=e.nativeTransaction,R=Pe(t,f);return {isContractCall:!$r.includes(o),isIncoming:l,isOutgoing:c,isSender:p,timestamp:y*1e3,hash:f,from:m,to:u,tokens:i,gasPrice:g,gasUsed:k,chainId:n.toString(),txType:o,explorerLink:R}},"convertTransaction");var aa=chunkVYIKXRYZ_cjs.a(async({chainId:e,explorerUrl:t,networkToken:r,address:n,nextPageToken:a,offset:i,glacierService:o})=>{try{let c=await o.listTransactions({chainId:e.toString(),address:n,pageToken:a,pageSize:i});return {transactions:(await Promise.all(c.transactions.filter(m=>m.nativeTransaction.txStatus==="1").map(m=>na({transactions:m,explorerUrl:t,networkToken:r,chainId:e,address:n}).then(u=>u)))).filter(m=>m.tokens.find(u=>Number(u.amount)!==0)),nextPageToken:c.nextPageToken}}catch{return {transactions:[],nextPageToken:""}}},"getTransactionsFromGlacier");var oa=chunkVYIKXRYZ_cjs.a(async({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i,glacierService:o})=>Kn(e)?Yn({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):o.isHealthy()?aa({networkToken:t,explorerUrl:r,chainId:e,address:n,nextPageToken:a,offset:i,glacierService:o}):{transactions:[],nextPageToken:""},"getTransactionHistory");var Cs="https://ipfs.io";function sa(e,t=Cs){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(sa,"ipfsResolverWithFallback");var ws="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function St(e,t="256"){let r=sa(e);return `${ws}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(St,"getSmallImageForNFT");var Ue,z,lr=class lr{constructor(t,r){this.baseUrl=t;chunkVYIKXRYZ_cjs.d(this,Ue,[]);chunkVYIKXRYZ_cjs.d(this,z,void 0);chunkVYIKXRYZ_cjs.e(this,z,r??fetch);}async isNetworkSupported(t){return (await this.getChainList()).some(n=>n.community_id===t)}async getChainInfo({chainId:t}){return (await this.getChainList()).find(n=>n.id===t)}async getTokenBalance({chainId:t,address:r,tokenId:n}){let a=await chunkVYIKXRYZ_cjs.c(this,z).call(this,`${this.baseUrl}/v1/user/token?id=${r}&chain_id=${t}&token_id=${n}`);if(a.ok)return await a.json();throw new Error(`${a.status}:${a.statusText}`)}async getTokensBalanceOnChain({chainId:t,address:r}){let n=await chunkVYIKXRYZ_cjs.c(this,z).call(this,`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${t}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getTokenList({chainId:t,address:r}){let n=await(chunkVYIKXRYZ_cjs.c(this,z)??globalThis.fetch)(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${t}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getChainList(){if(chunkVYIKXRYZ_cjs.c(this,Ue).length===0){let t=await chunkVYIKXRYZ_cjs.c(this,z).call(this,`${this.baseUrl}/v1/chain/list`);if(t.ok)chunkVYIKXRYZ_cjs.e(this,Ue,await t.json());else throw new Error(`${t.status}:${t.statusText}`)}return chunkVYIKXRYZ_cjs.c(this,Ue)}async getNftList({address:t,chainId:r}){return F([`${this.baseUrl}/v1/user/nft_list?id=${t}&chain_id=${r}`],Fs,chunkVYIKXRYZ_cjs.c(this,z))}};Ue=new WeakMap,z=new WeakMap,chunkVYIKXRYZ_cjs.a(lr,"DeBank");var xt=lr,Ds=zod.z.object({id:zod.z.union([zod.z.custom(ethers.isHexString),zod.z.string()]),chain:zod.z.string(),name:zod.z.string()}),Bs=Ds.merge(zod.z.object({contract_id:zod.z.string(),description:zod.z.string().nullable(),content_type:zod.z.string().nullable(),content:zod.z.string(),thumbnail_url:zod.z.string(),total_supply:zod.z.number(),detail_url:zod.z.string(),collection_id:zod.z.string(),is_core:zod.z.boolean(),inner_id:zod.z.string(),collection_name:zod.z.string(),contract_name:zod.z.string(),amount:zod.z.number(),usd_price:zod.z.number().optional(),is_erc721:zod.z.boolean().optional(),is_erc1155:zod.z.boolean().optional()})),Fs=zod.z.array(Bs);var H,Me,Ct,_t,ca,mr=class mr{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,Me);chunkVYIKXRYZ_cjs.d(this,_t);chunkVYIKXRYZ_cjs.d(this,H,void 0);chunkVYIKXRYZ_cjs.e(this,H,new xt(`${t}/proxy/debank`,r));}async isNetworkSupported(t){return chunkVYIKXRYZ_cjs.c(this,H).isNetworkSupported(t)}async getNativeBalance({chainId:t,address:r,currency:n}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid address: "+r);let{chainInfo:a,chainIdString:i}=await chunkVYIKXRYZ_cjs.f(this,Me,Ct).call(this,t),o=a.native_token_id,c=await chunkVYIKXRYZ_cjs.c(this,H).getTokenBalance({address:r,chainId:i,tokenId:o}),l=new coreUtilsSdk.TokenUnit(c.raw_amount,c.decimals,c.symbol),p=l.toDisplay(),u=(await ot()).usd[n.toLowerCase()],y=u?u*c.price:void 0,f=y?l.mul(y).toDisplay({fixedDp:2}):void 0,g=y?l.mul(y).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {name:c.name,symbol:c.symbol,decimals:c.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:c.logo_url,balance:l.toSubUnit(),balanceDisplayValue:p,balanceInCurrency:g,balanceCurrencyDisplayValue:f,priceInCurrency:y}}async listErc20Balances({chainId:t,address:r,currency:n}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("listErc20Balances: not valid address");let{chainInfo:a,chainIdString:i}=await chunkVYIKXRYZ_cjs.f(this,Me,Ct).call(this,t),o=await chunkVYIKXRYZ_cjs.c(this,H).getTokensBalanceOnChain({chainId:i,address:r}),c=await ot(),l={};for(let p of o){if(p.id===a.native_token_id||p.is_core===!1)continue;let m=new coreUtilsSdk.TokenUnit(p.raw_amount,p.decimals,p.symbol),u=m.toDisplay(),y=c.usd[n.toLowerCase()],f=y?y*p.price:void 0,g=f?m.mul(f).toDisplay({fixedDp:2}):void 0,k=f?m.mul(f).toDisplay({fixedDp:2,asNumber:!0}):void 0;l[p.id]={chainId:a.community_id,address:p.id,name:p.name,symbol:p.symbol,decimals:p.decimals,logoUri:p.logo_url,balance:m.toSubUnit(),balanceCurrencyDisplayValue:g,balanceDisplayValue:u,balanceInCurrency:k,priceInCurrency:f,type:vmModuleTypes.TokenType.ERC20,reputation:null};}return l}async listNftBalances({chainId:t,address:r}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("listNftBalances: not valid address");let{chainIdString:n}=await chunkVYIKXRYZ_cjs.f(this,Me,Ct).call(this,t),a=await chunkVYIKXRYZ_cjs.c(this,H).getNftList({chainId:n,address:r});return chunkVYIKXRYZ_cjs.f(this,_t,ca).call(this,a,t)}};H=new WeakMap,Me=new WeakSet,Ct=chunkVYIKXRYZ_cjs.a(async function(t){let n=(await chunkVYIKXRYZ_cjs.c(this,H).getChainList()).find(i=>i.community_id===t)?.id;if(!n)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);let a=await chunkVYIKXRYZ_cjs.c(this,H).getChainInfo({chainId:n});if(!a)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);return {chainInfo:a,chainIdString:n}},"#getChainInfo"),_t=new WeakSet,ca=chunkVYIKXRYZ_cjs.a(function(t,r){return t.reduce((n,a)=>({...n,[`${a.contract_id}-${a.id}`]:{chainId:r,address:a.contract_id,description:a.description??"",logoUri:a.thumbnail_url,logoSmall:St(a.content),name:a.name,symbol:"",tokenId:`${a.inner_id}`,tokenUri:a.detail_url,collectionName:a.collection_name,balance:BigInt(a.amount),balanceDisplayValue:`${a.amount}`,type:a.is_erc721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:glacierSdk.NftTokenMetadataStatus.UNINDEXED,description:a.description??"",properties:""}}}),{})},"#mapNftList"),chunkVYIKXRYZ_cjs.a(mr,"DeBankService");var wt=mr;var ur=class ur extends Error{constructor(){super(...arguments);chunkVYIKXRYZ_cjs.b(this,"message","Glacier is unhealthy. Try again later.");}};chunkVYIKXRYZ_cjs.a(ur,"GlacierUnhealthyError");var Y=ur,Vs=[coreChainsSdk.ChainId.ETHEREUM_HOMESTEAD],fr=class fr{constructor({glacierApiUrl:t,headers:r}){chunkVYIKXRYZ_cjs.b(this,"glacierSdk");chunkVYIKXRYZ_cjs.b(this,"isGlacierHealthy",!0);chunkVYIKXRYZ_cjs.b(this,"supportedChainIds",[]);chunkVYIKXRYZ_cjs.b(this,"isHealthy",chunkVYIKXRYZ_cjs.a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new glacierSdk.Glacier({BASE:t,HEADERS:r},Oe),this.getSupportedChainIds().catch(()=>{});}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async isNetworkSupported(t){return (await this.getSupportedChainIds()).some(n=>n===t.toString())}async getSupportedChainIds(){if(this.supportedChainIds.length)return this.supportedChainIds;try{let t=await this.glacierSdk.evmChains.supportedChains({});return this.supportedChainIds=t.chains.map(r=>r.chainId).filter(r=>!Vs.includes(Number(r))),this.supportedChainIds}catch{return []}}async reindexNft({address:t,chainId:r,tokenId:n}){try{await this.glacierSdk.nfTs.reindexNft({address:t,chainId:r,tokenId:n});}catch(a){throw a instanceof Y&&this.setGlacierToUnhealthy(),a}}async getTokenDetails({address:t,chainId:r,tokenId:n}){try{return this.glacierSdk.nfTs.getTokenDetails({address:t,chainId:r,tokenId:n})}catch(a){throw a instanceof Y&&this.setGlacierToUnhealthy(),a}}async getNativeBalance({chainId:t,address:r,currency:n,coingeckoId:a}){try{let o=(await this.glacierSdk.evmBalances.getNativeBalance({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase()})).nativeTokenBalance,c=new coreUtilsSdk.TokenUnit(o.balance,o.decimals,o.symbol),l=o.price?.value,p=l!==void 0?c.mul(l):void 0;return {name:o.name,symbol:o.symbol,decimals:o.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:o.logoUri,balance:c.toSubUnit(),balanceDisplayValue:c.toDisplay(),balanceInCurrency:p?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:p?.toDisplay({fixedDp:2}),priceInCurrency:l,coingeckoId:a??""}}catch(i){throw i instanceof Y&&this.setGlacierToUnhealthy(),i}}async listErc721Balances({chainId:t,address:r}){let n,a=[];do try{let i=await this.glacierSdk.evmBalances.listErc721Balances({chainId:t,address:r,pageSize:100,pageToken:n});a.push(...i.erc721TokenBalances),n=i.nextPageToken;}catch(i){throw i instanceof Y&&this.setGlacierToUnhealthy(),i}while(n);return a}async listErc1155Balances({chainId:t,address:r}){let n,a=[];do try{let i=await this.glacierSdk.evmBalances.listErc1155Balances({chainId:t,address:r,pageSize:100,pageToken:n});a.push(...i.erc1155TokenBalances),n=i.nextPageToken;}catch(i){throw i instanceof Y&&this.setGlacierToUnhealthy(),i}while(n);return a}async listNftBalances({chainId:t,address:r}){let a=(await Promise.allSettled([this.listErc721Balances({chainId:t.toString(),address:r}),this.listErc1155Balances({chainId:t.toString(),address:r})])).filter(i=>i.status==="fulfilled").flatMap(i=>i.value.filter(o=>o.ercType===glacierSdk.Erc721Token.ercType.ERC_721||BigInt(o.balance)>0n).map(o=>[`${o.address}-${o.tokenId}`,{address:o.address,description:o.metadata.description??"",logoUri:o.metadata.imageUri??"",logoSmall:St(o.metadata.imageUri??""),name:o.metadata.name??"",symbol:o.metadata.symbol??"",tokenId:o.tokenId,tokenUri:o.tokenUri,chainId:t,collectionName:"Unknown",balance:o.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?BigInt(o.balance):1,balanceDisplayValue:o.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?o.balance:"1",type:o.ercType===glacierSdk.Erc721Token.ercType.ERC_721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:o.metadata.indexStatus,description:o.metadata.description,lastUpdatedTimestamp:o.metadata.metadataLastUpdatedTimestamp,properties:o.ercType===glacierSdk.Erc721Token.ercType.ERC_721?o.metadata.attributes:o.metadata.properties}}]));return Object.fromEntries(a)}async listErc20Balances({chainId:t,address:r,currency:n,customTokens:a}){try{let i=[],o;do{let c=await this.glacierSdk.evmBalances.listErc20Balances({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase(),pageSize:100,pageToken:o});i.push(...Hs(c.erc20TokenBalances,Number(t))),o=c.nextPageToken;}while(o);return [...Os(a),...i].reduce((c,l)=>({...c,[l.address.toLowerCase()]:l}),{})}catch(i){throw i instanceof Y&&this.setGlacierToUnhealthy(),i}}async listTransactions({chainId:t,address:r,pageToken:n,pageSize:a}){try{return this.glacierSdk.evmTransactions.listTransactionsV2({chainId:t,address:r,pageToken:n,pageSize:a,filterSpamTokens:!0})}catch(i){throw i instanceof Y&&this.setGlacierToUnhealthy(),i}}};chunkVYIKXRYZ_cjs.a(fr,"EvmGlacierService");var Dt=fr,Os=chunkVYIKXRYZ_cjs.a(e=>e.map(t=>({...t,decimals:t.decimals??18,type:vmModuleTypes.TokenType.ERC20,balance:0n,balanceInCurrency:0,balanceDisplayValue:"0",balanceCurrencyDisplayValue:"0",priceInCurrency:0,marketCap:0,change24:0,vol24:0,reputation:null})),"convertErc20TokenToTokenWithBalance"),Hs=chunkVYIKXRYZ_cjs.a((e,t)=>e.map(r=>{let n=new coreUtilsSdk.TokenUnit(r.balance,r.decimals,r.symbol),a=n.toDisplay(),i=r.balanceValue?.value.toString(),o=r.price?.value,c=o!==void 0?n.mul(o).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {chainId:t,address:r.address,name:r.name,symbol:r.symbol,decimals:r.decimals,logoUri:r.logoUri,balance:n.toSubUnit(),balanceCurrencyDisplayValue:i,balanceDisplayValue:a,balanceInCurrency:c,priceInCurrency:o,reputation:r.tokenReputation,type:vmModuleTypes.TokenType.ERC20}}),"convertErc20TokenWithBalanceToTokenWithBalance");var Le,rt,oe,$,fe,ye,yr=class yr{constructor({approvalController:t,environment:r,appInfo:n,runtime:a}){chunkVYIKXRYZ_cjs.d(this,Le,void 0);chunkVYIKXRYZ_cjs.d(this,rt,void 0);chunkVYIKXRYZ_cjs.d(this,oe,void 0);chunkVYIKXRYZ_cjs.d(this,$,void 0);chunkVYIKXRYZ_cjs.d(this,fe,void 0);chunkVYIKXRYZ_cjs.d(this,ye,void 0);let{glacierApiUrl:i,proxyApiUrl:o}=xr(r);chunkVYIKXRYZ_cjs.e(this,ye,a),chunkVYIKXRYZ_cjs.e(this,Le,new Dt({glacierApiUrl:i,headers:Ht(n)})),chunkVYIKXRYZ_cjs.e(this,rt,new wt({proxyApiUrl:o,fetch:chunkVYIKXRYZ_cjs.c(this,ye)?.fetch})),chunkVYIKXRYZ_cjs.e(this,oe,o),chunkVYIKXRYZ_cjs.e(this,$,t),chunkVYIKXRYZ_cjs.e(this,fe,new Ws__default.default({baseURL:o+"/proxy/blockaid/",apiKey:Ar,httpAgent:a?.httpAgent,fetch:a?.fetch}));}getProvider(t){return D({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders})}getAddress({accountIndex:t,xpub:r,walletType:n}){return Bn({accountIndex:t,xpub:r,walletType:n})}buildDerivationPath(t){return Re(t)}deriveAddress(t){return Lr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,$)})}deriveAddresses(t){return Gr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,$)})}getBalances({addresses:t,network:r,currency:n,customTokens:a,storage:i,tokenTypes:o}){let c=new Q({storage:i,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,oe),fetch:chunkVYIKXRYZ_cjs.c(this,ye)?.fetch});return Ln({addresses:t,currency:n,network:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,oe),customTokens:a,balanceServices:[chunkVYIKXRYZ_cjs.c(this,Le),chunkVYIKXRYZ_cjs.c(this,rt)],storage:i,tokenTypes:o,tokenService:c,fetch:chunkVYIKXRYZ_cjs.c(this,ye)?.fetch})}getManifest(){let t=vmModuleTypes.parseManifest(Pr);return t.success?t.data:void 0}getNetworkFee(t){let{chainId:r,chainName:n,rpcUrl:a,utilityAddresses:i,caipId:o,customRpcHeaders:c}=t;return $n({chainId:r,chainName:n,rpcUrl:a,multiContractAddress:i?.multicall,caipId:o,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,oe),customRpcHeaders:c})}getTransactionHistory(t){let{network:r,address:n,nextPageToken:a,offset:i}=t,{chainId:o,networkToken:c,explorerUrl:l=""}=r;return oa({chainId:o,networkToken:c,explorerUrl:l,address:n,nextPageToken:a,offset:i,glacierService:chunkVYIKXRYZ_cjs.c(this,Le)})}getTokens(t){let{chainId:r}=t;return Et({chainId:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,oe)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION:return gn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,$),blockaid:chunkVYIKXRYZ_cjs.c(this,fe)});case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION_BATCH:return Yr(chunkVYIKXRYZ_cjs.c(this,$))?mn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,$),blockaid:chunkVYIKXRYZ_cjs.c(this,fe)}):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} requires BatchApprovalController`)};case vmModuleTypes.RpcMethod.AVALANCHE_DECLARE_AGENT_IDENTITY:return Ur({request:t,network:r});case vmModuleTypes.RpcMethod.PERSONAL_SIGN:case vmModuleTypes.RpcMethod.ETH_SIGN:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4:return wn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,$),blockaid:chunkVYIKXRYZ_cjs.c(this,fe)});default:return js(t.method)?_n(t,r):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}};Le=new WeakMap,rt=new WeakMap,oe=new WeakMap,$=new WeakMap,fe=new WeakMap,ye=new WeakMap,chunkVYIKXRYZ_cjs.a(yr,"EvmModule");var da=yr,js=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("eth_")||["web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"].includes(e),"shouldForwardToRpcNode");
43
+ `;}),t},"beautifySimpleMessage"),ue=chunkVYIKXRYZ_cjs.a(e=>{let t={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 e.split("").map(r=>t[r]||r).join("")},"toUnicodeBold");var Je=zod.z.string().describe("message"),$=zod.z.string().describe("address");var kn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.ETH_SIGN),params:zod.z.tuple([$,Je])});var Rn=zod.z.object({name:zod.z.string(),type:zod.z.string()}),Ne=zod.z.object({types:zod.z.object({EIP712Domain:zod.z.array(Rn)}).catchall(zod.z.array(Rn)),primaryType:zod.z.string(),domain:zod.z.record(zod.z.any()),message:zod.z.record(zod.z.any())}),tr=zod.z.array(zod.z.object({type:zod.z.string(),name:zod.z.string(),value:zod.z.union([zod.z.string(),zod.z.number(),zod.z.boolean(),zod.z.object({}).passthrough(),zod.z.array(zod.z.unknown()),zod.z.null()])})).nonempty(),rr=Ne.or(tr),bn=zod.z.union([zod.z.string().describe("data string"),Ne]),vn=zod.z.union([zod.z.string().describe("data string"),rr]),En=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA),params:zod.z.tuple([$,vn])}),In=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1),params:zod.z.tuple([$,vn])}),Pn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3),params:zod.z.tuple([$,bn])}),An=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4),params:zod.z.tuple([$,bn])});var Sn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.PERSONAL_SIGN),params:zod.z.union([zod.z.tuple([Je,$]),zod.z.tuple([Je,$,zod.z.string().optional().describe("password")])])});var jo=zod.z.discriminatedUnion("method",[Sn,kn,En,In,Pn,An]).transform((e,t)=>{let{method:r,params:n}=e;switch(r){case vmModuleTypes.RpcMethod.PERSONAL_SIGN:return {data:n[0],address:n[1],method:r};case vmModuleTypes.RpcMethod.ETH_SIGN:return {data:n[1],address:n[0],method:r};case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1:{let a=n[0],i=n[1];if(typeof i!="string")return {data:i,address:a,method:r};try{let o=JSON.parse(i);return {data:rr.parse(o),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4:{let a=n[0],i=n[1];if(typeof i!="string")return {data:i,address:a,method:r};try{let o=JSON.parse(i);return {data:Ne.parse(o),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}}});function xn(e){return jo.safeParse(e)}chunkVYIKXRYZ_cjs.a(xn,"parseRequestParams");var Cn=chunkVYIKXRYZ_cjs.a(e=>tr.safeParse(e).success,"isTypedDataV1"),jm=chunkVYIKXRYZ_cjs.a(e=>Ne.safeParse(e).success,"isTypedData");var Nn=chunkVYIKXRYZ_cjs.a(e=>{try{let{EIP712Domain:t,...r}=e.types;return ethers.TypedDataEncoder.getPayload(e.domain,r,e.message),{isValid:!0}}catch(t){return {isValid:!1,error:t}}},"isTypedDataValid");var wn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let a=xn({method:e.method,params:e.params});if(!a.success)return console.error("invalid params",a.error),{success:!1,error:rpcErrors.rpcErrors.invalidParams(O("Params are invalid",a.error))};let{method:i,data:o,address:c}=a.data,l;(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4)&&(l=Nn(o));let p,m,u;if(l&&!l.isValid&&(u={type:vmModuleTypes.AlertType.INFO,details:{title:"Warning: Verify Message Content",description:"This message contains non-standard elements. Please verify message content!",detailedDescription:l.error.toString()}}),i===vmModuleTypes.RpcMethod.ETH_SIGN)p={type:i,account:c,data:o},m=o;else if(i===vmModuleTypes.RpcMethod.PERSONAL_SIGN)p={type:i,account:c,data:o},m=ethers.toUtf8String(o);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1)p={type:i,account:c,data:o},m=Cn(o)?hn(o):Qt(o);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4){p={type:i,account:c,data:o};let{types:I,primaryType:k,...w}=o;m=Qt(w);}if(!p||!m)return {success:!1,error:rpcErrors.rpcErrors.internal("Unable to generate signing data")};let f=await cn({request:e,accountAddress:c,chainId:t.chainId,data:{method:i,params:e.params},dAppUrl:e.dappInfo.url,blockaid:n}),y=Ce(e),h=y?await re({declaration:y,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,R={title:"Sign Message",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} is requesting to sign the following message`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},account:c,details:[{title:"Message",items:[H("Message",m,"vertical")]},...h?[Pe(h)]:[]],alert:f?.alert??u,balanceChange:f?.balanceChange,tokenApprovals:f?.tokenApprovals},g=await r.requestApproval({request:e,displayData:R,signingData:p});return "error"in g?{error:g.error}:"signedData"in g?{result:g.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"ethSign");var _n=chunkVYIKXRYZ_cjs.a(async(e,t)=>{try{return {result:await(await F({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders})).send(e.method,e.params)}}catch(r){let n=r.info?.error??r.error;return n&&typeof n.code=="number"?{error:n}:{error:rpcErrors.rpcErrors.internal(r.message)}}},"forwardToRpcNode");var Bn=chunkVYIKXRYZ_cjs.a(async({accountIndex:e,xpub:t,walletType:r})=>{switch(r){case vmModuleTypes.WalletType.Mnemonic:case vmModuleTypes.WalletType.Ledger:case vmModuleTypes.WalletType.Keystone:return {[vmModuleTypes.NetworkVMType.EVM]:coreWalletsSdk.getAddressFromXPub(t,e)};case vmModuleTypes.WalletType.LedgerLive:case vmModuleTypes.WalletType.Seedless:{let n=Buffer.from(t,"hex");return {[vmModuleTypes.NetworkVMType.EVM]:coreWalletsSdk.getEvmAddressFromPubKey(n)}}default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}},"getAddress");function De(e,t){return e.then(r=>({id:t,status:"fulfilled",value:r})).catch(r=>({id:t,status:"rejected",reason:r}))}chunkVYIKXRYZ_cjs.a(De,"addIdToPromise");async function Be(e){return await Promise.allSettled(e).then(t=>t.reduce((r,n)=>{if(n.status==="fulfilled"){let a=n.value;a.status==="fulfilled"?r[a.id]=a.value:r[a.id]={error:a.reason};}return r},{}))}chunkVYIKXRYZ_cjs.a(Be,"settleAllIdPromises");var Qo={"ERC-20":vmModuleTypes.TokenType.ERC20,"ERC-721":vmModuleTypes.TokenType.ERC721,"ERC-1155":vmModuleTypes.TokenType.ERC1155,"NON-ERC":vmModuleTypes.TokenType.NONERC,SPL:vmModuleTypes.TokenType.SPL},es=zod.z.string().transform((e,t)=>{let r=Qo[e];return r||(t.addIssue({code:zod.z.ZodIssueCode.custom,message:`Unknown contractType: ${e}`}),zod.z.NEVER)}),ts=zod.z.object({address:zod.z.string(),chainId:zod.z.number(),contractType:es,decimals:zod.z.number(),internalId:zod.z.string().nullish(),isNative:zod.z.boolean(),logoUri:zod.z.string().nullish(),name:zod.z.string(),symbol:zod.z.string(),caip2Id:zod.z.string().nullish(),color:zod.z.string().nullish()}),rs=zod.z.array(zod.z.unknown()).transform(e=>e.flatMap(t=>{let r=ts.safeParse(t);return r.success?[r.data]:[]}));async function Pt({chainId:e,proxyApiUrl:t}){return (await M([`${t}/tokens?evmChainId=${e}`],rs)).map(n=>({...n,type:n.contractType}))}chunkVYIKXRYZ_cjs.a(Pt,"getTokens");var B,Fe,fe,et,Ue,ar=class ar{constructor({network:t,storage:r,proxyApiUrl:n,customTokens:a,fetch:i}){chunkVYIKXRYZ_cjs.d(this,B,void 0);chunkVYIKXRYZ_cjs.d(this,Fe,void 0);chunkVYIKXRYZ_cjs.d(this,fe,void 0);chunkVYIKXRYZ_cjs.d(this,et,void 0);chunkVYIKXRYZ_cjs.d(this,Ue,void 0);chunkVYIKXRYZ_cjs.e(this,B,t),chunkVYIKXRYZ_cjs.e(this,Fe,r),chunkVYIKXRYZ_cjs.e(this,fe,n),chunkVYIKXRYZ_cjs.e(this,et,a),chunkVYIKXRYZ_cjs.e(this,Ue,i);}async isNetworkSupported(){return !0}async getNativeBalance({chainId:t,address:r,currency:n}){let a=await F({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,B).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,B).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,B).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,B).customRpcHeaders}),i=chunkVYIKXRYZ_cjs.c(this,B).pricingProviders?.coingecko.nativeTokenId,o=chunkVYIKXRYZ_cjs.c(this,B).networkToken,c=new te({storage:chunkVYIKXRYZ_cjs.c(this,Fe),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,fe),fetch:chunkVYIKXRYZ_cjs.c(this,Ue)}),l=i?await c.getSimplePrice({coinIds:[i],currencies:[n]}):{},p=l?.[i??""]?.[n]?.price??void 0,m=l?.[i??""]?.[n]?.marketCap??void 0,u=l?.[i??""]?.[n]?.vol24??void 0,f=l?.[i??""]?.[n]?.change24??void 0,y=await a.getBalance(r),h=new coreUtilsSdk.TokenUnit(y,o.decimals,o.symbol),R=p!==void 0?h.mul(p):void 0;return {...o,coingeckoId:i??"",type:vmModuleTypes.TokenType.NATIVE,balance:y,balanceDisplayValue:h.toDisplay(),balanceInCurrency:R?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:R?.toDisplay({fixedDp:2}),priceInCurrency:p,marketCap:m,vol24:u,change24:f}}async listErc20Balances({chainId:t,address:r,currency:n,customTokensOnly:a=!1}){let i=await F({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,B).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,B).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,B).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,B).customRpcHeaders}),o=chunkVYIKXRYZ_cjs.c(this,B).pricingProviders?.coingecko.assetPlatformId,c=chunkVYIKXRYZ_cjs.c(this,B).pricingProviders?.coingecko.nativeTokenId,l=a?[]:await Pt({chainId:Number(t),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,fe)}),p=l.map(k=>k.address),m=[...l,...chunkVYIKXRYZ_cjs.c(this,et)].filter(Tt),u=chunkVYIKXRYZ_cjs.a(async k=>{let V=await new ethers.ethers.Contract(k.address,en__default.default.abi,i).balanceOf?.(r)||0n;return {...k,balance:V}},"getTokenWithBalance"),f=m.map(k=>De(u(k),k.address)),y=await Be(f),h=new te({storage:chunkVYIKXRYZ_cjs.c(this,Fe),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,fe),fetch:chunkVYIKXRYZ_cjs.c(this,Ue)}),R=o&&await h.getPricesByAddresses(p,o,n)||{},g=Object.keys(y),I={};for(let k=0;k<g.length;k++){let w=g[k];if(w===void 0)continue;let P=y[w];if(P===void 0||"error"in P){I[w]={error:`rpcService:getTokenWithBalance failed: ${P?.error??"unknown error"}`};continue}let V=R?.[c??""]?.[n]?.price??void 0,ie=R?.[c??""]?.[n]?.marketCap??void 0,b=R?.[c??""]?.[n]?.vol24??void 0,E=R?.[c??""]?.[n]?.change24??void 0,_=new coreUtilsSdk.TokenUnit(P.balance,P.decimals,P.symbol),Oe=V!==void 0?_.mul(V):void 0;I[P.address.toLowerCase()]={...P,type:vmModuleTypes.TokenType.ERC20,balance:P.balance,balanceDisplayValue:_.toDisplay(),balanceInCurrency:Oe?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:Oe?.toDisplay({fixedDp:2}),priceInCurrency:V,marketCap:ie,change24:E,vol24:b,reputation:null};}return I}async listNftBalances(){return {}}};B=new WeakMap,Fe=new WeakMap,fe=new WeakMap,et=new WeakMap,Ue=new WeakMap,chunkVYIKXRYZ_cjs.a(ar,"RpcService");var At=ar;async function Mn(e,t){let r=e.map(async(i,o)=>({index:o,result:await t(i)})),a=(await Promise.allSettled(r)).filter(i=>i.status==="fulfilled").map(i=>i).find(i=>i.value.result);return a?e[a.value.index]:void 0}chunkVYIKXRYZ_cjs.a(Mn,"findAsync");var Ln=chunkVYIKXRYZ_cjs.a(async({addresses:e,currency:t,network:r,proxyApiUrl:n,tokenTypes:a=[vmModuleTypes.TokenType.NATIVE,vmModuleTypes.TokenType.ERC20,vmModuleTypes.TokenType.ERC721,vmModuleTypes.TokenType.ERC1155],customTokens:i=[],customTokensOnly:o=!1,storage:c,balanceServices:l=[],tokenService:p,fetch:m})=>{let u=r.chainId,f=new At({network:r,storage:c,proxyApiUrl:n,customTokens:i,fetch:m}),y=o?[f]:[...l,f],h=o?[vmModuleTypes.TokenType.ERC20]:a,R=await Mn(y,I=>I.isNetworkSupported(r.chainId)),g={};if(R){let I=[],k=[],w=[];e.forEach(b=>{h.includes(vmModuleTypes.TokenType.NATIVE)&&I.push(De(R.getNativeBalance({address:b,currency:t.toUpperCase(),chainId:u}).then(async E=>{if(E.symbol==="AVAX"){let _=await p.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:t.toUpperCase()});return {...E,priceInCurrency:_.priceInCurrency,marketCap:_.marketCap,vol24:_.vol24,change24:_.change24}}return E}),b)),h.includes(vmModuleTypes.TokenType.ERC20)&&k.push(De(R.listErc20Balances({customTokens:i.filter(Tt),customTokensOnly:o,currency:t.toUpperCase(),chainId:u,address:b,pageSize:100}),b)),(h.includes(vmModuleTypes.TokenType.ERC721)||h.includes(vmModuleTypes.TokenType.ERC1155))&&w.push(De(R.listNftBalances({chainId:u,address:b}),b));});let P=await Be(I),V=await Be(k),ie=await Be(w);Object.keys(P).forEach(b=>{let E=P[b];if(!E||"error"in E){g[b]={error:`getNativeBalance failed: ${E?.error??"unknown error"}`};return}let _=E.symbol;g[b]={[_]:E};}),Object.keys(V).forEach(b=>{let E=V[b];!E||"error"in E&&typeof E.error!="string"?g[b]={...g[b],error:"listErc20Balances failed: unknown error"}:"error"in E&&typeof E.error=="string"?g[b]={...g[b],error:`listErc20Balances failed: ${E.error}`}:g[b]={...g[b],...E};}),Object.keys(ie).forEach(b=>{let E=ie[b];!E||"error"in E&&typeof E.error!="string"?g[b]={...g[b],error:"listNftBalances failed: unknown error"}:"error"in E&&typeof E.error=="string"?g[b]={...g[b],error:`listNftBalances failed: ${E.error}`}:g[b]={...g[b],...E};});}else e.forEach(I=>{g[I]={error:"unsupported network"};});return g},"getBalances");var sr={LOW:1n,MEDIUM:4n,HIGH:6n},ir=500000000n,os=chunkVYIKXRYZ_cjs.a(e=>e===coreChainsSdk.ChainId.AVALANCHE_TESTNET_ID||e===coreChainsSdk.ChainId.AVALANCHE_MAINNET_ID,"isCChain"),On=137,Hn=80002,ss=chunkVYIKXRYZ_cjs.a(e=>e===On||e===Hn,"isPolygon"),is={[On]:"https://gasstation.polygon.technology/v2",[Hn]:"https://gasstation.polygon.technology/amoy"};function ye(e){return BigInt(Math.round(e*1e9))}chunkVYIKXRYZ_cjs.a(ye,"gweiToWei");async function cs(e){let t=is[e];if(!t)throw new Error(`No gas station URL for Polygon chain ${e}`);let r=await fetch(t);if(!r.ok)throw new Error(`Polygon Gas Station returned ${r.status}`);let n=await r.json();return {baseFee:ye(n.estimatedBaseFee),low:{maxFeePerGas:ye(n.safeLow.maxFee),maxPriorityFeePerGas:ye(n.safeLow.maxPriorityFee)},medium:{maxFeePerGas:ye(n.standard.maxFee),maxPriorityFeePerGas:ye(n.standard.maxPriorityFee)},high:{maxFeePerGas:ye(n.fast.maxFee),maxPriorityFeePerGas:ye(n.fast.maxPriorityFee)},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(cs,"getPolygonGasStationFees");async function $n({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,caipId:a,proxyApiUrl:i,customRpcHeaders:o}){let c=await F({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,customRpcHeaders:o});if(!i)throw rpcErrors.rpcErrors.internal("Proxy API URL is needed");if(os(e))try{let k=await ls(c);return {...k,baseFee:k.medium.maxFeePerGas,displayDecimals:9,isFixedFee:!1}}catch{console.error("eth_suggestPriceOptions call failed, falling back to legacy fee fetching");}if(ss(e))try{return await cs(e)}catch{console.error("Polygon Gas Station call failed, falling back to generic fee fetching");}let l=await c.getBlock("latest",!1);if(!l)throw rpcErrors.rpcErrors.internal("There is no block");let p=l.baseFeePerGas;if(!p)throw rpcErrors.rpcErrors.internal("Pre-EIP-1559 networks are not supported");let m=await ps(i,a),u=new coreUtilsSdk.TokenUnit(m,0,""),f=new coreUtilsSdk.TokenUnit(p,0,""),y=BigInt("1000000000"),h=f.mul(u).add(y).toSubUnit(),R=ir*sr.LOW,g=ir*sr.MEDIUM,I=ir*sr.HIGH;return {baseFee:h,low:{maxFeePerGas:h+R,maxPriorityFeePerGas:R},medium:{maxFeePerGas:h+g,maxPriorityFeePerGas:g},high:{maxFeePerGas:h+I,maxPriorityFeePerGas:I},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a($n,"getNetworkFee");async function ls(e){let t=await e.send("eth_suggestPriceOptions",[]);return {low:{maxFeePerGas:BigInt(t.slow.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.slow.maxPriorityFeePerGas)},medium:{maxFeePerGas:BigInt(t.normal.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.normal.maxPriorityFeePerGas)},high:{maxFeePerGas:BigInt(t.fast.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.fast.maxPriorityFeePerGas)}}}chunkVYIKXRYZ_cjs.a(ls,"suggestPriceOptions");async function ps(e,t){if(!t)return 1.5;try{let n=await fetch(`${e}/gas/multiplier`);if(!n.ok)throw new Error(n.statusText);let a=await n.json();return a[t]??a.default}catch{return 1.5}}chunkVYIKXRYZ_cjs.a(ps,"getGasMultiplier");function jn(e){return e===vmModuleTypes.TokenType.ERC721||e===vmModuleTypes.TokenType.ERC1155}chunkVYIKXRYZ_cjs.a(jn,"isNftTokenType");function cr(e){let{txType:t,isSender:r,walletAddress:n,tokens:a}=e;if(a.length===0)return t;let i=n.toLowerCase(),o=a.some(m=>jn(m.type)&&m.to?.address?.toLowerCase()===i),c=a.some(m=>jn(m.type)&&m.from?.address?.toLowerCase()===i),l=t===vmModuleTypes.TransactionType.RECEIVE||t===vmModuleTypes.TransactionType.UNKNOWN||t===vmModuleTypes.TransactionType.TRANSFER||t===vmModuleTypes.TransactionType.AIRDROP,p=t===vmModuleTypes.TransactionType.SEND||t===vmModuleTypes.TransactionType.UNKNOWN||t===vmModuleTypes.TransactionType.TRANSFER||t===vmModuleTypes.TransactionType.AIRDROP;return !r&&o&&l?vmModuleTypes.TransactionType.NFT_RECEIVE:r&&c&&p?vmModuleTypes.TransactionType.NFT_SEND:t}chunkVYIKXRYZ_cjs.a(cr,"convertTransactionType");var qn=chunkVYIKXRYZ_cjs.a(({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a,i)=>{let o=!t&&!r&&!n,c=ds(e.method?.methodName),l=a.toLowerCase(),p=c.toLowerCase().includes("swap"),m=o&&e.from.address.toLowerCase()===l,u=o&&e.to.address.toLowerCase()===l,f=c==="Market Buy Orders With Eth"||c==="Buy NFT",y=c==="Approve",h=c.toLowerCase().includes("transfer"),R=c.toLowerCase().includes("airdrop"),g=c.toLowerCase().includes("unwrap"),I=c==="Fill Order",k;p?k=vmModuleTypes.TransactionType.SWAP:m?k=vmModuleTypes.TransactionType.SEND:u?k=vmModuleTypes.TransactionType.RECEIVE:f?k=vmModuleTypes.TransactionType.NFT_BUY:y?k=vmModuleTypes.TransactionType.APPROVE:h?k=vmModuleTypes.TransactionType.TRANSFER:R?k=vmModuleTypes.TransactionType.AIRDROP:g?k=vmModuleTypes.TransactionType.UNWRAP:I?k=vmModuleTypes.TransactionType.FILL_ORDER:k=vmModuleTypes.TransactionType.UNKNOWN;let w=e.from.address.toLowerCase()===l;return cr({txType:k,isSender:w,walletAddress:a,tokens:i})},"getTxType"),ds=chunkVYIKXRYZ_cjs.a((e="")=>e.includes("(")?ms__default.default(e.split("(",1)[0]):e,"parseRawMethod");function zn({tx:e,networkToken:t,explorerUrl:r,chainId:n,address:a}){let i=e.from_address.toLowerCase()===a.toLowerCase(),o=new Date(e.block_timestamp).getTime(),c=ys(e.category),l=!us.has(e.category),p=Ts(e,t,a),m=Se(r,e.hash);return c=cr({txType:c,isSender:i,walletAddress:a,tokens:p}),{isContractCall:l,isIncoming:!i,isOutgoing:i,isSender:i,timestamp:o,hash:e.hash,from:e.from_address,to:e.to_address??"",tokens:p,gasPrice:e.gas_price,gasUsed:e.receipt_gas_used,chainId:n.toString(),txType:c,method:e.method_label??void 0,explorerLink:m}}chunkVYIKXRYZ_cjs.a(zn,"convertMoralisTransaction");var us=new Set(["send","receive","token send","token receive"]),fs={send:vmModuleTypes.TransactionType.SEND,receive:vmModuleTypes.TransactionType.RECEIVE,"token send":vmModuleTypes.TransactionType.SEND,"token receive":vmModuleTypes.TransactionType.RECEIVE,"nft send":vmModuleTypes.TransactionType.NFT_SEND,"nft receive":vmModuleTypes.TransactionType.NFT_RECEIVE,"token swap":vmModuleTypes.TransactionType.SWAP,"nft purchase":vmModuleTypes.TransactionType.NFT_BUY,"nft sale":vmModuleTypes.TransactionType.NFT_SEND,airdrop:vmModuleTypes.TransactionType.AIRDROP,mint:vmModuleTypes.TransactionType.NFT_BUY,burn:vmModuleTypes.TransactionType.UNKNOWN,deposit:vmModuleTypes.TransactionType.UNKNOWN,withdraw:vmModuleTypes.TransactionType.UNKNOWN,borrow:vmModuleTypes.TransactionType.UNKNOWN,"contract interaction":vmModuleTypes.TransactionType.UNKNOWN};function ys(e){return fs[e]??vmModuleTypes.TransactionType.UNKNOWN}chunkVYIKXRYZ_cjs.a(ys,"getMoralisTransactionType");function oe(e){if(!(e==null||e===""))return {address:e}}chunkVYIKXRYZ_cjs.a(oe,"getTransferAddress");function St(e){return e?.trim()??""}chunkVYIKXRYZ_cjs.a(St,"trimOrEmpty");function gs(e){let t=e.trim().toLowerCase();return !t.startsWith("0x")||t.length<12?e.trim():`${t.slice(0,6)}\u2026${t.slice(-4)}`}chunkVYIKXRYZ_cjs.a(gs,"shortenHexAddress");function hs(e){let t=St(e.token_symbol);if(t!=="")return t;let r=St(e.token_name);return r!==""?r:gs(e.address)}chunkVYIKXRYZ_cjs.a(hs,"getErc20DisplaySymbol");function Ts(e,t,r){let n=[],a=e.native_transfers.map(o=>ks(o,t)),i=e.erc20_transfers.map(o=>Rs(o));n.push(...a,...i);for(let o of e.nft_transfers)n.push(bs(o));return n.length===0&&n.push(vs(e,t,r)),n}chunkVYIKXRYZ_cjs.a(Ts,"buildTokens");function ks(e,t){let r=St(e.token_symbol)||t.symbol,n=new coreUtilsSdk.TokenUnit(e.value,t.decimals,r);return {decimal:t.decimals.toString(),name:t.name,symbol:r,amount:n.toDisplay(),from:oe(e.from_address),to:oe(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(ks,"buildNativeToken");function Rs(e){let t=Number(e.token_decimals),r=hs(e),n=new coreUtilsSdk.TokenUnit(e.value,t,r),a=St(e.token_name)||r;return {decimal:e.token_decimals,name:a,symbol:r,amount:n.toDisplay(),from:oe(e.from_address),to:oe(e.to_address),type:vmModuleTypes.TokenType.ERC20,address:e.address}}chunkVYIKXRYZ_cjs.a(Rs,"buildErc20Token");function bs(e){let t=e.contract_type==="ERC1155"?vmModuleTypes.TokenType.ERC1155:vmModuleTypes.TokenType.ERC721;return {name:"",symbol:"",amount:e.amount,collectableTokenId:e.token_id,from:oe(e.from_address),to:oe(e.to_address),type:t,address:e.token_address}}chunkVYIKXRYZ_cjs.a(bs,"buildNftToken");function vs(e,t,r){let n=new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol),i=e.from_address.toLowerCase()===r.toLowerCase()?`-${n.toDisplay()}`:n.toDisplay();return {decimal:t.decimals.toString(),name:t.name,symbol:t.symbol,amount:i,from:oe(e.from_address),to:oe(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(vs,"buildFallbackNativeToken");var Es="https://proxy-api.avax.network/proxy/moralis-evm";async function Yn({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}){try{let o=`0x${e.toString(16)}`,c=new URLSearchParams({chain:o,limit:(i??25).toString()});a&&c.set("cursor",a);let l=`${Es}/wallets/${n}/history?${c.toString()}`,p=await fetch(l);if(!p.ok)return {transactions:[],nextPageToken:""};let m=await p.json();return Array.isArray(m.result)?{transactions:m.result.filter(f=>f.receipt_status==="1").map(f=>zn({tx:f,networkToken:t,explorerUrl:r,chainId:e,address:n})),nextPageToken:m.cursor??""}:{transactions:[],nextPageToken:""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(Yn,"getTransactionsFromMoralis");var Is=new Set([1,4,5,11155111,8453,42161,10]);function Kn(e){return Is.has(e)}chunkVYIKXRYZ_cjs.a(Kn,"isMoralisSupportedChain");var Jn=chunkVYIKXRYZ_cjs.a((e,{nativeTransaction:t,erc20Transfers:r,erc721Transfers:n},a)=>{let i=e===vmModuleTypes.TransactionType.TRANSFER,o=e===vmModuleTypes.TransactionType.SEND||e===vmModuleTypes.TransactionType.NFT_SEND,c=e===vmModuleTypes.TransactionType.RECEIVE||e===vmModuleTypes.TransactionType.NFT_RECEIVE,l=t?.from?.address,p=t?.to?.address;i&&r&&r[0]&&(l=r[0].from.address,p=r[0].to.address),i&&n&&n[0]&&(l=n[0].from.address,p=n[0].to.address);let m=o||i&&l.toLowerCase()===a.toLowerCase(),u=c||i&&p.toLowerCase()===a.toLowerCase();return {isOutgoing:m,isIncoming:u,isSender:l===a,from:l,to:p}},"getSenderInfo");async function Xn(e){try{return e.then(t=>[t,null]).catch(t=>[null,t])}catch(t){return Promise.resolve([null,t])}}chunkVYIKXRYZ_cjs.a(Xn,"resolve");var As="https://ipfs.io";function Me(e,t=As){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Me,"ipfsResolverWithFallback");async function Ss(e,t=5e3){let r=new AbortController;return setTimeout(()=>r.abort(),t),fetch(e,{signal:r.signal})}chunkVYIKXRYZ_cjs.a(Ss,"fetchWithTimeout");async function Zn(e){let t={};if(e)if(e.startsWith("data:application/json;base64,")){let r=e.substring(29);try{let n=Buffer.from(r,"base64").toString();t=JSON.parse(n);}catch{t={};}}else t=await Ss(Me(e)).then(r=>r.json()).catch(()=>({}));else return {};return t}chunkVYIKXRYZ_cjs.a(Zn,"getNftMetadata");var xs="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Qn(e,t="256"){let r=Me(e);return `${xs}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Qn,"getSmallImageForNFT");var ra=chunkVYIKXRYZ_cjs.a(async({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a)=>{let i=[];if(e.value!=="0"){let o=a.decimals,l=new coreUtilsSdk.TokenUnit(e.value,a.decimals,a.symbol).toDisplay();i.push({decimal:o.toString(),name:a.name,symbol:a.symbol,amount:l,from:e.from,to:e.to,type:vmModuleTypes.TokenType.NATIVE});}return t?.forEach(o=>{let c=o.erc20Token.decimals,p=new coreUtilsSdk.TokenUnit(o.value,c,o.erc20Token.symbol).toDisplay();i.push({decimal:c.toString(),address:o.erc20Token.address,name:o.erc20Token.name,symbol:o.erc20Token.symbol,amount:p,from:o.from,to:o.to,imageUri:o.erc20Token.logoUri,type:vmModuleTypes.TokenType.ERC20});}),r&&await Promise.allSettled(r.map(async o=>{let c=o.erc721Token,l=await ta(c.tokenUri,c.metadata.imageUri);i.push({name:o.erc721Token.name,symbol:o.erc721Token.symbol,address:o.erc721Token.address,amount:"1",imageUri:l,from:o.from,to:o.to,collectableTokenId:o.erc721Token.tokenId,type:vmModuleTypes.TokenType.ERC721});})),n&&await Promise.allSettled(n.map(async o=>{let c=o.erc1155Token,l=await ta(c.tokenUri,c.metadata.imageUri);i.push({name:o.erc1155Token.metadata.name??"",symbol:o.erc1155Token.metadata.symbol??"",address:o.erc1155Token.address,amount:o.value,imageUri:l,from:o.from,to:o.to,collectableTokenId:o.erc1155Token.tokenId,type:vmModuleTypes.TokenType.ERC1155});})),i},"getTokens"),ta=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(t)return t.startsWith("ipfs://")?Me(t):t;{let[r,n]=await Xn(Zn(e));return n?"":r.image?Qn(r.image):""}},"getImageUri");var na=chunkVYIKXRYZ_cjs.a(async({transactions:e,explorerUrl:t,networkToken:r,chainId:n,address:a})=>{let i=await ra(e,r),o=qn(e,a,i),{isOutgoing:c,isIncoming:l,isSender:p,from:m,to:u}=Jn(o,e,a),{blockTimestamp:f,txHash:y,gasPrice:h,gasUsed:R}=e.nativeTransaction,g=Se(t,y);return {isContractCall:!$r.includes(o),isIncoming:l,isOutgoing:c,isSender:p,timestamp:f*1e3,hash:y,from:m,to:u,tokens:i,gasPrice:h,gasUsed:R,chainId:n.toString(),txType:o,explorerLink:g}},"convertTransaction");var aa=chunkVYIKXRYZ_cjs.a(async({chainId:e,explorerUrl:t,networkToken:r,address:n,nextPageToken:a,offset:i,glacierService:o})=>{try{let c=await o.listTransactions({chainId:e.toString(),address:n,pageToken:a,pageSize:i});return {transactions:(await Promise.all(c.transactions.filter(m=>m.nativeTransaction.txStatus==="1").map(m=>na({transactions:m,explorerUrl:t,networkToken:r,chainId:e,address:n}).then(u=>u)))).filter(m=>m.tokens.find(u=>Number(u.amount)!==0)),nextPageToken:c.nextPageToken}}catch{return {transactions:[],nextPageToken:""}}},"getTransactionsFromGlacier");var oa=chunkVYIKXRYZ_cjs.a(async({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i,glacierService:o})=>Kn(e)?Yn({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):o.isHealthy()?aa({networkToken:t,explorerUrl:r,chainId:e,address:n,nextPageToken:a,offset:i,glacierService:o}):{transactions:[],nextPageToken:""},"getTransactionHistory");var Ns="https://ipfs.io";function sa(e,t=Ns){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(sa,"ipfsResolverWithFallback");var ws="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Ct(e,t="256"){let r=sa(e);return `${ws}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Ct,"getSmallImageForNFT");var Le,K,pr=class pr{constructor(t,r){this.baseUrl=t;chunkVYIKXRYZ_cjs.d(this,Le,[]);chunkVYIKXRYZ_cjs.d(this,K,void 0);chunkVYIKXRYZ_cjs.e(this,K,r??fetch);}async isNetworkSupported(t){return (await this.getChainList()).some(n=>n.community_id===t)}async getChainInfo({chainId:t}){return (await this.getChainList()).find(n=>n.id===t)}async getTokenBalance({chainId:t,address:r,tokenId:n}){let a=await chunkVYIKXRYZ_cjs.c(this,K).call(this,`${this.baseUrl}/v1/user/token?id=${r}&chain_id=${t}&token_id=${n}`);if(a.ok)return await a.json();throw new Error(`${a.status}:${a.statusText}`)}async getTokensBalanceOnChain({chainId:t,address:r}){let n=await chunkVYIKXRYZ_cjs.c(this,K).call(this,`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${t}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getTokenList({chainId:t,address:r}){let n=await(chunkVYIKXRYZ_cjs.c(this,K)??globalThis.fetch)(`${this.baseUrl}/v1/user/token_list?id=${r}&chain_id=${t}`);if(n.ok)return await n.json();throw new Error(`${n.status}:${n.statusText}`)}async getChainList(){if(chunkVYIKXRYZ_cjs.c(this,Le).length===0){let t=await chunkVYIKXRYZ_cjs.c(this,K).call(this,`${this.baseUrl}/v1/chain/list`);if(t.ok)chunkVYIKXRYZ_cjs.e(this,Le,await t.json());else throw new Error(`${t.status}:${t.statusText}`)}return chunkVYIKXRYZ_cjs.c(this,Le)}async getNftList({address:t,chainId:r}){return M([`${this.baseUrl}/v1/user/nft_list?id=${t}&chain_id=${r}`],Fs,chunkVYIKXRYZ_cjs.c(this,K))}};Le=new WeakMap,K=new WeakMap,chunkVYIKXRYZ_cjs.a(pr,"DeBank");var Nt=pr,Ds=zod.z.object({id:zod.z.union([zod.z.custom(ethers.isHexString),zod.z.string()]),chain:zod.z.string(),name:zod.z.string()}),Bs=Ds.merge(zod.z.object({contract_id:zod.z.string(),description:zod.z.string().nullable(),content_type:zod.z.string().nullable(),content:zod.z.string(),thumbnail_url:zod.z.string(),total_supply:zod.z.number(),detail_url:zod.z.string(),collection_id:zod.z.string(),is_core:zod.z.boolean(),inner_id:zod.z.string(),collection_name:zod.z.string(),contract_name:zod.z.string(),amount:zod.z.number(),usd_price:zod.z.number().optional(),is_erc721:zod.z.boolean().optional(),is_erc1155:zod.z.boolean().optional()})),Fs=zod.z.array(Bs);var W,Ge,_t,Bt,ca,dr=class dr{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,Ge);chunkVYIKXRYZ_cjs.d(this,Bt);chunkVYIKXRYZ_cjs.d(this,W,void 0);chunkVYIKXRYZ_cjs.e(this,W,new Nt(`${t}/proxy/debank`,r));}async isNetworkSupported(t){return chunkVYIKXRYZ_cjs.c(this,W).isNetworkSupported(t)}async getNativeBalance({chainId:t,address:r,currency:n}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid address: "+r);let{chainInfo:a,chainIdString:i}=await chunkVYIKXRYZ_cjs.f(this,Ge,_t).call(this,t),o=a.native_token_id,c=await chunkVYIKXRYZ_cjs.c(this,W).getTokenBalance({address:r,chainId:i,tokenId:o}),l=new coreUtilsSdk.TokenUnit(c.raw_amount,c.decimals,c.symbol),p=l.toDisplay(),u=(await it()).usd[n.toLowerCase()],f=u?u*c.price:void 0,y=f?l.mul(f).toDisplay({fixedDp:2}):void 0,h=f?l.mul(f).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {name:c.name,symbol:c.symbol,decimals:c.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:c.logo_url,balance:l.toSubUnit(),balanceDisplayValue:p,balanceInCurrency:h,balanceCurrencyDisplayValue:y,priceInCurrency:f}}async listErc20Balances({chainId:t,address:r,currency:n}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("listErc20Balances: not valid address");let{chainInfo:a,chainIdString:i}=await chunkVYIKXRYZ_cjs.f(this,Ge,_t).call(this,t),o=await chunkVYIKXRYZ_cjs.c(this,W).getTokensBalanceOnChain({chainId:i,address:r}),c=await it(),l={};for(let p of o){if(p.id===a.native_token_id||p.is_core===!1)continue;let m=new coreUtilsSdk.TokenUnit(p.raw_amount,p.decimals,p.symbol),u=m.toDisplay(),f=c.usd[n.toLowerCase()],y=f?f*p.price:void 0,h=y?m.mul(y).toDisplay({fixedDp:2}):void 0,R=y?m.mul(y).toDisplay({fixedDp:2,asNumber:!0}):void 0;l[p.id]={chainId:a.community_id,address:p.id,name:p.name,symbol:p.symbol,decimals:p.decimals,logoUri:p.logo_url,balance:m.toSubUnit(),balanceCurrencyDisplayValue:h,balanceDisplayValue:u,balanceInCurrency:R,priceInCurrency:y,type:vmModuleTypes.TokenType.ERC20,reputation:null};}return l}async listNftBalances({chainId:t,address:r}){if(!ethers.isHexString(r))throw rpcErrors.rpcErrors.invalidParams("listNftBalances: not valid address");let{chainIdString:n}=await chunkVYIKXRYZ_cjs.f(this,Ge,_t).call(this,t),a=await chunkVYIKXRYZ_cjs.c(this,W).getNftList({chainId:n,address:r});return chunkVYIKXRYZ_cjs.f(this,Bt,ca).call(this,a,t)}};W=new WeakMap,Ge=new WeakSet,_t=chunkVYIKXRYZ_cjs.a(async function(t){let n=(await chunkVYIKXRYZ_cjs.c(this,W).getChainList()).find(i=>i.community_id===t)?.id;if(!n)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);let a=await chunkVYIKXRYZ_cjs.c(this,W).getChainInfo({chainId:n});if(!a)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);return {chainInfo:a,chainIdString:n}},"#getChainInfo"),Bt=new WeakSet,ca=chunkVYIKXRYZ_cjs.a(function(t,r){return t.reduce((n,a)=>({...n,[`${a.contract_id}-${a.id}`]:{chainId:r,address:a.contract_id,description:a.description??"",logoUri:a.thumbnail_url,logoSmall:Ct(a.content),name:a.name,symbol:"",tokenId:`${a.inner_id}`,tokenUri:a.detail_url,collectionName:a.collection_name,balance:BigInt(a.amount),balanceDisplayValue:`${a.amount}`,type:a.is_erc721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:glacierSdk.NftTokenMetadataStatus.UNINDEXED,description:a.description??"",properties:""}}}),{})},"#mapNftList"),chunkVYIKXRYZ_cjs.a(dr,"DeBankService");var Dt=dr;var fr=class fr extends Error{constructor(){super(...arguments);chunkVYIKXRYZ_cjs.b(this,"message","Glacier is unhealthy. Try again later.");}};chunkVYIKXRYZ_cjs.a(fr,"GlacierUnhealthyError");var J=fr,Vs=[coreChainsSdk.ChainId.ETHEREUM_HOMESTEAD],yr=class yr{constructor({glacierApiUrl:t,headers:r}){chunkVYIKXRYZ_cjs.b(this,"glacierSdk");chunkVYIKXRYZ_cjs.b(this,"isGlacierHealthy",!0);chunkVYIKXRYZ_cjs.b(this,"supportedChainIds",[]);chunkVYIKXRYZ_cjs.b(this,"isHealthy",chunkVYIKXRYZ_cjs.a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new glacierSdk.Glacier({BASE:t,HEADERS:r},We),this.getSupportedChainIds().catch(()=>{});}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async isNetworkSupported(t){return (await this.getSupportedChainIds()).some(n=>n===t.toString())}async getSupportedChainIds(){if(this.supportedChainIds.length)return this.supportedChainIds;try{let t=await this.glacierSdk.evmChains.supportedChains({});return this.supportedChainIds=t.chains.map(r=>r.chainId).filter(r=>!Vs.includes(Number(r))),this.supportedChainIds}catch{return []}}async reindexNft({address:t,chainId:r,tokenId:n}){try{await this.glacierSdk.nfTs.reindexNft({address:t,chainId:r,tokenId:n});}catch(a){throw a instanceof J&&this.setGlacierToUnhealthy(),a}}async getTokenDetails({address:t,chainId:r,tokenId:n}){try{return this.glacierSdk.nfTs.getTokenDetails({address:t,chainId:r,tokenId:n})}catch(a){throw a instanceof J&&this.setGlacierToUnhealthy(),a}}async getNativeBalance({chainId:t,address:r,currency:n,coingeckoId:a}){try{let o=(await this.glacierSdk.evmBalances.getNativeBalance({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase()})).nativeTokenBalance,c=new coreUtilsSdk.TokenUnit(o.balance,o.decimals,o.symbol),l=o.price?.value,p=l!==void 0?c.mul(l):void 0;return {name:o.name,symbol:o.symbol,decimals:o.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:o.logoUri,balance:c.toSubUnit(),balanceDisplayValue:c.toDisplay(),balanceInCurrency:p?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:p?.toDisplay({fixedDp:2}),priceInCurrency:l,coingeckoId:a??""}}catch(i){throw i instanceof J&&this.setGlacierToUnhealthy(),i}}async listErc721Balances({chainId:t,address:r}){let n,a=[];do try{let i=await this.glacierSdk.evmBalances.listErc721Balances({chainId:t,address:r,pageSize:100,pageToken:n});a.push(...i.erc721TokenBalances),n=i.nextPageToken;}catch(i){throw i instanceof J&&this.setGlacierToUnhealthy(),i}while(n);return a}async listErc1155Balances({chainId:t,address:r}){let n,a=[];do try{let i=await this.glacierSdk.evmBalances.listErc1155Balances({chainId:t,address:r,pageSize:100,pageToken:n});a.push(...i.erc1155TokenBalances),n=i.nextPageToken;}catch(i){throw i instanceof J&&this.setGlacierToUnhealthy(),i}while(n);return a}async listNftBalances({chainId:t,address:r}){let a=(await Promise.allSettled([this.listErc721Balances({chainId:t.toString(),address:r}),this.listErc1155Balances({chainId:t.toString(),address:r})])).filter(i=>i.status==="fulfilled").flatMap(i=>i.value.filter(o=>o.ercType===glacierSdk.Erc721Token.ercType.ERC_721||BigInt(o.balance)>0n).map(o=>[`${o.address}-${o.tokenId}`,{address:o.address,description:o.metadata.description??"",logoUri:o.metadata.imageUri??"",logoSmall:Ct(o.metadata.imageUri??""),name:o.metadata.name??"",symbol:o.metadata.symbol??"",tokenId:o.tokenId,tokenUri:o.tokenUri,chainId:t,collectionName:"Unknown",balance:o.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?BigInt(o.balance):1,balanceDisplayValue:o.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?o.balance:"1",type:o.ercType===glacierSdk.Erc721Token.ercType.ERC_721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:o.metadata.indexStatus,description:o.metadata.description,lastUpdatedTimestamp:o.metadata.metadataLastUpdatedTimestamp,properties:o.ercType===glacierSdk.Erc721Token.ercType.ERC_721?o.metadata.attributes:o.metadata.properties}}]));return Object.fromEntries(a)}async listErc20Balances({chainId:t,address:r,currency:n,customTokens:a}){try{let i=[],o;do{let c=await this.glacierSdk.evmBalances.listErc20Balances({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase(),pageSize:100,pageToken:o});i.push(...Hs(c.erc20TokenBalances,Number(t))),o=c.nextPageToken;}while(o);return [...Os(a),...i].reduce((c,l)=>({...c,[l.address.toLowerCase()]:l}),{})}catch(i){throw i instanceof J&&this.setGlacierToUnhealthy(),i}}async listTransactions({chainId:t,address:r,pageToken:n,pageSize:a}){try{return this.glacierSdk.evmTransactions.listTransactionsV2({chainId:t,address:r,pageToken:n,pageSize:a,filterSpamTokens:!0})}catch(i){throw i instanceof J&&this.setGlacierToUnhealthy(),i}}};chunkVYIKXRYZ_cjs.a(yr,"EvmGlacierService");var Ft=yr,Os=chunkVYIKXRYZ_cjs.a(e=>e.map(t=>({...t,decimals:t.decimals??18,type:vmModuleTypes.TokenType.ERC20,balance:0n,balanceInCurrency:0,balanceDisplayValue:"0",balanceCurrencyDisplayValue:"0",priceInCurrency:0,marketCap:0,change24:0,vol24:0,reputation:null})),"convertErc20TokenToTokenWithBalance"),Hs=chunkVYIKXRYZ_cjs.a((e,t)=>e.map(r=>{let n=new coreUtilsSdk.TokenUnit(r.balance,r.decimals,r.symbol),a=n.toDisplay(),i=r.balanceValue?.value.toString(),o=r.price?.value,c=o!==void 0?n.mul(o).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {chainId:t,address:r.address,name:r.name,symbol:r.symbol,decimals:r.decimals,logoUri:r.logoUri,balance:n.toSubUnit(),balanceCurrencyDisplayValue:i,balanceDisplayValue:a,balanceInCurrency:c,priceInCurrency:o,reputation:r.tokenReputation,type:vmModuleTypes.TokenType.ERC20}}),"convertErc20TokenWithBalanceToTokenWithBalance");var Ve,ot,se,j,ge,he,gr=class gr{constructor({approvalController:t,environment:r,appInfo:n,runtime:a}){chunkVYIKXRYZ_cjs.d(this,Ve,void 0);chunkVYIKXRYZ_cjs.d(this,ot,void 0);chunkVYIKXRYZ_cjs.d(this,se,void 0);chunkVYIKXRYZ_cjs.d(this,j,void 0);chunkVYIKXRYZ_cjs.d(this,ge,void 0);chunkVYIKXRYZ_cjs.d(this,he,void 0);let{glacierApiUrl:i,proxyApiUrl:o}=xr(r);chunkVYIKXRYZ_cjs.e(this,he,a),chunkVYIKXRYZ_cjs.e(this,Ve,new Ft({glacierApiUrl:i,headers:$t(n)})),chunkVYIKXRYZ_cjs.e(this,ot,new Dt({proxyApiUrl:o,fetch:chunkVYIKXRYZ_cjs.c(this,he)?.fetch})),chunkVYIKXRYZ_cjs.e(this,se,o),chunkVYIKXRYZ_cjs.e(this,j,t),chunkVYIKXRYZ_cjs.e(this,ge,new Ws__default.default({baseURL:o+"/proxy/blockaid/",apiKey:Ar,httpAgent:a?.httpAgent,fetch:a?.fetch}));}getProvider(t){return F({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders})}getAddress({accountIndex:t,xpub:r,walletType:n}){return Bn({accountIndex:t,xpub:r,walletType:n})}buildDerivationPath(t){return ve(t)}deriveAddress(t){return Lr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,j)})}deriveAddresses(t){return Gr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,j)})}getBalances({addresses:t,network:r,currency:n,customTokens:a,storage:i,tokenTypes:o,customTokensOnly:c}){let l=new te({storage:i,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,se),fetch:chunkVYIKXRYZ_cjs.c(this,he)?.fetch});return Ln({addresses:t,currency:n,network:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,se),customTokens:a,customTokensOnly:c,balanceServices:[chunkVYIKXRYZ_cjs.c(this,Ve),chunkVYIKXRYZ_cjs.c(this,ot)],storage:i,tokenTypes:o,tokenService:l,fetch:chunkVYIKXRYZ_cjs.c(this,he)?.fetch})}getManifest(){let t=vmModuleTypes.parseManifest(Pr);return t.success?t.data:void 0}getNetworkFee(t){let{chainId:r,chainName:n,rpcUrl:a,utilityAddresses:i,caipId:o,customRpcHeaders:c}=t;return $n({chainId:r,chainName:n,rpcUrl:a,multiContractAddress:i?.multicall,caipId:o,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,se),customRpcHeaders:c})}getTransactionHistory(t){let{network:r,address:n,nextPageToken:a,offset:i}=t,{chainId:o,networkToken:c,explorerUrl:l=""}=r;return oa({chainId:o,networkToken:c,explorerUrl:l,address:n,nextPageToken:a,offset:i,glacierService:chunkVYIKXRYZ_cjs.c(this,Ve)})}getTokens(t){let{chainId:r}=t;return Pt({chainId:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,se)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION:return gn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,j),blockaid:chunkVYIKXRYZ_cjs.c(this,ge)});case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION_BATCH:return Yr(chunkVYIKXRYZ_cjs.c(this,j))?mn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,j),blockaid:chunkVYIKXRYZ_cjs.c(this,ge)}):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} requires BatchApprovalController`)};case vmModuleTypes.RpcMethod.AVALANCHE_DECLARE_AGENT_IDENTITY:return Ur({request:t,network:r});case vmModuleTypes.RpcMethod.PERSONAL_SIGN:case vmModuleTypes.RpcMethod.ETH_SIGN:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3:case vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4:return wn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,j),blockaid:chunkVYIKXRYZ_cjs.c(this,ge)});default:return js(t.method)?_n(t,r):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}};Ve=new WeakMap,ot=new WeakMap,se=new WeakMap,j=new WeakMap,ge=new WeakMap,he=new WeakMap,chunkVYIKXRYZ_cjs.a(gr,"EvmModule");var da=gr,js=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("eth_")||["web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"].includes(e),"shouldForwardToRpcNode");
44
44
 
45
- exports.ERC20TransactionType = q;
45
+ exports.ERC20TransactionType = z;
46
46
  exports.EvmModule = da;
47
47
  exports.NonContractCallTypes = $r;
48
- exports.TransactionKind = Kt;
49
- exports.addIdToPromise = we;
48
+ exports.TransactionKind = Jt;
49
+ exports.addIdToPromise = De;
50
50
  exports.isTypedData = jm;
51
- exports.isTypedDataV1 = Nn;
52
- exports.settleAllIdPromises = _e;
51
+ exports.isTypedDataV1 = Cn;
52
+ exports.settleAllIdPromises = Be;
53
53
  //# sourceMappingURL=out.js.map
54
54
  //# sourceMappingURL=index.cjs.map