@avalabs/evm-module 4.0.2 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkVYIKXRYZ_cjs = require('./chunk-VYIKXRYZ.cjs');
4
4
  var vmModuleTypes = require('@avalabs/vm-module-types');
5
- var bi = require('@blockaid/client');
5
+ var $i = require('@blockaid/client');
6
6
  var coreCoingeckoSdk = require('@avalabs/core-coingecko-sdk');
7
7
  var zod = require('zod');
8
8
  var glacierSdk = require('@avalabs/glacier-sdk');
@@ -10,20 +10,20 @@ var rpcErrors = require('@metamask/rpc-errors');
10
10
  var ethers = require('ethers');
11
11
  var coreWalletsSdk = require('@avalabs/core-wallets-sdk');
12
12
  var cryptoSdk = require('@avalabs/crypto-sdk');
13
- var Tn = require('@openzeppelin/contracts/build/contracts/ERC20.json');
13
+ var An = require('@openzeppelin/contracts/build/contracts/ERC20.json');
14
14
  var coreUtilsSdk = require('@avalabs/core-utils-sdk');
15
- var yn = require('xss');
15
+ var In = require('xss');
16
16
  var coreChainsSdk = require('@avalabs/core-chains-sdk');
17
- var Bo = require('lodash.startcase');
17
+ var ti = require('lodash.startcase');
18
18
 
19
19
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
20
20
 
21
- var bi__default = /*#__PURE__*/_interopDefault(bi);
22
- var Tn__default = /*#__PURE__*/_interopDefault(Tn);
23
- var yn__default = /*#__PURE__*/_interopDefault(yn);
24
- var Bo__default = /*#__PURE__*/_interopDefault(Bo);
21
+ var $i__default = /*#__PURE__*/_interopDefault($i);
22
+ var An__default = /*#__PURE__*/_interopDefault(An);
23
+ var In__default = /*#__PURE__*/_interopDefault(In);
24
+ var ti__default = /*#__PURE__*/_interopDefault(ti);
25
25
 
26
- function _r(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}chunkVYIKXRYZ_cjs.a(_r,"charsum");function qt(e){let t,r=0;for(t=0;t<e.length;t++){let n=_r(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}chunkVYIKXRYZ_cjs.a(qt,"arrayHash");var me=chunkVYIKXRYZ_cjs.a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=W.exponential()})=>{let a=0,i=0,s;for(;i<r;){i>0&&await Ua(a);try{let l=await e(i);if(t(l))return l}catch(l){s=l;}a=n(i),i++;}let c=s?`Max retry exceeded. ${s}`:"Max retry exceeded.";throw new Error(c)},"retry"),zt=class zt{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,s=2*r*(Math.pow(2,a)-1);return i+s}}};chunkVYIKXRYZ_cjs.a(zt,"RetryBackoffPolicy");var W=zt;function Ua(e){return new Promise(t=>setTimeout(t,e))}chunkVYIKXRYZ_cjs.a(Ua,"delay");var Kt=chunkVYIKXRYZ_cjs.a(e=>me({operation:t=>e(t>0),maxRetries:2,backoffPolicy:W.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function G(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(G,"fetchAndVerify");var Yt=class Yt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return G([`${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 G([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};chunkVYIKXRYZ_cjs.a(Yt,"CoingeckoProxyClient");var je=Yt;var Fa=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())})),Jt=class Jt{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return G([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],Fa)}};chunkVYIKXRYZ_cjs.a(Jt,"WatchlistProxyClient");var dt=Jt;var re,de,ue,ve,Xt=class Xt{constructor({storage:t,proxyApiUrl:r,fetch:n}){chunkVYIKXRYZ_cjs.d(this,re,void 0);chunkVYIKXRYZ_cjs.d(this,de,void 0);chunkVYIKXRYZ_cjs.d(this,ue,void 0);chunkVYIKXRYZ_cjs.d(this,ve,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(s=>{n[a]={[s]:{price:i?.[s],change24:i?.[`${s}_24h_change`],vol24:i?.[`${s}_24h_vol`],marketCap:i?.[`${s}_market_cap`]}};});}),n},"transformSimplePriceResponse"));chunkVYIKXRYZ_cjs.e(this,re,t),chunkVYIKXRYZ_cjs.e(this,de,r),chunkVYIKXRYZ_cjs.e(this,ue,n??globalThis.fetch),chunkVYIKXRYZ_cjs.e(this,ve,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,chunkVYIKXRYZ_cjs.c(this,ue)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new dt(chunkVYIKXRYZ_cjs.c(this,de)).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?`${qt(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=chunkVYIKXRYZ_cjs.c(this,re)?.get?.(i),n)return n;try{n=await Kt(s=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:s}));}catch{n=void 0;}return chunkVYIKXRYZ_cjs.c(this,re)?.set?.(i,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let a,s=`getPricesWithMarketDataByAddresses-${`${qt(t)}-${r}-${n}`}`;if(a=chunkVYIKXRYZ_cjs.c(this,re)?.get?.(s),a)return a;try{a=await Kt(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),a=void 0;}return chunkVYIKXRYZ_cjs.c(this,re)?.set?.(s,a),a}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:a=!1}){if(a){let i=await new je(chunkVYIKXRYZ_cjs.c(this,de),chunkVYIKXRYZ_cjs.c(this,ue)).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,ve),{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:s=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let p=await new je(chunkVYIKXRYZ_cjs.c(this,de),chunkVYIKXRYZ_cjs.c(this,ue)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:a,include_24hr_change:i,include_last_updated_at:s});return this.transformSimplePriceResponse(p,r)}return coreCoingeckoSdk.simplePrice(chunkVYIKXRYZ_cjs.c(this,ve),{coinIds:t,currencies:r,marketCap:n,vol24:a,change24:i,lastUpdated:s,shouldThrow:l})}};re=new WeakMap,de=new WeakMap,ue=new WeakMap,ve=new WeakMap,chunkVYIKXRYZ_cjs.a(Xt,"TokenService");var ne=Xt;var Wa="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.min.json",ja="https://latest.currency-api.pages.dev/v1/currencies/usd.min.json",Br=zod.object({date:zod.string(),usd:zod.record(zod.number())}),ut=chunkVYIKXRYZ_cjs.a(async()=>{try{return await G([Wa],Br)}catch{return await G([ja],Br)}},"getExchangeRates");var V=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"),Y=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS,value:t}),"addressItem");var ft=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var Zt=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 Ur=process.env.GLACIER_API_KEY;var qe=chunkVYIKXRYZ_cjs.a(()=>Ur,"getGlacierApiKey");var qa=["glacier-api.avax.network","proxy-api.avax.network","proxy-api-dev.avax.network","core-proxy-api.avax.network","core-proxy-api.avax-test.network"];function Qt(e){let t=new URL(e),r=qe();if(r&&qa.includes(t.hostname)){let n=t.searchParams;return n.set("token",r),t.search=n.toString(),t.toString()}return e}chunkVYIKXRYZ_cjs.a(Qt,"addGlacierAPIKeyIfNeeded");var Ya={rltoken:qe()},ge,yt,ht,Mr,Tt,Lr,er=class er extends glacierSdk.FetchHttpRequest{constructor(r){super(r);chunkVYIKXRYZ_cjs.d(this,ht);chunkVYIKXRYZ_cjs.d(this,Tt);chunkVYIKXRYZ_cjs.d(this,ge,0);chunkVYIKXRYZ_cjs.d(this,yt,W.exponential());}request(r){let n={...Ya,...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,ge)>0?chunkVYIKXRYZ_cjs.f(this,Tt,Lr).call(this,i):chunkVYIKXRYZ_cjs.f(this,ht,Mr).call(this,i)}};ge=new WeakMap,yt=new WeakMap,ht=new WeakSet,Mr=chunkVYIKXRYZ_cjs.a(function(r){let n=r();return new glacierSdk.CancelablePromise((a,i,s)=>{s(()=>n.cancel()),n.then(c=>{chunkVYIKXRYZ_cjs.e(this,ge,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,ge,chunkVYIKXRYZ_cjs.c(this,ge)+Number(l||p));}i(c);});})},"#request"),Tt=new WeakSet,Lr=chunkVYIKXRYZ_cjs.a(function(r){let n=chunkVYIKXRYZ_cjs.c(this,yt).call(this,chunkVYIKXRYZ_cjs.c(this,ge));return new glacierSdk.CancelablePromise((a,i,s)=>{let c=setTimeout(()=>{let l=r();s(()=>{l.cancel(),clearTimeout(c);}),l.then(a).catch(i);},n);})},"#postponeRequest"),chunkVYIKXRYZ_cjs.a(er,"GlacierFetchHttpRequest");var ze=er;var j=chunkVYIKXRYZ_cjs.a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var Gr={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 Vr="DUMMY_API_KEY";var Xa={glacierApiUrl:"https://core-proxy-api.avax.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api.avax.network"},Za={glacierApiUrl:"https://core-proxy-api.avax-test.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api-dev.avax.network"},Or=chunkVYIKXRYZ_cjs.a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return Xa;case vmModuleTypes.Environment.DEV:return Za}},"getEnv");var Pe=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 M=chunkVYIKXRYZ_cjs.a(async e=>{let{chainId:t,chainName:r,rpcUrl:n,multiContractAddress:a,pollingInterval:i=2e3,customRpcHeaders:s}=e,c=Qt(n),l=c;if(s){let m=new ethers.FetchRequest(c);for(let[u,f]of Object.entries(s))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");var ns=5*60*1e3,as={43114:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"},ss=["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)"],os=["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)"],qr=new Map,is=chunkVYIKXRYZ_cjs.a(e=>e===null?"unknown":e>=75?"high":e>=40?"medium":"low","getTrustLevel"),cs=chunkVYIKXRYZ_cjs.a(e=>e===null||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.trunc(e))),"clampScore"),nr=chunkVYIKXRYZ_cjs.a(e=>{let t=typeof e=="bigint"?Number(e):e;return Number.isFinite(t)?t:null},"toNumber"),zr=chunkVYIKXRYZ_cjs.a((e,t)=>{let r=nr(e),n=nr(t);return r===null||n===null||n<0?null:r/10**n},"scaleFixedPoint"),ls=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationSummaryTuple"),Ie=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationFeedbackTuple"),ps=chunkVYIKXRYZ_cjs.a(e=>ls(e)?{count:e[0],summaryValue:e[1],summaryValueDecimals:e[2]}:e,"getSummaryValue"),ms=chunkVYIKXRYZ_cjs.a(e=>{let t=Ie(e)?e[2]:e.values,r=Ie(e)?e[3]:e.valueDecimals,n=Ie(e)?e[4]:e.tag1s,a=Ie(e)?e[5]:e.tag2s,i=Ie(e)?e[6]:e.isRevoked;return t.map((s,c)=>({value:s,valueDecimals:r[c]??0,tag1:n[c],tag2:a[c],isRevoked:i[c]}))},"getFeedbackValues"),ds=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"),tr="starred",us=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"),gs=chunkVYIKXRYZ_cjs.a(e=>Ie(e)?e[0]:e.clients,"getFeedbackClients"),fs=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{try{if(ethers.getAddress(await e.getIdentityRegistry())!==t)return null;let a=await e.readAllFeedback(r,[],tr,"",!1),i=ms(a).filter(c=>c.tag1===void 0||c.tag1===tr).filter(c=>!c.isRevoked),s=us(gs(a));if(s.length)try{let c=ps(await e.getSummary(r,s,tr,""));if(nr(c.count))return zr(c.summaryValue,c.summaryValueDecimals)}catch{}return ds(i.map(c=>zr(c.value,c.valueDecimals)))}catch{return null}},"resolveReputationScore"),ys=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"),rr=chunkVYIKXRYZ_cjs.a(e=>({agentId:e.agentId,agentRegistry:e.agentRegistry,owner:null,reputationScore:null,metadataUri:null,trustLevel:"unknown"}),"buildFallback"),Kr=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"),Yr=chunkVYIKXRYZ_cjs.a(e=>{if(!e||e==="0x")return null;try{return ethers.toUtf8String(e)}catch{return null}},"decodeMetadata"),ae=chunkVYIKXRYZ_cjs.a(async({declaration:e,rpcUrl:t,chainId:r,chainName:n,customRpcHeaders:a})=>{let i=qr.get(`${t}:${e.agentRegistry}:${e.agentId}`);if(i&&i.expiresAt>Date.now())return i.value;let s=ys(e.agentRegistry);if(!s)return rr(e);if(!/^\d+$/.test(e.agentId))return rr({...e,agentRegistry:`eip155:${s.chainId}:${s.address}`});let c={...e,agentRegistry:`eip155:${s.chainId}:${s.address}`},l=rr(c),p=await M({chainId:r,chainName:n,rpcUrl:t,customRpcHeaders:a}),m=new ethers.Contract(s.address,ss,p),u=as[s.chainId],f=u?new ethers.Contract(u,os,p):null,[y,g,k]=await Promise.all([Kr([async()=>ethers.getAddress(await m.ownerOf(BigInt(e.agentId)))]),Kr([async()=>await m.tokenURI(BigInt(e.agentId)),async()=>await m.agentURI(BigInt(e.agentId)),async()=>Yr(await m.getMetadata(BigInt(e.agentId),"agentURI")),async()=>Yr(await m.getMetadata(BigInt(e.agentId),"uri"))]),f?fs(f,s.address,BigInt(e.agentId)):Promise.resolve(null)]),T=cs(k??null),P={...l,owner:y??null,metadataUri:g??null,reputationScore:T,trustLevel:is(T)};return qr.set(`${t}:${e.agentRegistry}:${e.agentId}`,{expiresAt:Date.now()+ns,value:P}),P},"resolveAgentIdentity");var Ts=zod.z.object({agentId:zod.z.coerce.string().regex(/^\d+$/),agentRegistry:zod.z.string().min(1)}),Jr=chunkVYIKXRYZ_cjs.a(async({request:e,network:t})=>{let r=Ts.safeParse(e.params);return r.success?{result:await ae({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 Xr=chunkVYIKXRYZ_cjs.a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var Zr=chunkVYIKXRYZ_cjs.a(async e=>{let{secretId:t,approvalController:r}=e,n=Xr(e)?Pe(e).EVM:void 0,a=await r.requestPublicKey({curve:"secp256k1",secretId:t,derivationPath:n});return {[vmModuleTypes.NetworkVMType.EVM]:ethers.computeAddress(`0x${a}`)}},"deriveAddress");var Qr=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=Pe({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 Ae=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 en=zod.z.tuple([Ae,Ae]).rest(Ae).refine(e=>sr(e,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(e=>sr(e,"from"),{message:'All transactions must use the same "from" address'}).refine(e=>Ss(e,"nonce")||As(e,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'}),Ps=zod.z.object({skipIntermediateTxs:zod.z.boolean().optional()}),Is=zod.z.union([en,zod.z.object({transactions:en,options:Ps.optional()})]);function As(e,t){return !sr(e,t)}chunkVYIKXRYZ_cjs.a(As,"areAllDifferentByProp");function Ss(e,t){return e.every(r=>r[t]===void 0||r[t]==="")}chunkVYIKXRYZ_cjs.a(Ss,"areAllEmptyByProp");function sr(e,t){return new Set(e.map(n=>n[t])).size===1}chunkVYIKXRYZ_cjs.a(sr,"areAllEqualByProp");var tn=chunkVYIKXRYZ_cjs.a(e=>{let t=Is.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 bt=chunkVYIKXRYZ_cjs.a(async({from:e,provider:t})=>t.getTransactionCount(e),"getNonce");var rn=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(e[0].nonce)return;let r=await bt({from:e[0].from,provider:t});return Promise.all(e.map(async(n,a)=>{n.nonce=String(r+a);}))},"ensureProperNonces");var xs=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("https://")||e.startsWith("http://")||e.startsWith("ipfs://"),"isNavigableMetadataUri"),Cs=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("data:"),"isEmbeddedDataUri"),Se=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(Y("Owner",e.owner)),e.metadataUri&&t.push(xs(e.metadataUri)?Re("Metadata",{url:e.metadataUri,name:e.metadataUri}):Cs(e.metadataUri)?V("Metadata","Embedded data URI","vertical"):V("Metadata",e.metadataUri,"vertical")),{title:"Agent Identity",items:t}},"buildAgentIdentityDetailSection");var nn=[vmModuleTypes.TransactionType.SEND,vmModuleTypes.TransactionType.RECEIVE,vmModuleTypes.TransactionType.TRANSFER,vmModuleTypes.TransactionType.NFT_SEND,vmModuleTypes.TransactionType.NFT_RECEIVE],J=(s=>(s.TOTAL_SUPPLY="totalSupply",s.BALANCE_OF="balanceOf",s.TRANSFER="transfer",s.TRANSFER_FROM="transferFrom",s.APPROVE="approve",s.ALLOWANCE="allowance",s))(J||{}),or=(n=>(n.NATIVE_TRANSFER="native_transfer",n.ERC20_TRANSFER="erc20_transfer",n.CONTRACT_CALL="contract_call",n))(or||{});var xe=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(Tn__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;return n&&_s(n)?n:void 0}catch{return}},"parseERC20TransactionType");function _s(e){return Object.values(J).includes(e)}chunkVYIKXRYZ_cjs.a(_s,"isERC20TransactionType");var an=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(Tn__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 sn=chunkVYIKXRYZ_cjs.a(e=>{if(!!!(e.data&&e.data!=="0x"))return "native_transfer";let r=xe(e);return r==="transfer"||r==="transferFrom"?"erc20_transfer":"contract_call"},"classifyTransaction");var on=["function register(((uint256[2],uint256[2][2],uint256[2]),uint256[5]) proof)","function setAuditorPublicKey(address user)","function privateMint(address user, ((uint256[2],uint256[2][2],uint256[2]),uint256[24]) proof)","function privateMint(address user, ((uint256[2],uint256[2][2],uint256[2]),uint256[24]) proof, bytes message)","function deposit(uint256 amount, address tokenAddress, uint256[7] amountPCT)","function deposit(uint256 amount, address tokenAddress, uint256[7] amountPCT, bytes message)","function transfer(address to, uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[32]) proof, uint256[7] balancePCT)","function transfer(address to, uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[32]) proof, uint256[7] balancePCT, bytes message)","function withdraw(uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[16]) proof, uint256[7] balancePCT)","function withdraw(uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[16]) proof, uint256[7] balancePCT, bytes message)"];var cn=(s=>(s.REGISTER="register",s.DEPOSIT="deposit",s.TRANSFER="transfer",s.WITHDRAW="withdraw",s.PRIVATE_MINT="privateMint",s.SET_AUDITOR_PUBLIC_KEY="setAuditorPublicKey",s))(cn||{}),Fs=new ethers.Interface(on),ln=chunkVYIKXRYZ_cjs.a(e=>{if(!(!e.data||e.data==="0x"))try{let t=Fs.parseTransaction({data:e.data,value:e.value}),r=t?.name??t?.fragment?.name;return r&&Ms(r)?{operation:r}:void 0}catch{return}},"parseEercTransaction");function Ms(e){return Object.values(cn).includes(e)}chunkVYIKXRYZ_cjs.a(Ms,"isEercOperation");var vt=chunkVYIKXRYZ_cjs.a((e,t,r,{isSimulationSuccessful:n,balanceChange:a,tokenApprovals:i,alert:s},c,l=!1)=>{let{dappInfo:p}=e,m=xe(r),u="Do you approve this transaction?";m==="approve"&&(u="Do you approve this spend limit?");let f=an(r),y=[Y("Account",r.from),ft("Network",{name:t.chainName,logoUri:t.logoUri}),Re("Website",p)].filter(P=>!!P),g=sn(r);if(g!=="contract_call"&&f&&y.push(Y("To",f)),r.to&&["erc20_transfer","contract_call"].includes(g)&&y.push(Y("Contract",r.to)),l){let P=ln(r);P&&(y.push(V("Operation",P.operation)),y.push(V("Privacy","eERC20")));}let k={title:u,details:[{title:"Transaction Details",items:y},...c?[Se(c)]:[]],networkFeeSelector:!0,alert:s,balanceChange:a,tokenApprovals:i,isSimulationSuccessful:n},T={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:k,signingData:T}},"buildTxApprovalRequest");var Rt=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?me({operation:()=>n(),isSuccess:()=>!0,maxRetries:6,backoffPolicy:W.linearThenExponential(4,1e3)}):n()},"getTxHash");function se(e,t,r="tx"){return `${e}/${r}/${t}`}chunkVYIKXRYZ_cjs.a(se,"getExplorerAddressByNetwork");var Je=chunkVYIKXRYZ_cjs.a(async({explorerUrl:e,provider:t,txHash:r,onTransactionPending:n,onTransactionConfirmed:a,onTransactionReverted:i,request:s})=>{try{let c=se(e,r);if(n({txHash:r,request:s,explorerLink:c}),(await me({operation:async()=>t.getTransactionReceipt(r),isSuccess:m=>!!m,backoffPolicy:W.linearThenExponential(15,750),maxRetries:20}))?.status===1)return a({txHash:r,explorerLink:c,request:s}),!0}catch(c){console.error(c);}return i({txHash:r,request:s}),!1},"waitForTransactionReceipt");var Et=new Map,pn=chunkVYIKXRYZ_cjs.a((e,t,r)=>(Et.set(e,{signingRequests:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a},i)=>{let s=Et.get(e);if(!s)throw rpcErrors.rpcErrors.resourceNotFound();let{signingRequests:c}=s,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 Et.set(e,p),p},cleanup:()=>Et.delete(e)}),"getTxBatchUpdater");function fe(e){return !("type"in e)}chunkVYIKXRYZ_cjs.a(fe,"isNetworkToken");function Pt(e){return e.type===vmModuleTypes.TokenType.ERC20}chunkVYIKXRYZ_cjs.a(Pt,"isERC20Token");function mn(e){return typeof e.to=="string"}chunkVYIKXRYZ_cjs.a(mn,"hasToField");function dn(e){return "requestBatchApproval"in e&&typeof e.requestBatchApproval=="function"}chunkVYIKXRYZ_cjs.a(dn,"supportsBatchApprovals");function Hs(e){return typeof e=="object"&&e!==null&&"ins"in e&&"outs"in e&&Array.isArray(e.ins)&&Array.isArray(e.outs)}chunkVYIKXRYZ_cjs.a(Hs,"isBalanceChange");function Os(e){return typeof e=="object"&&e!==null&&"approvals"in e&&"isEditable"in e&&Array.isArray(e.approvals)}chunkVYIKXRYZ_cjs.a(Os,"isTokenApprovals");function ir(e){return Hs(e)?e.ins.length===0&&e.outs.length===0:Os(e)?e.approvals.length===0:!1}chunkVYIKXRYZ_cjs.a(ir,"isEmpty");var un=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"),gn=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"),fn=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 kn=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,Tn__default.default.abi,r),a=await Promise.all([n.name?.(),n.symbol?.(),n.decimals?.()]),i=yn__default.default(a[0]),s=yn__default.default(a[1]),c=parseInt(a[2]),l={type:vmModuleTypes.TokenType.ERC20,name:i,chainId:t,symbol:s,decimals:c,address:e.to,contractType:"ERC-20"},p=new ethers.ethers.Interface(Tn__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 oe={[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 vn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,blockaid:i})=>{let s;try{s=await gn({chainId:n,params:r,domain:t,blockaid:i});}catch(c){console.error("simulateTransaction error",c);}return cr({rpcMethod:e,params:r,chainId:n,provider:a,simulationResult:s})},"simulateTransaction"),cr=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,params:t,chainId:r,provider:n,simulationResult:a})=>{let i,s,c,l=!1,p;if(a){let{validation:m,simulation:u,gas_estimation:f}=a;m?.result_type==="Warning"?i=oe[vmModuleTypes.AlertType.WARNING]:m?.result_type==="Malicious"&&(i=oe[vmModuleTypes.AlertType.DANGER]),u?.status==="Success"&&(l=!0,c=Rn(e,u.account_summary),s=En(u.account_summary.assets_diffs)),f?.status==="Success"&&(p=Number(f.estimate));}if(!l&&mn(t)){let m=await kn(t,r,n);s=m.balanceChange,c=m.tokenApprovals;}return {alert:i,balanceChange:s,tokenApprovals:c,isSimulationSuccessful:l,estimatedGasLimit:p}},"processTransactionSimulation"),Js=chunkVYIKXRYZ_cjs.a(e=>e.trace_type==="ExposureTrace","isExposureTrace"),Xs=chunkVYIKXRYZ_cjs.a((e,t)=>`${e.toLowerCase()}.${t.toLowerCase()}`,"normalizeAddresses"),Zs=chunkVYIKXRYZ_cjs.a(e=>e===void 0||e.length===0?{}:e.reduce((t,r)=>Js(r)?{[Xs(r.spender,r.asset.address)]:r}:t,{}),"mapExposureTracesToSpenderAsset"),Rn=chunkVYIKXRYZ_cjs.a((e,t)=>{let{traces:r}=t,n=Zs(r),a=Object.entries(n).map(([s,c])=>{let l=Pn(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"),En=chunkVYIKXRYZ_cjs.a(e=>{let t=bn(e,"in"),r=bn(e,"out");if(!(t.length===0&&r.length===0))return {ins:t,outs:r}},"processBalanceChange"),bn=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?Pn(n):Qs(n);if(!a)return;let i=r[t].map(s=>{let c;if("value"in s&&s.value)if("decimals"in a){let u=coreUtilsSdk.numberToBN(s.value,a.decimals);c=coreUtilsSdk.balanceToDisplayValue(u,a.decimals);}else ethers.isHexString(s.value)&&(c=parseInt(s.value,16).toString());else "type"in a&&a.type===vmModuleTypes.TokenType.ERC721&&(c="1");if(!c)return;let l="logo_url"in s?s.logo_url:void 0,p="token_id"in s?s.token_id:void 0;return {displayValue:c,usdPrice:s.usd_price,...l!==void 0&&{logoUri:l},...p!==void 0&&{tokenId:p}}}).filter(s=>s!==void 0);return {token:a,items:i}}).filter(r=>r!==void 0),"processAssetDiffs"),Pn=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"),Qs=chunkVYIKXRYZ_cjs.a(e=>({name:e.name??"",symbol:e.symbol??"",decimals:e.decimals,description:"",logoUri:e.logo_url}),"convertNativeAssetToToken"),In=chunkVYIKXRYZ_cjs.a(async({request:e,dAppUrl:t,accountAddress:r,chainId:n,data:a,blockaid:i})=>{let s,c,l;try{let{validation:p,simulation:m}=await fn({chainId:n,accountAddress:r,data:a,domain:t,blockaid:i});p?.result_type==="Warning"?s=oe[vmModuleTypes.AlertType.WARNING]:p?.result_type==="Malicious"&&(s=oe[vmModuleTypes.AlertType.DANGER]),m?.status==="Success"&&(l=Rn(e.method,m.account_summary),c=En(m.account_summary.assets_diffs));}catch(p){console.error("processJsonRpcSimulation error",p),s=oe[vmModuleTypes.AlertType.WARNING];}return {alert:s,balanceChange:c,tokenApprovals:l}},"processJsonRpcSimulation");var Sn=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,populateMissingGas:i,blockaid:s})=>{let c;try{c=await un({chainId:n,params:r,domain:t,withGasEstimation:i,blockaid:s});}catch(y){return console.error("simulateTransactionBatch error",y),{isSimulationSuccessful:!1,alert:oe[vmModuleTypes.AlertType.WARNING],scans:[]}}let l=await Promise.all(c.map(async(y,g)=>{let k=r[g],T=await cr({chainId:n,params:r[g],provider:a,rpcMethod:e,simulationResult:y});return i&&!k.gas&&T.estimatedGasLimit&&(k.gas=`0x${T.estimatedGasLimit.toString(16)}`),{transaction:k,...T}})),p=l.every(y=>y.isSimulationSuccessful),m=eo(l),u=ro(l),f=to(l);return {isSimulationSuccessful:p,alert:m,balanceChange:u,tokenApprovals:f,scans:l.map(y=>(y.tokenApprovals&&(y.tokenApprovals.isEditable=!1),y))}},"simulateTransactionBatch"),eo=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"),to=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(a=>{let i=r.approvals.find(s=>a.token.address===s.token.address&&a.spenderAddress===s.spenderAddress);if(!i){r.approvals.push({...a});return}i.value=a.value,i.usdPrice=a.usdPrice;}),r),{approvals:[],isEditable:!1});return no(t,e),ir(t)?void 0:t},"aggregateTokenApprovals"),ro=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(a=>{let i=An(r.ins,a);i?i.items.push(...a.items):r.ins.push(a);}),n.outs.forEach(a=>{let i=An(r.outs,a);i?i.items.push(...a.items):r.outs.push({...a});})),r),{ins:[],outs:[]});return ir(t)?void 0:t},"aggregateBalanceChange"),An=chunkVYIKXRYZ_cjs.a((e,t)=>e.find(r=>fe(r.token)&&fe(t.token)?r.token.symbol===t.token.symbol:!fe(r.token)&&!fe(t.token)?r.token.address===t.token.address:!1),"findTokenDiff"),no=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=>!fe(i.token)&&!fe(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(s=>s.spenderAddress===r.spenderAddress&&s.token.address===r.token.address);if(!i)continue;r.usdPrice=i.usdPrice,r.value=i.value;}},"clearSpentApprovals");var ao=chunkVYIKXRYZ_cjs.a(e=>{if(!e||typeof e!="object")return !1;let t=e;return typeof t.agentId=="string"&&typeof t.agentRegistry=="string"},"isAgentIdentityDeclaration"),Ne=chunkVYIKXRYZ_cjs.a(e=>{let t=e.context?.agentIdentity;return ao(t)?t:null},"getAgentIdentityFromContext");var xn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,success:s,error:c}=tn(a);if(!s)return console.error("invalid params",c),{error:rpcErrors.rpcErrors.invalidParams(j("Transaction params are invalid",c))};let{transactions:l,options:p={}}=i,{skipIntermediateTxs:m=!1}=p,u=await M({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});try{await rn(l,u);}catch(O){return console.error("Unable to calculate nonce",O),{error:rpcErrors.rpcErrors.internal(j("Unable to calculate nonce",O))}}let f=l.every(O=>Number(O.gas)>0),{alert:y,balanceChange:g,isSimulationSuccessful:k,tokenApprovals:T,scans:P}=await Sn({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:u,populateMissingGas:!f,blockaid:n});if(!P.every(({transaction:O})=>Number(O.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=Ne(e),N=w?await ae({declaration:w,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,x={title:"Do you approve these transactions?",details:[{title:"Transaction Details",items:[Y("Account",l[0].from),ft("Network",{name:t.chainName,logoUri:t.logoUri}),Re("Website",e.dappInfo)]},...N?[Se(N)]:[]],isSimulationSuccessful:k,balanceChange:g,alert:y,tokenApprovals:T,networkFeeSelector:!0},pe=P.map(O=>vt(e,t,O.transaction,O,N)),{cleanup:I,updateTx:A}=pn(e.requestId,pe,x),B=await r.requestBatchApproval({request:e,signingRequests:pe,displayData:x,updateTx:A});if(I(),"error"in B)return {error:B.error};if(B.result.length!==l.length)return {error:rpcErrors.rpcErrors.internal({message:`Invalid number of signatures. Expected ${l.length}, got ${B.result.length}`})};let We=[];for(let[O,Ba]of B.result.entries()){let wr=O===B.result.length-1,jt=await Rt(u,Ba);if(wr&&Je({explorerUrl:t.explorerUrl??"",provider:u,txHash:jt,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),!wr&&!m&&!await Je({explorerUrl:t.explorerUrl??"",provider:u,txHash:jt,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}))return {error:rpcErrors.rpcErrors.internal({message:`Transaction ${O+1} failed! Batch execution stopped`})};We.push(jt);}return {result:We}},"ethSendTransactionBatch");function Cn(e,t,r){return new ethers.ethers.Contract(e,Tn__default.default.abi).interface.encodeFunctionData("approve",[t,r])}chunkVYIKXRYZ_cjs.a(Cn,"encodeApprovalLimit");var St=new Map,Nn=chunkVYIKXRYZ_cjs.a((e,t,r)=>(St.set(e,{signingData:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a,approvalLimit:i,gasLimit:s})=>{let c=St.get(e);if(!c)throw rpcErrors.rpcErrors.resourceNotFound();let{signingData:l,displayData:p}=c,m={...l,data:{...l.data,gasLimit:s??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;io(y),co(l.data.data);let g=y.approvals[0];m.data.data=Cn(g.token.address,g.spenderAddress,i),u.tokenApprovals={approvals:[{...g,value:i}],isEditable:!0};}let f={signingData:m,displayData:u};return St.set(e,f),f},cleanup:()=>St.delete(e)}),"getTxUpdater");function io(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(io,"ensureTokenApprovalCanBeEdited");function co(e){if((!e||e==="0x"?null:xe({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(co,"ensureApproveWasCalled");var wn=chunkVYIKXRYZ_cjs.a(async({transactionParams:{from:e,to:t,data:r,value:n,accessList:a},provider:i})=>{let s=await i.getTransactionCount(e);return Number(await i.estimateGas({from:e,to:t,nonce:s,data:r,value:n,accessList:a}))},"estimateGasLimit");var po=zod.z.tuple([Ae]),_n=chunkVYIKXRYZ_cjs.a(e=>po.safeParse(e),"parseRequestParams");var Dn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n,eercEnabled:a=!1})=>{let{params:i}=e,{data:s,error:c,success:l}=_n(i);if(!l)return console.error("invalid params",c),{error:rpcErrors.rpcErrors.invalidParams(j("Transaction params are invalid",c))};let[p]=s,m=await M({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});if(!p.gas||Number(p.gas)<0)try{let x=await wn({transactionParams:{from:p.from,to:p.to,data:p.data,value:p.value,accessList:p.accessList},provider:m});p.gas="0x"+x.toString(16);}catch(x){return {error:rpcErrors.rpcErrors.internal(j("Unable to calculate gas limit",x))}}if(!p.nonce)try{let x=await bt({from:p.from,provider:m});p.nonce=String(x);}catch(x){return {error:rpcErrors.rpcErrors.internal(j("Unable to calculate nonce",x))}}let u=Ne(e),f=u?await ae({declaration:u,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,y=await vn({rpcMethod:e.method,chainId:t.chainId,params:p,dAppUrl:e.dappInfo.url,provider:m,blockaid:n}),{displayData:g,signingData:k}=vt(e,t,p,y,f,a),{updateTx:T,cleanup:P}=Nn(e.requestId,k,g),v=await r.requestApproval({request:e,displayData:g,signingData:k,updateTx:T});if(P(),"error"in v)return {error:v.error};let w,N=e.context?.shouldRetry===!0;try{w=await Rt(m,v,{shouldRetry:N});}catch(x){return {error:rpcErrors.rpcErrors.internal(j("Unable to get transaction hash",x))}}return Je({explorerUrl:t.explorerUrl??"",provider:m,txHash:w,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:w}},"ethSendTransaction");var lr=chunkVYIKXRYZ_cjs.a(e=>{let t="";t+=`Domain
26
+ function Gr(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}chunkVYIKXRYZ_cjs.a(Gr,"charsum");function Jt(e){let t,r=0;for(t=0;t<e.length;t++){let n=Gr(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}chunkVYIKXRYZ_cjs.a(Jt,"arrayHash");var me=chunkVYIKXRYZ_cjs.a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=j.exponential()})=>{let a=0,i=0,s;for(;i<r;){i>0&&await Ka(a);try{let l=await e(i);if(t(l))return l}catch(l){s=l;}a=n(i),i++;}let c=s?`Max retry exceeded. ${s}`:"Max retry exceeded.";throw new Error(c)},"retry"),Xt=class Xt{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,s=2*r*(Math.pow(2,a)-1);return i+s}}};chunkVYIKXRYZ_cjs.a(Xt,"RetryBackoffPolicy");var j=Xt;function Ka(e){return new Promise(t=>setTimeout(t,e))}chunkVYIKXRYZ_cjs.a(Ka,"delay");var Zt=chunkVYIKXRYZ_cjs.a(e=>me({operation:t=>e(t>0),maxRetries:2,backoffPolicy:j.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function $(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($,"fetchAndVerify");var Qt=class Qt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return $([`${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 $([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};chunkVYIKXRYZ_cjs.a(Qt,"CoingeckoProxyClient");var qe=Qt;var Ja=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())})),er=class er{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return $([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],Ja)}};chunkVYIKXRYZ_cjs.a(er,"WatchlistProxyClient");var ft=er;var ne,de,ue,Re,tr=class tr{constructor({storage:t,proxyApiUrl:r,fetch:n}){chunkVYIKXRYZ_cjs.d(this,ne,void 0);chunkVYIKXRYZ_cjs.d(this,de,void 0);chunkVYIKXRYZ_cjs.d(this,ue,void 0);chunkVYIKXRYZ_cjs.d(this,Re,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(s=>{n[a]={[s]:{price:i?.[s],change24:i?.[`${s}_24h_change`],vol24:i?.[`${s}_24h_vol`],marketCap:i?.[`${s}_market_cap`]}};});}),n},"transformSimplePriceResponse"));chunkVYIKXRYZ_cjs.e(this,ne,t),chunkVYIKXRYZ_cjs.e(this,de,r),chunkVYIKXRYZ_cjs.e(this,ue,n??globalThis.fetch),chunkVYIKXRYZ_cjs.e(this,Re,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,chunkVYIKXRYZ_cjs.c(this,ue)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new ft(chunkVYIKXRYZ_cjs.c(this,de)).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?`${Jt(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=chunkVYIKXRYZ_cjs.c(this,ne)?.get?.(i),n)return n;try{n=await Zt(s=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:s}));}catch{n=void 0;}return chunkVYIKXRYZ_cjs.c(this,ne)?.set?.(i,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let a,s=`getPricesWithMarketDataByAddresses-${`${Jt(t)}-${r}-${n}`}`;if(a=chunkVYIKXRYZ_cjs.c(this,ne)?.get?.(s),a)return a;try{a=await Zt(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),a=void 0;}return chunkVYIKXRYZ_cjs.c(this,ne)?.set?.(s,a),a}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:a=!1}){if(a){let i=await new qe(chunkVYIKXRYZ_cjs.c(this,de),chunkVYIKXRYZ_cjs.c(this,ue)).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,Re),{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:s=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let p=await new qe(chunkVYIKXRYZ_cjs.c(this,de),chunkVYIKXRYZ_cjs.c(this,ue)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:a,include_24hr_change:i,include_last_updated_at:s});return this.transformSimplePriceResponse(p,r)}return coreCoingeckoSdk.simplePrice(chunkVYIKXRYZ_cjs.c(this,Re),{coinIds:t,currencies:r,marketCap:n,vol24:a,change24:i,lastUpdated:s,shouldThrow:l})}};ne=new WeakMap,de=new WeakMap,ue=new WeakMap,Re=new WeakMap,chunkVYIKXRYZ_cjs.a(tr,"TokenService");var ae=tr;var as="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.min.json",ss="https://latest.currency-api.pages.dev/v1/currencies/usd.min.json",Or=zod.object({date:zod.string(),usd:zod.record(zod.number())}),yt=chunkVYIKXRYZ_cjs.a(async()=>{try{return await $([as],Or)}catch{return await $([ss],Or)}},"getExchangeRates");var rr=chunkVYIKXRYZ_cjs.a((e,t,r,n)=>({label:e,type:vmModuleTypes.DetailItemType.CURRENCY,value:t,maxDecimals:r,symbol:n}),"currencyItem"),O=chunkVYIKXRYZ_cjs.a((e,t,r="horizontal")=>({label:e,alignment:r,type:vmModuleTypes.DetailItemType.TEXT,value:t}),"textItem"),Ee=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 ht=chunkVYIKXRYZ_cjs.a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var nr=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 Hr=process.env.GLACIER_API_KEY;var Ye=chunkVYIKXRYZ_cjs.a(()=>Hr,"getGlacierApiKey");var os=["glacier-api.avax.network","proxy-api.avax.network","proxy-api-dev.avax.network","core-proxy-api.avax.network","core-proxy-api.avax-test.network"];function ar(e){let t=new URL(e),r=Ye();if(r&&os.includes(t.hostname)){let n=t.searchParams;return n.set("token",r),t.search=n.toString(),t.toString()}return e}chunkVYIKXRYZ_cjs.a(ar,"addGlacierAPIKeyIfNeeded");var ls={rltoken:Ye()},ge,Tt,kt,jr,bt,qr,sr=class sr extends glacierSdk.FetchHttpRequest{constructor(r){super(r);chunkVYIKXRYZ_cjs.d(this,kt);chunkVYIKXRYZ_cjs.d(this,bt);chunkVYIKXRYZ_cjs.d(this,ge,0);chunkVYIKXRYZ_cjs.d(this,Tt,j.exponential());}request(r){let n={...ls,...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,ge)>0?chunkVYIKXRYZ_cjs.f(this,bt,qr).call(this,i):chunkVYIKXRYZ_cjs.f(this,kt,jr).call(this,i)}};ge=new WeakMap,Tt=new WeakMap,kt=new WeakSet,jr=chunkVYIKXRYZ_cjs.a(function(r){let n=r();return new glacierSdk.CancelablePromise((a,i,s)=>{s(()=>n.cancel()),n.then(c=>{chunkVYIKXRYZ_cjs.e(this,ge,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,ge,chunkVYIKXRYZ_cjs.c(this,ge)+Number(l||p));}i(c);});})},"#request"),bt=new WeakSet,qr=chunkVYIKXRYZ_cjs.a(function(r){let n=chunkVYIKXRYZ_cjs.c(this,Tt).call(this,chunkVYIKXRYZ_cjs.c(this,ge));return new glacierSdk.CancelablePromise((a,i,s)=>{let c=setTimeout(()=>{let l=r();s(()=>{l.cancel(),clearTimeout(c);}),l.then(a).catch(i);},n);})},"#postponeRequest"),chunkVYIKXRYZ_cjs.a(sr,"GlacierFetchHttpRequest");var Ke=sr;var G=chunkVYIKXRYZ_cjs.a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var zr={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 Yr="DUMMY_API_KEY";var ms={glacierApiUrl:"https://core-proxy-api.avax.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api.avax.network"},ds={glacierApiUrl:"https://core-proxy-api.avax-test.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api-dev.avax.network"},Jr=chunkVYIKXRYZ_cjs.a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return ms;case vmModuleTypes.Environment.DEV:return ds}},"getEnv");var Ie=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 M=chunkVYIKXRYZ_cjs.a(async e=>{let{chainId:t,chainName:r,rpcUrl:n,multiContractAddress:a,pollingInterval:i=2e3,customRpcHeaders:s}=e,c=ar(n),l=c;if(s){let m=new ethers.FetchRequest(c);for(let[u,f]of Object.entries(s))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");var hs=5*60*1e3,Ts={43114:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"},ks=["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)"],bs=["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)"],en=new Map,Rs=chunkVYIKXRYZ_cjs.a(e=>e===null?"unknown":e>=75?"high":e>=40?"medium":"low","getTrustLevel"),Es=chunkVYIKXRYZ_cjs.a(e=>e===null||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.trunc(e))),"clampScore"),ir=chunkVYIKXRYZ_cjs.a(e=>{let t=typeof e=="bigint"?Number(e):e;return Number.isFinite(t)?t:null},"toNumber"),tn=chunkVYIKXRYZ_cjs.a((e,t)=>{let r=ir(e),n=ir(t);return r===null||n===null||n<0?null:r/10**n},"scaleFixedPoint"),vs=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationSummaryTuple"),Pe=chunkVYIKXRYZ_cjs.a(e=>Array.isArray(e),"isReputationFeedbackTuple"),Is=chunkVYIKXRYZ_cjs.a(e=>vs(e)?{count:e[0],summaryValue:e[1],summaryValueDecimals:e[2]}:e,"getSummaryValue"),Ps=chunkVYIKXRYZ_cjs.a(e=>{let t=Pe(e)?e[2]:e.values,r=Pe(e)?e[3]:e.valueDecimals,n=Pe(e)?e[4]:e.tag1s,a=Pe(e)?e[5]:e.tag2s,i=Pe(e)?e[6]:e.isRevoked;return t.map((s,c)=>({value:s,valueDecimals:r[c]??0,tag1:n[c],tag2:a[c],isRevoked:i[c]}))},"getFeedbackValues"),As=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"),or="starred",xs=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"),Ss=chunkVYIKXRYZ_cjs.a(e=>Pe(e)?e[0]:e.clients,"getFeedbackClients"),Ns=chunkVYIKXRYZ_cjs.a(async(e,t,r)=>{try{if(ethers.getAddress(await e.getIdentityRegistry())!==t)return null;let a=await e.readAllFeedback(r,[],or,"",!1),i=Ps(a).filter(c=>c.tag1===void 0||c.tag1===or).filter(c=>!c.isRevoked),s=xs(Ss(a));if(s.length)try{let c=Is(await e.getSummary(r,s,or,""));if(ir(c.count))return tn(c.summaryValue,c.summaryValueDecimals)}catch{}return As(i.map(c=>tn(c.value,c.valueDecimals)))}catch{return null}},"resolveReputationScore"),Cs=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(!e)return !1;try{return ethers.getAddress(await e.getIdentityRegistry())===t}catch{return !1}},"isKnownIdentityRegistry"),ws=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"),Rt=chunkVYIKXRYZ_cjs.a(e=>({agentId:e.agentId,agentRegistry:e.agentRegistry,owner:null,reputationScore:null,metadataUri:null,trustLevel:"unknown"}),"buildFallback"),rn=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"),nn=chunkVYIKXRYZ_cjs.a(e=>{if(!e||e==="0x")return null;try{return ethers.toUtf8String(e)}catch{return null}},"decodeMetadata"),se=chunkVYIKXRYZ_cjs.a(async({declaration:e,rpcUrl:t,chainId:r,chainName:n,customRpcHeaders:a})=>{let i=en.get(`${t}:${e.agentRegistry}:${e.agentId}`);if(i&&i.expiresAt>Date.now())return i.value;let s=ws(e.agentRegistry);if(!s||s.chainId!==r)return Rt(e);if(!/^\d+$/.test(e.agentId))return Rt({...e,agentRegistry:`eip155:${s.chainId}:${s.address}`});let c={...e,agentRegistry:`eip155:${s.chainId}:${s.address}`},l=Rt(c),p=await M({chainId:r,chainName:n,rpcUrl:t,customRpcHeaders:a}),m=new ethers.Contract(s.address,ks,p),u=Ts[s.chainId],f=u?new ethers.Contract(u,bs,p):null;if(!await Cs(f,s.address))return l;let[y,g,k]=await Promise.all([rn([async()=>ethers.getAddress(await m.ownerOf(BigInt(e.agentId)))]),rn([async()=>await m.tokenURI(BigInt(e.agentId)),async()=>await m.agentURI(BigInt(e.agentId)),async()=>nn(await m.getMetadata(BigInt(e.agentId),"agentURI")),async()=>nn(await m.getMetadata(BigInt(e.agentId),"uri"))]),f?Ns(f,s.address,BigInt(e.agentId)):Promise.resolve(null)]),T=Es(k??null),v={...l,owner:y??null,metadataUri:g??null,reputationScore:T,trustLevel:Rs(T)};return en.set(`${t}:${e.agentRegistry}:${e.agentId}`,{expiresAt:Date.now()+hs,value:v}),v},"resolveAgentIdentity");var _s=zod.z.object({agentId:zod.z.coerce.string().regex(/^\d+$/),agentRegistry:zod.z.string().min(1)}),an=chunkVYIKXRYZ_cjs.a(async({request:e,network:t})=>{let r=_s.safeParse(e.params);return r.success?{result:await se({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 sn=chunkVYIKXRYZ_cjs.a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var on=chunkVYIKXRYZ_cjs.a(async e=>{let{secretId:t,approvalController:r}=e,n=sn(e)?Ie(e).EVM:void 0,a=await r.requestPublicKey({curve:"secp256k1",secretId:t,derivationPath:n});return {[vmModuleTypes.NetworkVMType.EVM]:ethers.computeAddress(`0x${a}`)}},"deriveAddress");var cn=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=Ie({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 Ae=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 ln=zod.z.tuple([Ae,Ae]).rest(Ae).refine(e=>lr(e,"chainId"),{message:'All transactions must use the same "chainId"'}).refine(e=>lr(e,"from"),{message:'All transactions must use the same "from" address'}).refine(e=>Os(e,"nonce")||$s(e,"nonce"),{message:'Each transaction needs a different "nonce". Make them different, or leave them empty for all transactions.'}),Ls=zod.z.object({skipIntermediateTxs:zod.z.boolean().optional()}),Gs=zod.z.union([ln,zod.z.object({transactions:ln,options:Ls.optional()})]);function $s(e,t){return !lr(e,t)}chunkVYIKXRYZ_cjs.a($s,"areAllDifferentByProp");function Os(e,t){return e.every(r=>r[t]===void 0||r[t]==="")}chunkVYIKXRYZ_cjs.a(Os,"areAllEmptyByProp");function lr(e,t){return new Set(e.map(n=>n[t])).size===1}chunkVYIKXRYZ_cjs.a(lr,"areAllEqualByProp");var pn=chunkVYIKXRYZ_cjs.a(e=>{let t=Gs.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 Et=chunkVYIKXRYZ_cjs.a((e,t)=>{if(e===void 0||e==="")return !0;if(typeof e=="number")return e===t;if(!(e.startsWith("0x")||e.startsWith("0X"))&&!/^\d+$/.test(e))return !1;try{return BigInt(e)===BigInt(t)}catch{return !1}},"isMatchingChainId");var vt=chunkVYIKXRYZ_cjs.a(async({from:e,provider:t})=>t.getTransactionCount(e),"getNonce");var mn=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(e[0].nonce)return;let r=await vt({from:e[0].from,provider:t});return Promise.all(e.map(async(n,a)=>{n.nonce=String(r+a);}))},"ensureProperNonces");var Hs=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("https://")||e.startsWith("http://")||e.startsWith("ipfs://"),"isNavigableMetadataUri"),Ws=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("data:"),"isEmbeddedDataUri"),xe=chunkVYIKXRYZ_cjs.a(e=>{let t=[O("Agent ID",e.agentId),O("Registry",e.agentRegistry,"vertical"),O("Trust level",e.trustLevel)];return e.reputationScore!==null&&t.push(O("Reputation score",String(e.reputationScore))),e.owner&&t.push(J("Owner",e.owner)),e.metadataUri&&t.push(Hs(e.metadataUri)?Ee("Metadata",{url:e.metadataUri,name:e.metadataUri}):Ws(e.metadataUri)?O("Metadata","Embedded data URI","vertical"):O("Metadata",e.metadataUri,"vertical")),{title:"Agent Identity",items:t}},"buildAgentIdentityDetailSection");var dn=[vmModuleTypes.TransactionType.SEND,vmModuleTypes.TransactionType.RECEIVE,vmModuleTypes.TransactionType.TRANSFER,vmModuleTypes.TransactionType.NFT_SEND,vmModuleTypes.TransactionType.NFT_RECEIVE],X=(s=>(s.TOTAL_SUPPLY="totalSupply",s.BALANCE_OF="balanceOf",s.TRANSFER="transfer",s.TRANSFER_FROM="transferFrom",s.APPROVE="approve",s.ALLOWANCE="allowance",s))(X||{}),pr=(n=>(n.NATIVE_TRANSFER="native_transfer",n.ERC20_TRANSFER="erc20_transfer",n.CONTRACT_CALL="contract_call",n))(pr||{});var Se=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(An__default.default.abi).parseTransaction({data:e.data,value:e.value}),n=r?.name??r?.fragment?.name;return n&&zs(n)?n:void 0}catch{return}},"parseERC20TransactionType");function zs(e){return Object.values(X).includes(e)}chunkVYIKXRYZ_cjs.a(zs,"isERC20TransactionType");var un=chunkVYIKXRYZ_cjs.a(e=>{if(e.data)try{let r=new ethers.Interface(An__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 gn=chunkVYIKXRYZ_cjs.a(e=>{if(!!!(e.data&&e.data!=="0x"))return "native_transfer";let r=Se(e);return r==="transfer"||r==="transferFrom"?"erc20_transfer":"contract_call"},"classifyTransaction");var fn=["function register(((uint256[2],uint256[2][2],uint256[2]),uint256[5]) proof)","function setAuditorPublicKey(address user)","function privateMint(address user, ((uint256[2],uint256[2][2],uint256[2]),uint256[24]) proof)","function privateMint(address user, ((uint256[2],uint256[2][2],uint256[2]),uint256[24]) proof, bytes message)","function deposit(uint256 amount, address tokenAddress, uint256[7] amountPCT)","function deposit(uint256 amount, address tokenAddress, uint256[7] amountPCT, bytes message)","function transfer(address to, uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[32]) proof, uint256[7] balancePCT)","function transfer(address to, uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[32]) proof, uint256[7] balancePCT, bytes message)","function withdraw(uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[16]) proof, uint256[7] balancePCT)","function withdraw(uint256 tokenId, ((uint256[2],uint256[2][2],uint256[2]),uint256[16]) proof, uint256[7] balancePCT, bytes message)"];var yn=(s=>(s.REGISTER="register",s.DEPOSIT="deposit",s.TRANSFER="transfer",s.WITHDRAW="withdraw",s.PRIVATE_MINT="privateMint",s.SET_AUDITOR_PUBLIC_KEY="setAuditorPublicKey",s))(yn||{}),Xs=new ethers.Interface(fn),hn=chunkVYIKXRYZ_cjs.a(e=>{if(!(!e.data||e.data==="0x"))try{let t=Xs.parseTransaction({data:e.data,value:e.value}),r=t?.name??t?.fragment?.name;return r&&Zs(r)?{operation:r}:void 0}catch{return}},"parseEercTransaction");function Zs(e){return Object.values(yn).includes(e)}chunkVYIKXRYZ_cjs.a(Zs,"isEercOperation");var eo=chunkVYIKXRYZ_cjs.a(e=>{if(!e)return null;try{let t=BigInt(e);return t>0n?t:null}catch{return null}},"parseNativeValue"),It=chunkVYIKXRYZ_cjs.a((e,t,r,{isSimulationSuccessful:n,balanceChange:a,tokenApprovals:i,alert:s},c,l=!1)=>{let{dappInfo:p}=e,m=Se(r),u="Do you approve this transaction?";m==="approve"&&(u="Do you approve this spend limit?");let f=un(r),y=[J("Account",r.from),ht("Network",{name:t.chainName,logoUri:t.logoUri}),Ee("Website",p)].filter(b=>!!b),g=gn(r);g!=="contract_call"&&f&&y.push(J("To",f)),r.to&&["erc20_transfer","contract_call"].includes(g)&&y.push(J("Contract",r.to));let k=eo(r.value);if(k&&y.push(rr("Amount",k,t.networkToken.decimals,t.networkToken.symbol)),l){let b=hn(r);b&&(y.push(O("Operation",b.operation)),y.push(O("Privacy","eERC20")));}let T={title:u,details:[{title:"Transaction Details",items:y},...c?[xe(c)]:[]],networkFeeSelector:!0,alert:s,balanceChange:a,tokenApprovals:i,isSimulationSuccessful:n},v={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:T,signingData:v}},"buildTxApprovalRequest");var Pt=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?me({operation:()=>n(),isSuccess:()=>!0,maxRetries:6,backoffPolicy:j.linearThenExponential(4,1e3)}):n()},"getTxHash");function oe(e,t,r="tx"){return `${e}/${r}/${t}`}chunkVYIKXRYZ_cjs.a(oe,"getExplorerAddressByNetwork");var Qe=chunkVYIKXRYZ_cjs.a(async({explorerUrl:e,provider:t,txHash:r,onTransactionPending:n,onTransactionConfirmed:a,onTransactionReverted:i,request:s})=>{try{let c=oe(e,r);if(n({txHash:r,request:s,explorerLink:c}),(await me({operation:async()=>t.getTransactionReceipt(r),isSuccess:m=>!!m,backoffPolicy:j.linearThenExponential(15,750),maxRetries:20}))?.status===1)return a({txHash:r,explorerLink:c,request:s}),!0}catch(c){console.error(c);}return i({txHash:r,request:s}),!1},"waitForTransactionReceipt");var At=new Map,Tn=chunkVYIKXRYZ_cjs.a((e,t,r)=>(At.set(e,{signingRequests:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a},i)=>{let s=At.get(e);if(!s)throw rpcErrors.rpcErrors.resourceNotFound();let{signingRequests:c}=s,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 At.set(e,p),p},cleanup:()=>At.delete(e)}),"getTxBatchUpdater");function fe(e){return !("type"in e)}chunkVYIKXRYZ_cjs.a(fe,"isNetworkToken");function xt(e){return e.type===vmModuleTypes.TokenType.ERC20}chunkVYIKXRYZ_cjs.a(xt,"isERC20Token");function kn(e){return typeof e.to=="string"}chunkVYIKXRYZ_cjs.a(kn,"hasToField");function bn(e){return "requestBatchApproval"in e&&typeof e.requestBatchApproval=="function"}chunkVYIKXRYZ_cjs.a(bn,"supportsBatchApprovals");function no(e){return typeof e=="object"&&e!==null&&"ins"in e&&"outs"in e&&Array.isArray(e.ins)&&Array.isArray(e.outs)}chunkVYIKXRYZ_cjs.a(no,"isBalanceChange");function ao(e){return typeof e=="object"&&e!==null&&"approvals"in e&&"isEditable"in e&&Array.isArray(e.approvals)}chunkVYIKXRYZ_cjs.a(ao,"isTokenApprovals");function mr(e){return no(e)?e.ins.length===0&&e.outs.length===0:ao(e)?e.approvals.length===0:!1}chunkVYIKXRYZ_cjs.a(mr,"isEmpty");var Rn=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"),En=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"),vn=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 xn=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,An__default.default.abi,r),a=await Promise.all([n.name?.(),n.symbol?.(),n.decimals?.()]),i=In__default.default(a[0]),s=In__default.default(a[1]),c=parseInt(a[2]),l={type:vmModuleTypes.TokenType.ERC20,name:i,chainId:t,symbol:s,decimals:c,address:e.to,contractType:"ERC-20"},p=new ethers.ethers.Interface(An__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 ie={[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 s;try{s=await En({chainId:n,params:r,domain:t,blockaid:i});}catch(c){console.error("simulateTransaction error",c);}return dr({rpcMethod:e,params:r,chainId:n,provider:a,simulationResult:s})},"simulateTransaction"),dr=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,params:t,chainId:r,provider:n,simulationResult:a})=>{let i,s,c,l=!1,p;if(a){let{validation:m,simulation:u,gas_estimation:f}=a;m?.result_type==="Warning"?i=ie[vmModuleTypes.AlertType.WARNING]:m?.result_type==="Malicious"&&(i=ie[vmModuleTypes.AlertType.DANGER]),u?.status==="Success"&&(l=!0,c=Cn(e,u.account_summary),s=wn(u.account_summary.assets_diffs)),f?.status==="Success"&&(p=Number(f.estimate));}if(!l&&kn(t)){let m=await xn(t,r,n);s=m.balanceChange,c=m.tokenApprovals;}return {alert:i,balanceChange:s,tokenApprovals:c,isSimulationSuccessful:l,estimatedGasLimit:p}},"processTransactionSimulation"),uo=chunkVYIKXRYZ_cjs.a(e=>e.trace_type==="ExposureTrace","isExposureTrace"),go=chunkVYIKXRYZ_cjs.a((e,t)=>`${e.toLowerCase()}.${t.toLowerCase()}`,"normalizeAddresses"),fo=chunkVYIKXRYZ_cjs.a(e=>e===void 0||e.length===0?{}:e.reduce((t,r)=>uo(r)?{[go(r.spender,r.asset.address)]:r}:t,{}),"mapExposureTracesToSpenderAsset"),Cn=chunkVYIKXRYZ_cjs.a((e,t)=>{let{traces:r}=t,n=fo(r),a=Object.entries(n).map(([s,c])=>{let l=Dn(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"),wn=chunkVYIKXRYZ_cjs.a(e=>{let t=Sn(e,"in"),r=Sn(e,"out");if(!(t.length===0&&r.length===0))return {ins:t,outs:r}},"processBalanceChange"),Sn=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?Dn(n):yo(n);if(!a)return;let i=r[t].map(s=>{let c;if("value"in s&&s.value)if("decimals"in a){let u=coreUtilsSdk.numberToBN(s.value,a.decimals);c=coreUtilsSdk.balanceToDisplayValue(u,a.decimals);}else ethers.isHexString(s.value)&&(c=parseInt(s.value,16).toString());else "type"in a&&a.type===vmModuleTypes.TokenType.ERC721&&(c="1");if(!c)return;let l="logo_url"in s?s.logo_url:void 0,p="token_id"in s?s.token_id:void 0;return {displayValue:c,usdPrice:s.usd_price,...l!==void 0&&{logoUri:l},...p!==void 0&&{tokenId:p}}}).filter(s=>s!==void 0);return {token:a,items:i}}).filter(r=>r!==void 0),"processAssetDiffs"),Dn=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"),yo=chunkVYIKXRYZ_cjs.a(e=>({name:e.name??"",symbol:e.symbol??"",decimals:e.decimals,description:"",logoUri:e.logo_url}),"convertNativeAssetToToken"),_n=chunkVYIKXRYZ_cjs.a(async({request:e,dAppUrl:t,accountAddress:r,chainId:n,data:a,blockaid:i})=>{let s,c,l;try{let{validation:p,simulation:m}=await vn({chainId:n,accountAddress:r,data:a,domain:t,blockaid:i});p?.result_type==="Warning"?s=ie[vmModuleTypes.AlertType.WARNING]:p?.result_type==="Malicious"&&(s=ie[vmModuleTypes.AlertType.DANGER]),m?.status==="Success"&&(l=Cn(e.method,m.account_summary),c=wn(m.account_summary.assets_diffs));}catch(p){console.error("processJsonRpcSimulation error",p),s=ie[vmModuleTypes.AlertType.WARNING];}return {alert:s,balanceChange:c,tokenApprovals:l}},"processJsonRpcSimulation");var Un=chunkVYIKXRYZ_cjs.a(async({rpcMethod:e,dAppUrl:t,params:r,chainId:n,provider:a,populateMissingGas:i,blockaid:s})=>{let c;try{c=await Rn({chainId:n,params:r,domain:t,withGasEstimation:i,blockaid:s});}catch(y){return console.error("simulateTransactionBatch error",y),{isSimulationSuccessful:!1,alert:ie[vmModuleTypes.AlertType.WARNING],scans:[]}}let l=await Promise.all(c.map(async(y,g)=>{let k=r[g],T=await dr({chainId:n,params:r[g],provider:a,rpcMethod:e,simulationResult:y});return i&&!k.gas&&T.estimatedGasLimit&&(k.gas=`0x${T.estimatedGasLimit.toString(16)}`),{transaction:k,...T}})),p=l.every(y=>y.isSimulationSuccessful),m=ho(l),u=ko(l),f=To(l);return {isSimulationSuccessful:p,alert:m,balanceChange:u,tokenApprovals:f,scans:l.map(y=>(y.tokenApprovals&&(y.tokenApprovals.isEditable=!1),y))}},"simulateTransactionBatch"),ho=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"),To=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{tokenApprovals:n})=>(n&&n.approvals.forEach(a=>{let i=r.approvals.find(s=>a.token.address===s.token.address&&a.spenderAddress===s.spenderAddress);if(!i){r.approvals.push({...a});return}i.value=a.value,i.usdPrice=a.usdPrice;}),r),{approvals:[],isEditable:!1});return bo(t,e),mr(t)?void 0:t},"aggregateTokenApprovals"),ko=chunkVYIKXRYZ_cjs.a(e=>{let t=e.reduce((r,{balanceChange:n})=>(n&&(n.ins.forEach(a=>{let i=Bn(r.ins,a);i?i.items.push(...a.items):r.ins.push(a);}),n.outs.forEach(a=>{let i=Bn(r.outs,a);i?i.items.push(...a.items):r.outs.push({...a});})),r),{ins:[],outs:[]});return mr(t)?void 0:t},"aggregateBalanceChange"),Bn=chunkVYIKXRYZ_cjs.a((e,t)=>e.find(r=>fe(r.token)&&fe(t.token)?r.token.symbol===t.token.symbol:!fe(r.token)&&!fe(t.token)?r.token.address===t.token.address:!1),"findTokenDiff"),bo=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=>!fe(i.token)&&!fe(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(s=>s.spenderAddress===r.spenderAddress&&s.token.address===r.token.address);if(!i)continue;r.usdPrice=i.usdPrice,r.value=i.value;}},"clearSpentApprovals");var Ro=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 Ro(t)?t:null},"getAgentIdentityFromContext");var Fn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let{params:a}=e,{data:i,success:s,error:c}=pn(a);if(!s)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;if(l.some(({chainId:V})=>!Et(V,t.chainId)))return {error:rpcErrors.rpcErrors.invalidParams(G("Transaction params are invalid",new Error(`The transactions target a different chain than ${t.chainName}`)))};let u=await M({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});try{await mn(l,u);}catch(V){return console.error("Unable to calculate nonce",V),{error:rpcErrors.rpcErrors.internal(G("Unable to calculate nonce",V))}}let f=l.every(V=>Number(V.gas)>0),{alert:y,balanceChange:g,isSimulationSuccessful:k,tokenApprovals:T,scans:v}=await Un({rpcMethod:e.method,chainId:t.chainId,params:l,dAppUrl:e.dappInfo.url,provider:u,populateMissingGas:!f,blockaid:n});if(!v.every(({transaction:V})=>Number(V.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),S=w?await se({declaration:w,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,N={title:"Do you approve these transactions?",details:[{title:"Transaction Details",items:[J("Account",l[0].from),ht("Network",{name:t.chainName,logoUri:t.logoUri}),Ee("Website",e.dappInfo)]},...S?[xe(S)]:[]],isSimulationSuccessful:k,balanceChange:g,alert:y,tokenApprovals:T,networkFeeSelector:!0},pe=v.map(V=>It(e,t,V.transaction,V,S)),{cleanup:P,updateTx:A}=Tn(e.requestId,pe,N),B=await r.requestBatchApproval({request:e,signingRequests:pe,displayData:N,updateTx:A});if(P(),"error"in B)return {error:B.error};if(B.result.length!==l.length)return {error:rpcErrors.rpcErrors.internal({message:`Invalid number of signatures. Expected ${l.length}, got ${B.result.length}`})};let je=[];for(let[V,Ya]of B.result.entries()){let Lr=V===B.result.length-1,Kt=await Pt(u,Ya);if(Lr&&Qe({explorerUrl:t.explorerUrl??"",provider:u,txHash:Kt,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),!Lr&&!m&&!await Qe({explorerUrl:t.explorerUrl??"",provider:u,txHash:Kt,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}))return {error:rpcErrors.rpcErrors.internal({message:`Transaction ${V+1} failed! Batch execution stopped`})};je.push(Kt);}return {result:je}},"ethSendTransactionBatch");function Mn(e,t,r){return new ethers.ethers.Contract(e,An__default.default.abi).interface.encodeFunctionData("approve",[t,r])}chunkVYIKXRYZ_cjs.a(Mn,"encodeApprovalLimit");var Ct=new Map,Vn=chunkVYIKXRYZ_cjs.a((e,t,r)=>(Ct.set(e,{signingData:t,displayData:r}),{updateTx:({maxFeeRate:n,maxTipRate:a,approvalLimit:i,gasLimit:s})=>{let c=Ct.get(e);if(!c)throw rpcErrors.rpcErrors.resourceNotFound();let{signingData:l,displayData:p}=c,m={...l,data:{...l.data,gasLimit:s??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;Io(y),Po(l.data.data);let g=y.approvals[0];m.data.data=Mn(g.token.address,g.spenderAddress,i),u.tokenApprovals={approvals:[{...g,value:i}],isEditable:!0};}let f={signingData:m,displayData:u};return Ct.set(e,f),f},cleanup:()=>Ct.delete(e)}),"getTxUpdater");function Io(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(Io,"ensureTokenApprovalCanBeEdited");function Po(e){if((!e||e==="0x"?null:Se({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(Po,"ensureApproveWasCalled");var Ln=chunkVYIKXRYZ_cjs.a(async({transactionParams:{from:e,to:t,data:r,value:n,accessList:a},provider:i})=>{let s=await i.getTransactionCount(e);return Number(await i.estimateGas({from:e,to:t,nonce:s,data:r,value:n,accessList:a}))},"estimateGasLimit");var xo=zod.z.tuple([Ae]),Gn=chunkVYIKXRYZ_cjs.a(e=>xo.safeParse(e),"parseRequestParams");var $n=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n,eercEnabled:a=!1})=>{let{params:i}=e,{data:s,error:c,success:l}=Gn(i);if(!l)return console.error("invalid params",c),{error:rpcErrors.rpcErrors.invalidParams(G("Transaction params are invalid",c))};let[p]=s;if(!Et(p.chainId,t.chainId))return {error:rpcErrors.rpcErrors.invalidParams(G("Transaction params are invalid",new Error(`The transaction targets a different chain than ${t.chainName}`)))};let m=await M({chainId:t.chainId,chainName:t.chainName,rpcUrl:t.rpcUrl,multiContractAddress:t.utilityAddresses?.multicall,pollingInterval:1e3,customRpcHeaders:t.customRpcHeaders});if(!p.gas||Number(p.gas)<0)try{let N=await Ln({transactionParams:{from:p.from,to:p.to,data:p.data,value:p.value,accessList:p.accessList},provider:m});p.gas="0x"+N.toString(16);}catch(N){return {error:rpcErrors.rpcErrors.internal(G("Unable to calculate gas limit",N))}}if(!p.nonce)try{let N=await vt({from:p.from,provider:m});p.nonce=String(N);}catch(N){return {error:rpcErrors.rpcErrors.internal(G("Unable to calculate nonce",N))}}let u=Ce(e),f=u?await se({declaration:u,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,y=await Nn({rpcMethod:e.method,chainId:t.chainId,params:p,dAppUrl:e.dappInfo.url,provider:m,blockaid:n}),{displayData:g,signingData:k}=It(e,t,p,y,f,a),{updateTx:T,cleanup:v}=Vn(e.requestId,k,g),b=await r.requestApproval({request:e,displayData:g,signingData:k,updateTx:T});if(v(),"error"in b)return {error:b.error};let w,S=e.context?.shouldRetry===!0;try{w=await Pt(m,b,{shouldRetry:S});}catch(N){return {error:rpcErrors.rpcErrors.internal(G("Unable to get transaction hash",N))}}return Qe({explorerUrl:t.explorerUrl??"",provider:m,txHash:w,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:w}},"ethSendTransaction");var Dt=chunkVYIKXRYZ_cjs.a(e=>{let t="";t+=`Domain
27
27
  `;for(let r in e.domain)t+=` ${r}: ${ye(String(e.domain[r]))}
28
28
  `;t+=`
29
29
  Message
@@ -37,20 +37,20 @@ Message
37
37
  `,n[i].forEach((s,c)=>{t+=` ${c}: ${ye(s)}
38
38
  `;})):t+=` ${i}: ${ye(String(n[i]))}
39
39
  `;})):t+=` ${r}: ${ye(String(e.message[r]))}
40
- `;return t},"beautifyComplexMessage"),Bn=chunkVYIKXRYZ_cjs.a(e=>{let t="";return e.forEach(r=>{t+=`${r.name}:
40
+ `;return t},"beautifyComplexMessage"),On=chunkVYIKXRYZ_cjs.a(e=>{let t="";return e.forEach(r=>{t+=`${r.name}:
41
41
  `,t+=`${ye(String(r.value))}
42
42
 
43
- `;}),t},"beautifySimpleMessage"),ye=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 Qe=zod.z.string().describe("message"),q=zod.z.string().describe("address");var Fn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.ETH_SIGN),params:zod.z.tuple([q,Qe])});var Mn=zod.z.object({name:zod.z.string(),type:zod.z.string()}),we=zod.z.object({types:zod.z.object({EIP712Domain:zod.z.array(Mn)}).catchall(zod.z.array(Mn)),primaryType:zod.z.string(),domain:zod.z.record(zod.z.any()),message:zod.z.record(zod.z.any())}),mr=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(),dr=we.or(mr),Ln=zod.z.union([zod.z.string().describe("data string"),we]),Gn=zod.z.union([zod.z.string().describe("data string"),dr]),Vn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA),params:zod.z.tuple([q,Gn])}),Hn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1),params:zod.z.tuple([q,Gn])}),On=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3),params:zod.z.tuple([q,Ln])}),$n=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4),params:zod.z.tuple([q,Ln])});var Wn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.PERSONAL_SIGN),params:zod.z.union([zod.z.tuple([Qe,q]),zod.z.tuple([Qe,q,zod.z.string().optional().describe("password")])])});var go=zod.z.discriminatedUnion("method",[Wn,Fn,Vn,Hn,On,$n]).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 s=JSON.parse(i);return {data:dr.parse(s),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 s=JSON.parse(i);return {data:we.parse(s),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}}});function jn(e){return go.safeParse(e)}chunkVYIKXRYZ_cjs.a(jn,"parseRequestParams");var qn=chunkVYIKXRYZ_cjs.a(e=>mr.safeParse(e).success,"isTypedDataV1"),wd=chunkVYIKXRYZ_cjs.a(e=>we.safeParse(e).success,"isTypedData");var zn=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 Kn=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let a=jn({method:e.method,params:e.params});if(!a.success)return console.error("invalid params",a.error),{success:!1,error:rpcErrors.rpcErrors.invalidParams(j("Params are invalid",a.error))};let{method:i,data:s,address:c}=a.data,l;(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4)&&(l=zn(s));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:s},m=s;else if(i===vmModuleTypes.RpcMethod.PERSONAL_SIGN)p={type:i,account:c,data:s},m=ethers.toUtf8String(s);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1)p={type:i,account:c,data:s},m=qn(s)?Bn(s):lr(s);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4){p={type:i,account:c,data:s};let{types:P,primaryType:v,...w}=s;m=lr(w);}if(!p||!m)return {success:!1,error:rpcErrors.rpcErrors.internal("Unable to generate signing data")};let f=await In({request:e,accountAddress:c,chainId:t.chainId,data:{method:i,params:e.params},dAppUrl:e.dappInfo.url,blockaid:n}),y=Ne(e),g=y?await ae({declaration:y,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?[Se(g)]:[]],alert:f?.alert??u,balanceChange:f?.balanceChange,tokenApprovals:f?.tokenApprovals},T=await r.requestApproval({request:e,displayData:k,signingData:p});return "error"in T?{error:T.error}:"signedData"in T?{result:T.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"ethSign");var Yn=chunkVYIKXRYZ_cjs.a(async(e,t)=>{try{return {result:await(await M({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 Xn=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 Be(e,t){return e.then(r=>({id:t,status:"fulfilled",value:r})).catch(r=>({id:t,status:"rejected",reason:r}))}chunkVYIKXRYZ_cjs.a(Be,"addIdToPromise");async function Ue(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(Ue,"settleAllIdPromises");var Ro={"ERC-20":vmModuleTypes.TokenType.ERC20,"ERC-721":vmModuleTypes.TokenType.ERC721,"ERC-1155":vmModuleTypes.TokenType.ERC1155,"NON-ERC":vmModuleTypes.TokenType.NONERC,SPL:vmModuleTypes.TokenType.SPL},Eo=zod.z.string().transform((e,t)=>{let r=Ro[e];return r||(t.addIssue({code:zod.z.ZodIssueCode.custom,message:`Unknown contractType: ${e}`}),zod.z.NEVER)}),Po=zod.z.object({address:zod.z.string(),chainId:zod.z.number(),contractType:Eo,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()}),Io=zod.z.array(zod.z.unknown()).transform(e=>e.flatMap(t=>{let r=Po.safeParse(t);return r.success?[r.data]:[]}));async function wt({chainId:e,proxyApiUrl:t}){return (await G([`${t}/tokens?evmChainId=${e}`],Io)).map(n=>({...n,type:n.contractType}))}chunkVYIKXRYZ_cjs.a(wt,"getTokens");var F,Fe,he,nt,Me,gr=class gr{constructor({network:t,storage:r,proxyApiUrl:n,customTokens:a,fetch:i}){chunkVYIKXRYZ_cjs.d(this,F,void 0);chunkVYIKXRYZ_cjs.d(this,Fe,void 0);chunkVYIKXRYZ_cjs.d(this,he,void 0);chunkVYIKXRYZ_cjs.d(this,nt,void 0);chunkVYIKXRYZ_cjs.d(this,Me,void 0);chunkVYIKXRYZ_cjs.e(this,F,t),chunkVYIKXRYZ_cjs.e(this,Fe,r),chunkVYIKXRYZ_cjs.e(this,he,n),chunkVYIKXRYZ_cjs.e(this,nt,a),chunkVYIKXRYZ_cjs.e(this,Me,i);}async isNetworkSupported(){return !0}async getNativeBalance({chainId:t,address:r,currency:n}){let a=await M({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,F).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,F).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,F).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,F).customRpcHeaders}),i=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.nativeTokenId,s=chunkVYIKXRYZ_cjs.c(this,F).networkToken,c=new ne({storage:chunkVYIKXRYZ_cjs.c(this,Fe),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he),fetch:chunkVYIKXRYZ_cjs.c(this,Me)}),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),g=new coreUtilsSdk.TokenUnit(y,s.decimals,s.symbol),k=p!==void 0?g.mul(p):void 0;return {...s,coingeckoId:i??"",type:vmModuleTypes.TokenType.NATIVE,balance:y,balanceDisplayValue:g.toDisplay(),balanceInCurrency:k?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:k?.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 M({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,F).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,F).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,F).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,F).customRpcHeaders}),s=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.assetPlatformId,c=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.nativeTokenId,l=a?[]:await wt({chainId:Number(t),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he)}),p=l.map(v=>v.address),m=[...l,...chunkVYIKXRYZ_cjs.c(this,nt)].filter(Pt),u=chunkVYIKXRYZ_cjs.a(async v=>{let x=await new ethers.ethers.Contract(v.address,Tn__default.default.abi,i).balanceOf?.(r)||0n;return {...v,balance:x}},"getTokenWithBalance"),f=m.map(v=>Be(u(v),v.address)),y=await Ue(f),g=new ne({storage:chunkVYIKXRYZ_cjs.c(this,Fe),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he),fetch:chunkVYIKXRYZ_cjs.c(this,Me)}),k=s&&await g.getPricesByAddresses(p,s,n)||{},T=Object.keys(y),P={};for(let v=0;v<T.length;v++){let w=T[v];if(w===void 0)continue;let N=y[w];if(N===void 0||"error"in N){P[w]={error:`rpcService:getTokenWithBalance failed: ${N?.error??"unknown error"}`};continue}let x=k?.[c??""]?.[n]?.price??void 0,pe=k?.[c??""]?.[n]?.marketCap??void 0,I=k?.[c??""]?.[n]?.vol24??void 0,A=k?.[c??""]?.[n]?.change24??void 0,B=new coreUtilsSdk.TokenUnit(N.balance,N.decimals,N.symbol),We=x!==void 0?B.mul(x):void 0;P[N.address.toLowerCase()]={...N,type:vmModuleTypes.TokenType.ERC20,balance:N.balance,balanceDisplayValue:B.toDisplay(),balanceInCurrency:We?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:We?.toDisplay({fixedDp:2}),priceInCurrency:x,marketCap:pe,change24:A,vol24:I,reputation:null};}return P}async listNftBalances(){return {}}};F=new WeakMap,Fe=new WeakMap,he=new WeakMap,nt=new WeakMap,Me=new WeakMap,chunkVYIKXRYZ_cjs.a(gr,"RpcService");var _t=gr;async function ea(e,t){let r=e.map(async(i,s)=>({index:s,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(ea,"findAsync");var ta=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:s=!1,storage:c,balanceServices:l=[],tokenService:p,fetch:m})=>{let u=r.chainId,f=new _t({network:r,storage:c,proxyApiUrl:n,customTokens:i,fetch:m}),y=s?[f]:[...l,f],g=s?[vmModuleTypes.TokenType.ERC20]:a,k=await ea(y,P=>P.isNetworkSupported(r.chainId)),T={};if(k){let P=[],v=[],w=[];e.forEach(I=>{g.includes(vmModuleTypes.TokenType.NATIVE)&&P.push(Be(k.getNativeBalance({address:I,currency:t.toUpperCase(),chainId:u}).then(async A=>{if(A.symbol==="AVAX"){let B=await p.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:t.toUpperCase()});return {...A,priceInCurrency:B.priceInCurrency,marketCap:B.marketCap,vol24:B.vol24,change24:B.change24}}return A}),I)),g.includes(vmModuleTypes.TokenType.ERC20)&&v.push(Be(k.listErc20Balances({customTokens:i.filter(Pt),customTokensOnly:s,currency:t.toUpperCase(),chainId:u,address:I,pageSize:100}),I)),(g.includes(vmModuleTypes.TokenType.ERC721)||g.includes(vmModuleTypes.TokenType.ERC1155))&&w.push(Be(k.listNftBalances({chainId:u,address:I}),I));});let N=await Ue(P),x=await Ue(v),pe=await Ue(w);Object.keys(N).forEach(I=>{let A=N[I];if(!A||"error"in A){T[I]={error:`getNativeBalance failed: ${A?.error??"unknown error"}`};return}let B=A.symbol;T[I]={[B]:A};}),Object.keys(x).forEach(I=>{let A=x[I];!A||"error"in A&&typeof A.error!="string"?T[I]={...T[I],error:"listErc20Balances failed: unknown error"}:"error"in A&&typeof A.error=="string"?T[I]={...T[I],error:`listErc20Balances failed: ${A.error}`}:T[I]={...T[I],...A};}),Object.keys(pe).forEach(I=>{let A=pe[I];!A||"error"in A&&typeof A.error!="string"?T[I]={...T[I],error:"listNftBalances failed: unknown error"}:"error"in A&&typeof A.error=="string"?T[I]={...T[I],error:`listNftBalances failed: ${A.error}`}:T[I]={...T[I],...A};});}else e.forEach(P=>{T[P]={error:"unsupported network"};});return T},"getBalances");var yr={LOW:1n,MEDIUM:4n,HIGH:6n},hr=500000000n,xo=chunkVYIKXRYZ_cjs.a(e=>e===coreChainsSdk.ChainId.AVALANCHE_TESTNET_ID||e===coreChainsSdk.ChainId.AVALANCHE_MAINNET_ID,"isCChain"),aa=137,sa=80002,Co=chunkVYIKXRYZ_cjs.a(e=>e===aa||e===sa,"isPolygon"),No={[aa]:"https://gasstation.polygon.technology/v2",[sa]:"https://gasstation.polygon.technology/amoy"};function Te(e){return BigInt(Math.round(e*1e9))}chunkVYIKXRYZ_cjs.a(Te,"gweiToWei");async function wo(e){let t=No[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:Te(n.estimatedBaseFee),low:{maxFeePerGas:Te(n.safeLow.maxFee),maxPriorityFeePerGas:Te(n.safeLow.maxPriorityFee)},medium:{maxFeePerGas:Te(n.standard.maxFee),maxPriorityFeePerGas:Te(n.standard.maxPriorityFee)},high:{maxFeePerGas:Te(n.fast.maxFee),maxPriorityFeePerGas:Te(n.fast.maxPriorityFee)},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(wo,"getPolygonGasStationFees");async function oa({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,caipId:a,proxyApiUrl:i,customRpcHeaders:s}){let c=await M({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,customRpcHeaders:s});if(!i)throw rpcErrors.rpcErrors.internal("Proxy API URL is needed");if(xo(e))try{let v=await _o(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(Co(e))try{return await wo(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 Do(i,a),u=new coreUtilsSdk.TokenUnit(m,0,""),f=new coreUtilsSdk.TokenUnit(p,0,""),y=BigInt("1000000000"),g=f.mul(u).add(y).toSubUnit(),k=hr*yr.LOW,T=hr*yr.MEDIUM,P=hr*yr.HIGH;return {baseFee:g,low:{maxFeePerGas:g+k,maxPriorityFeePerGas:k},medium:{maxFeePerGas:g+T,maxPriorityFeePerGas:T},high:{maxFeePerGas:g+P,maxPriorityFeePerGas:P},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(oa,"getNetworkFee");async function _o(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(_o,"suggestPriceOptions");async function Do(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(Do,"getGasMultiplier");function ca(e){return e===vmModuleTypes.TokenType.ERC721||e===vmModuleTypes.TokenType.ERC1155}chunkVYIKXRYZ_cjs.a(ca,"isNftTokenType");function Tr(e){let{txType:t,isSender:r,walletAddress:n,tokens:a}=e;if(a.length===0)return t;let i=n.toLowerCase(),s=a.some(m=>ca(m.type)&&m.to?.address?.toLowerCase()===i),c=a.some(m=>ca(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&&s&&l?vmModuleTypes.TransactionType.NFT_RECEIVE:r&&c&&p?vmModuleTypes.TransactionType.NFT_SEND:t}chunkVYIKXRYZ_cjs.a(Tr,"convertTransactionType");var la=chunkVYIKXRYZ_cjs.a(({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a,i)=>{let s=!t&&!r&&!n,c=Uo(e.method?.methodName),l=a.toLowerCase(),p=c.toLowerCase().includes("swap"),m=s&&e.from.address.toLowerCase()===l,u=s&&e.to.address.toLowerCase()===l,f=c==="Market Buy Orders With Eth"||c==="Buy NFT",y=c==="Approve",g=c.toLowerCase().includes("transfer"),k=c.toLowerCase().includes("airdrop"),T=c.toLowerCase().includes("unwrap"),P=c==="Fill Order",v;p?v=vmModuleTypes.TransactionType.SWAP:m?v=vmModuleTypes.TransactionType.SEND:u?v=vmModuleTypes.TransactionType.RECEIVE:f?v=vmModuleTypes.TransactionType.NFT_BUY:y?v=vmModuleTypes.TransactionType.APPROVE:g?v=vmModuleTypes.TransactionType.TRANSFER:k?v=vmModuleTypes.TransactionType.AIRDROP:T?v=vmModuleTypes.TransactionType.UNWRAP:P?v=vmModuleTypes.TransactionType.FILL_ORDER:v=vmModuleTypes.TransactionType.UNKNOWN;let w=e.from.address.toLowerCase()===l;return Tr({txType:v,isSender:w,walletAddress:a,tokens:i})},"getTxType"),Uo=chunkVYIKXRYZ_cjs.a((e="")=>e.includes("(")?Bo__default.default(e.split("(",1)[0]):e,"parseRawMethod");function pa({tx:e,networkToken:t,explorerUrl:r,chainId:n,address:a}){let i=e.from_address.toLowerCase()===a.toLowerCase(),s=new Date(e.block_timestamp).getTime(),c=Lo(e.category),l=!Fo.has(e.category),p=Ho(e,t,a),m=se(r,e.hash);return c=Tr({txType:c,isSender:i,walletAddress:a,tokens:p}),{isContractCall:l,isIncoming:!i,isOutgoing:i,isSender:i,timestamp:s,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(pa,"convertMoralisTransaction");var Fo=new Set(["send","receive","token send","token receive"]),Mo={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 Lo(e){return Mo[e]??vmModuleTypes.TransactionType.UNKNOWN}chunkVYIKXRYZ_cjs.a(Lo,"getMoralisTransactionType");function ce(e){if(!(e==null||e===""))return {address:e}}chunkVYIKXRYZ_cjs.a(ce,"getTransferAddress");function Dt(e){return e?.trim()??""}chunkVYIKXRYZ_cjs.a(Dt,"trimOrEmpty");function Go(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(Go,"shortenHexAddress");function Vo(e){let t=Dt(e.token_symbol);if(t!=="")return t;let r=Dt(e.token_name);return r!==""?r:Go(e.address)}chunkVYIKXRYZ_cjs.a(Vo,"getErc20DisplaySymbol");function Ho(e,t,r){let n=[],a=e.native_transfers.map(s=>Oo(s,t)),i=e.erc20_transfers.map(s=>$o(s));n.push(...a,...i);for(let s of e.nft_transfers)n.push(Wo(s));return n.length===0&&n.push(jo(e,t,r)),n}chunkVYIKXRYZ_cjs.a(Ho,"buildTokens");function Oo(e,t){let r=Dt(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:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(Oo,"buildNativeToken");function $o(e){let t=Number(e.token_decimals),r=Vo(e),n=new coreUtilsSdk.TokenUnit(e.value,t,r),a=Dt(e.token_name)||r;return {decimal:e.token_decimals,name:a,symbol:r,amount:n.toDisplay(),from:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.ERC20,address:e.address}}chunkVYIKXRYZ_cjs.a($o,"buildErc20Token");function Wo(e){let t=e.contract_type==="ERC1155"?vmModuleTypes.TokenType.ERC1155:vmModuleTypes.TokenType.ERC721;return {name:"",symbol:"",amount:e.amount,collectableTokenId:e.token_id,from:ce(e.from_address),to:ce(e.to_address),type:t,address:e.token_address}}chunkVYIKXRYZ_cjs.a(Wo,"buildNftToken");function jo(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:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(jo,"buildFallbackNativeToken");var qo="https://proxy-api.avax.network/proxy/moralis-evm";async function ma({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}){try{let s=`0x${e.toString(16)}`,c=new URLSearchParams({chain:s,limit:(i??25).toString()});a&&c.set("cursor",a);let l=`${qo}/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=>pa({tx:f,networkToken:t,explorerUrl:r,chainId:e,address:n})),nextPageToken:m.cursor??""}:{transactions:[],nextPageToken:""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(ma,"getTransactionsFromMoralis");var zo=new Set([1,4,5,11155111,8453,42161,10]);function da(e){return zo.has(e)}chunkVYIKXRYZ_cjs.a(da,"isMoralisSupportedChain");var ua=chunkVYIKXRYZ_cjs.a((e,{nativeTransaction:t,erc20Transfers:r,erc721Transfers:n},a)=>{let i=e===vmModuleTypes.TransactionType.TRANSFER,s=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=s||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 ga(e){try{return e.then(t=>[t,null]).catch(t=>[null,t])}catch(t){return Promise.resolve([null,t])}}chunkVYIKXRYZ_cjs.a(ga,"resolve");var Yo="https://ipfs.io";function Le(e,t=Yo){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Le,"ipfsResolverWithFallback");async function Jo(e,t=5e3){let r=new AbortController;return setTimeout(()=>r.abort(),t),fetch(e,{signal:r.signal})}chunkVYIKXRYZ_cjs.a(Jo,"fetchWithTimeout");async function fa(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 Jo(Le(e)).then(r=>r.json()).catch(()=>({}));else return {};return t}chunkVYIKXRYZ_cjs.a(fa,"getNftMetadata");var Xo="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function ya(e,t="256"){let r=Le(e);return `${Xo}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(ya,"getSmallImageForNFT");var ka=chunkVYIKXRYZ_cjs.a(async({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a)=>{let i=[];if(e.value!=="0"){let s=a.decimals,l=new coreUtilsSdk.TokenUnit(e.value,a.decimals,a.symbol).toDisplay();i.push({decimal:s.toString(),name:a.name,symbol:a.symbol,amount:l,from:e.from,to:e.to,type:vmModuleTypes.TokenType.NATIVE});}return t?.forEach(s=>{let c=s.erc20Token.decimals,p=new coreUtilsSdk.TokenUnit(s.value,c,s.erc20Token.symbol).toDisplay();i.push({decimal:c.toString(),address:s.erc20Token.address,name:s.erc20Token.name,symbol:s.erc20Token.symbol,amount:p,from:s.from,to:s.to,imageUri:s.erc20Token.logoUri,type:vmModuleTypes.TokenType.ERC20});}),r&&await Promise.allSettled(r.map(async s=>{let c=s.erc721Token,l=await Ta(c.tokenUri,c.metadata.imageUri);i.push({name:s.erc721Token.name,symbol:s.erc721Token.symbol,address:s.erc721Token.address,amount:"1",imageUri:l,from:s.from,to:s.to,collectableTokenId:s.erc721Token.tokenId,type:vmModuleTypes.TokenType.ERC721});})),n&&await Promise.allSettled(n.map(async s=>{let c=s.erc1155Token,l=await Ta(c.tokenUri,c.metadata.imageUri);i.push({name:s.erc1155Token.metadata.name??"",symbol:s.erc1155Token.metadata.symbol??"",address:s.erc1155Token.address,amount:s.value,imageUri:l,from:s.from,to:s.to,collectableTokenId:s.erc1155Token.tokenId,type:vmModuleTypes.TokenType.ERC1155});})),i},"getTokens"),Ta=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(t)return t.startsWith("ipfs://")?Le(t):t;{let[r,n]=await ga(fa(e));return n?"":r.image?ya(r.image):""}},"getImageUri");var ba=chunkVYIKXRYZ_cjs.a(async({transactions:e,explorerUrl:t,networkToken:r,chainId:n,address:a})=>{let i=await ka(e,r),s=la(e,a,i),{isOutgoing:c,isIncoming:l,isSender:p,from:m,to:u}=ua(s,e,a),{blockTimestamp:f,txHash:y,gasPrice:g,gasUsed:k}=e.nativeTransaction,T=se(t,y);return {isContractCall:!nn.includes(s),isIncoming:l,isOutgoing:c,isSender:p,timestamp:f*1e3,hash:y,from:m,to:u,tokens:i,gasPrice:g,gasUsed:k,chainId:n.toString(),txType:s,explorerLink:T}},"convertTransaction");var va=chunkVYIKXRYZ_cjs.a(async({chainId:e,explorerUrl:t,networkToken:r,address:n,nextPageToken:a,offset:i,glacierService:s})=>{try{let c=await s.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=>ba({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");async function Ra({client:e,chainId:t,networkToken:r,explorerUrl:n,address:a,nextPageToken:i,offset:s=25}){try{let c=Zo(i),[l,p,m]=await Promise.all([e.listNormalTransactions(a,{page:c,offset:s}),e.listErc20Transfers(a,{page:c,offset:s}),e.listInternalTransactions(a,{page:c,offset:s})]),u=new Map;for(let g of l){if(g.isError!=="0"||g.txreceipt_status!=="1")continue;let k=vr(u,g),T=Qo(g,r);T&&k.tokens.push(T);}for(let g of p)vr(u,g).tokens.push(ti(g));for(let g of m){if(g.isError!=="0")continue;let k=vr(u,g),T=ei(g,r);T&&k.tokens.push(T);}let f=Array.from(u.values()).map(g=>ri(g,a,n,r,t)).sort((g,k)=>k.timestamp-g.timestamp),y=[l,p,m].some(g=>g.length===s);return {transactions:f,nextPageToken:y?String(c+1):""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(Ra,"getTransactionsFromHyperEvm");function Zo(e){let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:1}chunkVYIKXRYZ_cjs.a(Zo,"getPage");function vr(e,t){let r=e.get(t.hash);if(r)return r;let n={hash:t.hash,timestamp:Number(t.timeStamp)*1e3,from:t.from,to:t.to,gasPrice:"gasPrice"in t?t.gasPrice:void 0,gasUsed:t.gasUsed,isContractCall:"input"in t&&t.input!=="0x",tokens:[]};return e.set(t.hash,n),n}chunkVYIKXRYZ_cjs.a(vr,"getAggregate");function Qo(e,t){if(e.value!=="0")return {decimal:String(t.decimals),name:t.name,symbol:t.symbol,amount:new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(Qo,"nativeToken");function ei(e,t){if(e.value!=="0")return {decimal:String(t.decimals),name:t.name,symbol:t.symbol,amount:new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(ei,"internalToken");function ti(e){return {decimal:e.tokenDecimal,name:e.tokenName,symbol:e.tokenSymbol,amount:new coreUtilsSdk.TokenUnit(e.value,Number(e.tokenDecimal),e.tokenSymbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.ERC20,address:e.contractAddress}}chunkVYIKXRYZ_cjs.a(ti,"erc20Token");function ri(e,t,r,n,a){let i=t.toLowerCase(),s=e.tokens.some(m=>m.to?.address.toLowerCase()===i),c=e.tokens.some(m=>m.from?.address.toLowerCase()===i),l=e.from.toLowerCase()===i||c,p=s&&c?vmModuleTypes.TransactionType.SWAP:l?vmModuleTypes.TransactionType.SEND:vmModuleTypes.TransactionType.RECEIVE;return {isContractCall:e.isContractCall||s&&c,isIncoming:s&&!c,isOutgoing:c,isSender:l,timestamp:e.timestamp,hash:e.hash,from:e.from,to:e.to,tokens:e.tokens.length>0?e.tokens:[{decimal:String(n.decimals),name:n.name,symbol:n.symbol,amount:"0",type:vmModuleTypes.TokenType.NATIVE}],gasPrice:e.gasPrice,gasUsed:e.gasUsed,chainId:a.toString(),txType:p,explorerLink:se(r,e.hash)}}chunkVYIKXRYZ_cjs.a(ri,"toTransaction");var ni=999,Ea=chunkVYIKXRYZ_cjs.a(async({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i,glacierService:s,hyperEvmEtherscanClient:c})=>e===ni?c?Ra({client:c,chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):{transactions:[],nextPageToken:""}:da(e)?ma({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):s.isHealthy()?va({networkToken:t,explorerUrl:r,chainId:e,address:n,nextPageToken:a,offset:i,glacierService:s}):{transactions:[],nextPageToken:""},"getTransactionHistory");var si="https://ipfs.io";function Pa(e,t=si){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Pa,"ipfsResolverWithFallback");var oi="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Ft(e,t="256"){let r=Pa(e);return `${oi}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Ft,"getSmallImageForNFT");var Ge,Z,Er=class Er{constructor(t,r){this.baseUrl=t;chunkVYIKXRYZ_cjs.d(this,Ge,[]);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,Ge).length===0){let t=await chunkVYIKXRYZ_cjs.c(this,Z).call(this,`${this.baseUrl}/v1/chain/list`);if(t.ok)chunkVYIKXRYZ_cjs.e(this,Ge,await t.json());else throw new Error(`${t.status}:${t.statusText}`)}return chunkVYIKXRYZ_cjs.c(this,Ge)}async getNftList({address:t,chainId:r}){return G([`${this.baseUrl}/v1/user/nft_list?id=${t}&chain_id=${r}`],pi,chunkVYIKXRYZ_cjs.c(this,Z))}};Ge=new WeakMap,Z=new WeakMap,chunkVYIKXRYZ_cjs.a(Er,"DeBank");var Mt=Er,ci=zod.z.object({id:zod.z.union([zod.z.custom(ethers.isHexString),zod.z.string()]),chain:zod.z.string(),name:zod.z.string()}),li=ci.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()})),pi=zod.z.array(li);var z,Ve,Gt,Ht,Aa,Ir=class Ir{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,Ve);chunkVYIKXRYZ_cjs.d(this,Ht);chunkVYIKXRYZ_cjs.d(this,z,void 0);chunkVYIKXRYZ_cjs.e(this,z,new Mt(`${t}/proxy/debank`,r));}async isNetworkSupported(t){return chunkVYIKXRYZ_cjs.c(this,z).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,Ve,Gt).call(this,t),s=a.native_token_id,c=await chunkVYIKXRYZ_cjs.c(this,z).getTokenBalance({address:r,chainId:i,tokenId:s}),l=new coreUtilsSdk.TokenUnit(c.raw_amount,c.decimals,c.symbol),p=l.toDisplay(),u=(await ut()).usd[n.toLowerCase()],f=u?u*c.price:void 0,y=f?l.mul(f).toDisplay({fixedDp:2}):void 0,g=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:g,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,Ve,Gt).call(this,t),s=await chunkVYIKXRYZ_cjs.c(this,z).getTokensBalanceOnChain({chainId:i,address:r}),c=await ut(),l={};for(let p of s){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,g=y?m.mul(y).toDisplay({fixedDp:2}):void 0,k=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:g,balanceDisplayValue:u,balanceInCurrency:k,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,Ve,Gt).call(this,t),a=await chunkVYIKXRYZ_cjs.c(this,z).getNftList({chainId:n,address:r});return chunkVYIKXRYZ_cjs.f(this,Ht,Aa).call(this,a,t)}};z=new WeakMap,Ve=new WeakSet,Gt=chunkVYIKXRYZ_cjs.a(async function(t){let n=(await chunkVYIKXRYZ_cjs.c(this,z).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,z).getChainInfo({chainId:n});if(!a)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);return {chainInfo:a,chainIdString:n}},"#getChainInfo"),Ht=new WeakSet,Aa=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:Ft(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(Ir,"DeBankService");var Vt=Ir;var Sr=class Sr extends Error{constructor(){super(...arguments);chunkVYIKXRYZ_cjs.b(this,"message","Glacier is unhealthy. Try again later.");}};chunkVYIKXRYZ_cjs.a(Sr,"GlacierUnhealthyError");var Q=Sr,fi=[coreChainsSdk.ChainId.ETHEREUM_HOMESTEAD],xr=class xr{constructor({glacierApiUrl:t,headers:r,getAuthHeaders:n}){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:n?async()=>({...r,...await n()}):r},ze),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=>!fi.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 Q&&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 Q&&this.setGlacierToUnhealthy(),a}}async getNativeBalance({chainId:t,address:r,currency:n,coingeckoId:a}){try{let s=(await this.glacierSdk.evmBalances.getNativeBalance({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase()})).nativeTokenBalance,c=new coreUtilsSdk.TokenUnit(s.balance,s.decimals,s.symbol),l=s.price?.value,p=l!==void 0?c.mul(l):void 0;return {name:s.name,symbol:s.symbol,decimals:s.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:s.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 Q&&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 Q&&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 Q&&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(s=>s.ercType===glacierSdk.Erc721Token.ercType.ERC_721||BigInt(s.balance)>0n).map(s=>[`${s.address}-${s.tokenId}`,{address:s.address,description:s.metadata.description??"",logoUri:s.metadata.imageUri??"",logoSmall:Ft(s.metadata.imageUri??""),name:s.metadata.name??"",symbol:s.metadata.symbol??"",tokenId:s.tokenId,tokenUri:s.tokenUri,chainId:t,collectionName:"Unknown",balance:s.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?BigInt(s.balance):1,balanceDisplayValue:s.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?s.balance:"1",type:s.ercType===glacierSdk.Erc721Token.ercType.ERC_721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:s.metadata.indexStatus,description:s.metadata.description,lastUpdatedTimestamp:s.metadata.metadataLastUpdatedTimestamp,properties:s.ercType===glacierSdk.Erc721Token.ercType.ERC_721?s.metadata.attributes:s.metadata.properties}}]));return Object.fromEntries(a)}async listErc20Balances({chainId:t,address:r,currency:n,customTokens:a}){try{let i=[],s;do{let c=await this.glacierSdk.evmBalances.listErc20Balances({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase(),pageSize:100,pageToken:s});i.push(...hi(c.erc20TokenBalances,Number(t))),s=c.nextPageToken;}while(s);return [...yi(a),...i].reduce((c,l)=>({...c,[l.address.toLowerCase()]:l}),{})}catch(i){throw i instanceof Q&&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 Q&&this.setGlacierToUnhealthy(),i}}};chunkVYIKXRYZ_cjs.a(xr,"EvmGlacierService");var Ot=xr,yi=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"),hi=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(),s=r.price?.value,c=s!==void 0?n.mul(s).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:s,reputation:r.tokenReputation,type:vmModuleTypes.TokenType.ERC20}}),"convertErc20TokenWithBalanceToTokenWithBalance");var Ca=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),nonce:zod.z.string(),blockHash:zod.z.string(),transactionIndex:zod.z.string(),from:zod.z.string(),to:zod.z.string(),value:zod.z.string(),gas:zod.z.string(),gasPrice:zod.z.string(),isError:zod.z.string(),txreceipt_status:zod.z.string(),input:zod.z.string(),contractAddress:zod.z.string(),cumulativeGasUsed:zod.z.string(),gasUsed:zod.z.string(),confirmations:zod.z.string()}),Na=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),nonce:zod.z.string(),blockHash:zod.z.string(),from:zod.z.string(),contractAddress:zod.z.string(),to:zod.z.string(),value:zod.z.string(),tokenName:zod.z.string(),tokenSymbol:zod.z.string(),tokenDecimal:zod.z.string(),transactionIndex:zod.z.string(),gas:zod.z.string(),gasPrice:zod.z.string(),gasUsed:zod.z.string(),cumulativeGasUsed:zod.z.string(),input:zod.z.string(),confirmations:zod.z.string()}),wa=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),from:zod.z.string(),to:zod.z.string(),value:zod.z.string(),contractAddress:zod.z.string(),input:zod.z.string(),type:zod.z.string(),gas:zod.z.string(),gasUsed:zod.z.string(),traceId:zod.z.string(),isError:zod.z.string(),errCode:zod.z.string()});var Ti=chunkVYIKXRYZ_cjs.a(e=>{if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error("HyperEvmEtherscanClient requires a fetch implementation")},"resolveFetch"),ct,lt,Oe,$t,Cr=class Cr{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,Oe);chunkVYIKXRYZ_cjs.d(this,ct,void 0);chunkVYIKXRYZ_cjs.d(this,lt,void 0);chunkVYIKXRYZ_cjs.e(this,ct,`${t}/proxy/etherscan/hyperevm/api`),chunkVYIKXRYZ_cjs.e(this,lt,Ti(r));}listNormalTransactions(t,r){return chunkVYIKXRYZ_cjs.f(this,Oe,$t).call(this,"txlist",t,Ca,r)}listErc20Transfers(t,r){return chunkVYIKXRYZ_cjs.f(this,Oe,$t).call(this,"tokentx",t,Na,r)}listInternalTransactions(t,r){return chunkVYIKXRYZ_cjs.f(this,Oe,$t).call(this,"txlistinternal",t,wa,r)}};ct=new WeakMap,lt=new WeakMap,Oe=new WeakSet,$t=chunkVYIKXRYZ_cjs.a(async function(t,r,n,a){let i=new URLSearchParams({module:"account",action:t,address:r,page:(a?.page??1).toString(),offset:(a?.offset??25).toString(),sort:"desc"}),s=await chunkVYIKXRYZ_cjs.c(this,lt).call(this,`${chunkVYIKXRYZ_cjs.c(this,ct)}?${i.toString()}`);if(!s.ok)throw new Error(`HyperEVM explorer request failed: ${s.status} ${s.statusText}`);let c=await s.json(),l=zod.z.object({status:zod.z.string(),message:zod.z.string(),result:zod.z.union([zod.z.array(n),zod.z.string()])}).parse(c);if(Array.isArray(l.result))return l.result;if(l.status==="0"&&l.message==="No transactions found")return [];throw new Error(l.result)},"#list"),chunkVYIKXRYZ_cjs.a(Cr,"HyperEvmEtherscanClient");var Wt=Cr;var $e,pt,le,K,ke,H,mt,Nr=class Nr{constructor({approvalController:t,environment:r,appInfo:n,runtime:a}){chunkVYIKXRYZ_cjs.d(this,$e,void 0);chunkVYIKXRYZ_cjs.d(this,pt,void 0);chunkVYIKXRYZ_cjs.d(this,le,void 0);chunkVYIKXRYZ_cjs.d(this,K,void 0);chunkVYIKXRYZ_cjs.d(this,ke,void 0);chunkVYIKXRYZ_cjs.d(this,H,void 0);chunkVYIKXRYZ_cjs.d(this,mt,void 0);let{glacierApiUrl:i,proxyApiUrl:s}=Or(r);chunkVYIKXRYZ_cjs.e(this,H,a),chunkVYIKXRYZ_cjs.e(this,$e,new Ot({glacierApiUrl:i,headers:Zt(n),getAuthHeaders:async()=>chunkVYIKXRYZ_cjs.c(this,H)?.getAuthHeaders?.()})),chunkVYIKXRYZ_cjs.e(this,pt,new Vt({proxyApiUrl:s,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})),chunkVYIKXRYZ_cjs.e(this,le,s),chunkVYIKXRYZ_cjs.e(this,mt,new Wt({proxyApiUrl:s,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})),chunkVYIKXRYZ_cjs.e(this,K,t),chunkVYIKXRYZ_cjs.e(this,ke,new bi__default.default({baseURL:s+"/proxy/blockaid/",apiKey:Vr,httpAgent:a?.httpAgent,fetch:a?.fetch}));}updateRuntimeParams(t){chunkVYIKXRYZ_cjs.e(this,H,{...chunkVYIKXRYZ_cjs.c(this,H),...t,features:{...chunkVYIKXRYZ_cjs.c(this,H)?.features,...t.features}});}getProvider(t){return M({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 Xn({accountIndex:t,xpub:r,walletType:n})}buildDerivationPath(t){return Pe(t)}deriveAddress(t){return Zr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,K)})}deriveAddresses(t){return Qr({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,K)})}getBalances({addresses:t,network:r,currency:n,customTokens:a,storage:i,tokenTypes:s,customTokensOnly:c}){let l=new ne({storage:i,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch});return ta({addresses:t,currency:n,network:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),customTokens:a,customTokensOnly:c,balanceServices:[chunkVYIKXRYZ_cjs.c(this,$e),chunkVYIKXRYZ_cjs.c(this,pt)],storage:i,tokenTypes:s,tokenService:l,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})}getManifest(){let t=vmModuleTypes.parseManifest(Gr);return t.success?t.data:void 0}getNetworkFee(t){let{chainId:r,chainName:n,rpcUrl:a,utilityAddresses:i,caipId:s,customRpcHeaders:c}=t;return oa({chainId:r,chainName:n,rpcUrl:a,multiContractAddress:i?.multicall,caipId:s,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),customRpcHeaders:c})}getTransactionHistory(t){let{network:r,address:n,nextPageToken:a,offset:i}=t,{chainId:s,networkToken:c,explorerUrl:l=""}=r;return Ea({chainId:s,networkToken:c,explorerUrl:l,address:n,nextPageToken:a,offset:i,glacierService:chunkVYIKXRYZ_cjs.c(this,$e),hyperEvmEtherscanClient:chunkVYIKXRYZ_cjs.c(this,mt)})}getTokens(t){let{chainId:r}=t;return wt({chainId:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION:return Dn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke),eercEnabled:chunkVYIKXRYZ_cjs.c(this,H)?.features?.encryptedERCs===!0});case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION_BATCH:return dn(chunkVYIKXRYZ_cjs.c(this,K))?xn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke)}):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} requires BatchApprovalController`)};case vmModuleTypes.RpcMethod.AVALANCHE_DECLARE_AGENT_IDENTITY:return Jr({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 Kn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke)});default:return vi(t.method)?Yn(t,r):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}};$e=new WeakMap,pt=new WeakMap,le=new WeakMap,K=new WeakMap,ke=new WeakMap,H=new WeakMap,mt=new WeakMap,chunkVYIKXRYZ_cjs.a(Nr,"EvmModule");var Da=Nr,vi=chunkVYIKXRYZ_cjs.a(e=>e.startsWith("eth_")||["web3_clientVersion","web3_sha3","net_version","net_peerCount","net_listening"].includes(e),"shouldForwardToRpcNode");
43
+ `;}),t},"beautifySimpleMessage"),ye=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 rt=zod.z.string().describe("message"),q=zod.z.string().describe("address");var Wn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.ETH_SIGN),params:zod.z.tuple([q,rt])});var jn=zod.z.object({name:zod.z.string(),type:zod.z.string()}),De=zod.z.object({types:zod.z.object({EIP712Domain:zod.z.array(jn)}).catchall(zod.z.array(jn)),primaryType:zod.z.string(),domain:zod.z.record(zod.z.any()),message:zod.z.record(zod.z.any())}),gr=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(),fr=De.or(gr),qn=zod.z.union([zod.z.string().describe("data string"),De]),zn=zod.z.union([zod.z.string().describe("data string"),fr]),Yn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA),params:zod.z.tuple([q,zn])}),Kn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1),params:zod.z.tuple([q,zn])}),Jn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3),params:zod.z.tuple([q,qn])}),Xn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4),params:zod.z.tuple([q,qn])});var Zn=zod.z.object({method:zod.z.literal(vmModuleTypes.RpcMethod.PERSONAL_SIGN),params:zod.z.union([zod.z.tuple([rt,q]),zod.z.tuple([rt,q,zod.z.string().optional().describe("password")])])});var Co=zod.z.discriminatedUnion("method",[Zn,Wn,Yn,Kn,Jn,Xn]).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 s=JSON.parse(i);return {data:fr.parse(s),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 s=JSON.parse(i);return {data:De.parse(s),address:a,method:r}}catch{return t.addIssue({code:zod.z.ZodIssueCode.custom,message:"param is not a valid json"}),zod.z.NEVER}}}});function Qn(e){return Co.safeParse(e)}chunkVYIKXRYZ_cjs.a(Qn,"parseRequestParams");var yr=chunkVYIKXRYZ_cjs.a(e=>gr.safeParse(e).success,"isTypedDataV1"),hr=chunkVYIKXRYZ_cjs.a(e=>De.safeParse(e).success,"isTypedData");var wo=/^(u?)int(\d*)$/,Do=/^bytes(\d+)$/,ea=/\[(\d*)\]$/,_o=chunkVYIKXRYZ_cjs.a(e=>/^-?\d+$/.test(e),"isCanonicalDecimalString"),ta=chunkVYIKXRYZ_cjs.a(e=>/^0x[0-9a-fA-F]*$/.test(e),"isHexString"),Bo=chunkVYIKXRYZ_cjs.a(e=>{if(typeof e=="bigint")return e;if(typeof e=="number")return Number.isSafeInteger(e)?BigInt(e):null;if(typeof e=="string"&&(_o(e)||ta(e)))try{return BigInt(e)}catch{return null}return null},"toIntegerValue"),ra=chunkVYIKXRYZ_cjs.a((e,t)=>{if(e==="bool")return typeof t=="boolean"?null:`expected boolean, got ${JSON.stringify(t)}`;if(e==="string")return typeof t=="string"?null:`expected string, got ${JSON.stringify(t)}`;if(e==="address")return typeof t=="string"&&/^0x[0-9a-fA-F]{40}$/.test(t)?null:`expected a 20-byte address, got ${JSON.stringify(t)}`;let r=wo.exec(e);if(r){let a=Bo(t);if(a===null)return `expected an integer for ${e}, got ${JSON.stringify(t)}`;let i=r[1]==="u",s=r[2]?Number(r[2]):256,[c,l]=i?[0n,(1n<<BigInt(s))-1n]:[-(1n<<BigInt(s-1)),(1n<<BigInt(s-1))-1n];return a<c||a>l?`expected a value in the ${e} range, got ${JSON.stringify(t)}`:null}let n=Do.exec(e);if(n){let a=Number(n[1]);return typeof t=="string"&&new RegExp(`^0x[0-9a-fA-F]{${a*2}}$`).test(t)?null:`expected ${a}-byte hex string for ${e}, got ${JSON.stringify(t)}`}return e==="bytes"?typeof t=="string"&&ta(t)&&t.length%2===0?null:`expected a hex byte string, got ${JSON.stringify(t)}`:null},"primitiveTypeMismatch"),Tr=chunkVYIKXRYZ_cjs.a((e,t,r,n,a)=>{let i=ea.exec(e);if(i){let l=e.slice(0,e.length-i[0].length);if(!Array.isArray(t)){a.push(`${n}: expected array of ${l}, got ${JSON.stringify(t)}`);return}let p=i[1]?Number(i[1]):void 0;if(p!==void 0&&t.length!==p){a.push(`${n}: expected ${p} elements for ${e}, got ${t.length}`);return}t.forEach((m,u)=>Tr(l,m,r,`${n}[${u}]`,a));return}let s=r[e];if(s){if(typeof t!="object"||t===null||Array.isArray(t)){a.push(`${n}: expected struct ${e}, got ${JSON.stringify(t)}`);return}for(let l of s)Tr(l.type,t[l.name],r,`${n}.${l.name}`,a);return}let c=ra(e,t);c&&a.push(`${n}: ${c}`);},"collectMismatches"),na=chunkVYIKXRYZ_cjs.a(e=>{let t=e.types??{},r=[],n=t[e.primaryType];if(!n)return [`primaryType "${String(e.primaryType)}" is not defined in the message types`];for(let a of n)Tr(a.type,e.message[a.name],t,`message.${a.name}`,r);return r},"findEip712TypeMismatches"),kr=chunkVYIKXRYZ_cjs.a(e=>{let t=e.types??{},r=chunkVYIKXRYZ_cjs.a((a,i)=>{let s=ea.exec(a);if(s){if(!Array.isArray(i))return i;let p=a.slice(0,a.length-s[0].length);return i.map(m=>r(p,m))}let c=t[a];if(!c||typeof i!="object"||i===null||Array.isArray(i))return i;let l={};for(let p of c)p.name in i&&(l[p.name]=r(p.type,i[p.name]));return l},"sanitizeValue");return r(e.primaryType,e.message)??e.message},"sanitizeEip712Message"),aa=chunkVYIKXRYZ_cjs.a(e=>{let t=[];for(let r of e){let n=ra(r.type,r.value);n&&t.push(`${r.name}: ${n}`);}return t},"findEip712V1TypeMismatches");var br=chunkVYIKXRYZ_cjs.a(e=>{let t=na(e);if(t.length>0)return {isValid:!1,error:new Error(`EIP-712 message contains fields with a type mismatch: ${t.join("; ")}`),blocking:!0};try{let{EIP712Domain:r,...n}=e.types;return ethers.TypedDataEncoder.getPayload(e.domain,n,e.message),{isValid:!0}}catch(r){return {isValid:!1,error:r,blocking:!1}}},"isTypedDataValid"),sa=chunkVYIKXRYZ_cjs.a(e=>{let t=aa(e);return t.length>0?{isValid:!1,error:new Error(`Typed data contains fields with a type mismatch: ${t.join("; ")}`),blocking:!0}:{isValid:!0}},"isTypedDataV1Valid");var oa={[vmModuleTypes.AlertType.INFO]:0,[vmModuleTypes.AlertType.WARNING]:1,[vmModuleTypes.AlertType.DANGER]:2},ia=chunkVYIKXRYZ_cjs.a((e,t)=>{if(!e)return t;if(!t)return e;let[r,n]=oa[t.type]>oa[e.type]?[t,e]:[e,t];return {...r,details:{...r.details,body:[...r.details.body??[],`${n.details.title}: ${n.details.description}`]}}},"mergeAlerts");var Vo=chunkVYIKXRYZ_cjs.a(e=>{try{return ethers.toUtf8String(e)}catch{return e}},"toUtf8StringOrHex"),ca=chunkVYIKXRYZ_cjs.a(async({request:e,network:t,approvalController:r,blockaid:n})=>{let a=Qn({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:s,address:c}=a.data,l,p=i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1;if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4?l=br(s):p&&(yr(s)?l=sa(s):hr(s)&&(l=br(s))),l&&!l.isValid&&l.blocking)return {success:!1,error:rpcErrors.rpcErrors.invalidParams(G("EIP-712 message is invalid",l.error))};let m,u,f;if(l&&!l.isValid&&(f={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)m={type:i,account:c,data:s},u=s;else if(i===vmModuleTypes.RpcMethod.PERSONAL_SIGN)m={type:i,account:c,data:s},u=Vo(s);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V1)m={type:i,account:c,data:s},yr(s)?u=On(s):hr(s)?u=Dt({...s,message:kr(s)}):u=Dt(s);else if(i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V3||i===vmModuleTypes.RpcMethod.SIGN_TYPED_DATA_V4){m={type:i,account:c,data:s};let{types:b,primaryType:w,...S}=s;u=Dt({...S,message:kr(s)});}if(!m||!u)return {success:!1,error:rpcErrors.rpcErrors.internal("Unable to generate signing data")};let y=await _n({request:e,accountAddress:c,chainId:t.chainId,data:{method:i,params:e.params},dAppUrl:e.dappInfo.url,blockaid:n}),g=Ce(e),k=g?await se({declaration:g,rpcUrl:t.rpcUrl,chainId:t.chainId,chainName:t.chainName,customRpcHeaders:t.customRpcHeaders}):void 0,T={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:[O("Message",u,"vertical")]},...k?[xe(k)]:[]],alert:ia(y?.alert,f),balanceChange:y?.balanceChange,tokenApprovals:y?.tokenApprovals},v=await r.requestApproval({request:e,displayData:T,signingData:m});return "error"in v?{error:v.error}:"signedData"in v?{result:v.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"ethSign");var la=chunkVYIKXRYZ_cjs.a(async(e,t)=>{try{return {result:await(await M({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 ma=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 Ue(e,t){return e.then(r=>({id:t,status:"fulfilled",value:r})).catch(r=>({id:t,status:"rejected",reason:r}))}chunkVYIKXRYZ_cjs.a(Ue,"addIdToPromise");async function Fe(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(Fe,"settleAllIdPromises");var Ho={"ERC-20":vmModuleTypes.TokenType.ERC20,"ERC-721":vmModuleTypes.TokenType.ERC721,"ERC-1155":vmModuleTypes.TokenType.ERC1155,"NON-ERC":vmModuleTypes.TokenType.NONERC,SPL:vmModuleTypes.TokenType.SPL},Wo=zod.z.string().transform((e,t)=>{let r=Ho[e];return r||(t.addIssue({code:zod.z.ZodIssueCode.custom,message:`Unknown contractType: ${e}`}),zod.z.NEVER)}),jo=zod.z.object({address:zod.z.string(),chainId:zod.z.number(),contractType:Wo,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()}),qo=zod.z.array(zod.z.unknown()).transform(e=>e.flatMap(t=>{let r=jo.safeParse(t);return r.success?[r.data]:[]}));async function Ut({chainId:e,proxyApiUrl:t}){return (await $([`${t}/tokens?evmChainId=${e}`],qo)).map(n=>({...n,type:n.contractType}))}chunkVYIKXRYZ_cjs.a(Ut,"getTokens");var F,Me,he,ot,Ve,Er=class Er{constructor({network:t,storage:r,proxyApiUrl:n,customTokens:a,fetch:i}){chunkVYIKXRYZ_cjs.d(this,F,void 0);chunkVYIKXRYZ_cjs.d(this,Me,void 0);chunkVYIKXRYZ_cjs.d(this,he,void 0);chunkVYIKXRYZ_cjs.d(this,ot,void 0);chunkVYIKXRYZ_cjs.d(this,Ve,void 0);chunkVYIKXRYZ_cjs.e(this,F,t),chunkVYIKXRYZ_cjs.e(this,Me,r),chunkVYIKXRYZ_cjs.e(this,he,n),chunkVYIKXRYZ_cjs.e(this,ot,a),chunkVYIKXRYZ_cjs.e(this,Ve,i);}async isNetworkSupported(){return !0}async getNativeBalance({chainId:t,address:r,currency:n}){let a=await M({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,F).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,F).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,F).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,F).customRpcHeaders}),i=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.nativeTokenId,s=chunkVYIKXRYZ_cjs.c(this,F).networkToken,c=new ae({storage:chunkVYIKXRYZ_cjs.c(this,Me),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he),fetch:chunkVYIKXRYZ_cjs.c(this,Ve)}),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),g=new coreUtilsSdk.TokenUnit(y,s.decimals,s.symbol),k=p!==void 0?g.mul(p):void 0;return {...s,coingeckoId:i??"",type:vmModuleTypes.TokenType.NATIVE,balance:y,balanceDisplayValue:g.toDisplay(),balanceInCurrency:k?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:k?.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 M({chainId:t,chainName:chunkVYIKXRYZ_cjs.c(this,F).chainName,rpcUrl:chunkVYIKXRYZ_cjs.c(this,F).rpcUrl,multiContractAddress:chunkVYIKXRYZ_cjs.c(this,F).utilityAddresses?.multicall,customRpcHeaders:chunkVYIKXRYZ_cjs.c(this,F).customRpcHeaders}),s=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.assetPlatformId,c=chunkVYIKXRYZ_cjs.c(this,F).pricingProviders?.coingecko.nativeTokenId,l=a?[]:await Ut({chainId:Number(t),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he)}),p=l.map(b=>b.address),m=[...l,...chunkVYIKXRYZ_cjs.c(this,ot)].filter(xt),u=chunkVYIKXRYZ_cjs.a(async b=>{let N=await new ethers.ethers.Contract(b.address,An__default.default.abi,i).balanceOf?.(r)||0n;return {...b,balance:N}},"getTokenWithBalance"),f=m.map(b=>Ue(u(b),b.address)),y=await Fe(f),g=new ae({storage:chunkVYIKXRYZ_cjs.c(this,Me),proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,he),fetch:chunkVYIKXRYZ_cjs.c(this,Ve)}),k=s&&await g.getPricesByAddresses(p,s,n)||{},T=Object.keys(y),v={};for(let b=0;b<T.length;b++){let w=T[b];if(w===void 0)continue;let S=y[w];if(S===void 0||"error"in S){v[w]={error:`rpcService:getTokenWithBalance failed: ${S?.error??"unknown error"}`};continue}let N=k?.[c??""]?.[n]?.price??void 0,pe=k?.[c??""]?.[n]?.marketCap??void 0,P=k?.[c??""]?.[n]?.vol24??void 0,A=k?.[c??""]?.[n]?.change24??void 0,B=new coreUtilsSdk.TokenUnit(S.balance,S.decimals,S.symbol),je=N!==void 0?B.mul(N):void 0;v[S.address.toLowerCase()]={...S,type:vmModuleTypes.TokenType.ERC20,balance:S.balance,balanceDisplayValue:B.toDisplay(),balanceInCurrency:je?.toDisplay({fixedDp:2,asNumber:!0}),balanceCurrencyDisplayValue:je?.toDisplay({fixedDp:2}),priceInCurrency:N,marketCap:pe,change24:A,vol24:P,reputation:null};}return v}async listNftBalances(){return {}}};F=new WeakMap,Me=new WeakMap,he=new WeakMap,ot=new WeakMap,Ve=new WeakMap,chunkVYIKXRYZ_cjs.a(Er,"RpcService");var Ft=Er;async function ga(e,t){let r=e.map(async(i,s)=>({index:s,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(ga,"findAsync");var fa=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:s=!1,storage:c,balanceServices:l=[],tokenService:p,fetch:m})=>{let u=r.chainId,f=new Ft({network:r,storage:c,proxyApiUrl:n,customTokens:i,fetch:m}),y=s?[f]:[...l,f],g=s?[vmModuleTypes.TokenType.ERC20]:a,k=await ga(y,v=>v.isNetworkSupported(r.chainId)),T={};if(k){let v=[],b=[],w=[];e.forEach(P=>{g.includes(vmModuleTypes.TokenType.NATIVE)&&v.push(Ue(k.getNativeBalance({address:P,currency:t.toUpperCase(),chainId:u}).then(async A=>{if(A.symbol==="AVAX"){let B=await p.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:t.toUpperCase()});return {...A,priceInCurrency:B.priceInCurrency,marketCap:B.marketCap,vol24:B.vol24,change24:B.change24}}return A}),P)),g.includes(vmModuleTypes.TokenType.ERC20)&&b.push(Ue(k.listErc20Balances({customTokens:i.filter(xt),customTokensOnly:s,currency:t.toUpperCase(),chainId:u,address:P,pageSize:100}),P)),(g.includes(vmModuleTypes.TokenType.ERC721)||g.includes(vmModuleTypes.TokenType.ERC1155))&&w.push(Ue(k.listNftBalances({chainId:u,address:P}),P));});let S=await Fe(v),N=await Fe(b),pe=await Fe(w);Object.keys(S).forEach(P=>{let A=S[P];if(!A||"error"in A){T[P]={error:`getNativeBalance failed: ${A?.error??"unknown error"}`};return}let B=A.symbol;T[P]={[B]:A};}),Object.keys(N).forEach(P=>{let A=N[P];!A||"error"in A&&typeof A.error!="string"?T[P]={...T[P],error:"listErc20Balances failed: unknown error"}:"error"in A&&typeof A.error=="string"?T[P]={...T[P],error:`listErc20Balances failed: ${A.error}`}:T[P]={...T[P],...A};}),Object.keys(pe).forEach(P=>{let A=pe[P];!A||"error"in A&&typeof A.error!="string"?T[P]={...T[P],error:"listNftBalances failed: unknown error"}:"error"in A&&typeof A.error=="string"?T[P]={...T[P],error:`listNftBalances failed: ${A.error}`}:T[P]={...T[P],...A};});}else e.forEach(v=>{T[v]={error:"unsupported network"};});return T},"getBalances");var Ir={LOW:1n,MEDIUM:4n,HIGH:6n},Pr=500000000n,Ko=chunkVYIKXRYZ_cjs.a(e=>e===coreChainsSdk.ChainId.AVALANCHE_TESTNET_ID||e===coreChainsSdk.ChainId.AVALANCHE_MAINNET_ID,"isCChain"),Ta=137,ka=80002,Jo=chunkVYIKXRYZ_cjs.a(e=>e===Ta||e===ka,"isPolygon"),Xo={[Ta]:"https://gasstation.polygon.technology/v2",[ka]:"https://gasstation.polygon.technology/amoy"};function Te(e){return BigInt(Math.round(e*1e9))}chunkVYIKXRYZ_cjs.a(Te,"gweiToWei");async function Zo(e){let t=Xo[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:Te(n.estimatedBaseFee),low:{maxFeePerGas:Te(n.safeLow.maxFee),maxPriorityFeePerGas:Te(n.safeLow.maxPriorityFee)},medium:{maxFeePerGas:Te(n.standard.maxFee),maxPriorityFeePerGas:Te(n.standard.maxPriorityFee)},high:{maxFeePerGas:Te(n.fast.maxFee),maxPriorityFeePerGas:Te(n.fast.maxPriorityFee)},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(Zo,"getPolygonGasStationFees");async function ba({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,caipId:a,proxyApiUrl:i,customRpcHeaders:s}){let c=await M({chainId:e,chainName:t,rpcUrl:r,multiContractAddress:n,customRpcHeaders:s});if(!i)throw rpcErrors.rpcErrors.internal("Proxy API URL is needed");if(Ko(e))try{let b=await Qo(c);return {...b,baseFee:b.medium.maxFeePerGas,displayDecimals:9,isFixedFee:!1}}catch{console.error("eth_suggestPriceOptions call failed, falling back to legacy fee fetching");}if(Jo(e))try{return await Zo(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 ei(i,a),u=new coreUtilsSdk.TokenUnit(m,0,""),f=new coreUtilsSdk.TokenUnit(p,0,""),y=BigInt("1000000000"),g=f.mul(u).add(y).toSubUnit(),k=Pr*Ir.LOW,T=Pr*Ir.MEDIUM,v=Pr*Ir.HIGH;return {baseFee:g,low:{maxFeePerGas:g+k,maxPriorityFeePerGas:k},medium:{maxFeePerGas:g+T,maxPriorityFeePerGas:T},high:{maxFeePerGas:g+v,maxPriorityFeePerGas:v},isFixedFee:!1,displayDecimals:9}}chunkVYIKXRYZ_cjs.a(ba,"getNetworkFee");async function Qo(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(Qo,"suggestPriceOptions");async function ei(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(ei,"getGasMultiplier");function Ea(e){return e===vmModuleTypes.TokenType.ERC721||e===vmModuleTypes.TokenType.ERC1155}chunkVYIKXRYZ_cjs.a(Ea,"isNftTokenType");function Ar(e){let{txType:t,isSender:r,walletAddress:n,tokens:a}=e;if(a.length===0)return t;let i=n.toLowerCase(),s=a.some(m=>Ea(m.type)&&m.to?.address?.toLowerCase()===i),c=a.some(m=>Ea(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&&s&&l?vmModuleTypes.TransactionType.NFT_RECEIVE:r&&c&&p?vmModuleTypes.TransactionType.NFT_SEND:t}chunkVYIKXRYZ_cjs.a(Ar,"convertTransactionType");var va=chunkVYIKXRYZ_cjs.a(({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a,i)=>{let s=!t&&!r&&!n,c=ri(e.method?.methodName),l=a.toLowerCase(),p=c.toLowerCase().includes("swap"),m=s&&e.from.address.toLowerCase()===l,u=s&&e.to.address.toLowerCase()===l,f=c==="Market Buy Orders With Eth"||c==="Buy NFT",y=c==="Approve",g=c.toLowerCase().includes("transfer"),k=c.toLowerCase().includes("airdrop"),T=c.toLowerCase().includes("unwrap"),v=c==="Fill Order",b;p?b=vmModuleTypes.TransactionType.SWAP:m?b=vmModuleTypes.TransactionType.SEND:u?b=vmModuleTypes.TransactionType.RECEIVE:f?b=vmModuleTypes.TransactionType.NFT_BUY:y?b=vmModuleTypes.TransactionType.APPROVE:g?b=vmModuleTypes.TransactionType.TRANSFER:k?b=vmModuleTypes.TransactionType.AIRDROP:T?b=vmModuleTypes.TransactionType.UNWRAP:v?b=vmModuleTypes.TransactionType.FILL_ORDER:b=vmModuleTypes.TransactionType.UNKNOWN;let w=e.from.address.toLowerCase()===l;return Ar({txType:b,isSender:w,walletAddress:a,tokens:i})},"getTxType"),ri=chunkVYIKXRYZ_cjs.a((e="")=>e.includes("(")?ti__default.default(e.split("(",1)[0]):e,"parseRawMethod");function Ia({tx:e,networkToken:t,explorerUrl:r,chainId:n,address:a}){let i=e.from_address.toLowerCase()===a.toLowerCase(),s=new Date(e.block_timestamp).getTime(),c=si(e.category),l=!ni.has(e.category),p=ci(e,t,a),m=oe(r,e.hash);return c=Ar({txType:c,isSender:i,walletAddress:a,tokens:p}),{isContractCall:l,isIncoming:!i,isOutgoing:i,isSender:i,timestamp:s,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(Ia,"convertMoralisTransaction");var ni=new Set(["send","receive","token send","token receive"]),ai={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 si(e){return ai[e]??vmModuleTypes.TransactionType.UNKNOWN}chunkVYIKXRYZ_cjs.a(si,"getMoralisTransactionType");function ce(e){if(!(e==null||e===""))return {address:e}}chunkVYIKXRYZ_cjs.a(ce,"getTransferAddress");function Mt(e){return e?.trim()??""}chunkVYIKXRYZ_cjs.a(Mt,"trimOrEmpty");function oi(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(oi,"shortenHexAddress");function ii(e){let t=Mt(e.token_symbol);if(t!=="")return t;let r=Mt(e.token_name);return r!==""?r:oi(e.address)}chunkVYIKXRYZ_cjs.a(ii,"getErc20DisplaySymbol");function ci(e,t,r){let n=[],a=e.native_transfers.map(s=>li(s,t)),i=e.erc20_transfers.map(s=>pi(s));n.push(...a,...i);for(let s of e.nft_transfers)n.push(mi(s));return n.length===0&&n.push(di(e,t,r)),n}chunkVYIKXRYZ_cjs.a(ci,"buildTokens");function li(e,t){let r=Mt(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:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(li,"buildNativeToken");function pi(e){let t=Number(e.token_decimals),r=ii(e),n=new coreUtilsSdk.TokenUnit(e.value,t,r),a=Mt(e.token_name)||r;return {decimal:e.token_decimals,name:a,symbol:r,amount:n.toDisplay(),from:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.ERC20,address:e.address}}chunkVYIKXRYZ_cjs.a(pi,"buildErc20Token");function mi(e){let t=e.contract_type==="ERC1155"?vmModuleTypes.TokenType.ERC1155:vmModuleTypes.TokenType.ERC721;return {name:"",symbol:"",amount:e.amount,collectableTokenId:e.token_id,from:ce(e.from_address),to:ce(e.to_address),type:t,address:e.token_address}}chunkVYIKXRYZ_cjs.a(mi,"buildNftToken");function di(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:ce(e.from_address),to:ce(e.to_address),type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(di,"buildFallbackNativeToken");var ui="https://proxy-api.avax.network/proxy/moralis-evm";async function Pa({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}){try{let s=`0x${e.toString(16)}`,c=new URLSearchParams({chain:s,limit:(i??25).toString()});a&&c.set("cursor",a);let l=`${ui}/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=>Ia({tx:f,networkToken:t,explorerUrl:r,chainId:e,address:n})),nextPageToken:m.cursor??""}:{transactions:[],nextPageToken:""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(Pa,"getTransactionsFromMoralis");var gi=new Set([1,4,5,11155111,8453,42161,10]);function Aa(e){return gi.has(e)}chunkVYIKXRYZ_cjs.a(Aa,"isMoralisSupportedChain");var xa=chunkVYIKXRYZ_cjs.a((e,{nativeTransaction:t,erc20Transfers:r,erc721Transfers:n},a)=>{let i=e===vmModuleTypes.TransactionType.TRANSFER,s=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=s||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 Sa(e){try{return e.then(t=>[t,null]).catch(t=>[null,t])}catch(t){return Promise.resolve([null,t])}}chunkVYIKXRYZ_cjs.a(Sa,"resolve");var yi="https://ipfs.io";function Le(e,t=yi){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Le,"ipfsResolverWithFallback");async function hi(e,t=5e3){let r=new AbortController;return setTimeout(()=>r.abort(),t),fetch(e,{signal:r.signal})}chunkVYIKXRYZ_cjs.a(hi,"fetchWithTimeout");async function Na(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 hi(Le(e)).then(r=>r.json()).catch(()=>({}));else return {};return t}chunkVYIKXRYZ_cjs.a(Na,"getNftMetadata");var Ti="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Ca(e,t="256"){let r=Le(e);return `${Ti}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Ca,"getSmallImageForNFT");var _a=chunkVYIKXRYZ_cjs.a(async({nativeTransaction:e,erc20Transfers:t,erc721Transfers:r,erc1155Transfers:n},a)=>{let i=[];if(e.value!=="0"){let s=a.decimals,l=new coreUtilsSdk.TokenUnit(e.value,a.decimals,a.symbol).toDisplay();i.push({decimal:s.toString(),name:a.name,symbol:a.symbol,amount:l,from:e.from,to:e.to,type:vmModuleTypes.TokenType.NATIVE});}return t?.forEach(s=>{let c=s.erc20Token.decimals,p=new coreUtilsSdk.TokenUnit(s.value,c,s.erc20Token.symbol).toDisplay();i.push({decimal:c.toString(),address:s.erc20Token.address,name:s.erc20Token.name,symbol:s.erc20Token.symbol,amount:p,from:s.from,to:s.to,imageUri:s.erc20Token.logoUri,type:vmModuleTypes.TokenType.ERC20});}),r&&await Promise.allSettled(r.map(async s=>{let c=s.erc721Token,l=await Da(c.tokenUri,c.metadata.imageUri);i.push({name:s.erc721Token.name,symbol:s.erc721Token.symbol,address:s.erc721Token.address,amount:"1",imageUri:l,from:s.from,to:s.to,collectableTokenId:s.erc721Token.tokenId,type:vmModuleTypes.TokenType.ERC721});})),n&&await Promise.allSettled(n.map(async s=>{let c=s.erc1155Token,l=await Da(c.tokenUri,c.metadata.imageUri);i.push({name:s.erc1155Token.metadata.name??"",symbol:s.erc1155Token.metadata.symbol??"",address:s.erc1155Token.address,amount:s.value,imageUri:l,from:s.from,to:s.to,collectableTokenId:s.erc1155Token.tokenId,type:vmModuleTypes.TokenType.ERC1155});})),i},"getTokens"),Da=chunkVYIKXRYZ_cjs.a(async(e,t)=>{if(t)return t.startsWith("ipfs://")?Le(t):t;{let[r,n]=await Sa(Na(e));return n?"":r.image?Ca(r.image):""}},"getImageUri");var Ba=chunkVYIKXRYZ_cjs.a(async({transactions:e,explorerUrl:t,networkToken:r,chainId:n,address:a})=>{let i=await _a(e,r),s=va(e,a,i),{isOutgoing:c,isIncoming:l,isSender:p,from:m,to:u}=xa(s,e,a),{blockTimestamp:f,txHash:y,gasPrice:g,gasUsed:k}=e.nativeTransaction,T=oe(t,y);return {isContractCall:!dn.includes(s),isIncoming:l,isOutgoing:c,isSender:p,timestamp:f*1e3,hash:y,from:m,to:u,tokens:i,gasPrice:g,gasUsed:k,chainId:n.toString(),txType:s,explorerLink:T}},"convertTransaction");var Ua=chunkVYIKXRYZ_cjs.a(async({chainId:e,explorerUrl:t,networkToken:r,address:n,nextPageToken:a,offset:i,glacierService:s})=>{try{let c=await s.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=>Ba({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");async function Fa({client:e,chainId:t,networkToken:r,explorerUrl:n,address:a,nextPageToken:i,offset:s=25}){try{let c=ki(i),[l,p,m]=await Promise.all([e.listNormalTransactions(a,{page:c,offset:s}),e.listErc20Transfers(a,{page:c,offset:s}),e.listInternalTransactions(a,{page:c,offset:s})]),u=new Map;for(let g of l){if(g.isError!=="0"||g.txreceipt_status!=="1")continue;let k=Nr(u,g),T=bi(g,r);T&&k.tokens.push(T);}for(let g of p)Nr(u,g).tokens.push(Ei(g));for(let g of m){if(g.isError!=="0")continue;let k=Nr(u,g),T=Ri(g,r);T&&k.tokens.push(T);}let f=Array.from(u.values()).map(g=>vi(g,a,n,r,t)).sort((g,k)=>k.timestamp-g.timestamp),y=[l,p,m].some(g=>g.length===s);return {transactions:f,nextPageToken:y?String(c+1):""}}catch{return {transactions:[],nextPageToken:""}}}chunkVYIKXRYZ_cjs.a(Fa,"getTransactionsFromHyperEvm");function ki(e){let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:1}chunkVYIKXRYZ_cjs.a(ki,"getPage");function Nr(e,t){let r=e.get(t.hash);if(r)return r;let n={hash:t.hash,timestamp:Number(t.timeStamp)*1e3,from:t.from,to:t.to,gasPrice:"gasPrice"in t?t.gasPrice:void 0,gasUsed:t.gasUsed,isContractCall:"input"in t&&t.input!=="0x",tokens:[]};return e.set(t.hash,n),n}chunkVYIKXRYZ_cjs.a(Nr,"getAggregate");function bi(e,t){if(e.value!=="0")return {decimal:String(t.decimals),name:t.name,symbol:t.symbol,amount:new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(bi,"nativeToken");function Ri(e,t){if(e.value!=="0")return {decimal:String(t.decimals),name:t.name,symbol:t.symbol,amount:new coreUtilsSdk.TokenUnit(e.value,t.decimals,t.symbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.NATIVE}}chunkVYIKXRYZ_cjs.a(Ri,"internalToken");function Ei(e){return {decimal:e.tokenDecimal,name:e.tokenName,symbol:e.tokenSymbol,amount:new coreUtilsSdk.TokenUnit(e.value,Number(e.tokenDecimal),e.tokenSymbol).toDisplay(),from:{address:e.from},to:{address:e.to},type:vmModuleTypes.TokenType.ERC20,address:e.contractAddress}}chunkVYIKXRYZ_cjs.a(Ei,"erc20Token");function vi(e,t,r,n,a){let i=t.toLowerCase(),s=e.tokens.some(m=>m.to?.address.toLowerCase()===i),c=e.tokens.some(m=>m.from?.address.toLowerCase()===i),l=e.from.toLowerCase()===i||c,p=s&&c?vmModuleTypes.TransactionType.SWAP:l?vmModuleTypes.TransactionType.SEND:vmModuleTypes.TransactionType.RECEIVE;return {isContractCall:e.isContractCall||s&&c,isIncoming:s&&!c,isOutgoing:c,isSender:l,timestamp:e.timestamp,hash:e.hash,from:e.from,to:e.to,tokens:e.tokens.length>0?e.tokens:[{decimal:String(n.decimals),name:n.name,symbol:n.symbol,amount:"0",type:vmModuleTypes.TokenType.NATIVE}],gasPrice:e.gasPrice,gasUsed:e.gasUsed,chainId:a.toString(),txType:p,explorerLink:oe(r,e.hash)}}chunkVYIKXRYZ_cjs.a(vi,"toTransaction");var Ii=999,Ma=chunkVYIKXRYZ_cjs.a(async({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i,glacierService:s,hyperEvmEtherscanClient:c})=>e===Ii?c?Fa({client:c,chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):{transactions:[],nextPageToken:""}:Aa(e)?Pa({chainId:e,networkToken:t,explorerUrl:r,address:n,nextPageToken:a,offset:i}):s.isHealthy()?Ua({networkToken:t,explorerUrl:r,chainId:e,address:n,nextPageToken:a,offset:i,glacierService:s}):{transactions:[],nextPageToken:""},"getTransactionHistory");var Ai="https://ipfs.io";function Va(e,t=Ai){if(!e)return "";try{return coreUtilsSdk.ipfsResolver(e,t)}catch{return e}}chunkVYIKXRYZ_cjs.a(Va,"ipfsResolverWithFallback");var xi="https://image-proxy.svc.prod.covalenthq.com/cdn-cgi/image";function Gt(e,t="256"){let r=Va(e);return `${xi}/width=${t},fit/${r}`}chunkVYIKXRYZ_cjs.a(Gt,"getSmallImageForNFT");var Ge,Q,wr=class wr{constructor(t,r){this.baseUrl=t;chunkVYIKXRYZ_cjs.d(this,Ge,[]);chunkVYIKXRYZ_cjs.d(this,Q,void 0);chunkVYIKXRYZ_cjs.e(this,Q,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,Q).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,Q).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,Q)??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,Ge).length===0){let t=await chunkVYIKXRYZ_cjs.c(this,Q).call(this,`${this.baseUrl}/v1/chain/list`);if(t.ok)chunkVYIKXRYZ_cjs.e(this,Ge,await t.json());else throw new Error(`${t.status}:${t.statusText}`)}return chunkVYIKXRYZ_cjs.c(this,Ge)}async getNftList({address:t,chainId:r}){return $([`${this.baseUrl}/v1/user/nft_list?id=${t}&chain_id=${r}`],wi,chunkVYIKXRYZ_cjs.c(this,Q))}};Ge=new WeakMap,Q=new WeakMap,chunkVYIKXRYZ_cjs.a(wr,"DeBank");var $t=wr,Ni=zod.z.object({id:zod.z.union([zod.z.custom(ethers.isHexString),zod.z.string()]),chain:zod.z.string(),name:zod.z.string()}),Ci=Ni.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()})),wi=zod.z.array(Ci);var Y,$e,Ht,jt,Ga,_r=class _r{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,$e);chunkVYIKXRYZ_cjs.d(this,jt);chunkVYIKXRYZ_cjs.d(this,Y,void 0);chunkVYIKXRYZ_cjs.e(this,Y,new $t(`${t}/proxy/debank`,r));}async isNetworkSupported(t){return chunkVYIKXRYZ_cjs.c(this,Y).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,$e,Ht).call(this,t),s=a.native_token_id,c=await chunkVYIKXRYZ_cjs.c(this,Y).getTokenBalance({address:r,chainId:i,tokenId:s}),l=new coreUtilsSdk.TokenUnit(c.raw_amount,c.decimals,c.symbol),p=l.toDisplay(),u=(await yt()).usd[n.toLowerCase()],f=u?u*c.price:void 0,y=f?l.mul(f).toDisplay({fixedDp:2}):void 0,g=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:g,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,$e,Ht).call(this,t),s=await chunkVYIKXRYZ_cjs.c(this,Y).getTokensBalanceOnChain({chainId:i,address:r}),c=await yt(),l={};for(let p of s){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,g=y?m.mul(y).toDisplay({fixedDp:2}):void 0,k=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:g,balanceDisplayValue:u,balanceInCurrency:k,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,$e,Ht).call(this,t),a=await chunkVYIKXRYZ_cjs.c(this,Y).getNftList({chainId:n,address:r});return chunkVYIKXRYZ_cjs.f(this,jt,Ga).call(this,a,t)}};Y=new WeakMap,$e=new WeakSet,Ht=chunkVYIKXRYZ_cjs.a(async function(t){let n=(await chunkVYIKXRYZ_cjs.c(this,Y).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,Y).getChainInfo({chainId:n});if(!a)throw rpcErrors.rpcErrors.invalidParams("getNativeBalance: not valid chainId: "+t);return {chainInfo:a,chainIdString:n}},"#getChainInfo"),jt=new WeakSet,Ga=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:Gt(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(_r,"DeBankService");var Wt=_r;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 ee=Ur,Fi=[coreChainsSdk.ChainId.ETHEREUM_HOMESTEAD],Fr=class Fr{constructor({glacierApiUrl:t,headers:r,getAuthHeaders:n}){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:n?async()=>({...r,...await n()}):r},Ke),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=>!Fi.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 ee&&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 ee&&this.setGlacierToUnhealthy(),a}}async getNativeBalance({chainId:t,address:r,currency:n,coingeckoId:a}){try{let s=(await this.glacierSdk.evmBalances.getNativeBalance({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase()})).nativeTokenBalance,c=new coreUtilsSdk.TokenUnit(s.balance,s.decimals,s.symbol),l=s.price?.value,p=l!==void 0?c.mul(l):void 0;return {name:s.name,symbol:s.symbol,decimals:s.decimals,type:vmModuleTypes.TokenType.NATIVE,logoUri:s.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 ee&&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 ee&&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 ee&&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(s=>s.ercType===glacierSdk.Erc721Token.ercType.ERC_721||BigInt(s.balance)>0n).map(s=>[`${s.address}-${s.tokenId}`,{address:s.address,description:s.metadata.description??"",logoUri:s.metadata.imageUri??"",logoSmall:Gt(s.metadata.imageUri??""),name:s.metadata.name??"",symbol:s.metadata.symbol??"",tokenId:s.tokenId,tokenUri:s.tokenUri,chainId:t,collectionName:"Unknown",balance:s.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?BigInt(s.balance):1,balanceDisplayValue:s.ercType===glacierSdk.Erc1155Token.ercType.ERC_1155?s.balance:"1",type:s.ercType===glacierSdk.Erc721Token.ercType.ERC_721?vmModuleTypes.TokenType.ERC721:vmModuleTypes.TokenType.ERC1155,metadata:{indexStatus:s.metadata.indexStatus,description:s.metadata.description,lastUpdatedTimestamp:s.metadata.metadataLastUpdatedTimestamp,properties:s.ercType===glacierSdk.Erc721Token.ercType.ERC_721?s.metadata.attributes:s.metadata.properties}}]));return Object.fromEntries(a)}async listErc20Balances({chainId:t,address:r,currency:n,customTokens:a}){try{let i=[],s;do{let c=await this.glacierSdk.evmBalances.listErc20Balances({chainId:t.toString(),address:r,currency:n.toLocaleLowerCase(),pageSize:100,pageToken:s});i.push(...Vi(c.erc20TokenBalances,Number(t))),s=c.nextPageToken;}while(s);return [...Mi(a),...i].reduce((c,l)=>({...c,[l.address.toLowerCase()]:l}),{})}catch(i){throw i instanceof ee&&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 ee&&this.setGlacierToUnhealthy(),i}}};chunkVYIKXRYZ_cjs.a(Fr,"EvmGlacierService");var qt=Fr,Mi=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"),Vi=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(),s=r.price?.value,c=s!==void 0?n.mul(s).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:s,reputation:r.tokenReputation,type:vmModuleTypes.TokenType.ERC20}}),"convertErc20TokenWithBalanceToTokenWithBalance");var Ha=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),nonce:zod.z.string(),blockHash:zod.z.string(),transactionIndex:zod.z.string(),from:zod.z.string(),to:zod.z.string(),value:zod.z.string(),gas:zod.z.string(),gasPrice:zod.z.string(),isError:zod.z.string(),txreceipt_status:zod.z.string(),input:zod.z.string(),contractAddress:zod.z.string(),cumulativeGasUsed:zod.z.string(),gasUsed:zod.z.string(),confirmations:zod.z.string()}),Wa=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),nonce:zod.z.string(),blockHash:zod.z.string(),from:zod.z.string(),contractAddress:zod.z.string(),to:zod.z.string(),value:zod.z.string(),tokenName:zod.z.string(),tokenSymbol:zod.z.string(),tokenDecimal:zod.z.string(),transactionIndex:zod.z.string(),gas:zod.z.string(),gasPrice:zod.z.string(),gasUsed:zod.z.string(),cumulativeGasUsed:zod.z.string(),input:zod.z.string(),confirmations:zod.z.string()}),ja=zod.z.object({blockNumber:zod.z.string(),timeStamp:zod.z.string(),hash:zod.z.string(),from:zod.z.string(),to:zod.z.string(),value:zod.z.string(),contractAddress:zod.z.string(),input:zod.z.string(),type:zod.z.string(),gas:zod.z.string(),gasUsed:zod.z.string(),traceId:zod.z.string(),isError:zod.z.string(),errCode:zod.z.string()});var Li=chunkVYIKXRYZ_cjs.a(e=>{if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error("HyperEvmEtherscanClient requires a fetch implementation")},"resolveFetch"),mt,dt,He,zt,Mr=class Mr{constructor({proxyApiUrl:t,fetch:r}){chunkVYIKXRYZ_cjs.d(this,He);chunkVYIKXRYZ_cjs.d(this,mt,void 0);chunkVYIKXRYZ_cjs.d(this,dt,void 0);chunkVYIKXRYZ_cjs.e(this,mt,`${t}/proxy/etherscan/hyperevm/api`),chunkVYIKXRYZ_cjs.e(this,dt,Li(r));}listNormalTransactions(t,r){return chunkVYIKXRYZ_cjs.f(this,He,zt).call(this,"txlist",t,Ha,r)}listErc20Transfers(t,r){return chunkVYIKXRYZ_cjs.f(this,He,zt).call(this,"tokentx",t,Wa,r)}listInternalTransactions(t,r){return chunkVYIKXRYZ_cjs.f(this,He,zt).call(this,"txlistinternal",t,ja,r)}};mt=new WeakMap,dt=new WeakMap,He=new WeakSet,zt=chunkVYIKXRYZ_cjs.a(async function(t,r,n,a){let i=new URLSearchParams({module:"account",action:t,address:r,page:(a?.page??1).toString(),offset:(a?.offset??25).toString(),sort:"desc"}),s=await chunkVYIKXRYZ_cjs.c(this,dt).call(this,`${chunkVYIKXRYZ_cjs.c(this,mt)}?${i.toString()}`);if(!s.ok)throw new Error(`HyperEVM explorer request failed: ${s.status} ${s.statusText}`);let c=await s.json(),l=zod.z.object({status:zod.z.string(),message:zod.z.string(),result:zod.z.union([zod.z.array(n),zod.z.string()])}).parse(c);if(Array.isArray(l.result))return l.result;if(l.status==="0"&&l.message==="No transactions found")return [];throw new Error(l.result)},"#list"),chunkVYIKXRYZ_cjs.a(Mr,"HyperEvmEtherscanClient");var Yt=Mr;var We,ut,le,K,ke,H,gt,Vr=class Vr{constructor({approvalController:t,environment:r,appInfo:n,runtime:a}){chunkVYIKXRYZ_cjs.d(this,We,void 0);chunkVYIKXRYZ_cjs.d(this,ut,void 0);chunkVYIKXRYZ_cjs.d(this,le,void 0);chunkVYIKXRYZ_cjs.d(this,K,void 0);chunkVYIKXRYZ_cjs.d(this,ke,void 0);chunkVYIKXRYZ_cjs.d(this,H,void 0);chunkVYIKXRYZ_cjs.d(this,gt,void 0);let{glacierApiUrl:i,proxyApiUrl:s}=Jr(r);chunkVYIKXRYZ_cjs.e(this,H,a),chunkVYIKXRYZ_cjs.e(this,We,new qt({glacierApiUrl:i,headers:nr(n),getAuthHeaders:async()=>chunkVYIKXRYZ_cjs.c(this,H)?.getAuthHeaders?.()})),chunkVYIKXRYZ_cjs.e(this,ut,new Wt({proxyApiUrl:s,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})),chunkVYIKXRYZ_cjs.e(this,le,s),chunkVYIKXRYZ_cjs.e(this,gt,new Yt({proxyApiUrl:s,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})),chunkVYIKXRYZ_cjs.e(this,K,t),chunkVYIKXRYZ_cjs.e(this,ke,new $i__default.default({baseURL:s+"/proxy/blockaid/",apiKey:Yr,httpAgent:a?.httpAgent,fetch:a?.fetch}));}updateRuntimeParams(t){chunkVYIKXRYZ_cjs.e(this,H,{...chunkVYIKXRYZ_cjs.c(this,H),...t,features:{...chunkVYIKXRYZ_cjs.c(this,H)?.features,...t.features}});}getProvider(t){return M({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 ma({accountIndex:t,xpub:r,walletType:n})}buildDerivationPath(t){return Ie(t)}deriveAddress(t){return on({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,K)})}deriveAddresses(t){return cn({...t,approvalController:chunkVYIKXRYZ_cjs.c(this,K)})}getBalances({addresses:t,network:r,currency:n,customTokens:a,storage:i,tokenTypes:s,customTokensOnly:c}){let l=new ae({storage:i,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch});return fa({addresses:t,currency:n,network:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),customTokens:a,customTokensOnly:c,balanceServices:[chunkVYIKXRYZ_cjs.c(this,We),chunkVYIKXRYZ_cjs.c(this,ut)],storage:i,tokenTypes:s,tokenService:l,fetch:chunkVYIKXRYZ_cjs.c(this,H)?.fetch})}getManifest(){let t=vmModuleTypes.parseManifest(zr);return t.success?t.data:void 0}getNetworkFee(t){let{chainId:r,chainName:n,rpcUrl:a,utilityAddresses:i,caipId:s,customRpcHeaders:c}=t;return ba({chainId:r,chainName:n,rpcUrl:a,multiContractAddress:i?.multicall,caipId:s,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le),customRpcHeaders:c})}getTransactionHistory(t){let{network:r,address:n,nextPageToken:a,offset:i}=t,{chainId:s,networkToken:c,explorerUrl:l=""}=r;return Ma({chainId:s,networkToken:c,explorerUrl:l,address:n,nextPageToken:a,offset:i,glacierService:chunkVYIKXRYZ_cjs.c(this,We),hyperEvmEtherscanClient:chunkVYIKXRYZ_cjs.c(this,gt)})}getTokens(t){let{chainId:r}=t;return Ut({chainId:r,proxyApiUrl:chunkVYIKXRYZ_cjs.c(this,le)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION:return $n({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke),eercEnabled:chunkVYIKXRYZ_cjs.c(this,H)?.features?.encryptedERCs===!0});case vmModuleTypes.RpcMethod.ETH_SEND_TRANSACTION_BATCH:return bn(chunkVYIKXRYZ_cjs.c(this,K))?Fn({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke)}):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} requires BatchApprovalController`)};case vmModuleTypes.RpcMethod.AVALANCHE_DECLARE_AGENT_IDENTITY:return an({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 ca({request:t,network:r,approvalController:chunkVYIKXRYZ_cjs.c(this,K),blockaid:chunkVYIKXRYZ_cjs.c(this,ke)});default:return Oi(t.method)?la(t,r):{error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}};We=new WeakMap,ut=new WeakMap,le=new WeakMap,K=new WeakMap,ke=new WeakMap,H=new WeakMap,gt=new WeakMap,chunkVYIKXRYZ_cjs.a(Vr,"EvmModule");var za=Vr,Oi=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 = J;
46
- exports.EercOperation = cn;
47
- exports.EvmModule = Da;
48
- exports.NonContractCallTypes = nn;
49
- exports.TransactionKind = or;
50
- exports.addIdToPromise = Be;
51
- exports.isTypedData = wd;
52
- exports.isTypedDataV1 = qn;
53
- exports.parseEercTransaction = ln;
54
- exports.settleAllIdPromises = Ue;
45
+ exports.ERC20TransactionType = X;
46
+ exports.EercOperation = yn;
47
+ exports.EvmModule = za;
48
+ exports.NonContractCallTypes = dn;
49
+ exports.TransactionKind = pr;
50
+ exports.addIdToPromise = Ue;
51
+ exports.isTypedData = hr;
52
+ exports.isTypedDataV1 = yr;
53
+ exports.parseEercTransaction = hn;
54
+ exports.settleAllIdPromises = Fe;
55
55
  //# sourceMappingURL=out.js.map
56
56
  //# sourceMappingURL=index.cjs.map