@avalabs/avalanche-module 4.0.3 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import Aa from 'crypto';
|
|
|
12
12
|
|
|
13
13
|
var Wt=Object.defineProperty;var cn=(e,t,r)=>t in e?Wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t)=>Wt(e,"name",{value:t,configurable:!0});var $=(e,t,r)=>(cn(e,typeof t!="symbol"?t+"":t,r),r),Ye=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var y=(e,t,r)=>(Ye(e,t,"read from private field"),r?r.call(e):t.get(e)),k=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r);},C=(e,t,r,n)=>(Ye(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var Qe=(e,t,r)=>(Ye(e,t,"access private method"),r);function Kt(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}a(Kt,"charsum");function Ze(e){let t,r=0;for(t=0;t<e.length;t++){let n=Kt(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}a(Ze,"arrayHash");var j=a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=_.exponential()})=>{let o=0,s=0,c;for(;s<r;){s>0&&await ln(o);try{let l=await e(s);if(t(l))return l}catch(l){c=l;}o=n(s),s++;}let i=c?`Max retry exceeded. ${c}`:"Max retry exceeded.";throw new Error(i)},"retry"),et=class et{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 o=n-t+1,s=t*r,c=2*r*(Math.pow(2,o)-1);return s+c}}};a(et,"RetryBackoffPolicy");var _=et;function ln(e){return new Promise(t=>setTimeout(t,e))}a(ln,"delay");var tt=a(e=>j({operation:t=>e(t>0),maxRetries:2,backoffPolicy:_.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function W(e,t,r=fetch){let n=await r(...e);if(!n.ok)throw new Error(`Request failed with status ${n.status}`);let o=await n.json();return t.parse(o)}a(W,"fetchAndVerify");var rt=class rt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return W([`${this.proxyApiUrl}/proxy/coingecko/simple/price?${r}`,{method:"POST",headers:{"Content-Type":"application/json"}}],RawSimplePriceResponseSchema,this.fetchFn)}simplePriceByContractAddresses(t){let{id:r,...n}=t,o=new URLSearchParams(n);return W([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${o}`,{method:"POST",headers:{"Content-Type":"application/json"}}],RawSimplePriceResponseSchema,this.fetchFn)}};a(rt,"CoingeckoProxyClient");var Ie=rt;var dn=z$1.array(z$1.object({internalId:z$1.string(),id:z$1.string(),symbol:z$1.string(),name:z$1.string(),image:z$1.string().optional().nullable(),current_price:z$1.number().optional().nullable(),price_change_percentage_24h:z$1.number().optional().nullable(),market_cap:z$1.number().optional().nullable(),total_volume:z$1.number().optional().nullable(),platforms:z$1.record(z$1.string(),z$1.string())})),nt=class nt{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return W([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],dn)}};a(nt,"WatchlistProxyClient");var Be=nt;var O,K,J,ae,at=class at{constructor({storage:t,proxyApiUrl:r,fetch:n}){k(this,O,void 0);k(this,K,void 0);k(this,J,void 0);k(this,ae,void 0);$(this,"transformSimplePriceResponse",a((t,r=[VsCurrencyType.USD])=>{let n={};return Object.keys(t).forEach(o=>{let s=t[o];n[o]={},r.forEach(c=>{n[o]={[c]:{price:s?.[c],change24:s?.[`${c}_24h_change`],vol24:s?.[`${c}_24h_vol`],marketCap:s?.[`${c}_market_cap`]}};});}),n},"transformSimplePriceResponse"));C(this,O,t),C(this,K,r),C(this,J,n??globalThis.fetch),C(this,ae,getBasicCoingeckoHttp(void 0,y(this,J)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=VsCurrencyType.USD}){let n=(await new Be(y(this,K)).watchlistToken({tokens:t.symbol,currency:r})).filter(s=>t.isNative?s.internalId===`NATIVE-${t.symbol.toLowerCase()}`:s.platforms[t.caip2Id]===t.address),[o]=n;return o?{priceInCurrency:o.current_price??0,change24:o.price_change_percentage_24h??0,marketCap:o.market_cap??0,vol24:o.total_volume??0}:{priceInCurrency:0,change24:0,marketCap:0,vol24:0}}async getSimplePrice({coinIds:t=[],currencies:r=[VsCurrencyType.USD]}){let n,s=`getSimplePrice-${t?`${Ze(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=y(this,O)?.get?.(s),n)return n;try{n=await tt(c=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:c}));}catch{n=void 0;}return y(this,O)?.set?.(s,n),n}async getPricesByAddresses(t,r,n=VsCurrencyType.USD){let o,c=`getPricesWithMarketDataByAddresses-${`${Ze(t)}-${r}-${n}`}`;if(o=y(this,O)?.get?.(c),o)return o;try{o=await tt(i=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:i}));}catch(i){console.error(i),o=void 0;}return y(this,O)?.set?.(c,o),o}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=VsCurrencyType.USD,useCoingeckoProxy:o=!1}){if(o){let s=await new Ie(y(this,K),y(this,J)).simplePriceByContractAddresses({id:t,contract_addresses:r,vs_currencies:[n],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0});return this.transformSimplePriceResponse(s,[n])}return simpleTokenPrice(y(this,ae),{assetPlatformId:t,tokenAddresses:r,currencies:[n],marketCap:!0,vol24:!0,change24:!0})}async simplePrice({coinIds:t=[],currencies:r=[VsCurrencyType.USD],marketCap:n=!1,vol24:o=!1,change24:s=!1,lastUpdated:c=!1,useCoingeckoProxy:i=!1,shouldThrow:l=!0}){if(i){let d=await new Ie(y(this,K),y(this,J)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:o,include_24hr_change:s,include_last_updated_at:c});return this.transformSimplePriceResponse(d,r)}return simplePrice(y(this,ae),{coinIds:t,currencies:r,marketCap:n,vol24:o,change24:s,lastUpdated:c,shouldThrow:l})}};O=new WeakMap,K=new WeakMap,J=new WeakMap,ae=new WeakMap,a(at,"TokenService");var ke=at;object({date:string(),usd:record(number())});var h=a((e,t,r,n)=>({label:e,type:DetailItemType.CURRENCY,value:t,maxDecimals:r,symbol:n}),"currencyItem"),x=a((e,t,r="horizontal")=>({label:e,alignment:r,type:DetailItemType.TEXT,value:t}),"textItem");var b=a((e,t)=>({label:e,type:DetailItemType.ADDRESS,value:t}),"addressItem"),zt=a((e,t)=>({label:e,type:DetailItemType.ADDRESS_LIST,value:t}),"addressListItem"),I=a((e,t)=>({label:e,type:DetailItemType.NODE_ID,value:t}),"nodeIDItem"),ot=a((e,t)=>({label:e,type:DetailItemType.DATA,value:t}),"dataItem"),E=a((e,t)=>({label:e,type:DetailItemType.DATE,value:t}),"dateItem"),oe=a((e,t)=>({label:e,type:DetailItemType.NETWORK,value:t}),"networkItem");var z=a(({name:e,version:t})=>{switch(e){case AppName.CORE_MOBILE_IOS:case AppName.CORE_MOBILE_ANDROID:case AppName.CORE_WEB:case AppName.CORE_EXTENSION:case AppName.EXPLORER:return {"x-application-name":e,"x-application-version":t};case AppName.OTHER:return}},"getCoreHeaders");var Yt=process.env.GLACIER_API_KEY;var Me=a(()=>Yt,"getGlacierApiKey");var Tn={rltoken:Me()},Y,Le,Ue,Zt,_e,er,st=class st extends FetchHttpRequest{constructor(r){super(r);k(this,Ue);k(this,_e);k(this,Y,0);k(this,Le,_.exponential());}request(r){let n={...Tn,...r.query||{}},o={...r,query:Object.keys(n).length>0?n:void 0},s=a(()=>super.request(o),"getRequest");return y(this,Y)>0?Qe(this,_e,er).call(this,s):Qe(this,Ue,Zt).call(this,s)}};Y=new WeakMap,Le=new WeakMap,Ue=new WeakSet,Zt=a(function(r){let n=r();return new CancelablePromise((o,s,c)=>{c(()=>n.cancel()),n.then(i=>{C(this,Y,0),o(i);}).catch(i=>{if(i instanceof ApiError){let l=i.status===429,d=i.status>=500&&i.status<600;C(this,Y,y(this,Y)+Number(l||d));}s(i);});})},"#request"),_e=new WeakSet,er=a(function(r){let n=y(this,Le).call(this,y(this,Y));return new CancelablePromise((o,s,c)=>{let i=setTimeout(()=>{let l=r();c(()=>{l.cancel(),clearTimeout(i);}),l.then(o).catch(s);},n);})},"#postponeRequest"),a(st,"GlacierFetchHttpRequest");var De=st;var Q=a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var tr={name:"Avalanche",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/index.js",packageName:"@avalabs/avalanche-module",registry:"https://registry.npmjs.org"}}}},network:{chainIds:["avax:8aDU0Kqh-5d23op-B-r-4YbQFRbsgF9a","avax:YRLfeDBJpfEqUWe2FYR1OpXsnDDZeKWd","avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo","avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG","avax:imji8papUf2EhV3le337w1vgFauqkJg-","avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl","avax:N5PeRoKwDDREF0awn2GPsb9sHnGRzdEX"],namespaces:["avax"]},cointype:"9000",permissions:{rpc:{dapps:!0,methods:["avalanche_sendTransaction","avalanche_signTransaction","avalanche_signMessage"],nonRestrictedMethods:[]}},manifestVersion:"0.1"};var In={glacierApiUrl:"https://core-proxy-api.avax.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api.avax.network"},kn={glacierApiUrl:"https://core-proxy-api.avax-test.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api-dev.avax.network"},nr=a(e=>{switch(e){case Environment.PRODUCTION:return In;case Environment.DEV:return kn}},"getEnv");var Dn=z$1.object({transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"]),externalIndices:z$1.number().array().optional(),internalIndices:z$1.number().array().optional(),utxos:z$1.string().array().optional()}),ar=a(e=>Dn.safeParse(e),"parseRequestParams");var D=a(async e=>{let{isTestnet:t,isDevnet:r,rpcUrl:n,customRpcHeaders:o}=e,s=o?{headers:o}:void 0;return r?Avalanche.JsonRpcProvider.fromBaseURL(n):t?Avalanche.JsonRpcProvider.getDefaultFujiProvider(s):Avalanche.JsonRpcProvider.getDefaultMainnetProvider(s)},"getProvider");var sr=a(({utxoHexes:e=[],vm:t})=>{try{let r=utils.getManagerForVM(t).getDefaultCodec();return e.map(n=>{let o=utils.hexToBuffer(n);return Utxo.fromBytes(o,r)[0]})}catch(r){return console.error("Error getting provided utxos",r),[]}},"getProvidedUtxos");var Oe=a(async({utxoHexes:e,vm:t,getIndexedUtxos:r})=>{let n=sr({utxoHexes:e,vm:t});if(!n.length)return r();let o=[];try{o=await r();}catch(i){return console.error("Unable to fetch UTXOs from the indexer, falling back to the provided ones",i),n}let s=a(i=>`${i.utxoId.txID.toString()}:${i.utxoId.outputIdx.value()}`,"utxoKey"),c=new Set(o.map(s));return [...o,...n.filter(i=>!c.has(s(i)))]},"resolveUtxos");var cr={[NetworkVMType.AVM]:"X",[NetworkVMType.PVM]:"P",[NetworkVMType.EVM]:"C"},Cn=a(e=>typeof e?.output?.getOwners=="function","hasOwners"),bn=a(e=>typeof e?.address?.toHex=="function","isEvmOutput"),lr=a((e,t,r)=>{let n=e.flatMap(o=>bn(o)?[o.address.toHex()]:Cn(o)?(o.output.getOwners?.()??[]).map(s=>utils.format(t,r,s)):[]);return [...new Set(n)]},"formatOwners"),wn=a(({tx:e,destination:t,isTestnet:r})=>{let n=e,o=n.exportedOutputs??n.outs;return Array.isArray(o)?lr(o,cr[t],networkIDs.getHRP(r?networkIDs.FujiID:networkIDs.MainnetID)):[]},"getExportRecipients"),Rn=a(({tx:e,chain:t,isTestnet:r})=>{let n=e,o=n.Outs??n.baseTx?.outputs;return Array.isArray(o)?lr(o,cr[t],networkIDs.getHRP(r?networkIDs.FujiID:networkIDs.MainnetID)):[]},"getImportRecipients"),Fe=a((e,t,r)=>{if(t.type===TxType.Export&&t.destination)return wn({tx:e,destination:t.destination,isTestnet:r});if(t.type===TxType.Import&&t.chain)return Rn({tx:e,chain:t.chain,isTestnet:r})},"getCrossChainRecipients");var He=a(e=>{switch(e.type){case TxType.AddPermissionlessDelegator:return {...e,type:TxType.AddPermissionlessDelegator};case TxType.AddPermissionlessValidator:return {...e,type:TxType.AddPermissionlessValidator};case TxType.AddSubnetValidator:return {...e,type:TxType.AddSubnetValidator};case TxType.CreateChain:return {...e,type:TxType.CreateChain};case TxType.CreateSubnet:return {...e,type:TxType.CreateSubnet};case TxType.RemoveSubnetValidator:return {...e,type:TxType.RemoveSubnetValidator};case TxType.AddAutoRenewedValidator:return {...e,type:TxType.AddAutoRenewedValidator};case TxType.SetAutoRenewedValidatorConfig:return {...e,type:TxType.SetAutoRenewedValidatorConfig};case TxType.ConvertSubnetToL1:return {...e,type:TxType.ConvertSubnetToL1,chain:e.chain};case TxType.SetL1ValidatorWeight:return {...e,type:TxType.SetL1ValidatorWeight,chain:e.chain};case TxType.DisableL1Validator:return {...e,type:TxType.DisableL1Validator,chain:e.chain};case TxType.IncreaseL1ValidatorBalance:return {...e,type:TxType.IncreaseL1ValidatorBalance,chain:e.chain};case TxType.RegisterL1Validator:return {...e,type:TxType.RegisterL1Validator,chain:e.chain};case TxType.Export:return {...e,type:TxType.Export,chain:e.chain,destination:e.destination};case TxType.Import:return {...e,type:TxType.Import,chain:e.chain,source:e.source};case TxType.Base:return {...e,type:TxType.Base,chain:e.chain};default:return}},"parseTxDetails");var dr=a(e=>{switch(e.type){case TxType.AddPermissionlessDelegator:return "Do you want to add this delegator?";case TxType.AddPermissionlessValidator:return "Do you want to add this validator?";case TxType.Export:return "Do you approve this export?";case TxType.Import:return "Do you approve this import?";case TxType.Base:return "Do you approve this transaction?";case TxType.AddSubnetValidator:return "Do you want to add this subnet validator?";case TxType.CreateChain:return "Do you want to create this chain?";case TxType.CreateSubnet:return "Do you want to create this L1?";case TxType.RemoveSubnetValidator:return "Do you want to remove this subnet validator?";case TxType.ConvertSubnetToL1:return "Do you want to convert this subnet?";case TxType.DisableL1Validator:return "Do you want to disable this validator?";case TxType.IncreaseL1ValidatorBalance:return "Do you want to increase this validator balance?";case TxType.RegisterL1Validator:return "Do you want to register this validator?";case TxType.SetL1ValidatorWeight:return "Do you want to set this validator weight?";case TxType.AddAutoRenewedValidator:return "Do you want to add this auto-renewed validator?";case TxType.SetAutoRenewedValidatorConfig:return "Do you want to update this auto-renewed validator config?";default:return "Sign Message"}},"parseTxDisplayTitle");var lt=a(async({indices:e,chainAlias:t,isChange:r,network:n,xpubXP:o,externalXPAddresses:s})=>{if(o){let c=await D(n);return e.map(i=>Avalanche.getAddressFromXpub(o,i,c,t,r))}return s&&Array.isArray(s)?e.map(i=>s.find(l=>l.index===i)).filter(i=>i!==void 0).map(i=>i.address):[]},"getAddressesByIndices");var dt=a(e=>e.type===TxType.AddPermissionlessDelegator,"isAddPermissionlessDelegatorTx"),pt=a(e=>e.type===TxType.AddPermissionlessValidator,"isAddPermissionlessValidatorTx"),mt=a(e=>e.type===TxType.Export,"isExportTx"),ut=a(e=>e.type===TxType.Import,"isImportTx"),Vn=a(e=>e.type===TxType.Base,"isBaseTx"),ht=a(e=>e.type===TxType.AddSubnetValidator,"isAddSubnetValidatorTx"),En=a(e=>e.type===TxType.CreateChain,"isCreateChainTx"),Bn=a(e=>e.type===TxType.CreateSubnet,"isCreateSubnetTx"),gt=a(e=>e.type===TxType.RemoveSubnetValidator,"isRemoveSubnetValidatorTx"),pr=a(e=>e.type===TxType.ConvertSubnetToL1,"isConvertSubnetToL1Tx"),mr=a(e=>e.type===TxType.DisableL1Validator,"isDisableL1ValidatorTx"),ur=a(e=>e.type===TxType.IncreaseL1ValidatorBalance,"isIncreaseL1ValidatorBalanceTx"),hr=a(e=>e.type===TxType.RegisterL1Validator,"isRegisterL1ValidatorTx"),gr=a(e=>e.type===TxType.SetL1ValidatorWeight,"isSetL1ValidatorWeightTx"),ft=a(e=>e.type===TxType.AddAutoRenewedValidator,"isAddAutoRenewedValidatorTx"),yt=a(e=>e.type===TxType.SetAutoRenewedValidatorConfig,"isSetAutoRenewedValidatorConfigTx"),ys=a(e=>dt(e)||pt(e)||ht(e)||gt(e)||ft(e)||yt(e),"isStakingDetails"),xs=a(e=>mt(e)||ut(e),"isExportImportTxDetails"),fr=a(e=>Vn(e),"isChainDetails"),yr=a(e=>En(e),"isBlockchainDetails"),xr=a(e=>Bn(e),"isSubnetDetails");var B=(n=>(n.AVM="X-Chain",n.PVM="P-Chain",n.EVM="C-Chain",n))(B||{});var xt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:c,subnetID:i,start:l,end:d,stake:m}=e,u={items:[b("Account",n),oe("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(u);let p=[I("Node",c),I("Subnet ID",i),h("Stake Amount",m,9,t),E("Start",l),E("End",d)];return o.push({title:"Staking Details",items:p}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessDelegatorDetailSection");var At=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:c,subnetID:i,delegationFee:l,start:d,end:m,stake:u}=e,p={items:[b("Account",n),oe("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(p);let f=[I("Node",c),I("Subnet ID",i)];return f.push(h("Stake Amount",u,9,t),x("Delegation Fee",`${l/1e4} %`),E("Start",d),E("End",m)),o.push({title:"Staking Details",items:f}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessValidatorDetailSection");var Tt=a((e,t)=>{let r=[],{txFee:n,nodeID:o,start:s,end:c,subnetID:i}=e,l=[I("Subnet ID",i),I("Node ID",o),E("Start Date",s),E("End Date",c)];return r.push({title:"Staking Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"addSubnetValidatorDetailSection");var vt=a((e,t)=>{let r=[],{txFee:n,chainID:o,managerAddress:s,subnetID:c,validators:i}=e,l=[I("Subnet ID",c),I("Chain ID",o),b("Manager Address",s)];return r.push({title:"L1 Details",items:l}),i.forEach(({balance:d,stake:m,nodeId:u,remainingBalanceOwners:p,deactivationOwners:f},T)=>{let v=[I("Node ID",u),h("Balance",d,9,t),h("Stake",m,9,t)];f.length>0&&v.push(x(`${f.length>1?"Owners":"Owner"} Able to Deactivate`,f.join(`
|
|
14
14
|
`),"vertical")),p.length>0&&v.push(x(`${p.length>1?"Owners":"Owner"} of the Remaining Balance`,p.join(`
|
|
15
|
-
`),"vertical")),r.push({title:T===0?"Validators":void 0,items:v});}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"convertSubnetToL1DetailSection");var It=a((e,t,r=[])=>{let n=[],{txFee:o,amount:s,chain:c,destination:i,type:l}=e;return n.push({items:[x("Source Chain",`Avalanche ${B[c]}`),x("Target Chain",`Avalanche ${B[i]}`)]}),n.push({items:[x("Transaction Type",l?(l[0]||"").toUpperCase()+l.slice(1):""),h("Amount",s,9,t),...r.map(d=>b("To",d))]}),o&&n.push({title:"Network Fee",items:[h("Fee Amount",o,9,t)]}),n},"exportDetailSection");var kt=a((e,t,r=[])=>{let n=[],{txFee:o,amount:s,chain:c,source:i,type:l}=e;return n.push({items:[x("Source Chain",`Avalanche ${B[i]}`),x("Destination Chain",`Avalanche ${B[c]}`)]}),n.push({items:[x("Transaction Type",l?(l[0]||"").toUpperCase()+l.slice(1):""),h("Amount",s,9,t),...r.map(d=>b("To",d))]}),o&&n.push({title:"Network Fee",items:[h("Fee Amount",o,9,t)]}),n},"importDetailSection");var Dt=a((e,t)=>{let r=[],{txFee:n,nodeID:o,subnetID:s}=e,c=[I("Node ID",o),I("Subnet ID",s)];return r.push({title:"Staking Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"removeSubnetValidatorDetailSection");var Ln=a((e,t)=>e.isAvax?[h("Amount",e.amount,9,t)]:e.assetDescription?[h("Amount",e.amount,e.assetDescription.denomination,e.assetDescription.symbol),x("Asset",e.assetDescription.name)]:[x("Amount",`${e.amount} (smallest unit)`),x("Asset",e.assetId,"vertical")],"amountItems"),St=a((e,t)=>{let r=[],{txFee:n,chain:o,outputs:s,memo:c}=e;return r.push({title:"Chain Details",items:[x("Active chain",`Avalanche ${B[o]}`)]}),s.forEach((i,l)=>{let d=i.owners.flatMap(u=>[b("To",u),...Ln(i,t)]);i.owners.length>1&&d.push(x("Threshold",i.threshold.toString()));let m=Number(i.locktime)*1e3;m>Date.now()&&d.push(x("Locked until",new Date(m).toUTCString())),r.push({title:l===0?"Balance Change":void 0,items:d});}),o!==PVM&&c&&r.push({title:"Memo",items:[c]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"chainDetailSection");var Pt=a((e,t)=>{let r=[],{txFee:n,threshold:o,controlKeys:s}=e;return r.push({title:"L1 Details",items:[zt(s.length>1?"Owners":"Owner",s),x("Signature Threshold",`${o}/${s.length}`,"horizontal")]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"subnetDetailSection");var Un=a(e=>{try{let t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return console.error("Failed to format genesis data:",t),e}},"formatGenesisData"),Ct=a((e,t)=>{let r=[],{txFee:n,chainID:o,chainName:s,vmID:c,genesisData:i}=e,l=[x("Blockchain name",s,"vertical"),x("Blockchain ID",o,"vertical"),x("Virtual Machine ID",c,"vertical"),ot("Genesis Data",Un(i))];return r.push({title:"Blockchain Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"blockChainDetailSection");var bt=a((e,t)=>{let r=[],{txFee:n,validationId:o}=e,s=[I("Validation ID",o)];return r.push({title:"L1 Details",items:s}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"disableL1ValidatorDetailSection");var wt=a((e,t)=>{let r=[],{txFee:n,balance:o,validationId:s}=e,c=[I("Validation ID",s),h("Increase by amount",o,9,t)];return r.push({title:"L1 Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"increaseL1ValidatorBalanceDetailSection");var Rt=a((e,t)=>{let r=[],{txFee:n,balance:o}=e,s=[h("Initial balance",o,9,t)];return r.push({title:"L1 Details",items:s}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"registerL1ValidatorDetailSection");var Nt=a((e,t)=>{let r=[],{txFee:n}=e;return n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setL1ValidatorWeightDetailSection");var _n=60*60*24,Ar=1e4,Vt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:c,stake:i,delegationFee:l,autoCompoundRewardShares:d,period:m}=e,u={items:[b("Account",n),oe("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(u);let p=[I("Node",c),h("Stake Amount",i,9,t),x("Delegation fee",`${l/Ar} %`),x("Cycle duration",`${Number(m)/_n} days`),x("Compound rewards percentage",`${d/Ar} %`)];return o.push({title:"Staking Details",items:p}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addAutoRenewedValidatorDetailSection");var On=60*60*24,Fn=1e4,Et=a((e,t)=>{let r=[],{txFee:n,txId:o,autoCompoundRewardShares:s,period:c}=e,i=[I("Validator Tx ID",o),x("Cycle duration",`${Number(c)/On} days`),x("Compound rewards percentage",`${s/Fn} %`)];return r.push({title:"Staking Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setAutoRenewedValidatorConfigDetailSection");var Xe=a((e,t,r)=>{if(fr(e))return St(e,t);if(mt(e))return It(e,t,r?.recipients);if(ut(e))return kt(e,t,r?.recipients);if(xr(e))return Pt(e,t);if(dt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessDelegator");return xt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(pt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessValidator");return At({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else {if(yr(e))return Ct(e,t);if(ht(e))return Tt(e,t);if(gt(e))return Dt(e,t);if(pr(e))return vt(e,t);if(mr(e))return bt(e,t);if(ur(e))return wt(e,t);if(hr(e))return Rt(e,t);if(gr(e))return Nt(e,t);if(ft(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddAutoRenewedValidator");return Vt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(yt(e))return Et(e,t)}},"getTransactionDetailSections");var Ir=a(e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,"isPChainTransactions"),kr=a(e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN,"isXChainTransactions");function le(e,t,r="tx"){return `${e}/${r}/${t}`}a(le,"getExplorerAddressByNetwork");function Z({amount:e,decimals:t}){return e===void 0?new X(0):new X(e/10**t)}a(Z,"getTokenValue");var Hn=z$1.object({currentAddress:z$1.string({required_error:"No active account found"}),currentEvmAddress:z$1.string().optional(),xpubXP:z$1.string({invalid_type_error:"xpubXP must be a string"}).optional()}),Xn=z$1.object({account:z$1.object({xpAddress:z$1.string({required_error:"XP address is required",invalid_type_error:"XP address must be a string"}),evmAddress:z$1.string().optional(),xpubXP:z$1.string({invalid_type_error:"xpubXP must be a string"}).optional(),externalXPAddresses:z$1.array(z$1.object({index:z$1.number(),address:z$1.string()}))})}),Gn=a(e=>({xpAddress:e.currentAddress,evmAddress:e.currentEvmAddress,xpubXP:e.xpubXP,externalXPAddresses:[]}),"getAccountFromLegacyContext"),qn=a(e=>e.account,"getAccountFromNewContext"),$n=a(e=>e!=null&&typeof e=="object"&&"account"in e&&e.account!=null&&typeof e.account=="object","hasAccountField"),Ge=a(e=>{if(!e)return {success:!1,error:"Missing Avalanche transaction context"};if($n(e)){let{success:o,data:s,error:c}=Xn.safeParse(e);return o?{success:!0,data:qn(s)}:{success:!1,error:c.errors[0]?.message||"Invalid or missing Avalanche transaction context"}}let{success:t,data:r,error:n}=Hn.safeParse(e);return t?{success:!0,data:Gn(r)}:{success:!1,error:n.errors[0]?.message||"Invalid or missing Avalanche transaction context"}},"getAccountFromContext");var Sr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let c=ar(e.params);if(!c.success)return {error:rpcErrors.invalidParams(Q("Transaction params are invalid",c.error))};try{let{transactionHex:i,chainAlias:l,externalIndices:d,internalIndices:m,utxos:u}=c.data,p=Avalanche.getVmByChainAlias(l),f=utils.hexToBuffer(i),T=t.isTestnet??!1,v=await D(t),N=Ge(e.context);if(!N.success)return {error:rpcErrors.invalidParams(N.error)};let{xpAddress:L,xpubXP:w,externalXPAddresses:ge}=N.data,re=await Oe({utxoHexes:u,vm:p,getIndexedUtxos:async()=>Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:l,network:T?Network.FUJI:Network.MAINNET,url:n,headers:{...z(o),...await s?.()}})}),q;if(l==="C")q=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:f,vm:p,utxos:re,fromAddress:L});else {let ve=utils.unpackWithManager(p,f);if(w!==void 0&&typeof w!="string")return {error:rpcErrors.invalidParams("xpubXP must be a string")};let ze=await lt({indices:d??[],chainAlias:l,isChange:!1,network:t,xpubXP:w,externalXPAddresses:ge}),an=await lt({indices:m??[],chainAlias:l,isChange:!0,network:t,xpubXP:w,externalXPAddresses:ge}),on=[...new Set([L,...ze,...an])].map(sn=>utils.parse(sn)[2]);q=await Avalanche.createAvalancheUnsignedTx({tx:ve,utxos:re,provider:v,fromAddressBytes:on});}let fe=await Avalanche.parseAvalancheTx(q,v,L),ye=He(fe),xe=dr(fe);if(fe.type==="unknown"||ye===void 0)return {error:rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let Ae={type:RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(q.toJSON()),data:fe,vm:p,externalIndices:d,internalIndices:m},Ve=Xe(ye,t.networkToken.symbol,{network:t,signerAccount:L,recipients:Fe(q.getTx(),ye,T)});if(Ve===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Ee={title:xe,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ve,networkFeeSelector:!1},Te=await r.requestApproval({request:e,displayData:Ee,signingData:Ae});if("error"in Te)return {error:Te.error};let U;try{U=await Jn(v,Te,p);}catch(ve){return {error:rpcErrors.internal(Q("Unable to broadcast transaction",ve))}}return zn({explorerUrl:t.explorerUrl??"",provider:v,txHash:U,vm:p,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:U}}catch(i){return console.error(i),{error:rpcErrors.internal(Q("Unable to create transaction",i))}}},"avalancheSendTransaction"),Jn=a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let{txID:n}=await e.issueTxHex(t.signedData,r);return n},"getTxHash"),zn=a(async({explorerUrl:e,provider:t,txHash:r,vm:n,onTransactionPending:o,onTransactionConfirmed:s,onTransactionReverted:c,request:i})=>{let d=le(e,r);try{o({txHash:r,request:i,explorerLink:d}),n===PVM?(await j({operation:()=>t.getApiP().getTxStatus({txID:r}),isSuccess:u=>["Committed","Dropped"].includes(u.status),maxRetries:7})).status==="Committed"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i}):n===AVM?(await j({operation:()=>t.getApiX().getTxStatus({txID:r}),isSuccess:u=>["Accepted","Rejected"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i}):(await j({operation:()=>t.getApiC().getAtomicTxStatus(r),isSuccess:u=>["Accepted","Dropped"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i});}catch(m){console.error(m),m instanceof Error&&m.message.startsWith("Max retry exceeded.")||c({txHash:r,request:i});}},"waitForTransactionReceipt");var Yn=z$1.union([z$1.tuple([z$1.string()]).describe("message to sign"),z$1.tuple([z$1.string().describe("message to sign"),z$1.number().nonnegative().describe("account index")])]),Pr=a(e=>Yn.safeParse(e),"parseRequestParams");var br=a(async({request:e,network:t,approvalController:r})=>{let n=Pr(e.params);if(!n.success)return console.error("invalid params",n.error),{error:rpcErrors.invalidParams(Q("Params are invalid",n.error))};let[o,s]=n.data,c=Buffer.from(o,"utf-8").toString("hex"),i={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:c,accountIndex:s},l={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},details:[{title:"Message",items:[o]}]},d=await r.requestApproval({request:e,displayData:l,signingData:i});return "error"in d?{error:d.error}:"signedData"in d?{result:d.signedData}:{error:rpcErrors.internal("No signed data returned")}},"avalancheSignMessage");var Zn=z$1.object({from:z$1.string().optional().describe("Avalanche receiving address"),transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"]),utxos:z$1.string().array().optional()}),wr=a(e=>Zn.safeParse(e),"parseRequestParams");var Er=a(async({vm:e,txBytes:t,utxos:r,currentAddress:n,currentEvmAddress:o,provider:s})=>{let c,i,l=utils.unpackWithManager(e,t);if(evmSerial.isExportTx(l)){let d=l.ins[0]?.address.toHex();if(!o)throw rpcErrors.invalidRequest("Missing EVM address");if(d?.toLowerCase()!==o.toLowerCase())throw new Error("This account has nothing to sign");return Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n})}try{let m=utils.getManagerForVM(e).unpack(t,avaxSerial.SignedTx);evmSerial.isImportTx(l)?i=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n}):i=await Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:m.getCredentials(),utxos:r}),c=l.getSigIndices().map((u,p)=>new Credential(Avalanche.populateCredential(u,{unsignedTx:i,credentialIndex:p})));}catch{c=l.getSigIndices().map(m=>new Credential(Avalanche.populateCredential(m)));}return Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:c,utxos:r})},"getUnsignedOrPartiallySignedTx");var Mr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let c=wr(e.params);if(!c.success)return console.error("invalid params",c.error),{error:rpcErrors.invalidParams("Params are invalid")};let{transactionHex:i,chainAlias:l,from:d,utxos:m}=c.data,u=Avalanche.getVmByChainAlias(l),p=t.isTestnet??!1,f=await D(t),T=Ge(e.context);if(!T.success)return {error:rpcErrors.invalidParams(T.error)};let{xpAddress:v,evmAddress:N}=T.data,L=await Oe({utxoHexes:m,vm:u,getIndexedUtxos:async()=>Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:l,network:p?Network.FUJI:Network.MAINNET,url:n,headers:{...z(o),...await s?.()}})}),w=await Er({txBytes:utils.hexToBuffer(i),vm:u,utxos:L,currentAddress:v,currentEvmAddress:N,provider:f}),ge=utils.addressesFromBytes([utils.parse(d??v)[2]])[0];if(!ge)return {error:rpcErrors.invalidRequest("Missing signer address")};let re=w.getSigIndicesForAddress(ge);if(!re)return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let q=w.getSigIndices();if(!re.some(([ve,ze])=>q[ve]?.includes(ze)))return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let ye=d??v,xe=await Avalanche.parseAvalancheTx(w,f,d??v),Ae=He(xe);if(xe.type==="unknown"||Ae===void 0)return {error:rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let Ve={type:RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:xe,vm:u,unsignedTxJson:JSON.stringify(w.toJSON()),ownSignatureIndices:re},Ee=Xe(Ae,t.networkToken.symbol,{network:t,signerAccount:ye,recipients:Fe(w.getTx(),Ae,p)});if(Ee===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Te={title:"Do you approve this transaction?",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} requests you to sign the following transaction`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ee},U=await r.requestApproval({request:e,displayData:Te,signingData:Ve});return "error"in U?{error:U.error}:"signedData"in U?{result:U.signedData}:{error:rpcErrors.invalidRequest("No signed data returned")}},"avalancheSignTransaction");var te=a(({accountIndex:e,derivationPathType:t,addressIndex:r=0})=>{if(e<0)throw rpcErrors.invalidParams("Account index must be a non-negative integer");if(r!==void 0&&r<0)throw rpcErrors.invalidParams("Address index must be a non-negative integer");switch(t){case"bip44":return {[NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[NetworkVMType.CoreEth]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[NetworkVMType.CoreEth]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var _t=a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var Lr=a(async e=>{let{approvalController:t,network:r,secretId:n}=e,o=_t(e)?te(e).AVM:void 0,s=_t(e)?te(e).CoreEth:void 0,c=await D(r),i=await t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:o}).catch(()=>null),l=await t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:s}).catch(()=>null),d=l?{[NetworkVMType.CoreEth]:c.getAddress(Buffer.from(l,"hex"),"C")}:{},m=i?{[NetworkVMType.AVM]:c.getAddress(Buffer.from(i,"hex"),"X"),[NetworkVMType.PVM]:c.getAddress(Buffer.from(i,"hex"),"P")}:{};return {...d,...m}},"deriveAddress");var Ur=a(async e=>{let{approvalController:t,network:r,secretId:n,accountIndices:o,derivationPathType:s,addressIndex:c}=e;if(o.length===0)return [];await init();let i=await Promise.all(o.map(async d=>{let m=te({accountIndex:d,derivationPathType:s,addressIndex:c}),[u,p]=await Promise.all([t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:m.AVM}),t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:m.CoreEth})]);return {xp:Uint8Array.from(Buffer.from(u,"hex")),evm:Uint8Array.from(Buffer.from(p,"hex"))}}));return (await deriveAddressesForAvalanche(i.map(d=>d.xp),i.map(d=>d.evm),!!r.isTestnet)).map(d=>({[NetworkVMType.AVM]:d.x,[NetworkVMType.PVM]:d.p,[NetworkVMType.CoreEth]:d.coreEth}))},"deriveAddresses");var Or=a(async({accountIndex:e,xpubXP:t,walletType:r,network:n})=>{if(!n)throw rpcErrors.invalidParams("network is required to get address");if(t===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let o=await D(n),s;switch(r){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:{s=Avalanche.getAddressPublicKeyFromXpub(t,e);break}case WalletType.LedgerLive:case WalletType.Seedless:{s=Buffer.from(t,"hex");break}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}return {[NetworkVMType.AVM]:o.getAddress(s,"X"),[NetworkVMType.PVM]:o.getAddress(s,"P")}},"getAddress");var Xt=class Xt extends Error{constructor(){super(...arguments);$(this,"message","Glacier is unhealthy. Try again later.");}};a(Xt,"GlacierUnhealthyError");var $e=Xt,Gt=class Gt{constructor({glacierApiUrl:t,headers:r,getAuthHeaders:n}){$(this,"glacierSdk");$(this,"isGlacierHealthy",!0);$(this,"isHealthy",a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new Glacier({BASE:t,HEADERS:n?async()=>({...r,...await n()}):r},De);}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async listLatestPrimaryNetworkTransactions(t){try{return this.glacierSdk.primaryNetworkTransactions.listLatestPrimaryNetworkTransactions(t)}catch(r){throw r instanceof $e&&this.setGlacierToUnhealthy(),r}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(r){throw r instanceof $e&&this.setGlacierToUnhealthy(),r}}};a(Gt,"AvalancheGlacierService");var je=Gt;var qt=a(e=>Object.keys(e).includes("unlockedUnstaked"),"isPchainBalance"),Hr=a(e=>Object.keys(e).includes("locked"),"isXchainBalance"),Fr=a((e,t)=>e?.length?e.reduce((r,n)=>n.assetId!==t?r:r+BigInt(n.amount),0n):0n,"sumAvaxFromAssets");function We(e,t){if(qt(e)){let n=[...e.unlockedUnstaked||[],...e.unlockedStaked||[],...e.pendingStaked||[],...e.lockedStaked||[],...e.lockedStakeable||[],...e.lockedPlatform||[],...e.atomicMemoryLocked||[],...e.atomicMemoryUnlocked||[]],o=Fr(n,t),s=e.restakedRewards?BigInt(e.restakedRewards):0n;return o+s}let r=[...e.unlocked||[],...e.locked||[],...e.atomicMemoryUnlocked||[],...e.atomicMemoryLocked||[]];return Fr(r,t)}a(We,"calculateAvaxTotalBalance");var Gr=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:c,avaxAssetId:i})=>{let l={},d={unlockedUnstaked:e.unlockedUnstaked,unlockedStaked:e.unlockedStaked,pendingStaked:e.pendingStaked,lockedStaked:e.lockedStaked,lockedStakeable:e.lockedStakeable,lockedPlatform:e.lockedPlatform,atomicMemoryLocked:e.atomicMemoryLocked,atomicMemoryUnlocked:e.atomicMemoryUnlocked};for(let T in d){let v=d[T];if(!v||!v.length){l[T]=0n;continue}v.forEach(N=>{if(N.assetId!==i)return;let w=(l[T]??0n)+BigInt(N.amount);l[T]=w;});}let m=new TokenUnit(l.unlockedUnstaked?l.unlockedUnstaked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(We(e,i),t.decimals,t.symbol),f=r?p.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:f,balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:f?.toFixed(2),available:m.toSubUnit(),availableInCurrency:u,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:u?.toFixed(2),utxos:e,balancePerType:{lockedStaked:l.lockedStaked,lockedStakeable:l.lockedStakeable,lockedPlatform:l.lockedPlatform,atomicMemoryLocked:l.atomicMemoryLocked,atomicMemoryUnlocked:l.atomicMemoryUnlocked,unlockedUnstaked:l.unlockedUnstaked,unlockedStaked:l.unlockedStaked,pendingStaked:l.pendingStaked},marketCap:n,vol24:o,change24:s,coingeckoId:c}},"convertPChainBalance");var $r=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:c,avaxAssetId:i})=>{let l={},d={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let T in d){let v=d[T];if(!v||!v.length){l[T]=0n;continue}v.forEach(N=>{if(N.assetId!==i)return;let w=(l[T]??0n)+BigInt(N.amount);l[T]=w;});}let m=new TokenUnit(l.unlocked?l.unlocked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(We(e,i),t.decimals,t.symbol),f=r!==void 0?p.mul(r):void 0;return {...t,coingeckoId:c,type:TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:f?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:f?.toDisplay({fixedDp:2}),available:m.toSubUnit(),availableInCurrency:u,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:u?.toFixed(2),utxos:e,balancePerType:{unlocked:l.unlocked,locked:l.locked,atomicMemoryUnlocked:l.atomicMemoryUnlocked,atomicMemoryLocked:l.atomicMemoryLocked},marketCap:n,vol24:o,change24:s}},"convertXChainBalance");var Kr=a(async({addresses:e,currency:t,network:r,glacierService:n,tokenService:o})=>{let s=await D(r);if(!n.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let i=t.toLowerCase(),l=e[0]??"",d=r.networkToken,m=r.pricingProviders?.coingecko.nativeTokenId,u=r.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,p=r.isDevnet?null:r.isTestnet?Network.FUJI:Network.MAINNET;if(!p)return Promise.reject("Glacier does not supported local devnets");let f=await n.getChainBalance({blockchainId:u,network:p,addresses:e.join(",")}).then(N=>N.balances),T=await o.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:i}),v;return qt(f)?(v=Gr({balance:f,networkToken:d,priceInCurrency:T.priceInCurrency??void 0,marketCap:T.marketCap??void 0,vol24:T.vol24??void 0,change24:T.change24??void 0,coingeckoId:m??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:v}}):Hr(f)?(v=$r({balance:f,networkToken:d,priceInCurrency:T.priceInCurrency??void 0,marketCap:T.marketCap??void 0,vol24:T.vol24??void 0,change24:T.change24??void 0,coingeckoId:m??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:v}}):Promise.reject("Incorrect type balance was returned from glacier")},"getBalances");async function Jr(e){let{vmName:t}=e,r=await D(e);if(t===NetworkVMType.AVM)return {baseFee:BigInt(1e6),low:{maxFeePerGas:BigInt(1e6)},medium:{maxFeePerGas:BigInt(1e6)},high:{maxFeePerGas:BigInt(1e6)},isFixedFee:!0};let{price:n}=await r.getApiP().getFeeState(),o=100/Number(n)/100,s=Math.min(1,Math.max(o,.15)),c=Math.min(1,Math.max(o*2,.3)),i=1+s,l=1+c;return {baseFee:n,low:{maxFeePerGas:n},medium:{maxFeePerGas:n*BigInt(Math.round(100*i))/100n},high:{maxFeePerGas:n*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}a(Jr,"getNetworkFee");function Yr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let c=new Set(e.consumedUtxos.flatMap(p=>p.addresses)||[]),i=new Set(e.emittedUtxos.flatMap(p=>p.addresses)||[]),l=ma({tx:e,isTestnet:s,networkToken:r,froms:c}),d=ua({tx:e,isTestnet:s,networkToken:r}),m=t.toLowerCase().startsWith("p-")?t.slice(2):t,u=c.has(m);return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...c.values()].join(","),to:[...i.values()].join(","),isSender:u,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:TokenType.NATIVE,amount:l.toString()}],gasUsed:d.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(Yr,"convertPChainTransaction");function ma({tx:e,isTestnet:t,networkToken:r,froms:n}){let o=["ImportTx","ExportTx"].includes(e.txType),s=e.txType==="BaseTx",c=e.emittedUtxos.filter(p=>p.asset.assetId===be(!!t)&&!p.addresses.some(f=>n.has(f))).reduce((p,f)=>p.add(f.asset.amount),new X(0)),i=e.value.find(p=>p.assetId===be(!!t))?.amount,l=c.gt(new X(0))?c:i?new X(i):new X(0)??new X(0),d=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,m=e.emittedUtxos.filter(p=>p.asset.assetId===be(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===d||e.txType==="ExportTx"&&p.consumedOnChainId!==d)).reduce((p,f)=>p.add(f.amount),new X(0)),u=s?l:o?m:e.amountStaked.length===0?zr(e.value,!!t):zr(e.amountStaked,!!t);return Z({amount:u?.toNumber(),decimals:r.decimals})}a(ma,"getAmount");function ua({tx:e,isTestnet:t,networkToken:r}){let n=e.amountBurned?.filter(o=>o.assetId===be(!!t)).reduce((o,s)=>o.add(s.amount),new X(0));return Z({amount:n?.toNumber(),decimals:r.decimals})}a(ua,"getBurnedAmount");function zr(e,t){return e.filter(r=>r.assetId===be(t)).reduce((r,n)=>r.add(n.amount),new X(0))}a(zr,"aggregateValue");function be(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}a(be,"getAvaxAssetId");function Qr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let c=new Set(e.consumedUtxos.flatMap(T=>T.addresses)||[]),i=new Set(e.emittedUtxos.flatMap(T=>T.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,d=["ImportTx","ExportTx"].includes(e.txType),{amount:m,isSender:u}=ga({tx:e,isTestnet:s,networkToken:r,chainAddress:l,isImportExport:d}),p=fa({isTestnet:s,tx:e,networkToken:r}),f=d?m.toString():u?m.minus(p).toString():m.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...c.values()].join(","),to:[...i.values()].join(","),isSender:u,timestamp:e.timestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:TokenType.NATIVE,amount:f}],gasUsed:p.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(Qr,"convertXChainTransaction");function ga({tx:e,isTestnet:t,networkToken:r,chainAddress:n,isImportExport:o}){if(o){let d=t?Avalanche.FujiContext.xBlockchainID:Avalanche.MainnetContext.xBlockchainID,m=e.emittedUtxos.filter(u=>u.asset.assetId===Re(!!t)&&(e.txType==="ImportTx"&&u.consumedOnChainId===d||e.txType==="ExportTx"&&u.consumedOnChainId!==d)).reduce((u,p)=>u.add(p.asset.amount),new X(0));return {amount:Z({amount:m.toNumber(),decimals:r.decimals}),isSender:!0}}let s=e.consumedUtxos.filter(d=>d.asset.assetId===Re(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X(0)),c=e.emittedUtxos.filter(d=>d.asset.assetId===Re(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X(0)),i=s.gte(c),l=i?s.minus(c):c.minus(s);return {amount:Z({amount:l.toNumber(),decimals:r.decimals}),isSender:i}}a(ga,"getAmount");function fa({isTestnet:e,tx:t,networkToken:r}){let n=t.amountUnlocked.filter(c=>c.assetId===Re(!!e)).reduce((c,i)=>c.add(i.amount),new X(0)),o=t.amountCreated.filter(c=>c.assetId===Re(!!e)).reduce((c,i)=>c.add(i.amount),new X(0)),s=n.minus(o);return Z({amount:s.toNumber(),decimals:r.decimals})}a(fa,"getBurnedAmount");function Re(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}a(Re,"getAvaxAssetId");var tn=a(async({address:e,nextPageToken:t,offset:r,network:n,glacierService:o})=>{let{isTestnet:s,networkToken:c,explorerUrl:i,chainId:l}=n;if(!o.isHealthy())return {transactions:[],nextPageToken:""};let m=n.isTestnet?Network.FUJI:Network.MAINNET,u=await o.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:xa(e),network:m,pageSize:r,pageToken:t,sortOrder:SortOrder.DESC}),p=[];return Ir(u)&&(p=u.transactions.map(f=>Yr({tx:f,isTestnet:s,address:e,networkToken:c,explorerUrl:i,chainId:l}))),kr(u)&&(p=u.transactions.map(f=>Qr({tx:f,isTestnet:s,address:e,networkToken:c,explorerUrl:i,chainId:l}))),{transactions:p,nextPageToken:u.nextPageToken}},"getTransactionHistory"),xa=a(e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,"getBlockchainIdByAddress");function rn({blockchainId:e,isTestnet:t}){let r=t?"fuji"+e:e,n=Aa.createHash("sha256").update(r).digest("base64");return "avax:"+Ta(n).substring(0,32)}a(rn,"hashBlockchainId");var Ta=a(e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),"convertBase64ToBase64Url");var me,Ne,ue,M,he,G,jt=class jt{constructor({approvalController:t,environment:r,appInfo:n,runtime:o}){k(this,me,void 0);k(this,Ne,void 0);k(this,ue,void 0);k(this,M,void 0);k(this,he,void 0);k(this,G,void 0);let{glacierApiUrl:s,proxyApiUrl:c}=nr(r);C(this,he,n),C(this,G,o),C(this,me,new je({glacierApiUrl:s,headers:z(n),getAuthHeaders:async()=>y(this,G)?.getAuthHeaders?.()})),C(this,Ne,c),C(this,ue,s),C(this,M,t);}getProvider(t){return D(t)}getAddress({accountIndex:t,xpubXP:r,walletType:n,network:o}){return Or({accountIndex:t,xpubXP:r,walletType:n,network:o})}getBalances({addresses:t,network:r,storage:n,currency:o}){let s=new ke({storage:n,proxyApiUrl:y(this,Ne),fetch:y(this,G)?.fetch});return Kr({addresses:t,currency:o,network:r,glacierService:y(this,me),tokenService:s})}getManifest(){let t=parseManifest(tr);return t.success?t.data:void 0}getNetworkFee(t){return Jr(t)}getTransactionHistory({network:t,address:r,nextPageToken:n,offset:o}){return tn({network:t,address:r,nextPageToken:n,offset:o,glacierService:y(this,me)})}getTokens(t){return Promise.resolve([])}buildDerivationPath(t){return te(t)}async deriveAddress(t){return Lr({...t,approvalController:y(this,M)})}async deriveAddresses(t){return Ur({...t,approvalController:y(this,M)})}async onRpcRequest(t,r){switch(t.method){case RpcMethod.AVALANCHE_SIGN_MESSAGE:return br({request:t,network:r,approvalController:y(this,M)});case RpcMethod.AVALANCHE_SIGN_TRANSACTION:return Mr({request:t,network:r,approvalController:y(this,M),glacierApiUrl:y(this,ue),appInfo:y(this,he),getAuthHeaders:y(this,G)?.getAuthHeaders});case RpcMethod.AVALANCHE_SEND_TRANSACTION:return Sr({request:t,network:r,approvalController:y(this,M),glacierApiUrl:y(this,ue),appInfo:y(this,he),getAuthHeaders:y(this,G)?.getAuthHeaders});default:return {error:rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:r}){return rn({blockchainId:t,isTestnet:r})}};me=new WeakMap,Ne=new WeakMap,ue=new WeakMap,M=new WeakMap,he=new WeakMap,G=new WeakMap,a(jt,"AvalancheModule");var nn=jt;var ip=a(e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,"isTokenWithBalancePVM"),cp=a(e=>"balancePerType"in e&&"unlocked"in e.balancePerType,"isTokenWithBalanceAVM");
|
|
15
|
+
`),"vertical")),r.push({title:T===0?"Validators":void 0,items:v});}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"convertSubnetToL1DetailSection");var It=a((e,t,r=[])=>{let n=[],{txFee:o,amount:s,chain:c,destination:i,type:l}=e;return n.push({items:[x("Source Chain",`Avalanche ${B[c]}`),x("Target Chain",`Avalanche ${B[i]}`)]}),n.push({items:[x("Transaction Type",l?(l[0]||"").toUpperCase()+l.slice(1):""),h("Amount",s,9,t),...r.map(d=>b("To",d))]}),o&&n.push({title:"Network Fee",items:[h("Fee Amount",o,9,t)]}),n},"exportDetailSection");var kt=a((e,t,r=[])=>{let n=[],{txFee:o,amount:s,chain:c,source:i,type:l}=e;return n.push({items:[x("Source Chain",`Avalanche ${B[i]}`),x("Destination Chain",`Avalanche ${B[c]}`)]}),n.push({items:[x("Transaction Type",l?(l[0]||"").toUpperCase()+l.slice(1):""),h("Amount",s,9,t),...r.map(d=>b("To",d))]}),o&&n.push({title:"Network Fee",items:[h("Fee Amount",o,9,t)]}),n},"importDetailSection");var Dt=a((e,t)=>{let r=[],{txFee:n,nodeID:o,subnetID:s}=e,c=[I("Node ID",o),I("Subnet ID",s)];return r.push({title:"Staking Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"removeSubnetValidatorDetailSection");var Ln=a((e,t)=>e.isAvax?[h("Amount",e.amount,9,t)]:e.assetDescription?[h("Amount",e.amount,e.assetDescription.denomination,e.assetDescription.symbol),x("Asset",e.assetDescription.name)]:[x("Amount",`${e.amount} (smallest unit)`),x("Asset",e.assetId,"vertical")],"amountItems"),St=a((e,t)=>{let r=[],{txFee:n,chain:o,outputs:s,memo:c}=e;return r.push({title:"Chain Details",items:[x("Active chain",`Avalanche ${B[o]}`)]}),s.forEach((i,l)=>{let d=i.owners.flatMap(u=>[b("To",u),...Ln(i,t)]);i.owners.length>1&&d.push(x("Threshold",i.threshold.toString()));let m=Number(i.locktime)*1e3;m>Date.now()&&d.push(x("Locked until",new Date(m).toUTCString())),r.push({title:l===0?"Balance Change":void 0,items:d});}),o!==PVM&&c&&r.push({title:"Memo",items:[c]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"chainDetailSection");var Pt=a((e,t)=>{let r=[],{txFee:n,threshold:o,controlKeys:s}=e;return r.push({title:"L1 Details",items:[zt(s.length>1?"Owners":"Owner",s),x("Signature Threshold",`${o}/${s.length}`,"horizontal")]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"subnetDetailSection");var Un=a(e=>{try{let t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return console.error("Failed to format genesis data:",t),e}},"formatGenesisData"),Ct=a((e,t)=>{let r=[],{txFee:n,chainID:o,chainName:s,vmID:c,genesisData:i}=e,l=[x("Blockchain name",s,"vertical"),x("Blockchain ID",o,"vertical"),x("Virtual Machine ID",c,"vertical"),ot("Genesis Data",Un(i))];return r.push({title:"Blockchain Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"blockChainDetailSection");var bt=a((e,t)=>{let r=[],{txFee:n,validationId:o}=e,s=[I("Validation ID",o)];return r.push({title:"L1 Details",items:s}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"disableL1ValidatorDetailSection");var wt=a((e,t)=>{let r=[],{txFee:n,balance:o,validationId:s}=e,c=[I("Validation ID",s),h("Increase by amount",o,9,t)];return r.push({title:"L1 Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"increaseL1ValidatorBalanceDetailSection");var Rt=a((e,t)=>{let r=[],{txFee:n,balance:o}=e,s=[h("Initial balance",o,9,t)];return r.push({title:"L1 Details",items:s}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"registerL1ValidatorDetailSection");var Nt=a((e,t)=>{let r=[],{txFee:n}=e;return n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setL1ValidatorWeightDetailSection");var _n=60*60*24,Ar=1e4,Vt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:c,stake:i,delegationFee:l,autoCompoundRewardShares:d,period:m}=e,u={items:[b("Account",n),oe("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(u);let p=[I("Node",c),h("Stake Amount",i,9,t),x("Delegation fee",`${l/Ar} %`),x("Cycle duration",`${Number(m)/_n} days`),x("Compound rewards percentage",`${d/Ar} %`)];return o.push({title:"Staking Details",items:p}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addAutoRenewedValidatorDetailSection");var On=60*60*24,Fn=1e4,Et=a((e,t)=>{let r=[],{txFee:n,txId:o,autoCompoundRewardShares:s,period:c}=e,i=[I("Validator Tx ID",o),x("Cycle duration",`${Number(c)/On} days`),x("Compound rewards percentage",`${s/Fn} %`)];return r.push({title:"Staking Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setAutoRenewedValidatorConfigDetailSection");var Xe=a((e,t,r)=>{if(fr(e))return St(e,t);if(mt(e))return It(e,t,r?.recipients);if(ut(e))return kt(e,t,r?.recipients);if(xr(e))return Pt(e,t);if(dt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessDelegator");return xt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(pt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessValidator");return At({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else {if(yr(e))return Ct(e,t);if(ht(e))return Tt(e,t);if(gt(e))return Dt(e,t);if(pr(e))return vt(e,t);if(mr(e))return bt(e,t);if(ur(e))return wt(e,t);if(hr(e))return Rt(e,t);if(gr(e))return Nt(e,t);if(ft(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddAutoRenewedValidator");return Vt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(yt(e))return Et(e,t)}},"getTransactionDetailSections");var Ir=a(e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,"isPChainTransactions"),kr=a(e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN,"isXChainTransactions");function le(e,t,r="tx"){return `${e}/${r}/${t}`}a(le,"getExplorerAddressByNetwork");function Z({amount:e,decimals:t}){return e===void 0?new X(0):new X(e/10**t)}a(Z,"getTokenValue");var Hn=z$1.object({currentAddress:z$1.string({required_error:"No active account found"}),currentEvmAddress:z$1.string().optional(),xpubXP:z$1.string({invalid_type_error:"xpubXP must be a string"}).optional()}),Xn=z$1.object({account:z$1.object({xpAddress:z$1.string({required_error:"XP address is required",invalid_type_error:"XP address must be a string"}),evmAddress:z$1.string().optional(),xpubXP:z$1.string({invalid_type_error:"xpubXP must be a string"}).optional(),externalXPAddresses:z$1.array(z$1.object({index:z$1.number(),address:z$1.string()}))})}),Gn=a(e=>({xpAddress:e.currentAddress,evmAddress:e.currentEvmAddress,xpubXP:e.xpubXP,externalXPAddresses:[]}),"getAccountFromLegacyContext"),qn=a(e=>e.account,"getAccountFromNewContext"),$n=a(e=>e!=null&&typeof e=="object"&&"account"in e&&e.account!=null&&typeof e.account=="object","hasAccountField"),Ge=a(e=>{if(!e)return {success:!1,error:"Missing Avalanche transaction context"};if($n(e)){let{success:o,data:s,error:c}=Xn.safeParse(e);return o?{success:!0,data:qn(s)}:{success:!1,error:c.errors[0]?.message||"Invalid or missing Avalanche transaction context"}}let{success:t,data:r,error:n}=Hn.safeParse(e);return t?{success:!0,data:Gn(r)}:{success:!1,error:n.errors[0]?.message||"Invalid or missing Avalanche transaction context"}},"getAccountFromContext");var Sr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let c=ar(e.params);if(!c.success)return {error:rpcErrors.invalidParams(Q("Transaction params are invalid",c.error))};try{let{transactionHex:i,chainAlias:l,externalIndices:d,internalIndices:m,utxos:u}=c.data,p=Avalanche.getVmByChainAlias(l),f=utils.hexToBuffer(i),T=t.isTestnet??!1,v=await D(t),N=Ge(e.context);if(!N.success)return {error:rpcErrors.invalidParams(N.error)};let{xpAddress:L,xpubXP:w,externalXPAddresses:ge}=N.data,re=await Oe({utxoHexes:u,vm:p,getIndexedUtxos:async()=>Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:l,network:T?Network.FUJI:Network.MAINNET,url:n,headers:{...z(o),...await s?.()}})}),q;if(l==="C")q=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:f,vm:p,utxos:re,fromAddress:L});else {let ve=utils.unpackWithManager(p,f);if(w!==void 0&&typeof w!="string")return {error:rpcErrors.invalidParams("xpubXP must be a string")};let ze=await lt({indices:d??[],chainAlias:l,isChange:!1,network:t,xpubXP:w,externalXPAddresses:ge}),an=await lt({indices:m??[],chainAlias:l,isChange:!0,network:t,xpubXP:w,externalXPAddresses:ge}),on=[...new Set([L,...ze,...an])].map(sn=>utils.parse(sn)[2]);q=await Avalanche.createAvalancheUnsignedTx({tx:ve,utxos:re,provider:v,fromAddressBytes:on});}let fe=await Avalanche.parseAvalancheTx(q,v,L),ye=He(fe),xe=dr(fe);if(fe.type==="unknown"||ye===void 0)return {error:rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let Ae={type:RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(q.toJSON()),data:fe,vm:p,externalIndices:d,internalIndices:m},Ve=Xe(ye,t.networkToken.symbol,{network:t,signerAccount:L,recipients:Fe(q.getTx(),ye,T)});if(Ve===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Ee={title:xe,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ve,networkFeeSelector:!1},Te=await r.requestApproval({request:e,displayData:Ee,signingData:Ae});if("error"in Te)return {error:Te.error};let U;try{U=await Jn(v,Te,p);}catch(ve){return {error:rpcErrors.internal(Q("Unable to broadcast transaction",ve))}}return zn({explorerUrl:t.explorerUrl??"",provider:v,txHash:U,vm:p,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:U}}catch(i){return console.error(i),{error:rpcErrors.internal(Q("Unable to create transaction",i))}}},"avalancheSendTransaction"),Jn=a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let{txID:n}=await e.issueTxHex(t.signedData,r);return n},"getTxHash"),zn=a(async({explorerUrl:e,provider:t,txHash:r,vm:n,onTransactionPending:o,onTransactionConfirmed:s,onTransactionReverted:c,request:i})=>{let d=le(e,r);try{o({txHash:r,request:i,explorerLink:d}),n===PVM?(await j({operation:()=>t.getApiP().getTxStatus({txID:r}),isSuccess:u=>["Committed","Dropped"].includes(u.status),maxRetries:7})).status==="Committed"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i}):n===AVM?(await j({operation:()=>t.getApiX().getTxStatus({txID:r}),isSuccess:u=>["Accepted","Rejected"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i}):(await j({operation:()=>t.getApiC().getAtomicTxStatus(r),isSuccess:u=>["Accepted","Dropped"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:i}):c({txHash:r,request:i});}catch(m){console.error(m),m instanceof Error&&m.message.startsWith("Max retry exceeded.")||c({txHash:r,request:i});}},"waitForTransactionReceipt");var Yn=z$1.union([z$1.tuple([z$1.string()]).describe("message to sign"),z$1.tuple([z$1.string().describe("message to sign"),z$1.number().nonnegative().describe("account index")])]),Pr=a(e=>Yn.safeParse(e),"parseRequestParams");var br=a(async({request:e,network:t,approvalController:r})=>{let n=Pr(e.params);if(!n.success)return console.error("invalid params",n.error),{error:rpcErrors.invalidParams(Q("Params are invalid",n.error))};let[o,s]=n.data,c=Buffer.from(o,"utf-8").toString("hex"),i={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:c,accountIndex:s},l={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},details:[{title:"Message",items:[o]}]},d=await r.requestApproval({request:e,displayData:l,signingData:i});return "error"in d?{error:d.error}:"signedData"in d?{result:d.signedData}:{error:rpcErrors.internal("No signed data returned")}},"avalancheSignMessage");var Zn=z$1.object({from:z$1.string().optional().describe("Avalanche receiving address"),transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"]),utxos:z$1.string().array().optional()}),wr=a(e=>Zn.safeParse(e),"parseRequestParams");var Er=a(async({vm:e,txBytes:t,utxos:r,currentAddress:n,currentEvmAddress:o,provider:s})=>{let c,i,l=utils.unpackWithManager(e,t);if(evmSerial.isExportTx(l)){let d=l.ins[0]?.address.toHex();if(!o)throw rpcErrors.invalidRequest("Missing EVM address");if(d?.toLowerCase()!==o.toLowerCase())throw new Error("This account has nothing to sign");return Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n})}try{let m=utils.getManagerForVM(e).unpack(t,avaxSerial.SignedTx);evmSerial.isImportTx(l)?i=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n}):i=await Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:m.getCredentials(),utxos:r}),c=l.getSigIndices().map((u,p)=>new Credential(Avalanche.populateCredential(u,{unsignedTx:i,credentialIndex:p})));}catch{c=l.getSigIndices().map(m=>new Credential(Avalanche.populateCredential(m)));}return Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:c,utxos:r})},"getUnsignedOrPartiallySignedTx");var Mr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let c=wr(e.params);if(!c.success)return console.error("invalid params",c.error),{error:rpcErrors.invalidParams("Params are invalid")};let{transactionHex:i,chainAlias:l,from:d,utxos:m}=c.data,u=Avalanche.getVmByChainAlias(l),p=t.isTestnet??!1,f=await D(t),T=Ge(e.context);if(!T.success)return {error:rpcErrors.invalidParams(T.error)};let{xpAddress:v,evmAddress:N}=T.data,L=await Oe({utxoHexes:m,vm:u,getIndexedUtxos:async()=>Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:l,network:p?Network.FUJI:Network.MAINNET,url:n,headers:{...z(o),...await s?.()}})}),w=await Er({txBytes:utils.hexToBuffer(i),vm:u,utxos:L,currentAddress:v,currentEvmAddress:N,provider:f}),ge=utils.addressesFromBytes([utils.parse(d??v)[2]])[0];if(!ge)return {error:rpcErrors.invalidRequest("Missing signer address")};let re=w.getSigIndicesForAddress(ge);if(!re)return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let q=w.getSigIndices();if(!re.some(([ve,ze])=>q[ve]?.includes(ze)))return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let ye=d??v,xe=await Avalanche.parseAvalancheTx(w,f,d??v),Ae=He(xe);if(xe.type==="unknown"||Ae===void 0)return {error:rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let Ve={type:RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:xe,vm:u,unsignedTxJson:JSON.stringify(w.toJSON()),ownSignatureIndices:re},Ee=Xe(Ae,t.networkToken.symbol,{network:t,signerAccount:ye,recipients:Fe(w.getTx(),Ae,p)});if(Ee===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Te={title:"Do you approve this transaction?",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} requests you to sign the following transaction`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ee},U=await r.requestApproval({request:e,displayData:Te,signingData:Ve});return "error"in U?{error:U.error}:"signedData"in U?{result:U.signedData}:{error:rpcErrors.invalidRequest("No signed data returned")}},"avalancheSignTransaction");var te=a(({accountIndex:e,derivationPathType:t,addressIndex:r=0})=>{if(e<0)throw rpcErrors.invalidParams("Account index must be a non-negative integer");if(r!==void 0&&r<0)throw rpcErrors.invalidParams("Address index must be a non-negative integer");switch(t){case"bip44":return {[NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[NetworkVMType.CoreEth]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[NetworkVMType.CoreEth]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var _t=a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var Lr=a(async e=>{let{approvalController:t,network:r,secretId:n}=e,o=_t(e)?te(e).AVM:void 0,s=_t(e)?te(e).CoreEth:void 0,c=await D(r),i=await t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:o}).catch(()=>null),l=await t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:s}).catch(()=>null),d=l?{[NetworkVMType.CoreEth]:c.getAddress(Buffer.from(l,"hex"),"C")}:{},m=i?{[NetworkVMType.AVM]:c.getAddress(Buffer.from(i,"hex"),"X"),[NetworkVMType.PVM]:c.getAddress(Buffer.from(i,"hex"),"P")}:{};return {...d,...m}},"deriveAddress");var Ur=a(async e=>{let{approvalController:t,network:r,secretId:n,accountIndices:o,derivationPathType:s,addressIndex:c}=e;if(o.length===0)return [];await init();let i=await Promise.all(o.map(async d=>{let m=te({accountIndex:d,derivationPathType:s,addressIndex:c}),[u,p]=await Promise.all([t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:m.AVM}),t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:m.CoreEth})]);return {xp:Uint8Array.from(Buffer.from(u,"hex")),evm:Uint8Array.from(Buffer.from(p,"hex"))}}));return (await deriveAddressesForAvalanche(i.map(d=>d.xp),i.map(d=>d.evm),!!r.isTestnet)).map(d=>({[NetworkVMType.AVM]:d.x,[NetworkVMType.PVM]:d.p,[NetworkVMType.CoreEth]:d.coreEth}))},"deriveAddresses");var Or=a(async({accountIndex:e,xpubXP:t,walletType:r,network:n})=>{if(!n)throw rpcErrors.invalidParams("network is required to get address");if(t===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let o=await D(n),s;switch(r){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:{s=Avalanche.getAddressPublicKeyFromXpub(t,e);break}case WalletType.LedgerLive:case WalletType.Seedless:{s=Buffer.from(t,"hex");break}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}return {[NetworkVMType.AVM]:o.getAddress(s,"X"),[NetworkVMType.PVM]:o.getAddress(s,"P")}},"getAddress");var Xt=class Xt extends Error{constructor(){super(...arguments);$(this,"message","Glacier is unhealthy. Try again later.");}};a(Xt,"GlacierUnhealthyError");var $e=Xt,Gt=class Gt{constructor({glacierApiUrl:t,headers:r,getAuthHeaders:n}){$(this,"glacierSdk");$(this,"isGlacierHealthy",!0);$(this,"isHealthy",a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new Glacier({BASE:t,HEADERS:n?async()=>({...r,...await n()}):r},De);}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async listLatestPrimaryNetworkTransactions(t){try{return this.glacierSdk.primaryNetworkTransactions.listLatestPrimaryNetworkTransactions(t)}catch(r){throw r instanceof $e&&this.setGlacierToUnhealthy(),r}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(r){throw r instanceof $e&&this.setGlacierToUnhealthy(),r}}};a(Gt,"AvalancheGlacierService");var je=Gt;var qt=a(e=>Object.keys(e).includes("unlockedUnstaked"),"isPchainBalance"),Hr=a(e=>Object.keys(e).includes("locked"),"isXchainBalance"),Fr=a((e,t)=>e?.length?e.reduce((r,n)=>n.assetId!==t?r:r+BigInt(n.amount),0n):0n,"sumAvaxFromAssets");function We(e,t){if(qt(e)){let n=[...e.unlockedUnstaked||[],...e.unlockedStaked||[],...e.pendingStaked||[],...e.lockedStaked||[],...e.lockedStakeable||[],...e.lockedPlatform||[],...e.atomicMemoryLocked||[],...e.atomicMemoryUnlocked||[]],o=Fr(n,t),s=e.restakedRewards?BigInt(e.restakedRewards):0n;return o+s}let r=[...e.unlocked||[],...e.locked||[],...e.atomicMemoryUnlocked||[],...e.atomicMemoryLocked||[]];return Fr(r,t)}a(We,"calculateAvaxTotalBalance");var Gr=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:c,avaxAssetId:i})=>{let l={},d={unlockedUnstaked:e.unlockedUnstaked,unlockedStaked:e.unlockedStaked,pendingStaked:e.pendingStaked,lockedStaked:e.lockedStaked,lockedStakeable:e.lockedStakeable,lockedPlatform:e.lockedPlatform,atomicMemoryLocked:e.atomicMemoryLocked,atomicMemoryUnlocked:e.atomicMemoryUnlocked};for(let T in d){let v=d[T];if(!v||!v.length){l[T]=0n;continue}v.forEach(N=>{if(N.assetId!==i)return;let w=(l[T]??0n)+BigInt(N.amount);l[T]=w;});}let m=new TokenUnit(l.unlockedUnstaked?l.unlockedUnstaked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(We(e,i),t.decimals,t.symbol),f=r?p.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:f,balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:f?.toFixed(2),available:m.toSubUnit(),availableInCurrency:u,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:u?.toFixed(2),utxos:e,balancePerType:{lockedStaked:l.lockedStaked,lockedStakeable:l.lockedStakeable,lockedPlatform:l.lockedPlatform,atomicMemoryLocked:l.atomicMemoryLocked,atomicMemoryUnlocked:l.atomicMemoryUnlocked,unlockedUnstaked:l.unlockedUnstaked,unlockedStaked:l.unlockedStaked,pendingStaked:l.pendingStaked,restakedRewards:e.restakedRewards?BigInt(e.restakedRewards):void 0},marketCap:n,vol24:o,change24:s,coingeckoId:c}},"convertPChainBalance");var $r=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:c,avaxAssetId:i})=>{let l={},d={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let T in d){let v=d[T];if(!v||!v.length){l[T]=0n;continue}v.forEach(N=>{if(N.assetId!==i)return;let w=(l[T]??0n)+BigInt(N.amount);l[T]=w;});}let m=new TokenUnit(l.unlocked?l.unlocked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(We(e,i),t.decimals,t.symbol),f=r!==void 0?p.mul(r):void 0;return {...t,coingeckoId:c,type:TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:f?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:f?.toDisplay({fixedDp:2}),available:m.toSubUnit(),availableInCurrency:u,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:u?.toFixed(2),utxos:e,balancePerType:{unlocked:l.unlocked,locked:l.locked,atomicMemoryUnlocked:l.atomicMemoryUnlocked,atomicMemoryLocked:l.atomicMemoryLocked},marketCap:n,vol24:o,change24:s}},"convertXChainBalance");var Kr=a(async({addresses:e,currency:t,network:r,glacierService:n,tokenService:o})=>{let s=await D(r);if(!n.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let i=t.toLowerCase(),l=e[0]??"",d=r.networkToken,m=r.pricingProviders?.coingecko.nativeTokenId,u=r.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,p=r.isDevnet?null:r.isTestnet?Network.FUJI:Network.MAINNET;if(!p)return Promise.reject("Glacier does not supported local devnets");let f=await n.getChainBalance({blockchainId:u,network:p,addresses:e.join(",")}).then(N=>N.balances),T=await o.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:i}),v;return qt(f)?(v=Gr({balance:f,networkToken:d,priceInCurrency:T.priceInCurrency??void 0,marketCap:T.marketCap??void 0,vol24:T.vol24??void 0,change24:T.change24??void 0,coingeckoId:m??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:v}}):Hr(f)?(v=$r({balance:f,networkToken:d,priceInCurrency:T.priceInCurrency??void 0,marketCap:T.marketCap??void 0,vol24:T.vol24??void 0,change24:T.change24??void 0,coingeckoId:m??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:v}}):Promise.reject("Incorrect type balance was returned from glacier")},"getBalances");async function Jr(e){let{vmName:t}=e,r=await D(e);if(t===NetworkVMType.AVM)return {baseFee:BigInt(1e6),low:{maxFeePerGas:BigInt(1e6)},medium:{maxFeePerGas:BigInt(1e6)},high:{maxFeePerGas:BigInt(1e6)},isFixedFee:!0};let{price:n}=await r.getApiP().getFeeState(),o=100/Number(n)/100,s=Math.min(1,Math.max(o,.15)),c=Math.min(1,Math.max(o*2,.3)),i=1+s,l=1+c;return {baseFee:n,low:{maxFeePerGas:n},medium:{maxFeePerGas:n*BigInt(Math.round(100*i))/100n},high:{maxFeePerGas:n*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}a(Jr,"getNetworkFee");function Yr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let c=new Set(e.consumedUtxos.flatMap(p=>p.addresses)||[]),i=new Set(e.emittedUtxos.flatMap(p=>p.addresses)||[]),l=ma({tx:e,isTestnet:s,networkToken:r,froms:c}),d=ua({tx:e,isTestnet:s,networkToken:r}),m=t.toLowerCase().startsWith("p-")?t.slice(2):t,u=c.has(m);return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...c.values()].join(","),to:[...i.values()].join(","),isSender:u,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:TokenType.NATIVE,amount:l.toString()}],gasUsed:d.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(Yr,"convertPChainTransaction");function ma({tx:e,isTestnet:t,networkToken:r,froms:n}){let o=["ImportTx","ExportTx"].includes(e.txType),s=e.txType==="BaseTx",c=e.emittedUtxos.filter(p=>p.asset.assetId===be(!!t)&&!p.addresses.some(f=>n.has(f))).reduce((p,f)=>p.add(f.asset.amount),new X(0)),i=e.value.find(p=>p.assetId===be(!!t))?.amount,l=c.gt(new X(0))?c:i?new X(i):new X(0)??new X(0),d=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,m=e.emittedUtxos.filter(p=>p.asset.assetId===be(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===d||e.txType==="ExportTx"&&p.consumedOnChainId!==d)).reduce((p,f)=>p.add(f.amount),new X(0)),u=s?l:o?m:e.amountStaked.length===0?zr(e.value,!!t):zr(e.amountStaked,!!t);return Z({amount:u?.toNumber(),decimals:r.decimals})}a(ma,"getAmount");function ua({tx:e,isTestnet:t,networkToken:r}){let n=e.amountBurned?.filter(o=>o.assetId===be(!!t)).reduce((o,s)=>o.add(s.amount),new X(0));return Z({amount:n?.toNumber(),decimals:r.decimals})}a(ua,"getBurnedAmount");function zr(e,t){return e.filter(r=>r.assetId===be(t)).reduce((r,n)=>r.add(n.amount),new X(0))}a(zr,"aggregateValue");function be(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}a(be,"getAvaxAssetId");function Qr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let c=new Set(e.consumedUtxos.flatMap(T=>T.addresses)||[]),i=new Set(e.emittedUtxos.flatMap(T=>T.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,d=["ImportTx","ExportTx"].includes(e.txType),{amount:m,isSender:u}=ga({tx:e,isTestnet:s,networkToken:r,chainAddress:l,isImportExport:d}),p=fa({isTestnet:s,tx:e,networkToken:r}),f=d?m.toString():u?m.minus(p).toString():m.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...c.values()].join(","),to:[...i.values()].join(","),isSender:u,timestamp:e.timestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:TokenType.NATIVE,amount:f}],gasUsed:p.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(Qr,"convertXChainTransaction");function ga({tx:e,isTestnet:t,networkToken:r,chainAddress:n,isImportExport:o}){if(o){let d=t?Avalanche.FujiContext.xBlockchainID:Avalanche.MainnetContext.xBlockchainID,m=e.emittedUtxos.filter(u=>u.asset.assetId===Re(!!t)&&(e.txType==="ImportTx"&&u.consumedOnChainId===d||e.txType==="ExportTx"&&u.consumedOnChainId!==d)).reduce((u,p)=>u.add(p.asset.amount),new X(0));return {amount:Z({amount:m.toNumber(),decimals:r.decimals}),isSender:!0}}let s=e.consumedUtxos.filter(d=>d.asset.assetId===Re(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X(0)),c=e.emittedUtxos.filter(d=>d.asset.assetId===Re(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X(0)),i=s.gte(c),l=i?s.minus(c):c.minus(s);return {amount:Z({amount:l.toNumber(),decimals:r.decimals}),isSender:i}}a(ga,"getAmount");function fa({isTestnet:e,tx:t,networkToken:r}){let n=t.amountUnlocked.filter(c=>c.assetId===Re(!!e)).reduce((c,i)=>c.add(i.amount),new X(0)),o=t.amountCreated.filter(c=>c.assetId===Re(!!e)).reduce((c,i)=>c.add(i.amount),new X(0)),s=n.minus(o);return Z({amount:s.toNumber(),decimals:r.decimals})}a(fa,"getBurnedAmount");function Re(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}a(Re,"getAvaxAssetId");var tn=a(async({address:e,nextPageToken:t,offset:r,network:n,glacierService:o})=>{let{isTestnet:s,networkToken:c,explorerUrl:i,chainId:l}=n;if(!o.isHealthy())return {transactions:[],nextPageToken:""};let m=n.isTestnet?Network.FUJI:Network.MAINNET,u=await o.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:xa(e),network:m,pageSize:r,pageToken:t,sortOrder:SortOrder.DESC}),p=[];return Ir(u)&&(p=u.transactions.map(f=>Yr({tx:f,isTestnet:s,address:e,networkToken:c,explorerUrl:i,chainId:l}))),kr(u)&&(p=u.transactions.map(f=>Qr({tx:f,isTestnet:s,address:e,networkToken:c,explorerUrl:i,chainId:l}))),{transactions:p,nextPageToken:u.nextPageToken}},"getTransactionHistory"),xa=a(e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,"getBlockchainIdByAddress");function rn({blockchainId:e,isTestnet:t}){let r=t?"fuji"+e:e,n=Aa.createHash("sha256").update(r).digest("base64");return "avax:"+Ta(n).substring(0,32)}a(rn,"hashBlockchainId");var Ta=a(e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),"convertBase64ToBase64Url");var me,Ne,ue,M,he,G,jt=class jt{constructor({approvalController:t,environment:r,appInfo:n,runtime:o}){k(this,me,void 0);k(this,Ne,void 0);k(this,ue,void 0);k(this,M,void 0);k(this,he,void 0);k(this,G,void 0);let{glacierApiUrl:s,proxyApiUrl:c}=nr(r);C(this,he,n),C(this,G,o),C(this,me,new je({glacierApiUrl:s,headers:z(n),getAuthHeaders:async()=>y(this,G)?.getAuthHeaders?.()})),C(this,Ne,c),C(this,ue,s),C(this,M,t);}getProvider(t){return D(t)}getAddress({accountIndex:t,xpubXP:r,walletType:n,network:o}){return Or({accountIndex:t,xpubXP:r,walletType:n,network:o})}getBalances({addresses:t,network:r,storage:n,currency:o}){let s=new ke({storage:n,proxyApiUrl:y(this,Ne),fetch:y(this,G)?.fetch});return Kr({addresses:t,currency:o,network:r,glacierService:y(this,me),tokenService:s})}getManifest(){let t=parseManifest(tr);return t.success?t.data:void 0}getNetworkFee(t){return Jr(t)}getTransactionHistory({network:t,address:r,nextPageToken:n,offset:o}){return tn({network:t,address:r,nextPageToken:n,offset:o,glacierService:y(this,me)})}getTokens(t){return Promise.resolve([])}buildDerivationPath(t){return te(t)}async deriveAddress(t){return Lr({...t,approvalController:y(this,M)})}async deriveAddresses(t){return Ur({...t,approvalController:y(this,M)})}async onRpcRequest(t,r){switch(t.method){case RpcMethod.AVALANCHE_SIGN_MESSAGE:return br({request:t,network:r,approvalController:y(this,M)});case RpcMethod.AVALANCHE_SIGN_TRANSACTION:return Mr({request:t,network:r,approvalController:y(this,M),glacierApiUrl:y(this,ue),appInfo:y(this,he),getAuthHeaders:y(this,G)?.getAuthHeaders});case RpcMethod.AVALANCHE_SEND_TRANSACTION:return Sr({request:t,network:r,approvalController:y(this,M),glacierApiUrl:y(this,ue),appInfo:y(this,he),getAuthHeaders:y(this,G)?.getAuthHeaders});default:return {error:rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:r}){return rn({blockchainId:t,isTestnet:r})}};me=new WeakMap,Ne=new WeakMap,ue=new WeakMap,M=new WeakMap,he=new WeakMap,G=new WeakMap,a(jt,"AvalancheModule");var nn=jt;var ip=a(e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,"isTokenWithBalancePVM"),cp=a(e=>"balancePerType"in e&&"unlocked"in e.balancePerType,"isTokenWithBalanceAVM");
|
|
16
16
|
|
|
17
17
|
export { nn as AvalancheModule, ft as isAddAutoRenewedValidatorTx, dt as isAddPermissionlessDelegatorTx, pt as isAddPermissionlessValidatorTx, ht as isAddSubnetValidatorTx, Vn as isBaseTx, yr as isBlockchainDetails, fr as isChainDetails, pr as isConvertSubnetToL1Tx, En as isCreateChainTx, Bn as isCreateSubnetTx, mr as isDisableL1ValidatorTx, xs as isExportImportTxDetails, mt as isExportTx, ut as isImportTx, ur as isIncreaseL1ValidatorBalanceTx, hr as isRegisterL1ValidatorTx, gt as isRemoveSubnetValidatorTx, yt as isSetAutoRenewedValidatorConfigTx, gr as isSetL1ValidatorWeightTx, ys as isStakingDetails, xr as isSubnetDetails, cp as isTokenWithBalanceAVM, ip as isTokenWithBalancePVM };
|
|
18
18
|
//# sourceMappingURL=out.js.map
|