@avalabs/avalanche-module 3.14.0 → 4.0.1
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 +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/dist/index.cjs
CHANGED
|
@@ -7,19 +7,19 @@ var glacierSdk = require('@avalabs/glacier-sdk');
|
|
|
7
7
|
var rpcErrors = require('@metamask/rpc-errors');
|
|
8
8
|
var coreWalletsSdk = require('@avalabs/core-wallets-sdk');
|
|
9
9
|
var avalanchejs = require('@avalabs/avalanchejs');
|
|
10
|
-
var
|
|
10
|
+
var X = require('big.js');
|
|
11
11
|
var cryptoSdk = require('@avalabs/crypto-sdk');
|
|
12
12
|
var coreUtilsSdk = require('@avalabs/core-utils-sdk');
|
|
13
13
|
var on = require('crypto');
|
|
14
14
|
|
|
15
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var X__default = /*#__PURE__*/_interopDefault(X);
|
|
18
18
|
var on__default = /*#__PURE__*/_interopDefault(on);
|
|
19
19
|
|
|
20
|
-
var qt=Object.defineProperty;var ea=(e,t,r)=>t in e?qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t)=>qt(e,"name",{value:t,configurable:!0});var $=(e,t,r)=>(ea(e,typeof t!="symbol"?t+"":t,r),r),ze=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var x=(e,t,r)=>(ze(e,t,"read from private field"),r?r.call(e):t.get(e)),D=(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)=>(ze(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var Ye=(e,t,r)=>(ze(e,t,"access private method"),r);function $t(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}a($t,"charsum");function Qe(e){let t,r=0;for(t=0;t<e.length;t++){let n=$t(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}a(Qe,"arrayHash");var W=a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=U.exponential()})=>{let o=0,s=0,i;for(;s<r;){s>0&&await ta(o);try{let l=await e(s);if(t(l))return l}catch(l){i=l;}o=n(s),s++;}let c=i?`Max retry exceeded. ${i}`:"Max retry exceeded.";throw new Error(c)},"retry"),Ze=class Ze{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,i=2*r*(Math.pow(2,o)-1);return s+i}}};a(Ze,"RetryBackoffPolicy");var U=Ze;function ta(e){return new Promise(t=>setTimeout(t,e))}a(ta,"delay");var et=a(e=>W({operation:t=>e(t>0),maxRetries:2,backoffPolicy:U.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function j(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(j,"fetchAndVerify");var tt=class tt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return j([`${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,o=new URLSearchParams(n);return j([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${o}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};a(tt,"CoingeckoProxyClient");var Te=tt;var ra=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())})),rt=class rt{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return j([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],ra)}};a(rt,"WatchlistProxyClient");var Me=rt;var F,K,J,se,at=class at{constructor({storage:t,proxyApiUrl:r,fetch:n}){D(this,F,void 0);D(this,K,void 0);D(this,J,void 0);D(this,se,void 0);$(this,"transformSimplePriceResponse",a((t,r=[coreCoingeckoSdk.VsCurrencyType.USD])=>{let n={};return Object.keys(t).forEach(o=>{let s=t[o];n[o]={},r.forEach(i=>{n[o]={[i]:{price:s?.[i],change24:s?.[`${i}_24h_change`],vol24:s?.[`${i}_24h_vol`],marketCap:s?.[`${i}_market_cap`]}};});}),n},"transformSimplePriceResponse"));C(this,F,t),C(this,K,r),C(this,J,n??globalThis.fetch),C(this,se,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,x(this,J)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new Me(x(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=[coreCoingeckoSdk.VsCurrencyType.USD]}){let n,s=`getSimplePrice-${t?`${Qe(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=x(this,F)?.get?.(s),n)return n;try{n=await et(i=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:i}));}catch{n=void 0;}return x(this,F)?.set?.(s,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let o,i=`getPricesWithMarketDataByAddresses-${`${Qe(t)}-${r}-${n}`}`;if(o=x(this,F)?.get?.(i),o)return o;try{o=await et(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),o=void 0;}return x(this,F)?.set?.(i,o),o}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:o=!1}){if(o){let s=await new Te(x(this,K),x(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 coreCoingeckoSdk.simpleTokenPrice(x(this,se),{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:o=!1,change24:s=!1,lastUpdated:i=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let d=await new Te(x(this,K),x(this,J)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:o,include_24hr_change:s,include_last_updated_at:i});return this.transformSimplePriceResponse(d,r)}return coreCoingeckoSdk.simplePrice(x(this,se),{coinIds:t,currencies:r,marketCap:n,vol24:o,change24:s,lastUpdated:i,shouldThrow:l})}};F=new WeakMap,K=new WeakMap,J=new WeakMap,se=new WeakMap,a(at,"TokenService");var ve=at;zod.object({date:zod.string(),usd:zod.record(zod.number())});var h=a((e,t,r,n)=>({label:e,type:vmModuleTypes.DetailItemType.CURRENCY,value:t,maxDecimals:r,symbol:n}),"currencyItem"),T=a((e,t,r="horizontal")=>({label:e,alignment:r,type:vmModuleTypes.DetailItemType.TEXT,value:t}),"textItem");var R=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS,value:t}),"addressItem"),jt=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS_LIST,value:t}),"addressListItem"),v=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NODE_ID,value:t}),"nodeIDItem"),nt=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.DATA,value:t}),"dataItem"),E=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.DATE,value:t}),"dateItem"),ie=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var z=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 Kt=process.env.GLACIER_API_KEY;var X=a(()=>Kt,"getGlacierApiKey");var ma={rltoken:X()},Y,Le,_e,zt,Ue,Yt,ot=class ot extends glacierSdk.FetchHttpRequest{constructor(r){super(r);D(this,_e);D(this,Ue);D(this,Y,0);D(this,Le,U.exponential());}request(r){let n={...ma,...r.query||{}},o={...r,query:Object.keys(n).length>0?n:void 0},s=a(()=>super.request(o),"getRequest");return x(this,Y)>0?Ye(this,Ue,Yt).call(this,s):Ye(this,_e,zt).call(this,s)}};Y=new WeakMap,Le=new WeakMap,_e=new WeakSet,zt=a(function(r){let n=r();return new glacierSdk.CancelablePromise((o,s,i)=>{i(()=>n.cancel()),n.then(c=>{C(this,Y,0),o(c);}).catch(c=>{if(c instanceof glacierSdk.ApiError){let l=c.status===429,d=c.status>=500&&c.status<600;C(this,Y,x(this,Y)+Number(l||d));}s(c);});})},"#request"),Ue=new WeakSet,Yt=a(function(r){let n=x(this,Le).call(this,x(this,Y));return new glacierSdk.CancelablePromise((o,s,i)=>{let c=setTimeout(()=>{let l=r();i(()=>{l.cancel(),clearTimeout(c);}),l.then(o).catch(s);},n);})},"#postponeRequest"),a(ot,"GlacierFetchHttpRequest");var Ie=ot;var Q=a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var Qt={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 ha={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},ga={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},er=a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return ha;case vmModuleTypes.Environment.DEV:return ga}},"getEnv");var fa=zod.z.object({transactionHex:zod.z.string(),chainAlias:zod.z.enum(["X","P","C"]),externalIndices:zod.z.number().array().optional(),internalIndices:zod.z.number().array().optional(),utxos:zod.z.string().array().optional()}),tr=a(e=>fa.safeParse(e),"parseRequestParams");var S=a(async e=>{let{isTestnet:t,isDevnet:r,rpcUrl:n,customRpcHeaders:o}=e,s=o?{headers:o}:void 0;return r?coreWalletsSdk.Avalanche.JsonRpcProvider.fromBaseURL(n):t?coreWalletsSdk.Avalanche.JsonRpcProvider.getDefaultFujiProvider(s):coreWalletsSdk.Avalanche.JsonRpcProvider.getDefaultMainnetProvider(s)},"getProvider");var Fe=a(({utxoHexes:e=[],vm:t})=>{try{let r=avalanchejs.utils.getManagerForVM(t).getDefaultCodec();return e.map(n=>{let o=avalanchejs.utils.hexToBuffer(n);return avalanchejs.Utxo.fromBytes(o,r)[0]})}catch(r){return console.error("Error getting provided utxos",r),[]}},"getProvidedUtxos");var Oe=a(e=>{switch(e.type){case vmModuleTypes.TxType.AddPermissionlessDelegator:return {...e,type:vmModuleTypes.TxType.AddPermissionlessDelegator};case vmModuleTypes.TxType.AddPermissionlessValidator:return {...e,type:vmModuleTypes.TxType.AddPermissionlessValidator};case vmModuleTypes.TxType.AddSubnetValidator:return {...e,type:vmModuleTypes.TxType.AddSubnetValidator};case vmModuleTypes.TxType.CreateChain:return {...e,type:vmModuleTypes.TxType.CreateChain};case vmModuleTypes.TxType.CreateSubnet:return {...e,type:vmModuleTypes.TxType.CreateSubnet};case vmModuleTypes.TxType.RemoveSubnetValidator:return {...e,type:vmModuleTypes.TxType.RemoveSubnetValidator};case vmModuleTypes.TxType.AddAutoRenewedValidator:return {...e,type:vmModuleTypes.TxType.AddAutoRenewedValidator};case vmModuleTypes.TxType.SetAutoRenewedValidatorConfig:return {...e,type:vmModuleTypes.TxType.SetAutoRenewedValidatorConfig};case vmModuleTypes.TxType.ConvertSubnetToL1:return {...e,type:vmModuleTypes.TxType.ConvertSubnetToL1,chain:e.chain};case vmModuleTypes.TxType.SetL1ValidatorWeight:return {...e,type:vmModuleTypes.TxType.SetL1ValidatorWeight,chain:e.chain};case vmModuleTypes.TxType.DisableL1Validator:return {...e,type:vmModuleTypes.TxType.DisableL1Validator,chain:e.chain};case vmModuleTypes.TxType.IncreaseL1ValidatorBalance:return {...e,type:vmModuleTypes.TxType.IncreaseL1ValidatorBalance,chain:e.chain};case vmModuleTypes.TxType.RegisterL1Validator:return {...e,type:vmModuleTypes.TxType.RegisterL1Validator,chain:e.chain};case vmModuleTypes.TxType.Export:return {...e,type:vmModuleTypes.TxType.Export,chain:e.chain,destination:e.destination};case vmModuleTypes.TxType.Import:return {...e,type:vmModuleTypes.TxType.Import,chain:e.chain,source:e.source};case vmModuleTypes.TxType.Base:return {...e,type:vmModuleTypes.TxType.Base,chain:e.chain};default:return}},"parseTxDetails");var ar=a(e=>{switch(e.type){case vmModuleTypes.TxType.AddPermissionlessDelegator:return "Do you want to add this delegator?";case vmModuleTypes.TxType.AddPermissionlessValidator:return "Do you want to add this validator?";case vmModuleTypes.TxType.Export:return "Do you approve this export?";case vmModuleTypes.TxType.Import:return "Do you approve this import?";case vmModuleTypes.TxType.Base:return "Do you approve this transaction?";case vmModuleTypes.TxType.AddSubnetValidator:return "Do you want to add this subnet validator?";case vmModuleTypes.TxType.CreateChain:return "Do you want to create this chain?";case vmModuleTypes.TxType.CreateSubnet:return "Do you want to create this L1?";case vmModuleTypes.TxType.RemoveSubnetValidator:return "Do you want to remove this subnet validator?";case vmModuleTypes.TxType.ConvertSubnetToL1:return "Do you want to convert this subnet?";case vmModuleTypes.TxType.DisableL1Validator:return "Do you want to disable this validator?";case vmModuleTypes.TxType.IncreaseL1ValidatorBalance:return "Do you want to increase this validator balance?";case vmModuleTypes.TxType.RegisterL1Validator:return "Do you want to register this validator?";case vmModuleTypes.TxType.SetL1ValidatorWeight:return "Do you want to set this validator weight?";case vmModuleTypes.TxType.AddAutoRenewedValidator:return "Do you want to add this auto-renewed validator?";case vmModuleTypes.TxType.SetAutoRenewedValidatorConfig:return "Do you want to update this auto-renewed validator config?";default:return "Sign Message"}},"parseTxDisplayTitle");var it=a(async({indices:e,chainAlias:t,isChange:r,network:n,xpubXP:o,externalXPAddresses:s})=>{if(o){let i=await S(n);return e.map(c=>coreWalletsSdk.Avalanche.getAddressFromXpub(o,c,i,t,r))}return s&&Array.isArray(s)?e.map(c=>s.find(l=>l.index===c)).filter(c=>c!==void 0).map(c=>c.address):[]},"getAddressesByIndices");var ct=a(e=>e.type===vmModuleTypes.TxType.AddPermissionlessDelegator,"isAddPermissionlessDelegatorTx"),lt=a(e=>e.type===vmModuleTypes.TxType.AddPermissionlessValidator,"isAddPermissionlessValidatorTx"),dt=a(e=>e.type===vmModuleTypes.TxType.Export,"isExportTx"),pt=a(e=>e.type===vmModuleTypes.TxType.Import,"isImportTx"),Aa=a(e=>e.type===vmModuleTypes.TxType.Base,"isBaseTx"),mt=a(e=>e.type===vmModuleTypes.TxType.AddSubnetValidator,"isAddSubnetValidatorTx"),Ta=a(e=>e.type===vmModuleTypes.TxType.CreateChain,"isCreateChainTx"),va=a(e=>e.type===vmModuleTypes.TxType.CreateSubnet,"isCreateSubnetTx"),ut=a(e=>e.type===vmModuleTypes.TxType.RemoveSubnetValidator,"isRemoveSubnetValidatorTx"),nr=a(e=>e.type===vmModuleTypes.TxType.ConvertSubnetToL1,"isConvertSubnetToL1Tx"),or=a(e=>e.type===vmModuleTypes.TxType.DisableL1Validator,"isDisableL1ValidatorTx"),sr=a(e=>e.type===vmModuleTypes.TxType.IncreaseL1ValidatorBalance,"isIncreaseL1ValidatorBalanceTx"),ir=a(e=>e.type===vmModuleTypes.TxType.RegisterL1Validator,"isRegisterL1ValidatorTx"),cr=a(e=>e.type===vmModuleTypes.TxType.SetL1ValidatorWeight,"isSetL1ValidatorWeightTx"),ht=a(e=>e.type===vmModuleTypes.TxType.AddAutoRenewedValidator,"isAddAutoRenewedValidatorTx"),gt=a(e=>e.type===vmModuleTypes.TxType.SetAutoRenewedValidatorConfig,"isSetAutoRenewedValidatorConfigTx"),Yo=a(e=>ct(e)||lt(e)||mt(e)||ut(e)||ht(e)||gt(e),"isStakingDetails"),Qo=a(e=>dt(e)||pt(e),"isExportImportTxDetails"),lr=a(e=>Aa(e),"isChainDetails"),dr=a(e=>Ta(e),"isBlockchainDetails"),pr=a(e=>va(e),"isSubnetDetails");var B=(n=>(n.AVM="X-Chain",n.PVM="P-Chain",n.EVM="C-Chain",n))(B||{});var ft=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,start:c,end:l,stake:d}=e,p={items:[R("Account",n),ie("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(p);let m=[v("Node",i),h("Stake Amount",d,9,t),E("Start",c),E("End",l)];return o.push({title:"Staking Details",items:m}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessDelegatorDetailSection");var yt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,delegationFee:c,start:l,end:d,stake:p}=e,m={items:[R("Account",n),ie("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(m);let u=[v("Node",i)];return u.push(h("Stake Amount",p,9,t),T("Delegation Fee",`${c/1e4} %`),E("Start",l),E("End",d)),o.push({title:"Staking Details",items:u}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessValidatorDetailSection");var xt=a((e,t)=>{let r=[],{txFee:n,nodeID:o,start:s,end:i,subnetID:c}=e,l=[v("Subnet ID",c),v("Node ID",o),E("Start Date",s),E("End Date",i)];return r.push({title:"Staking Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"addSubnetValidatorDetailSection");var At=a((e,t)=>{let r=[],{txFee:n,chainID:o,managerAddress:s,subnetID:i,validators:c}=e,l=[v("Subnet ID",i),v("Chain ID",o),R("Manager Address",s)];return r.push({title:"L1 Details",items:l}),c.forEach(({balance:d,stake:p,nodeId:m,remainingBalanceOwners:u,deactivationOwners:y},f)=>{let I=[v("Node ID",m),h("Balance",d,9,t),h("Stake",p,9,t)];y.length>0&&I.push(T(`${y.length>1?"Owners":"Owner"} Able to Deactivate`,y.join(`
|
|
21
|
-
`),"vertical")),
|
|
22
|
-
`),"vertical")),r.push({title:f===0?"Validators":void 0,items:I});}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"convertSubnetToL1DetailSection");var Tt=a((e,t)=>{let r=[],{txFee:n,amount:o,chain:s,destination:i,type:c}=e;return r.push({items:[T("Source Chain",`Avalanche ${B[s]}`),T("Target Chain",`Avalanche ${B[i]}`)]}),r.push({items:[T("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),h("Amount",o,9,t)]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"exportDetailSection");var vt=a((e,t)=>{let r=[],{txFee:n,amount:o,chain:s,source:i,type:c}=e;return r.push({items:[T("Source Chain",`Avalanche ${B[i]}`),T("Destination Chain",`Avalanche ${B[s]}`)]}),r.push({items:[T("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),h("Amount",o,9,t)]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"importDetailSection");var It=a((e,t)=>{let r=[],{txFee:n,nodeID:o,subnetID:s}=e,i=[v("Node ID",o),v("Subnet ID",s)];return r.push({title:"Staking Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"removeSubnetValidatorDetailSection");var Dt=a((e,t)=>{let r=[],{txFee:n,chain:o,outputs:s,memo:i}=e;return r.push({title:"Chain Details",items:[T("Active chain",`Avalanche ${B[o]}`)]}),s.forEach((c,l)=>{let d=c.owners.flatMap(p=>[R("To",p),h("Amount",c.amount,9,t)]);c.owners.length>1&&d.push(T("Threshold",c.threshold.toString())),r.push({title:l===0?"Balance Change":void 0,items:d});}),o!==avalanchejs.PVM&&i&&r.push({title:"Memo",items:[i]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"chainDetailSection");var St=a((e,t)=>{let r=[],{txFee:n,threshold:o,controlKeys:s}=e;return r.push({title:"L1 Details",items:[jt(s.length>1?"Owners":"Owner",s),T("Signature Threshold",`${o}/${s.length}`,"horizontal")]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"subnetDetailSection");var Da=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"),kt=a((e,t)=>{let r=[],{txFee:n,chainID:o,chainName:s,vmID:i,genesisData:c}=e,l=[T("Blockchain name",s,"vertical"),T("Blockchain ID",o,"vertical"),T("Virtual Machine ID",i,"vertical"),nt("Genesis Data",Da(c))];return r.push({title:"Blockchain Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"blockChainDetailSection");var Pt=a((e,t)=>{let r=[],{txFee:n,validationId:o}=e,s=[v("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 bt=a((e,t)=>{let r=[],{txFee:n,balance:o,validationId:s}=e,i=[v("Validation ID",s),h("Increase by amount",o,9,t)];return r.push({title:"L1 Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"increaseL1ValidatorBalanceDetailSection");var Ct=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 wt=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 Sa=60*60*24,mr=1e4,Nt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,stake:c,delegationFee:l,autoCompoundRewardShares:d,period:p}=e,m={items:[R("Account",n),ie("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(m);let u=[v("Node",i),h("Stake Amount",c,9,t),T("Delegation fee",`${l/mr} %`),T("Cycle duration",`${Number(p)/Sa} days`),T("Compound rewards percentage",`${d/mr} %`)];return o.push({title:"Staking Details",items:u}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addAutoRenewedValidatorDetailSection");var ka=60*60*24,Pa=1e4,Rt=a((e,t)=>{let r=[],{txFee:n,txId:o,autoCompoundRewardShares:s,period:i}=e,c=[v("Validator Tx ID",o),T("Cycle duration",`${Number(i)/ka} days`),T("Compound rewards percentage",`${s/Pa} %`)];return r.push({title:"Staking Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setAutoRenewedValidatorConfigDetailSection");var Xe=a((e,t,r)=>{if(lr(e))return Dt(e,t);if(dt(e))return Tt(e,t);if(pt(e))return vt(e,t);if(pr(e))return St(e,t);if(ct(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessDelegator");return ft({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(lt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessValidator");return yt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else {if(dr(e))return kt(e,t);if(mt(e))return xt(e,t);if(ut(e))return It(e,t);if(nr(e))return At(e,t);if(or(e))return Pt(e,t);if(sr(e))return bt(e,t);if(ir(e))return Ct(e,t);if(cr(e))return wt(e,t);if(ht(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddAutoRenewedValidator");return Nt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(gt(e))return Rt(e,t)}},"getTransactionDetailSections");var gr=a(e=>e.chainInfo.chainName===glacierSdk.PrimaryNetworkChainName.P_CHAIN,"isPChainTransactions"),fr=a(e=>e.chainInfo.chainName===glacierSdk.PrimaryNetworkChainName.X_CHAIN,"isXChainTransactions");function de(e,t,r="tx"){return `${e}/${r}/${t}`}a(de,"getExplorerAddressByNetwork");function Z({amount:e,decimals:t}){return e===void 0?new G__default.default(0):new G__default.default(e/10**t)}a(Z,"getTokenValue");var ba=zod.z.object({currentAddress:zod.z.string({required_error:"No active account found"}),currentEvmAddress:zod.z.string().optional(),xpubXP:zod.z.string({invalid_type_error:"xpubXP must be a string"}).optional()}),Ca=zod.z.object({account:zod.z.object({xpAddress:zod.z.string({required_error:"XP address is required",invalid_type_error:"XP address must be a string"}),evmAddress:zod.z.string().optional(),xpubXP:zod.z.string({invalid_type_error:"xpubXP must be a string"}).optional(),externalXPAddresses:zod.z.array(zod.z.object({index:zod.z.number(),address:zod.z.string()}))})}),wa=a(e=>({xpAddress:e.currentAddress,evmAddress:e.currentEvmAddress,xpubXP:e.xpubXP,externalXPAddresses:[]}),"getAccountFromLegacyContext"),Na=a(e=>e.account,"getAccountFromNewContext"),Ra=a(e=>e!=null&&typeof e=="object"&&"account"in e&&e.account!=null&&typeof e.account=="object","hasAccountField"),He=a(e=>{if(!e)return {success:!1,error:"Missing Avalanche transaction context"};if(Ra(e)){let{success:o,data:s,error:i}=Ca.safeParse(e);return o?{success:!0,data:Na(s)}:{success:!1,error:i.errors[0]?.message||"Invalid or missing Avalanche transaction context"}}let{success:t,data:r,error:n}=ba.safeParse(e);return t?{success:!0,data:wa(r)}:{success:!1,error:n.errors[0]?.message||"Invalid or missing Avalanche transaction context"}},"getAccountFromContext");var xr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o})=>{let s=tr(e.params);if(!s.success)return {error:rpcErrors.rpcErrors.invalidParams(Q("Transaction params are invalid",s.error))};try{let{transactionHex:i,chainAlias:c,externalIndices:l,internalIndices:d,utxos:p}=s.data,m=coreWalletsSdk.Avalanche.getVmByChainAlias(c),u=avalanchejs.utils.hexToBuffer(i),y=t.isTestnet??!1,f=await S(t),I=He(e.context);if(!I.success)return {error:rpcErrors.rpcErrors.invalidParams(I.error)};let{xpAddress:b,xpubXP:V,externalXPAddresses:L}=I.data,q=Fe({utxoHexes:p,vm:m}),re=X(),ae=q.length?q:await coreWalletsSdk.Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:c,network:y?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,url:n,token:re,headers:{...z(o),...re?{"x-api-key":re}:{}}}),ne;if(c==="C")ne=await coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:u,vm:m,utxos:ae,fromAddress:b});else {let Ae=avalanchejs.utils.unpackWithManager(m,u);if(V!==void 0&&typeof V!="string")return {error:rpcErrors.rpcErrors.invalidParams("xpubXP must be a string")};let Je=await it({indices:l??[],chainAlias:c,isChange:!1,network:t,xpubXP:V,externalXPAddresses:L}),Yr=await it({indices:d??[],chainAlias:c,isChange:!0,network:t,xpubXP:V,externalXPAddresses:L}),Qr=[...new Set([b,...Je,...Yr])].map(Zr=>avalanchejs.utils.parse(Zr)[2]);ne=await coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:Ae,utxos:ae,provider:f,fromAddressBytes:Qr});}let fe=await coreWalletsSdk.Avalanche.parseAvalancheTx(ne,f,b),Re=Oe(fe),ye=ar(fe);if(fe.type==="unknown"||Re===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let Ve={type:vmModuleTypes.RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(ne.toJSON()),data:fe,vm:m,externalIndices:l,internalIndices:d},Ee=Xe(Re,t.networkToken.symbol,{network:t,signerAccount:b});if(Ee===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Be={title:ye,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ee,networkFeeSelector:!1},xe=await r.requestApproval({request:e,displayData:Be,signingData:Ve});if("error"in xe)return {error:xe.error};let _;try{_=await Ma(f,xe,m);}catch(Ae){return {error:rpcErrors.rpcErrors.internal(Q("Unable to broadcast transaction",Ae))}}return La({explorerUrl:t.explorerUrl??"",provider:f,txHash:_,vm:m,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:_}}catch(i){return console.error(i),{error:rpcErrors.rpcErrors.internal(Q("Unable to create transaction",i))}}},"avalancheSendTransaction"),Ma=a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let{txID:n}=await e.issueTxHex(t.signedData,r);return n},"getTxHash"),La=a(async({explorerUrl:e,provider:t,txHash:r,vm:n,onTransactionPending:o,onTransactionConfirmed:s,onTransactionReverted:i,request:c})=>{let d=de(e,r);try{o({txHash:r,request:c,explorerLink:d}),n===avalanchejs.PVM?(await W({operation:()=>t.getApiP().getTxStatus({txID:r}),isSuccess:m=>["Committed","Dropped"].includes(m.status),maxRetries:7})).status==="Committed"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c}):n===avalanchejs.AVM?(await W({operation:()=>t.getApiX().getTxStatus({txID:r}),isSuccess:m=>["Accepted","Rejected"].includes(m.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c}):(await W({operation:()=>t.getApiC().getAtomicTxStatus(r),isSuccess:m=>["Accepted","Dropped"].includes(m.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c});}catch(p){console.error(p),p instanceof Error&&p.message.startsWith("Max retry exceeded.")||i({txHash:r,request:c});}},"waitForTransactionReceipt");var _a=zod.z.union([zod.z.tuple([zod.z.string()]).describe("message to sign"),zod.z.tuple([zod.z.string().describe("message to sign"),zod.z.number().nonnegative().describe("account index")])]),Ar=a(e=>_a.safeParse(e),"parseRequestParams");var vr=a(async({request:e,network:t,approvalController:r})=>{let n=Ar(e.params);if(!n.success)return console.error("invalid params",n.error),{error:rpcErrors.rpcErrors.invalidParams(Q("Params are invalid",n.error))};let[o,s]=n.data,i=Buffer.from(o,"utf-8").toString("hex"),c={type:vmModuleTypes.RpcMethod.AVALANCHE_SIGN_MESSAGE,data:i,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:c});return "error"in d?{error:d.error}:"signedData"in d?{result:d.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"avalancheSignMessage");var Fa=zod.z.object({from:zod.z.string().optional().describe("Avalanche receiving address"),transactionHex:zod.z.string(),chainAlias:zod.z.enum(["X","P","C"]),utxos:zod.z.string().array().optional()}),Ir=a(e=>Fa.safeParse(e),"parseRequestParams");var Pr=a(async({vm:e,txBytes:t,utxos:r,currentAddress:n,currentEvmAddress:o,provider:s})=>{let i,c,l=avalanchejs.utils.unpackWithManager(e,t);if(avalanchejs.evmSerial.isExportTx(l)){let d=l.ins[0]?.address.toHex();if(!o)throw rpcErrors.rpcErrors.invalidRequest("Missing EVM address");if(d?.toLowerCase()!==o.toLowerCase())throw new Error("This account has nothing to sign");return coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n})}try{let p=avalanchejs.utils.getManagerForVM(e).unpack(t,avalanchejs.avaxSerial.SignedTx);avalanchejs.evmSerial.isImportTx(l)?c=await coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n}):c=await coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:p.getCredentials(),utxos:r}),i=l.getSigIndices().map((m,u)=>new avalanchejs.Credential(coreWalletsSdk.Avalanche.populateCredential(m,{unsignedTx:c,credentialIndex:u})));}catch{i=l.getSigIndices().map(p=>new avalanchejs.Credential(coreWalletsSdk.Avalanche.populateCredential(p)));}return coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:i,utxos:r})},"getUnsignedOrPartiallySignedTx");var Cr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o})=>{let s=Ir(e.params);if(!s.success)return console.error("invalid params",s.error),{error:rpcErrors.rpcErrors.invalidParams("Params are invalid")};let{transactionHex:i,chainAlias:c,from:l,utxos:d}=s.data,p=coreWalletsSdk.Avalanche.getVmByChainAlias(c),m=t.isTestnet??!1,u=await S(t),y=He(e.context);if(!y.success)return {error:rpcErrors.rpcErrors.invalidParams(y.error)};let{xpAddress:f,evmAddress:I}=y.data,b=Fe({utxoHexes:d,vm:p}),V=X(),L=b.length?b:await coreWalletsSdk.Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:c,network:m?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,url:n,token:V,headers:{...z(o),...V?{"x-api-key":V}:{}}}),q=await Pr({txBytes:avalanchejs.utils.hexToBuffer(i),vm:p,utxos:L,currentAddress:f,currentEvmAddress:I,provider:u}),re=avalanchejs.utils.addressesFromBytes([avalanchejs.utils.parse(l??f)[2]])[0];if(!re)return {error:rpcErrors.rpcErrors.invalidRequest("Missing signer address")};let ae=q.getSigIndicesForAddress(re);if(!ae)return {error:rpcErrors.rpcErrors.invalidRequest("This account has nothing to sign")};let ne=q.getSigIndices();if(!ae.some(([Ae,Je])=>ne[Ae]?.includes(Je)))return {error:rpcErrors.rpcErrors.invalidRequest("This account has nothing to sign")};let Re=l??f,ye=await coreWalletsSdk.Avalanche.parseAvalancheTx(q,u,l??f),Ve=Oe(ye);if(ye.type==="unknown"||Ve===void 0)return {error:rpcErrors.rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let Ee={type:vmModuleTypes.RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:ye,vm:p,unsignedTxJson:JSON.stringify(q.toJSON()),ownSignatureIndices:ae},Be=Xe(Ve,t.networkToken.symbol,{network:t,signerAccount:Re});if(Be===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let xe={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:Be},_=await r.requestApproval({request:e,displayData:xe,signingData:Ee});return "error"in _?{error:_.error}:"signedData"in _?{result:_.signedData}:{error:rpcErrors.rpcErrors.invalidRequest("No signed data returned")}},"avalancheSignTransaction");var te=a(({accountIndex:e,derivationPathType:t,addressIndex:r=0})=>{if(e<0)throw rpcErrors.rpcErrors.invalidParams("Account index must be a non-negative integer");if(r!==void 0&&r<0)throw rpcErrors.rpcErrors.invalidParams("Address index must be a non-negative integer");switch(t){case"bip44":return {[vmModuleTypes.NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[vmModuleTypes.NetworkVMType.CoreEth]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[vmModuleTypes.NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[vmModuleTypes.NetworkVMType.CoreEth]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var Lt=a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var wr=a(async e=>{let{approvalController:t,network:r,secretId:n}=e,o=Lt(e)?te(e).AVM:void 0,s=Lt(e)?te(e).CoreEth:void 0,i=await S(r),c=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?{[vmModuleTypes.NetworkVMType.CoreEth]:i.getAddress(Buffer.from(l,"hex"),"C")}:{},p=c?{[vmModuleTypes.NetworkVMType.AVM]:i.getAddress(Buffer.from(c,"hex"),"X"),[vmModuleTypes.NetworkVMType.PVM]:i.getAddress(Buffer.from(c,"hex"),"P")}:{};return {...d,...p}},"deriveAddress");var Nr=a(async e=>{let{approvalController:t,network:r,secretId:n,accountIndices:o,derivationPathType:s,addressIndex:i}=e;if(o.length===0)return [];await cryptoSdk.init();let c=await Promise.all(o.map(async d=>{let p=te({accountIndex:d,derivationPathType:s,addressIndex:i}),[m,u]=await Promise.all([t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:p.AVM}),t.requestPublicKey({curve:"secp256k1",secretId:n,derivationPath:p.CoreEth})]);return {xp:Uint8Array.from(Buffer.from(m,"hex")),evm:Uint8Array.from(Buffer.from(u,"hex"))}}));return (await cryptoSdk.deriveAddressesForAvalanche(c.map(d=>d.xp),c.map(d=>d.evm),!!r.isTestnet)).map(d=>({[vmModuleTypes.NetworkVMType.AVM]:d.x,[vmModuleTypes.NetworkVMType.PVM]:d.p,[vmModuleTypes.NetworkVMType.CoreEth]:d.coreEth}))},"deriveAddresses");var Vr=a(async({accountIndex:e,xpubXP:t,walletType:r,network:n})=>{if(!n)throw rpcErrors.rpcErrors.invalidParams("network is required to get address");if(t===void 0)throw rpcErrors.rpcErrors.invalidParams("xpubXP is required to get address");let o=await S(n),s;switch(r){case vmModuleTypes.WalletType.Mnemonic:case vmModuleTypes.WalletType.Ledger:case vmModuleTypes.WalletType.Keystone:{s=coreWalletsSdk.Avalanche.getAddressPublicKeyFromXpub(t,e);break}case vmModuleTypes.WalletType.LedgerLive:case vmModuleTypes.WalletType.Seedless:{s=Buffer.from(t,"hex");break}default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}return {[vmModuleTypes.NetworkVMType.AVM]:o.getAddress(s,"X"),[vmModuleTypes.NetworkVMType.PVM]:o.getAddress(s,"P")}},"getAddress");var Ot=class Ot extends Error{constructor(){super(...arguments);$(this,"message","Glacier is unhealthy. Try again later.");}};a(Ot,"GlacierUnhealthyError");var qe=Ot,Xt=class Xt{constructor({glacierApiUrl:t,headers:r}){$(this,"glacierSdk");$(this,"isGlacierHealthy",!0);$(this,"isHealthy",a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new glacierSdk.Glacier({BASE:t,HEADERS:r},Ie);}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 qe&&this.setGlacierToUnhealthy(),r}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(r){throw r instanceof qe&&this.setGlacierToUnhealthy(),r}}};a(Xt,"AvalancheGlacierService");var $e=Xt;var Er=a(e=>Object.keys(e).includes("unlockedUnstaked"),"isPchainBalance"),Br=a(e=>Object.keys(e).includes("locked"),"isXchainBalance");function We(e,t){let r=Object.values(e).reduce(function(n,o){let s=o.reduce(function(i,c){if(c.assetId!==t)return i;let l=Number(c.amount);return i+l},0);return n+s},0);return BigInt(r)}a(We,"calculateAvaxTotalBalance");var Lr=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:i,avaxAssetId:c})=>{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 f in d){let I=d[f];if(!I||!I.length){l[f]=0n;continue}I.forEach(b=>{if(b.assetId!==c)return;let L=(l[f]??0n)+BigInt(b.amount);l[f]=L;});}let p=new coreUtilsSdk.TokenUnit(l.unlockedUnstaked?l.unlockedUnstaked:0n,t.decimals,t.symbol),m=r?p.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,u=new coreUtilsSdk.TokenUnit(We(e,c),t.decimals,t.symbol),y=r?u.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:vmModuleTypes.TokenType.NATIVE,priceInCurrency:r,balance:u.toSubUnit(),balanceInCurrency:y,balanceDisplayValue:u.toDisplay(),balanceCurrencyDisplayValue:y?.toFixed(2),available:p.toSubUnit(),availableInCurrency:m,availableDisplayValue:p.toDisplay(),availableCurrencyDisplayValue:m?.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:i}},"convertPChainBalance");var Ur=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:i,avaxAssetId:c})=>{let l={},d={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let f in d){let I=d[f];if(!I||!I.length){l[f]=0n;continue}I.forEach(b=>{if(b.assetId!==c)return;let L=(l[f]??0n)+BigInt(b.amount);l[f]=L;});}let p=new coreUtilsSdk.TokenUnit(l.unlocked?l.unlocked:0n,t.decimals,t.symbol),m=r?p.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,u=new coreUtilsSdk.TokenUnit(We(e,c),t.decimals,t.symbol),y=r!==void 0?u.mul(r):void 0;return {...t,coingeckoId:i,type:vmModuleTypes.TokenType.NATIVE,priceInCurrency:r,balance:u.toSubUnit(),balanceInCurrency:y?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:u.toDisplay(),balanceCurrencyDisplayValue:y?.toDisplay({fixedDp:2}),available:p.toSubUnit(),availableInCurrency:m,availableDisplayValue:p.toDisplay(),availableCurrencyDisplayValue:m?.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 Xr=a(async({addresses:e,currency:t,network:r,glacierService:n,tokenService:o})=>{let s=await S(r);if(!n.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let c=t.toLowerCase(),l=e[0]??"",d=r.networkToken,p=r.pricingProviders?.coingecko.nativeTokenId,m=r.vmName===vmModuleTypes.NetworkVMType.PVM?glacierSdk.BlockchainId.P_CHAIN:glacierSdk.BlockchainId.X_CHAIN,u=r.isDevnet?null:r.isTestnet?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET;if(!u)return Promise.reject("Glacier does not supported local devnets");let y=await n.getChainBalance({blockchainId:m,network:u,addresses:e.join(",")}).then(b=>b.balances),f=await o.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:c}),I;return Er(y)?(I=Lr({balance:y,networkToken:d,priceInCurrency:f.priceInCurrency??void 0,marketCap:f.marketCap??void 0,vol24:f.vol24??void 0,change24:f.change24??void 0,coingeckoId:p??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:I}}):Br(y)?(I=Ur({balance:y,networkToken:d,priceInCurrency:f.priceInCurrency??void 0,marketCap:f.marketCap??void 0,vol24:f.vol24??void 0,change24:f.change24??void 0,coingeckoId:p??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:I}}):Promise.reject("Incorrect type balance was returned from glacier")},"getBalances");async function Hr(e){let{vmName:t}=e,r=await S(e);if(t===vmModuleTypes.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)),i=Math.min(1,Math.max(o*2,.3)),c=1+s,l=1+i;return {baseFee:n,low:{maxFeePerGas:n},medium:{maxFeePerGas:n*BigInt(Math.round(100*c))/100n},high:{maxFeePerGas:n*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}a(Hr,"getNetworkFee");function qr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(u=>u.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(u=>u.addresses)||[]),l=Qa({tx:e,isTestnet:s,networkToken:r,froms:i}),d=Za({tx:e,isTestnet:s,networkToken:r}),p=t.toLowerCase().startsWith("p-")?t.slice(2):t,m=i.has(p);return {hash:e.txHash,isContractCall:!1,isIncoming:!m,isOutgoing:m,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:m,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:vmModuleTypes.TokenType.NATIVE,amount:l.toString()}],gasUsed:d.toString(),explorerLink:de(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(qr,"convertPChainTransaction");function Qa({tx:e,isTestnet:t,networkToken:r,froms:n}){let o=["ImportTx","ExportTx"].includes(e.txType),s=e.txType==="BaseTx",i=e.emittedUtxos.filter(u=>u.asset.assetId===Pe(!!t)&&!u.addresses.some(y=>n.has(y))).reduce((u,y)=>u.add(y.asset.amount),new G__default.default(0)),c=e.value.find(u=>u.assetId===Pe(!!t))?.amount,l=i.gt(new G__default.default(0))?i:c?new G__default.default(c):new G__default.default(0)??new G__default.default(0),d=t?coreWalletsSdk.Avalanche.FujiContext.pBlockchainID:coreWalletsSdk.Avalanche.MainnetContext.pBlockchainID,p=e.emittedUtxos.filter(u=>u.asset.assetId===Pe(!!t)&&(e.txType==="ImportTx"&&u.consumedOnChainId===d||e.txType==="ExportTx"&&u.consumedOnChainId!==d)).reduce((u,y)=>u.add(y.amount),new G__default.default(0)),m=s?l:o?p:e.amountStaked.length===0?Gr(e.value,!!t):Gr(e.amountStaked,!!t);return Z({amount:m?.toNumber(),decimals:r.decimals})}a(Qa,"getAmount");function Za({tx:e,isTestnet:t,networkToken:r}){let n=e.amountBurned?.filter(o=>o.assetId===Pe(!!t)).reduce((o,s)=>o.add(s.amount),new G__default.default(0));return Z({amount:n?.toNumber(),decimals:r.decimals})}a(Za,"getBurnedAmount");function Gr(e,t){return e.filter(r=>r.assetId===Pe(t)).reduce((r,n)=>r.add(n.amount),new G__default.default(0))}a(Gr,"aggregateValue");function Pe(e){return e?coreWalletsSdk.Avalanche.FujiContext.avaxAssetID:coreWalletsSdk.Avalanche.MainnetContext.avaxAssetID}a(Pe,"getAvaxAssetId");function $r({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(f=>f.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(f=>f.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,d=["ImportTx","ExportTx"].includes(e.txType),{amount:p,isSender:m}=tn({tx:e,isTestnet:s,networkToken:r,chainAddress:l,isImportExport:d}),u=rn({isTestnet:s,tx:e,networkToken:r}),y=d?p.toString():m?p.minus(u).toString():p.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!m,isOutgoing:m,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:m,timestamp:e.timestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:vmModuleTypes.TokenType.NATIVE,amount:y}],gasUsed:u.toString(),explorerLink:de(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a($r,"convertXChainTransaction");function tn({tx:e,isTestnet:t,networkToken:r,chainAddress:n,isImportExport:o}){if(o){let d=t?coreWalletsSdk.Avalanche.FujiContext.xBlockchainID:coreWalletsSdk.Avalanche.MainnetContext.xBlockchainID,p=e.emittedUtxos.filter(m=>m.asset.assetId===Ce(!!t)&&(e.txType==="ImportTx"&&m.consumedOnChainId===d||e.txType==="ExportTx"&&m.consumedOnChainId!==d)).reduce((m,u)=>m.add(u.asset.amount),new G__default.default(0));return {amount:Z({amount:p.toNumber(),decimals:r.decimals}),isSender:!0}}let s=e.consumedUtxos.filter(d=>d.asset.assetId===Ce(!!t)&&d.addresses.includes(n)).reduce((d,p)=>d.add(p.asset.amount),new G__default.default(0)),i=e.emittedUtxos.filter(d=>d.asset.assetId===Ce(!!t)&&d.addresses.includes(n)).reduce((d,p)=>d.add(p.asset.amount),new G__default.default(0)),c=s.gte(i),l=c?s.minus(i):i.minus(s);return {amount:Z({amount:l.toNumber(),decimals:r.decimals}),isSender:c}}a(tn,"getAmount");function rn({isTestnet:e,tx:t,networkToken:r}){let n=t.amountUnlocked.filter(i=>i.assetId===Ce(!!e)).reduce((i,c)=>i.add(c.amount),new G__default.default(0)),o=t.amountCreated.filter(i=>i.assetId===Ce(!!e)).reduce((i,c)=>i.add(c.amount),new G__default.default(0)),s=n.minus(o);return Z({amount:s.toNumber(),decimals:r.decimals})}a(rn,"getBurnedAmount");function Ce(e){return e?coreWalletsSdk.Avalanche.FujiContext.avaxAssetID:coreWalletsSdk.Avalanche.MainnetContext.avaxAssetID}a(Ce,"getAvaxAssetId");var Kr=a(async({address:e,nextPageToken:t,offset:r,network:n,glacierService:o})=>{let{isTestnet:s,networkToken:i,explorerUrl:c,chainId:l}=n;if(!o.isHealthy())return {transactions:[],nextPageToken:""};let p=n.isTestnet?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,m=await o.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:nn(e),network:p,pageSize:r,pageToken:t,sortOrder:glacierSdk.SortOrder.DESC}),u=[];return gr(m)&&(u=m.transactions.map(y=>qr({tx:y,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:l}))),fr(m)&&(u=m.transactions.map(y=>$r({tx:y,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:l}))),{transactions:u,nextPageToken:m.nextPageToken}},"getTransactionHistory"),nn=a(e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?glacierSdk.BlockchainId.P_CHAIN:glacierSdk.BlockchainId.X_CHAIN,"getBlockchainIdByAddress");function Jr({blockchainId:e,isTestnet:t}){let r=t?"fuji"+e:e,n=on__default.default.createHash("sha256").update(r).digest("base64");return "avax:"+sn(n).substring(0,32)}a(Jr,"hashBlockchainId");var sn=a(e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),"convertBase64ToBase64Url");var ue,we,he,M,ge,Ne,Gt=class Gt{constructor({approvalController:t,environment:r,appInfo:n,runtime:o}){D(this,ue,void 0);D(this,we,void 0);D(this,he,void 0);D(this,M,void 0);D(this,ge,void 0);D(this,Ne,void 0);let{glacierApiUrl:s,proxyApiUrl:i}=er(r);C(this,ge,n),C(this,Ne,o),C(this,ue,new $e({glacierApiUrl:s,headers:z(n)})),C(this,we,i),C(this,he,s),C(this,M,t);}getProvider(t){return S(t)}getAddress({accountIndex:t,xpubXP:r,walletType:n,network:o}){return Vr({accountIndex:t,xpubXP:r,walletType:n,network:o})}getBalances({addresses:t,network:r,storage:n,currency:o}){let s=new ve({storage:n,proxyApiUrl:x(this,we),fetch:x(this,Ne)?.fetch});return Xr({addresses:t,currency:o,network:r,glacierService:x(this,ue),tokenService:s})}getManifest(){let t=vmModuleTypes.parseManifest(Qt);return t.success?t.data:void 0}getNetworkFee(t){return Hr(t)}getTransactionHistory({network:t,address:r,nextPageToken:n,offset:o}){return Kr({network:t,address:r,nextPageToken:n,offset:o,glacierService:x(this,ue)})}getTokens(t){return Promise.resolve([])}buildDerivationPath(t){return te(t)}async deriveAddress(t){return wr({...t,approvalController:x(this,M)})}async deriveAddresses(t){return Nr({...t,approvalController:x(this,M)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.AVALANCHE_SIGN_MESSAGE:return vr({request:t,network:r,approvalController:x(this,M)});case vmModuleTypes.RpcMethod.AVALANCHE_SIGN_TRANSACTION:return Cr({request:t,network:r,approvalController:x(this,M),glacierApiUrl:x(this,he),appInfo:x(this,ge)});case vmModuleTypes.RpcMethod.AVALANCHE_SEND_TRANSACTION:return xr({request:t,network:r,approvalController:x(this,M),glacierApiUrl:x(this,he),appInfo:x(this,ge)});default:return {error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:r}){return Jr({blockchainId:t,isTestnet:r})}};ue=new WeakMap,we=new WeakMap,he=new WeakMap,M=new WeakMap,ge=new WeakMap,Ne=new WeakMap,a(Gt,"AvalancheModule");var zr=Gt;var Fd=a(e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,"isTokenWithBalancePVM"),Od=a(e=>"balancePerType"in e&&"unlocked"in e.balancePerType,"isTokenWithBalanceAVM");
|
|
20
|
+
var qt=Object.defineProperty;var ea=(e,t,r)=>t in e?qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t)=>qt(e,"name",{value:t,configurable:!0});var $=(e,t,r)=>(ea(e,typeof t!="symbol"?t+"":t,r),r),ze=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var f=(e,t,r)=>(ze(e,t,"read from private field"),r?r.call(e):t.get(e)),D=(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);},b=(e,t,r,n)=>(ze(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var Ye=(e,t,r)=>(ze(e,t,"access private method"),r);function $t(e){let t,r=0;for(t=0;t<e.length;t++)r+=e.charCodeAt(t)*(t+1);return r}a($t,"charsum");function Qe(e){let t,r=0;for(t=0;t<e.length;t++){let n=$t(e[t]??"");r=r+65027/n;}return (""+r).slice(0,16)}a(Qe,"arrayHash");var W=a(async({operation:e,isSuccess:t,maxRetries:r=10,backoffPolicy:n=U.exponential()})=>{let o=0,s=0,i;for(;s<r;){s>0&&await ta(o);try{let l=await e(s);if(t(l))return l}catch(l){i=l;}o=n(s),s++;}let c=i?`Max retry exceeded. ${i}`:"Max retry exceeded.";throw new Error(c)},"retry"),Ze=class Ze{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,i=2*r*(Math.pow(2,o)-1);return s+i}}};a(Ze,"RetryBackoffPolicy");var U=Ze;function ta(e){return new Promise(t=>setTimeout(t,e))}a(ta,"delay");var et=a(e=>W({operation:t=>e(t>0),maxRetries:2,backoffPolicy:U.constant(1),isSuccess:t=>t?.status?.error_code!==429}),"coingeckoRetry");async function j(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(j,"fetchAndVerify");var tt=class tt{constructor(t,r){this.proxyApiUrl=t;this.fetchFn=r;}simplePrice(t){let r=new URLSearchParams(t);return j([`${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,o=new URLSearchParams(n);return j([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${r}?${o}`,{method:"POST",headers:{"Content-Type":"application/json"}}],vmModuleTypes.RawSimplePriceResponseSchema,this.fetchFn)}};a(tt,"CoingeckoProxyClient");var Te=tt;var ra=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())})),rt=class rt{constructor(t){this.proxyApiUrl=t;}watchlistToken(t){let r=new URLSearchParams(t);return j([`${this.proxyApiUrl}/watchlist/tokens?${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}],ra)}};a(rt,"WatchlistProxyClient");var Be=rt;var F,K,J,oe,at=class at{constructor({storage:t,proxyApiUrl:r,fetch:n}){D(this,F,void 0);D(this,K,void 0);D(this,J,void 0);D(this,oe,void 0);$(this,"transformSimplePriceResponse",a((t,r=[coreCoingeckoSdk.VsCurrencyType.USD])=>{let n={};return Object.keys(t).forEach(o=>{let s=t[o];n[o]={},r.forEach(i=>{n[o]={[i]:{price:s?.[i],change24:s?.[`${i}_24h_change`],vol24:s?.[`${i}_24h_vol`],marketCap:s?.[`${i}_market_cap`]}};});}),n},"transformSimplePriceResponse"));b(this,F,t),b(this,K,r),b(this,J,n??globalThis.fetch),b(this,oe,coreCoingeckoSdk.getBasicCoingeckoHttp(void 0,f(this,J)));}async getWatchlistDataForToken({tokenDetails:t,currency:r=coreCoingeckoSdk.VsCurrencyType.USD}){let n=(await new Be(f(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=[coreCoingeckoSdk.VsCurrencyType.USD]}){let n,s=`getSimplePrice-${t?`${Qe(t)}-${r.toString()}`:`${r.toString()}`}`;if(n=f(this,F)?.get?.(s),n)return n;try{n=await et(i=>this.simplePrice({coinIds:t,currencies:r,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:i}));}catch{n=void 0;}return f(this,F)?.set?.(s,n),n}async getPricesByAddresses(t,r,n=coreCoingeckoSdk.VsCurrencyType.USD){let o,i=`getPricesWithMarketDataByAddresses-${`${Qe(t)}-${r}-${n}`}`;if(o=f(this,F)?.get?.(i),o)return o;try{o=await et(c=>this.fetchPricesByAddresses({assetPlatformId:r,tokenAddresses:t,currency:n,useCoingeckoProxy:c}));}catch(c){console.error(c),o=void 0;}return f(this,F)?.set?.(i,o),o}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:r,currency:n=coreCoingeckoSdk.VsCurrencyType.USD,useCoingeckoProxy:o=!1}){if(o){let s=await new Te(f(this,K),f(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 coreCoingeckoSdk.simpleTokenPrice(f(this,oe),{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:o=!1,change24:s=!1,lastUpdated:i=!1,useCoingeckoProxy:c=!1,shouldThrow:l=!0}){if(c){let d=await new Te(f(this,K),f(this,J)).simplePrice({ids:t,vs_currencies:r,include_market_cap:n,include_24hr_vol:o,include_24hr_change:s,include_last_updated_at:i});return this.transformSimplePriceResponse(d,r)}return coreCoingeckoSdk.simplePrice(f(this,oe),{coinIds:t,currencies:r,marketCap:n,vol24:o,change24:s,lastUpdated:i,shouldThrow:l})}};F=new WeakMap,K=new WeakMap,J=new WeakMap,oe=new WeakMap,a(at,"TokenService");var ve=at;zod.object({date:zod.string(),usd:zod.record(zod.number())});var h=a((e,t,r,n)=>({label:e,type:vmModuleTypes.DetailItemType.CURRENCY,value:t,maxDecimals:r,symbol:n}),"currencyItem"),T=a((e,t,r="horizontal")=>({label:e,alignment:r,type:vmModuleTypes.DetailItemType.TEXT,value:t}),"textItem");var N=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS,value:t}),"addressItem"),jt=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.ADDRESS_LIST,value:t}),"addressListItem"),I=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NODE_ID,value:t}),"nodeIDItem"),nt=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.DATA,value:t}),"dataItem"),E=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.DATE,value:t}),"dateItem"),se=a((e,t)=>({label:e,type:vmModuleTypes.DetailItemType.NETWORK,value:t}),"networkItem");var z=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 Kt=process.env.GLACIER_API_KEY;var Me=a(()=>Kt,"getGlacierApiKey");var ma={rltoken:Me()},Y,Le,_e,zt,Ue,Yt,ot=class ot extends glacierSdk.FetchHttpRequest{constructor(r){super(r);D(this,_e);D(this,Ue);D(this,Y,0);D(this,Le,U.exponential());}request(r){let n={...ma,...r.query||{}},o={...r,query:Object.keys(n).length>0?n:void 0},s=a(()=>super.request(o),"getRequest");return f(this,Y)>0?Ye(this,Ue,Yt).call(this,s):Ye(this,_e,zt).call(this,s)}};Y=new WeakMap,Le=new WeakMap,_e=new WeakSet,zt=a(function(r){let n=r();return new glacierSdk.CancelablePromise((o,s,i)=>{i(()=>n.cancel()),n.then(c=>{b(this,Y,0),o(c);}).catch(c=>{if(c instanceof glacierSdk.ApiError){let l=c.status===429,d=c.status>=500&&c.status<600;b(this,Y,f(this,Y)+Number(l||d));}s(c);});})},"#request"),Ue=new WeakSet,Yt=a(function(r){let n=f(this,Le).call(this,f(this,Y));return new glacierSdk.CancelablePromise((o,s,i)=>{let c=setTimeout(()=>{let l=r();i(()=>{l.cancel(),clearTimeout(c);}),l.then(o).catch(s);},n);})},"#postponeRequest"),a(ot,"GlacierFetchHttpRequest");var Ie=ot;var Q=a((e,t)=>({message:`${e}${t instanceof Error?`: ${t.message}`:""}`,data:{cause:t}}),"rpcErrorOpts");var Qt={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 ha={glacierApiUrl:"https://core-proxy-api.avax.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api.avax.network"},ga={glacierApiUrl:"https://core-proxy-api.avax-test.network/v1/proxy/glacier",proxyApiUrl:"https://proxy-api-dev.avax.network"},er=a(e=>{switch(e){case vmModuleTypes.Environment.PRODUCTION:return ha;case vmModuleTypes.Environment.DEV:return ga}},"getEnv");var fa=zod.z.object({transactionHex:zod.z.string(),chainAlias:zod.z.enum(["X","P","C"]),externalIndices:zod.z.number().array().optional(),internalIndices:zod.z.number().array().optional(),utxos:zod.z.string().array().optional()}),tr=a(e=>fa.safeParse(e),"parseRequestParams");var S=a(async e=>{let{isTestnet:t,isDevnet:r,rpcUrl:n,customRpcHeaders:o}=e,s=o?{headers:o}:void 0;return r?coreWalletsSdk.Avalanche.JsonRpcProvider.fromBaseURL(n):t?coreWalletsSdk.Avalanche.JsonRpcProvider.getDefaultFujiProvider(s):coreWalletsSdk.Avalanche.JsonRpcProvider.getDefaultMainnetProvider(s)},"getProvider");var Fe=a(({utxoHexes:e=[],vm:t})=>{try{let r=avalanchejs.utils.getManagerForVM(t).getDefaultCodec();return e.map(n=>{let o=avalanchejs.utils.hexToBuffer(n);return avalanchejs.Utxo.fromBytes(o,r)[0]})}catch(r){return console.error("Error getting provided utxos",r),[]}},"getProvidedUtxos");var Oe=a(e=>{switch(e.type){case vmModuleTypes.TxType.AddPermissionlessDelegator:return {...e,type:vmModuleTypes.TxType.AddPermissionlessDelegator};case vmModuleTypes.TxType.AddPermissionlessValidator:return {...e,type:vmModuleTypes.TxType.AddPermissionlessValidator};case vmModuleTypes.TxType.AddSubnetValidator:return {...e,type:vmModuleTypes.TxType.AddSubnetValidator};case vmModuleTypes.TxType.CreateChain:return {...e,type:vmModuleTypes.TxType.CreateChain};case vmModuleTypes.TxType.CreateSubnet:return {...e,type:vmModuleTypes.TxType.CreateSubnet};case vmModuleTypes.TxType.RemoveSubnetValidator:return {...e,type:vmModuleTypes.TxType.RemoveSubnetValidator};case vmModuleTypes.TxType.AddAutoRenewedValidator:return {...e,type:vmModuleTypes.TxType.AddAutoRenewedValidator};case vmModuleTypes.TxType.SetAutoRenewedValidatorConfig:return {...e,type:vmModuleTypes.TxType.SetAutoRenewedValidatorConfig};case vmModuleTypes.TxType.ConvertSubnetToL1:return {...e,type:vmModuleTypes.TxType.ConvertSubnetToL1,chain:e.chain};case vmModuleTypes.TxType.SetL1ValidatorWeight:return {...e,type:vmModuleTypes.TxType.SetL1ValidatorWeight,chain:e.chain};case vmModuleTypes.TxType.DisableL1Validator:return {...e,type:vmModuleTypes.TxType.DisableL1Validator,chain:e.chain};case vmModuleTypes.TxType.IncreaseL1ValidatorBalance:return {...e,type:vmModuleTypes.TxType.IncreaseL1ValidatorBalance,chain:e.chain};case vmModuleTypes.TxType.RegisterL1Validator:return {...e,type:vmModuleTypes.TxType.RegisterL1Validator,chain:e.chain};case vmModuleTypes.TxType.Export:return {...e,type:vmModuleTypes.TxType.Export,chain:e.chain,destination:e.destination};case vmModuleTypes.TxType.Import:return {...e,type:vmModuleTypes.TxType.Import,chain:e.chain,source:e.source};case vmModuleTypes.TxType.Base:return {...e,type:vmModuleTypes.TxType.Base,chain:e.chain};default:return}},"parseTxDetails");var ar=a(e=>{switch(e.type){case vmModuleTypes.TxType.AddPermissionlessDelegator:return "Do you want to add this delegator?";case vmModuleTypes.TxType.AddPermissionlessValidator:return "Do you want to add this validator?";case vmModuleTypes.TxType.Export:return "Do you approve this export?";case vmModuleTypes.TxType.Import:return "Do you approve this import?";case vmModuleTypes.TxType.Base:return "Do you approve this transaction?";case vmModuleTypes.TxType.AddSubnetValidator:return "Do you want to add this subnet validator?";case vmModuleTypes.TxType.CreateChain:return "Do you want to create this chain?";case vmModuleTypes.TxType.CreateSubnet:return "Do you want to create this L1?";case vmModuleTypes.TxType.RemoveSubnetValidator:return "Do you want to remove this subnet validator?";case vmModuleTypes.TxType.ConvertSubnetToL1:return "Do you want to convert this subnet?";case vmModuleTypes.TxType.DisableL1Validator:return "Do you want to disable this validator?";case vmModuleTypes.TxType.IncreaseL1ValidatorBalance:return "Do you want to increase this validator balance?";case vmModuleTypes.TxType.RegisterL1Validator:return "Do you want to register this validator?";case vmModuleTypes.TxType.SetL1ValidatorWeight:return "Do you want to set this validator weight?";case vmModuleTypes.TxType.AddAutoRenewedValidator:return "Do you want to add this auto-renewed validator?";case vmModuleTypes.TxType.SetAutoRenewedValidatorConfig:return "Do you want to update this auto-renewed validator config?";default:return "Sign Message"}},"parseTxDisplayTitle");var it=a(async({indices:e,chainAlias:t,isChange:r,network:n,xpubXP:o,externalXPAddresses:s})=>{if(o){let i=await S(n);return e.map(c=>coreWalletsSdk.Avalanche.getAddressFromXpub(o,c,i,t,r))}return s&&Array.isArray(s)?e.map(c=>s.find(l=>l.index===c)).filter(c=>c!==void 0).map(c=>c.address):[]},"getAddressesByIndices");var ct=a(e=>e.type===vmModuleTypes.TxType.AddPermissionlessDelegator,"isAddPermissionlessDelegatorTx"),lt=a(e=>e.type===vmModuleTypes.TxType.AddPermissionlessValidator,"isAddPermissionlessValidatorTx"),dt=a(e=>e.type===vmModuleTypes.TxType.Export,"isExportTx"),pt=a(e=>e.type===vmModuleTypes.TxType.Import,"isImportTx"),Aa=a(e=>e.type===vmModuleTypes.TxType.Base,"isBaseTx"),mt=a(e=>e.type===vmModuleTypes.TxType.AddSubnetValidator,"isAddSubnetValidatorTx"),Ta=a(e=>e.type===vmModuleTypes.TxType.CreateChain,"isCreateChainTx"),va=a(e=>e.type===vmModuleTypes.TxType.CreateSubnet,"isCreateSubnetTx"),ut=a(e=>e.type===vmModuleTypes.TxType.RemoveSubnetValidator,"isRemoveSubnetValidatorTx"),nr=a(e=>e.type===vmModuleTypes.TxType.ConvertSubnetToL1,"isConvertSubnetToL1Tx"),or=a(e=>e.type===vmModuleTypes.TxType.DisableL1Validator,"isDisableL1ValidatorTx"),sr=a(e=>e.type===vmModuleTypes.TxType.IncreaseL1ValidatorBalance,"isIncreaseL1ValidatorBalanceTx"),ir=a(e=>e.type===vmModuleTypes.TxType.RegisterL1Validator,"isRegisterL1ValidatorTx"),cr=a(e=>e.type===vmModuleTypes.TxType.SetL1ValidatorWeight,"isSetL1ValidatorWeightTx"),ht=a(e=>e.type===vmModuleTypes.TxType.AddAutoRenewedValidator,"isAddAutoRenewedValidatorTx"),gt=a(e=>e.type===vmModuleTypes.TxType.SetAutoRenewedValidatorConfig,"isSetAutoRenewedValidatorConfigTx"),Yo=a(e=>ct(e)||lt(e)||mt(e)||ut(e)||ht(e)||gt(e),"isStakingDetails"),Qo=a(e=>dt(e)||pt(e),"isExportImportTxDetails"),lr=a(e=>Aa(e),"isChainDetails"),dr=a(e=>Ta(e),"isBlockchainDetails"),pr=a(e=>va(e),"isSubnetDetails");var M=(n=>(n.AVM="X-Chain",n.PVM="P-Chain",n.EVM="C-Chain",n))(M||{});var ft=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,start:c,end:l,stake:d}=e,m={items:[N("Account",n),se("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(m);let u=[I("Node",i),h("Stake Amount",d,9,t),E("Start",c),E("End",l)];return o.push({title:"Staking Details",items:u}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessDelegatorDetailSection");var yt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,delegationFee:c,start:l,end:d,stake:m}=e,u={items:[N("Account",n),se("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(u);let p=[I("Node",i)];return p.push(h("Stake Amount",m,9,t),T("Delegation Fee",`${c/1e4} %`),E("Start",l),E("End",d)),o.push({title:"Staking Details",items:p}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addPermissionlessValidatorDetailSection");var xt=a((e,t)=>{let r=[],{txFee:n,nodeID:o,start:s,end:i,subnetID:c}=e,l=[I("Subnet ID",c),I("Node ID",o),E("Start Date",s),E("End Date",i)];return r.push({title:"Staking Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"addSubnetValidatorDetailSection");var At=a((e,t)=>{let r=[],{txFee:n,chainID:o,managerAddress:s,subnetID:i,validators:c}=e,l=[I("Subnet ID",i),I("Chain ID",o),N("Manager Address",s)];return r.push({title:"L1 Details",items:l}),c.forEach(({balance:d,stake:m,nodeId:u,remainingBalanceOwners:p,deactivationOwners:y},A)=>{let v=[I("Node ID",u),h("Balance",d,9,t),h("Stake",m,9,t)];y.length>0&&v.push(T(`${y.length>1?"Owners":"Owner"} Able to Deactivate`,y.join(`
|
|
21
|
+
`),"vertical")),p.length>0&&v.push(T(`${p.length>1?"Owners":"Owner"} of the Remaining Balance`,p.join(`
|
|
22
|
+
`),"vertical")),r.push({title:A===0?"Validators":void 0,items:v});}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"convertSubnetToL1DetailSection");var Tt=a((e,t)=>{let r=[],{txFee:n,amount:o,chain:s,destination:i,type:c}=e;return r.push({items:[T("Source Chain",`Avalanche ${M[s]}`),T("Target Chain",`Avalanche ${M[i]}`)]}),r.push({items:[T("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),h("Amount",o,9,t)]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"exportDetailSection");var vt=a((e,t)=>{let r=[],{txFee:n,amount:o,chain:s,source:i,type:c}=e;return r.push({items:[T("Source Chain",`Avalanche ${M[i]}`),T("Destination Chain",`Avalanche ${M[s]}`)]}),r.push({items:[T("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),h("Amount",o,9,t)]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"importDetailSection");var It=a((e,t)=>{let r=[],{txFee:n,nodeID:o,subnetID:s}=e,i=[I("Node ID",o),I("Subnet ID",s)];return r.push({title:"Staking Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"removeSubnetValidatorDetailSection");var Dt=a((e,t)=>{let r=[],{txFee:n,chain:o,outputs:s,memo:i}=e;return r.push({title:"Chain Details",items:[T("Active chain",`Avalanche ${M[o]}`)]}),s.forEach((c,l)=>{let d=c.owners.flatMap(m=>[N("To",m),h("Amount",c.amount,9,t)]);c.owners.length>1&&d.push(T("Threshold",c.threshold.toString())),r.push({title:l===0?"Balance Change":void 0,items:d});}),o!==avalanchejs.PVM&&i&&r.push({title:"Memo",items:[i]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"chainDetailSection");var St=a((e,t)=>{let r=[],{txFee:n,threshold:o,controlKeys:s}=e;return r.push({title:"L1 Details",items:[jt(s.length>1?"Owners":"Owner",s),T("Signature Threshold",`${o}/${s.length}`,"horizontal")]}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"subnetDetailSection");var Da=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"),kt=a((e,t)=>{let r=[],{txFee:n,chainID:o,chainName:s,vmID:i,genesisData:c}=e,l=[T("Blockchain name",s,"vertical"),T("Blockchain ID",o,"vertical"),T("Virtual Machine ID",i,"vertical"),nt("Genesis Data",Da(c))];return r.push({title:"Blockchain Details",items:l}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"blockChainDetailSection");var Pt=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 bt=a((e,t)=>{let r=[],{txFee:n,balance:o,validationId:s}=e,i=[I("Validation ID",s),h("Increase by amount",o,9,t)];return r.push({title:"L1 Details",items:i}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"increaseL1ValidatorBalanceDetailSection");var Ct=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 wt=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 Sa=60*60*24,mr=1e4,Rt=a(({tx:e,symbol:t,network:r,signerAccount:n})=>{let o=[],{txFee:s,nodeID:i,stake:c,delegationFee:l,autoCompoundRewardShares:d,period:m}=e,u={items:[N("Account",n),se("Network",{name:r.chainName,logoUri:r.logoUri})]};o.push(u);let p=[I("Node",i),h("Stake Amount",c,9,t),T("Delegation fee",`${l/mr} %`),T("Cycle duration",`${Number(m)/Sa} days`),T("Compound rewards percentage",`${d/mr} %`)];return o.push({title:"Staking Details",items:p}),s&&o.push({title:"Network Fee",items:[h("Fee Amount",s,9,t)]}),o},"addAutoRenewedValidatorDetailSection");var ka=60*60*24,Pa=1e4,Nt=a((e,t)=>{let r=[],{txFee:n,txId:o,autoCompoundRewardShares:s,period:i}=e,c=[I("Validator Tx ID",o),T("Cycle duration",`${Number(i)/ka} days`),T("Compound rewards percentage",`${s/Pa} %`)];return r.push({title:"Staking Details",items:c}),n&&r.push({title:"Network Fee",items:[h("Fee Amount",n,9,t)]}),r},"setAutoRenewedValidatorConfigDetailSection");var He=a((e,t,r)=>{if(lr(e))return Dt(e,t);if(dt(e))return Tt(e,t);if(pt(e))return vt(e,t);if(pr(e))return St(e,t);if(ct(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessDelegator");return ft({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(lt(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddPermissionlessValidator");return yt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else {if(dr(e))return kt(e,t);if(mt(e))return xt(e,t);if(ut(e))return It(e,t);if(nr(e))return At(e,t);if(or(e))return Pt(e,t);if(sr(e))return bt(e,t);if(ir(e))return Ct(e,t);if(cr(e))return wt(e,t);if(ht(e)){if(!r)throw new Error("context (network, signerAccount) is required for AddAutoRenewedValidator");return Rt({tx:e,symbol:t,network:r.network,signerAccount:r.signerAccount})}else if(gt(e))return Nt(e,t)}},"getTransactionDetailSections");var gr=a(e=>e.chainInfo.chainName===glacierSdk.PrimaryNetworkChainName.P_CHAIN,"isPChainTransactions"),fr=a(e=>e.chainInfo.chainName===glacierSdk.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__default.default(0):new X__default.default(e/10**t)}a(Z,"getTokenValue");var ba=zod.z.object({currentAddress:zod.z.string({required_error:"No active account found"}),currentEvmAddress:zod.z.string().optional(),xpubXP:zod.z.string({invalid_type_error:"xpubXP must be a string"}).optional()}),Ca=zod.z.object({account:zod.z.object({xpAddress:zod.z.string({required_error:"XP address is required",invalid_type_error:"XP address must be a string"}),evmAddress:zod.z.string().optional(),xpubXP:zod.z.string({invalid_type_error:"xpubXP must be a string"}).optional(),externalXPAddresses:zod.z.array(zod.z.object({index:zod.z.number(),address:zod.z.string()}))})}),wa=a(e=>({xpAddress:e.currentAddress,evmAddress:e.currentEvmAddress,xpubXP:e.xpubXP,externalXPAddresses:[]}),"getAccountFromLegacyContext"),Ra=a(e=>e.account,"getAccountFromNewContext"),Na=a(e=>e!=null&&typeof e=="object"&&"account"in e&&e.account!=null&&typeof e.account=="object","hasAccountField"),Xe=a(e=>{if(!e)return {success:!1,error:"Missing Avalanche transaction context"};if(Na(e)){let{success:o,data:s,error:i}=Ca.safeParse(e);return o?{success:!0,data:Ra(s)}:{success:!1,error:i.errors[0]?.message||"Invalid or missing Avalanche transaction context"}}let{success:t,data:r,error:n}=ba.safeParse(e);return t?{success:!0,data:wa(r)}:{success:!1,error:n.errors[0]?.message||"Invalid or missing Avalanche transaction context"}},"getAccountFromContext");var xr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let i=tr(e.params);if(!i.success)return {error:rpcErrors.rpcErrors.invalidParams(Q("Transaction params are invalid",i.error))};try{let{transactionHex:c,chainAlias:l,externalIndices:d,internalIndices:m,utxos:u}=i.data,p=coreWalletsSdk.Avalanche.getVmByChainAlias(l),y=avalanchejs.utils.hexToBuffer(c),A=t.isTestnet??!1,v=await S(t),w=Xe(e.context);if(!w.success)return {error:rpcErrors.rpcErrors.invalidParams(w.error)};let{xpAddress:B,xpubXP:V,externalXPAddresses:q}=w.data,ge=Fe({utxoHexes:u,vm:p}),re=ge.length?ge:await coreWalletsSdk.Avalanche.getUtxosByTxFromGlacier({transactionHex:c,chainAlias:l,network:A?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,url:n,headers:{...z(o),...await s?.()}}),ae;if(l==="C")ae=await coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:y,vm:p,utxos:re,fromAddress:B});else {let Ae=avalanchejs.utils.unpackWithManager(p,y);if(V!==void 0&&typeof V!="string")return {error:rpcErrors.rpcErrors.invalidParams("xpubXP must be a string")};let Je=await it({indices:d??[],chainAlias:l,isChange:!1,network:t,xpubXP:V,externalXPAddresses:q}),Yr=await it({indices:m??[],chainAlias:l,isChange:!0,network:t,xpubXP:V,externalXPAddresses:q}),Qr=[...new Set([B,...Je,...Yr])].map(Zr=>avalanchejs.utils.parse(Zr)[2]);ae=await coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:Ae,utxos:re,provider:v,fromAddressBytes:Qr});}let fe=await coreWalletsSdk.Avalanche.parseAvalancheTx(ae,v,B),Re=Oe(fe),ye=ar(fe);if(fe.type==="unknown"||Re===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let Ne={type:vmModuleTypes.RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(ae.toJSON()),data:fe,vm:p,externalIndices:d,internalIndices:m},Ve=He(Re,t.networkToken.symbol,{network:t,signerAccount:B});if(Ve===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Ee={title:ye,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ve,networkFeeSelector:!1},xe=await r.requestApproval({request:e,displayData:Ee,signingData:Ne});if("error"in xe)return {error:xe.error};let _;try{_=await Ma(v,xe,p);}catch(Ae){return {error:rpcErrors.rpcErrors.internal(Q("Unable to broadcast transaction",Ae))}}return La({explorerUrl:t.explorerUrl??"",provider:v,txHash:_,vm:p,onTransactionPending:r.onTransactionPending,onTransactionConfirmed:r.onTransactionConfirmed,onTransactionReverted:r.onTransactionReverted,request:e}),{result:_}}catch(c){return console.error(c),{error:rpcErrors.rpcErrors.internal(Q("Unable to create transaction",c))}}},"avalancheSendTransaction"),Ma=a(async(e,t,r)=>{if("txHash"in t)return t.txHash;let{txID:n}=await e.issueTxHex(t.signedData,r);return n},"getTxHash"),La=a(async({explorerUrl:e,provider:t,txHash:r,vm:n,onTransactionPending:o,onTransactionConfirmed:s,onTransactionReverted:i,request:c})=>{let d=le(e,r);try{o({txHash:r,request:c,explorerLink:d}),n===avalanchejs.PVM?(await W({operation:()=>t.getApiP().getTxStatus({txID:r}),isSuccess:u=>["Committed","Dropped"].includes(u.status),maxRetries:7})).status==="Committed"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c}):n===avalanchejs.AVM?(await W({operation:()=>t.getApiX().getTxStatus({txID:r}),isSuccess:u=>["Accepted","Rejected"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c}):(await W({operation:()=>t.getApiC().getAtomicTxStatus(r),isSuccess:u=>["Accepted","Dropped"].includes(u.status),maxRetries:7})).status==="Accepted"?s({txHash:r,explorerLink:d,request:c}):i({txHash:r,request:c});}catch(m){console.error(m),m instanceof Error&&m.message.startsWith("Max retry exceeded.")||i({txHash:r,request:c});}},"waitForTransactionReceipt");var _a=zod.z.union([zod.z.tuple([zod.z.string()]).describe("message to sign"),zod.z.tuple([zod.z.string().describe("message to sign"),zod.z.number().nonnegative().describe("account index")])]),Ar=a(e=>_a.safeParse(e),"parseRequestParams");var vr=a(async({request:e,network:t,approvalController:r})=>{let n=Ar(e.params);if(!n.success)return console.error("invalid params",n.error),{error:rpcErrors.rpcErrors.invalidParams(Q("Params are invalid",n.error))};let[o,s]=n.data,i=Buffer.from(o,"utf-8").toString("hex"),c={type:vmModuleTypes.RpcMethod.AVALANCHE_SIGN_MESSAGE,data:i,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:c});return "error"in d?{error:d.error}:"signedData"in d?{result:d.signedData}:{error:rpcErrors.rpcErrors.internal("No signed data returned")}},"avalancheSignMessage");var Fa=zod.z.object({from:zod.z.string().optional().describe("Avalanche receiving address"),transactionHex:zod.z.string(),chainAlias:zod.z.enum(["X","P","C"]),utxos:zod.z.string().array().optional()}),Ir=a(e=>Fa.safeParse(e),"parseRequestParams");var Pr=a(async({vm:e,txBytes:t,utxos:r,currentAddress:n,currentEvmAddress:o,provider:s})=>{let i,c,l=avalanchejs.utils.unpackWithManager(e,t);if(avalanchejs.evmSerial.isExportTx(l)){let d=l.ins[0]?.address.toHex();if(!o)throw rpcErrors.rpcErrors.invalidRequest("Missing EVM address");if(d?.toLowerCase()!==o.toLowerCase())throw new Error("This account has nothing to sign");return coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n})}try{let m=avalanchejs.utils.getManagerForVM(e).unpack(t,avalanchejs.avaxSerial.SignedTx);avalanchejs.evmSerial.isImportTx(l)?c=await coreWalletsSdk.Avalanche.createAvalancheEvmUnsignedTx({txBytes:t,vm:e,utxos:r,fromAddress:n}):c=await coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:m.getCredentials(),utxos:r}),i=l.getSigIndices().map((u,p)=>new avalanchejs.Credential(coreWalletsSdk.Avalanche.populateCredential(u,{unsignedTx:c,credentialIndex:p})));}catch{i=l.getSigIndices().map(m=>new avalanchejs.Credential(coreWalletsSdk.Avalanche.populateCredential(m)));}return coreWalletsSdk.Avalanche.createAvalancheUnsignedTx({tx:l,provider:s,credentials:i,utxos:r})},"getUnsignedOrPartiallySignedTx");var Cr=a(async({request:e,network:t,approvalController:r,glacierApiUrl:n,appInfo:o,getAuthHeaders:s})=>{let i=Ir(e.params);if(!i.success)return console.error("invalid params",i.error),{error:rpcErrors.rpcErrors.invalidParams("Params are invalid")};let{transactionHex:c,chainAlias:l,from:d,utxos:m}=i.data,u=coreWalletsSdk.Avalanche.getVmByChainAlias(l),p=t.isTestnet??!1,y=await S(t),A=Xe(e.context);if(!A.success)return {error:rpcErrors.rpcErrors.invalidParams(A.error)};let{xpAddress:v,evmAddress:w}=A.data,B=Fe({utxoHexes:m,vm:u}),V=B.length?B:await coreWalletsSdk.Avalanche.getUtxosByTxFromGlacier({transactionHex:c,chainAlias:l,network:p?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,url:n,headers:{...z(o),...await s?.()}}),q=await Pr({txBytes:avalanchejs.utils.hexToBuffer(c),vm:u,utxos:V,currentAddress:v,currentEvmAddress:w,provider:y}),ge=avalanchejs.utils.addressesFromBytes([avalanchejs.utils.parse(d??v)[2]])[0];if(!ge)return {error:rpcErrors.rpcErrors.invalidRequest("Missing signer address")};let re=q.getSigIndicesForAddress(ge);if(!re)return {error:rpcErrors.rpcErrors.invalidRequest("This account has nothing to sign")};let ae=q.getSigIndices();if(!re.some(([Ae,Je])=>ae[Ae]?.includes(Je)))return {error:rpcErrors.rpcErrors.invalidRequest("This account has nothing to sign")};let Re=d??v,ye=await coreWalletsSdk.Avalanche.parseAvalancheTx(q,y,d??v),Ne=Oe(ye);if(ye.type==="unknown"||Ne===void 0)return {error:rpcErrors.rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let Ve={type:vmModuleTypes.RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:ye,vm:u,unsignedTxJson:JSON.stringify(q.toJSON()),ownSignatureIndices:re},Ee=He(Ne,t.networkToken.symbol,{network:t,signerAccount:Re});if(Ee===void 0)return {error:rpcErrors.rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let xe={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},_=await r.requestApproval({request:e,displayData:xe,signingData:Ve});return "error"in _?{error:_.error}:"signedData"in _?{result:_.signedData}:{error:rpcErrors.rpcErrors.invalidRequest("No signed data returned")}},"avalancheSignTransaction");var te=a(({accountIndex:e,derivationPathType:t,addressIndex:r=0})=>{if(e<0)throw rpcErrors.rpcErrors.invalidParams("Account index must be a non-negative integer");if(r!==void 0&&r<0)throw rpcErrors.rpcErrors.invalidParams("Address index must be a non-negative integer");switch(t){case"bip44":return {[vmModuleTypes.NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[vmModuleTypes.NetworkVMType.CoreEth]:`m/44'/60'/0'/0/${e}`};case"ledger_live":return {[vmModuleTypes.NetworkVMType.AVM]:`m/44'/9000'/${e}'/0/${r}`,[vmModuleTypes.NetworkVMType.CoreEth]:`m/44'/60'/${e}'/0/0`};default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported derivation path type: ${t}`)}},"buildDerivationPath");var Lt=a(e=>"derivationPathType"in e&&"accountIndex"in e&&typeof e.accountIndex=="number"&&typeof e.derivationPathType=="string","hasDerivationDetails");var wr=a(async e=>{let{approvalController:t,network:r,secretId:n}=e,o=Lt(e)?te(e).AVM:void 0,s=Lt(e)?te(e).CoreEth:void 0,i=await S(r),c=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?{[vmModuleTypes.NetworkVMType.CoreEth]:i.getAddress(Buffer.from(l,"hex"),"C")}:{},m=c?{[vmModuleTypes.NetworkVMType.AVM]:i.getAddress(Buffer.from(c,"hex"),"X"),[vmModuleTypes.NetworkVMType.PVM]:i.getAddress(Buffer.from(c,"hex"),"P")}:{};return {...d,...m}},"deriveAddress");var Rr=a(async e=>{let{approvalController:t,network:r,secretId:n,accountIndices:o,derivationPathType:s,addressIndex:i}=e;if(o.length===0)return [];await cryptoSdk.init();let c=await Promise.all(o.map(async d=>{let m=te({accountIndex:d,derivationPathType:s,addressIndex:i}),[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 cryptoSdk.deriveAddressesForAvalanche(c.map(d=>d.xp),c.map(d=>d.evm),!!r.isTestnet)).map(d=>({[vmModuleTypes.NetworkVMType.AVM]:d.x,[vmModuleTypes.NetworkVMType.PVM]:d.p,[vmModuleTypes.NetworkVMType.CoreEth]:d.coreEth}))},"deriveAddresses");var Vr=a(async({accountIndex:e,xpubXP:t,walletType:r,network:n})=>{if(!n)throw rpcErrors.rpcErrors.invalidParams("network is required to get address");if(t===void 0)throw rpcErrors.rpcErrors.invalidParams("xpubXP is required to get address");let o=await S(n),s;switch(r){case vmModuleTypes.WalletType.Mnemonic:case vmModuleTypes.WalletType.Ledger:case vmModuleTypes.WalletType.Keystone:{s=coreWalletsSdk.Avalanche.getAddressPublicKeyFromXpub(t,e);break}case vmModuleTypes.WalletType.LedgerLive:case vmModuleTypes.WalletType.Seedless:{s=Buffer.from(t,"hex");break}default:throw rpcErrors.rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}return {[vmModuleTypes.NetworkVMType.AVM]:o.getAddress(s,"X"),[vmModuleTypes.NetworkVMType.PVM]:o.getAddress(s,"P")}},"getAddress");var Ot=class Ot extends Error{constructor(){super(...arguments);$(this,"message","Glacier is unhealthy. Try again later.");}};a(Ot,"GlacierUnhealthyError");var qe=Ot,Ht=class Ht{constructor({glacierApiUrl:t,headers:r,getAuthHeaders:n}){$(this,"glacierSdk");$(this,"isGlacierHealthy",!0);$(this,"isHealthy",a(()=>this.isGlacierHealthy,"isHealthy"));this.glacierSdk=new glacierSdk.Glacier({BASE:t,HEADERS:n?async()=>({...r,...await n()}):r},Ie);}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 qe&&this.setGlacierToUnhealthy(),r}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(r){throw r instanceof qe&&this.setGlacierToUnhealthy(),r}}};a(Ht,"AvalancheGlacierService");var $e=Ht;var Er=a(e=>Object.keys(e).includes("unlockedUnstaked"),"isPchainBalance"),Br=a(e=>Object.keys(e).includes("locked"),"isXchainBalance");function We(e,t){let r=Object.values(e).reduce(function(n,o){let s=o.reduce(function(i,c){if(c.assetId!==t)return i;let l=Number(c.amount);return i+l},0);return n+s},0);return BigInt(r)}a(We,"calculateAvaxTotalBalance");var Lr=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:i,avaxAssetId:c})=>{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 A in d){let v=d[A];if(!v||!v.length){l[A]=0n;continue}v.forEach(w=>{if(w.assetId!==c)return;let V=(l[A]??0n)+BigInt(w.amount);l[A]=V;});}let m=new coreUtilsSdk.TokenUnit(l.unlockedUnstaked?l.unlockedUnstaked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new coreUtilsSdk.TokenUnit(We(e,c),t.decimals,t.symbol),y=r?p.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:vmModuleTypes.TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:y,balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:y?.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:i}},"convertPChainBalance");var Ur=a(({balance:e,networkToken:t,priceInCurrency:r,marketCap:n,vol24:o,change24:s,coingeckoId:i,avaxAssetId:c})=>{let l={},d={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let A in d){let v=d[A];if(!v||!v.length){l[A]=0n;continue}v.forEach(w=>{if(w.assetId!==c)return;let V=(l[A]??0n)+BigInt(w.amount);l[A]=V;});}let m=new coreUtilsSdk.TokenUnit(l.unlocked?l.unlocked:0n,t.decimals,t.symbol),u=r?m.mul(r).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new coreUtilsSdk.TokenUnit(We(e,c),t.decimals,t.symbol),y=r!==void 0?p.mul(r):void 0;return {...t,coingeckoId:i,type:vmModuleTypes.TokenType.NATIVE,priceInCurrency:r,balance:p.toSubUnit(),balanceInCurrency:y?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:y?.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 Hr=a(async({addresses:e,currency:t,network:r,glacierService:n,tokenService:o})=>{let s=await S(r);if(!n.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let c=t.toLowerCase(),l=e[0]??"",d=r.networkToken,m=r.pricingProviders?.coingecko.nativeTokenId,u=r.vmName===vmModuleTypes.NetworkVMType.PVM?glacierSdk.BlockchainId.P_CHAIN:glacierSdk.BlockchainId.X_CHAIN,p=r.isDevnet?null:r.isTestnet?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET;if(!p)return Promise.reject("Glacier does not supported local devnets");let y=await n.getChainBalance({blockchainId:u,network:p,addresses:e.join(",")}).then(w=>w.balances),A=await o.getWatchlistDataForToken({tokenDetails:{symbol:r.networkToken.symbol,isNative:!0,caip2Id:r.caipId??""},currency:c}),v;return Er(y)?(v=Lr({balance:y,networkToken:d,priceInCurrency:A.priceInCurrency??void 0,marketCap:A.marketCap??void 0,vol24:A.vol24??void 0,change24:A.change24??void 0,coingeckoId:m??"",avaxAssetId:s.getContext().avaxAssetID}),{[l]:{[d.symbol]:v}}):Br(y)?(v=Ur({balance:y,networkToken:d,priceInCurrency:A.priceInCurrency??void 0,marketCap:A.marketCap??void 0,vol24:A.vol24??void 0,change24:A.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 Xr(e){let{vmName:t}=e,r=await S(e);if(t===vmModuleTypes.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)),i=Math.min(1,Math.max(o*2,.3)),c=1+s,l=1+i;return {baseFee:n,low:{maxFeePerGas:n},medium:{maxFeePerGas:n*BigInt(Math.round(100*c))/100n},high:{maxFeePerGas:n*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}a(Xr,"getNetworkFee");function qr({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(p=>p.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(p=>p.addresses)||[]),l=Qa({tx:e,isTestnet:s,networkToken:r,froms:i}),d=Za({tx:e,isTestnet:s,networkToken:r}),m=t.toLowerCase().startsWith("p-")?t.slice(2):t,u=i.has(m);return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:u,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:vmModuleTypes.TokenType.NATIVE,amount:l.toString()}],gasUsed:d.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a(qr,"convertPChainTransaction");function Qa({tx:e,isTestnet:t,networkToken:r,froms:n}){let o=["ImportTx","ExportTx"].includes(e.txType),s=e.txType==="BaseTx",i=e.emittedUtxos.filter(p=>p.asset.assetId===Pe(!!t)&&!p.addresses.some(y=>n.has(y))).reduce((p,y)=>p.add(y.asset.amount),new X__default.default(0)),c=e.value.find(p=>p.assetId===Pe(!!t))?.amount,l=i.gt(new X__default.default(0))?i:c?new X__default.default(c):new X__default.default(0)??new X__default.default(0),d=t?coreWalletsSdk.Avalanche.FujiContext.pBlockchainID:coreWalletsSdk.Avalanche.MainnetContext.pBlockchainID,m=e.emittedUtxos.filter(p=>p.asset.assetId===Pe(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===d||e.txType==="ExportTx"&&p.consumedOnChainId!==d)).reduce((p,y)=>p.add(y.amount),new X__default.default(0)),u=s?l:o?m:e.amountStaked.length===0?Gr(e.value,!!t):Gr(e.amountStaked,!!t);return Z({amount:u?.toNumber(),decimals:r.decimals})}a(Qa,"getAmount");function Za({tx:e,isTestnet:t,networkToken:r}){let n=e.amountBurned?.filter(o=>o.assetId===Pe(!!t)).reduce((o,s)=>o.add(s.amount),new X__default.default(0));return Z({amount:n?.toNumber(),decimals:r.decimals})}a(Za,"getBurnedAmount");function Gr(e,t){return e.filter(r=>r.assetId===Pe(t)).reduce((r,n)=>r.add(n.amount),new X__default.default(0))}a(Gr,"aggregateValue");function Pe(e){return e?coreWalletsSdk.Avalanche.FujiContext.avaxAssetID:coreWalletsSdk.Avalanche.MainnetContext.avaxAssetID}a(Pe,"getAvaxAssetId");function $r({tx:e,address:t,networkToken:r,chainId:n,explorerUrl:o,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(A=>A.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(A=>A.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,d=["ImportTx","ExportTx"].includes(e.txType),{amount:m,isSender:u}=tn({tx:e,isTestnet:s,networkToken:r,chainAddress:l,isImportExport:d}),p=rn({isTestnet:s,tx:e,networkToken:r}),y=d?m.toString():u?m.minus(p).toString():m.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!u,isOutgoing:u,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:u,timestamp:e.timestamp*1e3,tokens:[{decimal:r.decimals.toString(),name:r.name,symbol:r.symbol,type:vmModuleTypes.TokenType.NATIVE,amount:y}],gasUsed:p.toString(),explorerLink:le(o??"",e.txHash,"tx"),txType:e.txType,chainId:n.toString()}}a($r,"convertXChainTransaction");function tn({tx:e,isTestnet:t,networkToken:r,chainAddress:n,isImportExport:o}){if(o){let d=t?coreWalletsSdk.Avalanche.FujiContext.xBlockchainID:coreWalletsSdk.Avalanche.MainnetContext.xBlockchainID,m=e.emittedUtxos.filter(u=>u.asset.assetId===Ce(!!t)&&(e.txType==="ImportTx"&&u.consumedOnChainId===d||e.txType==="ExportTx"&&u.consumedOnChainId!==d)).reduce((u,p)=>u.add(p.asset.amount),new X__default.default(0));return {amount:Z({amount:m.toNumber(),decimals:r.decimals}),isSender:!0}}let s=e.consumedUtxos.filter(d=>d.asset.assetId===Ce(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X__default.default(0)),i=e.emittedUtxos.filter(d=>d.asset.assetId===Ce(!!t)&&d.addresses.includes(n)).reduce((d,m)=>d.add(m.asset.amount),new X__default.default(0)),c=s.gte(i),l=c?s.minus(i):i.minus(s);return {amount:Z({amount:l.toNumber(),decimals:r.decimals}),isSender:c}}a(tn,"getAmount");function rn({isTestnet:e,tx:t,networkToken:r}){let n=t.amountUnlocked.filter(i=>i.assetId===Ce(!!e)).reduce((i,c)=>i.add(c.amount),new X__default.default(0)),o=t.amountCreated.filter(i=>i.assetId===Ce(!!e)).reduce((i,c)=>i.add(c.amount),new X__default.default(0)),s=n.minus(o);return Z({amount:s.toNumber(),decimals:r.decimals})}a(rn,"getBurnedAmount");function Ce(e){return e?coreWalletsSdk.Avalanche.FujiContext.avaxAssetID:coreWalletsSdk.Avalanche.MainnetContext.avaxAssetID}a(Ce,"getAvaxAssetId");var Kr=a(async({address:e,nextPageToken:t,offset:r,network:n,glacierService:o})=>{let{isTestnet:s,networkToken:i,explorerUrl:c,chainId:l}=n;if(!o.isHealthy())return {transactions:[],nextPageToken:""};let m=n.isTestnet?glacierSdk.Network.FUJI:glacierSdk.Network.MAINNET,u=await o.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:nn(e),network:m,pageSize:r,pageToken:t,sortOrder:glacierSdk.SortOrder.DESC}),p=[];return gr(u)&&(p=u.transactions.map(y=>qr({tx:y,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:l}))),fr(u)&&(p=u.transactions.map(y=>$r({tx:y,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:l}))),{transactions:p,nextPageToken:u.nextPageToken}},"getTransactionHistory"),nn=a(e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?glacierSdk.BlockchainId.P_CHAIN:glacierSdk.BlockchainId.X_CHAIN,"getBlockchainIdByAddress");function Jr({blockchainId:e,isTestnet:t}){let r=t?"fuji"+e:e,n=on__default.default.createHash("sha256").update(r).digest("base64");return "avax:"+sn(n).substring(0,32)}a(Jr,"hashBlockchainId");var sn=a(e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),"convertBase64ToBase64Url");var me,we,ue,L,he,G,Gt=class Gt{constructor({approvalController:t,environment:r,appInfo:n,runtime:o}){D(this,me,void 0);D(this,we,void 0);D(this,ue,void 0);D(this,L,void 0);D(this,he,void 0);D(this,G,void 0);let{glacierApiUrl:s,proxyApiUrl:i}=er(r);b(this,he,n),b(this,G,o),b(this,me,new $e({glacierApiUrl:s,headers:z(n),getAuthHeaders:async()=>f(this,G)?.getAuthHeaders?.()})),b(this,we,i),b(this,ue,s),b(this,L,t);}getProvider(t){return S(t)}getAddress({accountIndex:t,xpubXP:r,walletType:n,network:o}){return Vr({accountIndex:t,xpubXP:r,walletType:n,network:o})}getBalances({addresses:t,network:r,storage:n,currency:o}){let s=new ve({storage:n,proxyApiUrl:f(this,we),fetch:f(this,G)?.fetch});return Hr({addresses:t,currency:o,network:r,glacierService:f(this,me),tokenService:s})}getManifest(){let t=vmModuleTypes.parseManifest(Qt);return t.success?t.data:void 0}getNetworkFee(t){return Xr(t)}getTransactionHistory({network:t,address:r,nextPageToken:n,offset:o}){return Kr({network:t,address:r,nextPageToken:n,offset:o,glacierService:f(this,me)})}getTokens(t){return Promise.resolve([])}buildDerivationPath(t){return te(t)}async deriveAddress(t){return wr({...t,approvalController:f(this,L)})}async deriveAddresses(t){return Rr({...t,approvalController:f(this,L)})}async onRpcRequest(t,r){switch(t.method){case vmModuleTypes.RpcMethod.AVALANCHE_SIGN_MESSAGE:return vr({request:t,network:r,approvalController:f(this,L)});case vmModuleTypes.RpcMethod.AVALANCHE_SIGN_TRANSACTION:return Cr({request:t,network:r,approvalController:f(this,L),glacierApiUrl:f(this,ue),appInfo:f(this,he),getAuthHeaders:f(this,G)?.getAuthHeaders});case vmModuleTypes.RpcMethod.AVALANCHE_SEND_TRANSACTION:return xr({request:t,network:r,approvalController:f(this,L),glacierApiUrl:f(this,ue),appInfo:f(this,he),getAuthHeaders:f(this,G)?.getAuthHeaders});default:return {error:rpcErrors.rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:r}){return Jr({blockchainId:t,isTestnet:r})}};me=new WeakMap,we=new WeakMap,ue=new WeakMap,L=new WeakMap,he=new WeakMap,G=new WeakMap,a(Gt,"AvalancheModule");var zr=Gt;var Fd=a(e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,"isTokenWithBalancePVM"),Od=a(e=>"balancePerType"in e&&"unlocked"in e.balancePerType,"isTokenWithBalanceAVM");
|
|
23
23
|
|
|
24
24
|
exports.AvalancheModule = zr;
|
|
25
25
|
exports.isAddAutoRenewedValidatorTx = ht;
|