@avalabs/avalanche-module 1.4.3 → 1.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +7 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -10,11 +10,11 @@ import { object, string, record, number, z as z$1 } from 'zod';
|
|
|
10
10
|
import { TokenUnit } from '@avalabs/core-utils-sdk';
|
|
11
11
|
import Ma from 'crypto';
|
|
12
12
|
|
|
13
|
-
var na=Object.defineProperty;var oa=(e,t,a)=>t in e?na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var _=(e,t,a)=>(oa(e,typeof t!="symbol"?t+"":t,a),a),rt=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)};var A=(e,t,a)=>(rt(e,t,"read from private field"),a?a.call(e):t.get(e)),V=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a);},R=(e,t,a,r)=>(rt(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a);var nt={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 P=async({isTestnet:e})=>{let t=e?AVALANCHE_XP_TEST_NETWORK:AVALANCHE_XP_NETWORK,a=await new info.InfoApi(t.rpcUrl).getUpgradesInfo().catch(()=>{});return e?Avalanche.JsonRpcProvider.getDefaultFujiProvider(a):Avalanche.JsonRpcProvider.getDefaultMainnetProvider(a)};async function it({isTestnet:e,vmName:t}){let a=await P({isTestnet:e});if(t===NetworkVMType.AVM||!a.isEtnaEnabled())return {baseFee:BigInt(1e6),low:{maxFeePerGas:BigInt(1e6)},medium:{maxFeePerGas:BigInt(1e6)},high:{maxFeePerGas:BigInt(1e6)},isFixedFee:!0};let{price:r}=await a.getApiP().getFeeState(),n=100/Number(r)/100,o=Math.min(1,Math.max(n,.15)),i=Math.min(1,Math.max(n*2,.3)),s=1+o,l=1+i;return {baseFee:r,low:{maxFeePerGas:r},medium:{maxFeePerGas:r*BigInt(Math.round(100*s))/100n},high:{maxFeePerGas:r*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}var lt=e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,mt=e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN;function xe(e,t,a="tx"){return `${e}/${a}/${t}`}function U({amount:e,decimals:t}){return e===void 0?new E(0):new E(e/10**t)}function dt({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let i=new Set(e.consumedUtxos.flatMap(m=>m.addresses)||[]),s=new Set(e.emittedUtxos.flatMap(m=>m.addresses)||[]),l=da({tx:e,isTestnet:o,networkToken:a,froms:i}),c=ua({tx:e,isTestnet:o,networkToken:a}),h=t.toLowerCase().startsWith("p-")?t.slice(2):t,p=i.has(h);return {hash:e.txHash,isContractCall:!1,isIncoming:!p,isOutgoing:p,from:[...i.values()].join(","),to:[...s.values()].join(","),isSender:p,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:l.toString()}],gasUsed:c.toString(),explorerLink:xe(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function da({tx:e,isTestnet:t,networkToken:a,froms:r}){let n=["ImportTx","ExportTx"].includes(e.txType),o=e.txType==="BaseTx",i=e.emittedUtxos.filter(m=>m.asset.assetId===te(!!t)&&!m.addresses.some(d=>r.has(d))).reduce((m,d)=>m.add(d.asset.amount),new E(0)),s=e.value.find(m=>m.assetId===te(!!t))?.amount,l=i.gt(new E(0))?i:s?new E(s):new E(0)??new E(0),c=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,h=e.emittedUtxos.filter(m=>m.asset.assetId===te(!!t)&&(e.txType==="ImportTx"&&m.consumedOnChainId===c||e.txType==="ExportTx"&&m.consumedOnChainId!==c)).reduce((m,d)=>m.add(d.amount),new E(0)),p=o?l:n?h:e.amountStaked.length===0?pt(e.value,!!t):pt(e.amountStaked,!!t);return U({amount:p?.toNumber(),decimals:a.decimals})}function ua({tx:e,isTestnet:t,networkToken:a}){let r=e.amountBurned?.filter(n=>n.assetId===te(!!t)).reduce((n,o)=>n.add(o.amount),new E(0));return U({amount:r?.toNumber(),decimals:a.decimals})}function pt(e,t){return e.filter(a=>a.assetId===te(t)).reduce((a,r)=>a.add(r.amount),new E(0))}function te(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}function ut({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let i=new Set(e.consumedUtxos.flatMap(x=>x.addresses)||[]),s=new Set(e.emittedUtxos.flatMap(x=>x.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,c=["ImportTx","ExportTx"].includes(e.txType),{amount:h,isSender:p}=ha({tx:e,isTestnet:o,networkToken:a,chainAddress:l,isImportExport:c}),m=fa({isTestnet:o,tx:e,networkToken:a}),d=c?h.toString():p?h.minus(m).toString():h.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!p,isOutgoing:p,from:[...i.values()].join(","),to:[...s.values()].join(","),isSender:p,timestamp:e.timestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:d}],gasUsed:m.toString(),explorerLink:xe(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function ha({tx:e,isTestnet:t,networkToken:a,chainAddress:r,isImportExport:n}){if(n){let c=t?Avalanche.FujiContext.xBlockchainID:Avalanche.MainnetContext.xBlockchainID,h=e.emittedUtxos.filter(p=>p.asset.assetId===re(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===c||e.txType==="ExportTx"&&p.consumedOnChainId!==c)).reduce((p,m)=>p.add(m.asset.amount),new E(0));return {amount:U({amount:h.toNumber(),decimals:a.decimals}),isSender:!0}}let o=e.consumedUtxos.filter(c=>c.asset.assetId===re(!!t)&&c.addresses.includes(r)).reduce((c,h)=>c.add(h.asset.amount),new E(0)),i=e.emittedUtxos.filter(c=>c.asset.assetId===re(!!t)&&c.addresses.includes(r)).reduce((c,h)=>c.add(h.asset.amount),new E(0)),s=o.gte(i),l=s?o.minus(i):i.minus(o);return {amount:U({amount:l.toNumber(),decimals:a.decimals}),isSender:s}}function fa({isTestnet:e,tx:t,networkToken:a}){let r=t.amountUnlocked.filter(i=>i.assetId===re(!!e)).reduce((i,s)=>i.add(s.amount),new E(0)),n=t.amountCreated.filter(i=>i.assetId===re(!!e)).reduce((i,s)=>i.add(s.amount),new E(0)),o=r.minus(n);return U({amount:o.toNumber(),decimals:a.decimals})}function re(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}var ft=async({address:e,nextPageToken:t,offset:a,network:r,glacierService:n})=>{let{isTestnet:o,networkToken:i,explorerUrl:s,chainId:l}=r;if(!n.isHealthy())return {transactions:[],nextPageToken:""};let h=r.isTestnet?Network.FUJI:Network.MAINNET,p=await n.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:ya(e),network:h,pageSize:a,pageToken:t,sortOrder:SortOrder.DESC}),m=[];return lt(p)&&(m=p.transactions.map(d=>dt({tx:d,isTestnet:o,address:e,networkToken:i,explorerUrl:s,chainId:l}))),mt(p)&&(m=p.transactions.map(d=>ut({tx:d,isTestnet:o,address:e,networkToken:i,explorerUrl:s,chainId:l}))),{transactions:m,nextPageToken:p.nextPageToken}},ya=e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN;var Ta={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},Aa={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},yt=e=>{switch(e){case Environment.PRODUCTION:return Ta;case Environment.DEV:return Aa}};var Ae=class extends Error{constructor(){super(...arguments);_(this,"message","Glacier is unhealthy. Try again later.");}},Ie=class{constructor({glacierApiUrl:t,headers:a}){_(this,"glacierSdk");_(this,"isGlacierHealthy",!0);_(this,"isHealthy",()=>this.isGlacierHealthy);this.glacierSdk=new Glacier({BASE:t,HEADERS:a});}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async listLatestPrimaryNetworkTransactions(t){try{return this.glacierSdk.primaryNetworkTransactions.listLatestPrimaryNetworkTransactions(t)}catch(a){throw a instanceof Ae&&this.setGlacierToUnhealthy(),a}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(a){throw a instanceof Ae&&this.setGlacierToUnhealthy(),a}}};var F=async({operation:e,isSuccess:t,maxRetries:a=10,backoffPolicy:r=ne.exponential()})=>{let n=0,o=0,i;for(;o<a;){o>0&&await Sa(n);try{let l=await e(o);if(t(l))return l}catch(l){i=l;}n=r(o),o++;}let s=i?`Max retry exceeded. ${i}`:"Max retry exceeded.";throw new Error(s)},ne=class{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return a=>t*1e3}static constantMs(t){return a=>t}};function Sa(e){return new Promise(t=>setTimeout(t,e))}var Re=e=>F({operation:t=>e(t>0),maxRetries:2,backoffPolicy:ne.constant(1),isSuccess:t=>t?.status?.error_code!==429});function Tt(e){let t,a=0;for(t=0;t<e.length;t++)a+=e.charCodeAt(t)*(t+1);return a}function Be(e){let t,a=0;for(t=0;t<e.length;t++){let r=Tt(e[t]??"");a=a+65027/r;}return (""+a).slice(0,16)}async function Se(e,t){let a=await fetch(...e);if(!a.ok)throw new Error(`Request failed with status ${a.status}`);let r=await a.json();return t.parse(r)}var oe=class{constructor(t){this.proxyApiUrl=t;}simplePrice(t){let a=new URLSearchParams(t);return Se([`${this.proxyApiUrl}/proxy/coingecko/simple/price?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],RawSimplePriceResponseSchema)}simplePriceByContractAddresses(t){let{id:a,...r}=t,n=new URLSearchParams(r);return Se([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${a}?${n}`,{method:"POST",headers:{"Content-Type":"application/json"}}],SimplePriceResponseSchema)}};var At=getBasicCoingeckoHttp(),M,W,se=class{constructor({storage:t,proxyApiUrl:a}){V(this,M,void 0);V(this,W,void 0);_(this,"transformSimplePriceResponse",(t,a=[VsCurrencyType.USD])=>{let r={};return Object.keys(t).forEach(n=>{let o=t[n];r[n]={},a.forEach(i=>{r[n]={[i]:{price:o?.[i],change24:o?.[`${i}_24h_change`],vol24:o?.[`${i}_24h_vol`],marketCap:o?.[`${i}_market_cap`]}};});}),r});R(this,M,t),R(this,W,a);}async getSimplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD]}){let r,o=`getSimplePrice-${t?`${Be(t)}-${a.toString()}`:`${a.toString()}`}`;if(r=A(this,M)?.get?.(o),r)return r;try{r=await Re(i=>this.simplePrice({coinIds:t,currencies:a,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:i}));}catch{r=void 0;}return A(this,M)?.set?.(o,r),r}async getPricesByAddresses(t,a,r=VsCurrencyType.USD){let n,i=`getPricesWithMarketDataByAddresses-${`${Be(t)}-${a}-${r}`}`;if(n=A(this,M)?.get?.(i),n)return n;try{n=await Re(s=>this.fetchPricesByAddresses({assetPlatformId:a,tokenAddresses:t,currency:r,useCoingeckoProxy:s}));}catch{n=void 0;}return A(this,M)?.set?.(i,n),n}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:a,currency:r=VsCurrencyType.USD,useCoingeckoProxy:n=!1}){return n?new oe(A(this,W)).simplePriceByContractAddresses({id:t,contract_addresses:a,vs_currencies:[r],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0}):simpleTokenPrice(At,{assetPlatformId:t,tokenAddresses:a,currencies:[r],marketCap:!0,vol24:!0,change24:!0})}async simplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD],marketCap:r=!1,vol24:n=!1,change24:o=!1,lastUpdated:i=!1,useCoingeckoProxy:s=!1,shouldThrow:l=!0}){if(s){let c=await new oe(A(this,W)).simplePrice({ids:t,vs_currencies:a,include_market_cap:r,include_24hr_vol:n,include_24hr_change:o,include_last_updated_at:i});return this.transformSimplePriceResponse(c,a)}return simplePrice(At,{coinIds:t,currencies:a,marketCap:r,vol24:n,change24:o,lastUpdated:i,shouldThrow:l})}};M=new WeakMap,W=new WeakMap;object({date:string(),usd:record(number())});var u=(e,t,a,r)=>({label:e,type:DetailItemType.CURRENCY,value:t,maxDecimals:a,symbol:r}),f=(e,t,a="horizontal")=>({label:e,alignment:a,type:DetailItemType.TEXT,value:t});var le=(e,t)=>({label:e,type:DetailItemType.ADDRESS,value:t}),y=(e,t)=>({label:e,type:DetailItemType.NODE_ID,value:t});var N=(e,t)=>({label:e,type:DetailItemType.DATE,value:t});var O=({name:e,version:t})=>{switch(e){case AppName.CORE_MOBILE_IOS:case AppName.CORE_MOBILE_ANDROID:case AppName.CORE_WEB:case AppName.CORE_EXTENSION:case AppName.EXPLORER:return {"x-application-name":e,"x-application-version":t};case AppName.OTHER:return}};var It=e=>Object.keys(e).includes("unlockedUnstaked"),St=e=>Object.keys(e).includes("locked");function ve(e){let t=Object.values(e).reduce(function(a,r){let n=r.reduce(function(o,i){let s=Number(i.amount);return o+s},0);return a+n},0);return BigInt(t)}var kt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:i})=>{let s={},l={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 d in l){let x=l[d];if(!x||!x.length){s[d]=0n;continue}x.forEach(T=>{let b=(s[d]??0n)+BigInt(T.amount);s[d]=b;});}let c=new TokenUnit(s.unlockedUnstaked?s.unlockedUnstaked:0n,t.decimals,t.symbol),h=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(ve(e),t.decimals,t.symbol),m=a?p.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:TokenType.NATIVE,priceInCurrency:a,balance:p.toSubUnit(),balanceInCurrency:m,balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:m?.toFixed(2),available:c.toSubUnit(),availableInCurrency:h,availableDisplayValue:c.toDisplay(),availableCurrencyDisplayValue:h?.toFixed(2),utxos:e,balancePerType:{lockedStaked:s.lockedStaked,lockedStakeable:s.lockedStakeable,lockedPlatform:s.lockedPlatform,atomicMemoryLocked:s.atomicMemoryLocked,atomicMemoryUnlocked:s.atomicMemoryUnlocked,unlockedUnstaked:s.unlockedUnstaked,unlockedStaked:s.unlockedStaked,pendingStaked:s.pendingStaked},marketCap:r,vol24:n,change24:o,coingeckoId:i}};var bt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:i})=>{let s={},l={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let d in l){let x=l[d];if(!x||!x.length){s[d]=0n;continue}x.forEach(T=>{let b=(s[d]??0n)+BigInt(T.amount);s[d]=b;});}let c=new TokenUnit(s.unlocked?s.unlocked:0n,t.decimals,t.symbol),h=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(ve(e),t.decimals,t.symbol),m=a!==void 0?p.mul(a):void 0;return {...t,coingeckoId:i,type:TokenType.NATIVE,priceInCurrency:a,balance:p.toSubUnit(),balanceInCurrency:m?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:m?.toDisplay({fixedDp:2}),available:c.toSubUnit(),availableInCurrency:h,availableDisplayValue:c.toDisplay(),availableCurrencyDisplayValue:h?.toFixed(2),utxos:e,balancePerType:{unlocked:s.unlocked,locked:s.locked,atomicMemoryUnlocked:s.atomicMemoryUnlocked,atomicMemoryLocked:s.atomicMemoryLocked},marketCap:r,vol24:n,change24:o}};var Nt=async({addresses:e,currency:t,network:a,glacierService:r,tokenService:n})=>{if(!r.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let i=t.toLowerCase(),s=e[0]??"",l=a.networkToken,c=a.pricingProviders?.coingecko.nativeTokenId,h=a.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,p=a.isTestnet?Network.FUJI:Network.MAINNET,m=await r.getChainBalance({blockchainId:h,network:p,addresses:e.join(",")}).then(w=>w.balances),d=c?await n.getSimplePrice({coinIds:[c],currencies:[i]}):{},x=d?.[c??""]?.[i]?.price??void 0,T=d?.[c??""]?.[i]?.marketCap??void 0,D=d?.[c??""]?.[i]?.vol24??void 0,b=d?.[c??""]?.[i]?.change24??void 0,k;return It(m)?(k=kt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:D,change24:b,coingeckoId:c??""}),{[s]:{[l.symbol]:k}}):St(m)?(k=bt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:D,change24:b,coingeckoId:c??""}),{[s]:{[l.symbol]:k}}):Promise.reject("Incorrect type balance was returned from glacier")};function Vt({blockchainId:e,isTestnet:t}){let a=t?"fuji"+e:e,r=Ma.createHash("sha256").update(a).digest("base64");return "avax:"+La(r).substring(0,32)}var La=e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");var wt=async({accountIndex:e,xpubXP:t,walletType:a,network:r})=>{let n=!!r?.isTestnet;if(t===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let o=await P({isTestnet:n}),i;switch(a){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:{i=Avalanche.getAddressPublicKeyFromXpub(t,e);break}case WalletType.LedgerLive:case WalletType.Seedless:{i=Buffer.from(t,"hex");break}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${a}`)}return {[NetworkVMType.AVM]:o.getAddress(i,"X"),[NetworkVMType.PVM]:o.getAddress(i,"P")}};var Ua=z$1.union([z$1.tuple([z$1.string()]).describe("message to sign"),z$1.tuple([z$1.string().describe("message to sign"),z$1.number().nonnegative().describe("account index")])]),Et=e=>Ua.safeParse(e);var Lt=async({request:e,network:t,approvalController:a})=>{let r=Et(e.params);if(!r.success)return console.error("invalid params",r.error),{error:rpcErrors.invalidParams({message:"Params are invalid",data:{cause:r.error}})};let[n,o]=r.data,i=Buffer.from(n,"utf-8").toString("hex"),s={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:i,accountIndex:o},l={title:"Sign Message",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} requests you to sign the following message`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:[{title:"Message",items:[n]}]},c=await a.requestApproval({request:e,displayData:l,signingData:s});return "error"in c?{error:c.error}:"signedData"in c?{result:c.signedData}:{error:rpcErrors.internal("No signed data returned")}};var Oa=z$1.object({transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"]),externalIndices:z$1.number().array().optional(),internalIndices:z$1.number().array().optional(),utxos:z$1.string().array().optional()}),_t=e=>Oa.safeParse(e);var Ft=({utxoHexes:e=[],vm:t})=>{try{let a=utils.getManagerForVM(t).getDefaultCodec();return e.map(r=>{let n=utils.hexToBuffer(r);return Utxo.fromBytes(n,a)[0]})}catch{return []}};var ke=e=>{switch(e.type){case TxType.AddPermissionlessDelegator:case TxType.AddSubnetValidator:case TxType.CreateChain:case TxType.CreateSubnet:case TxType.RemoveSubnetValidator:case TxType.AddPermissionlessValidator:return e;case TxType.ConvertSubnetToL1:case TxType.SetL1ValidatorWeight:case TxType.DisableL1Validator:case TxType.IncreaseL1ValidatorBalance:case TxType.RegisterL1Validator:return {...e,chain:e.chain};case TxType.Export:return {...e,type:TxType.Export,chain:e.chain,destination:e.destination};case TxType.Import:return {...e,type:TxType.Import,chain:e.chain,source:e.source};case TxType.Base:return {...e,type:TxType.Base,chain:e.chain};default:return}};var Ot=e=>{switch(e.type){case TxType.AddPermissionlessDelegator:return "Add Delegator";case TxType.AddPermissionlessValidator:return "Add Validator";case TxType.Export:return "Approve Export";case TxType.Import:return "Approve Import";case TxType.Base:return "Approve Transaction";case TxType.AddSubnetValidator:return "Add Subnet Validator";case TxType.CreateChain:return "Approve Create Chain";case TxType.CreateSubnet:return "Approve Create Subnet";case TxType.RemoveSubnetValidator:return "Remove Subnet Validator";case TxType.ConvertSubnetToL1:return "Convert Subnet to L1";case TxType.DisableL1Validator:return "Disable L1 Validator";case TxType.IncreaseL1ValidatorBalance:return "Increase L1 Validator Balance";case TxType.RegisterL1Validator:return "Register L1 Validator";case TxType.SetL1ValidatorWeight:return "Set L1 Validator Weight";default:return "Sign Message"}};var we=async({indices:e,chainAlias:t,isChange:a,isTestnet:r,xpubXP:n})=>{if(!n||a&&t!=="X")return [];let o=await P({isTestnet:r});return e.map(i=>Avalanche.getAddressFromXpub(n,i,o,t,a))};var Ee=e=>e.type===TxType.AddPermissionlessDelegator,Me=e=>e.type===TxType.AddPermissionlessValidator,Le=e=>e.type===TxType.Export,_e=e=>e.type===TxType.Import,Ga=e=>e.type===TxType.Base,Ue=e=>e.type===TxType.AddSubnetValidator,Wa=e=>e.type===TxType.CreateChain,ja=e=>e.type===TxType.CreateSubnet,Fe=e=>e.type===TxType.RemoveSubnetValidator,Xt=e=>e.type===TxType.ConvertSubnetToL1,Ht=e=>e.type===TxType.DisableL1Validator,Gt=e=>e.type===TxType.IncreaseL1ValidatorBalance,Wt=e=>e.type===TxType.RegisterL1Validator,jt=e=>e.type===TxType.SetL1ValidatorWeight,fo=e=>Ee(e)||Me(e)||Ue(e)||Fe(e),xo=e=>Le(e)||_e(e),$t=e=>Ga(e),Jt=e=>Wa(e),qt=e=>ja(e);var B=(r=>(r.AVM="X-Chain",r.PVM="P-Chain",r.EVM="C-Chain",r))(B||{});function De(e){return e===Avalanche.MainnetContext.pBlockchainID}var Oe=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:i,stake:s,subnetID:l}=e,c=[y("Node ID",n),De(l)?f("Subnet ID","Primary Network"):y("Subnet ID",l),u("Stake Amount",s,9,t),N("Start Date",o),N("End Date",i)];return a.push({title:"Staking Details",items:c}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Xe=(e,t)=>{let a=[],{txFee:r,nodeID:n,delegationFee:o,start:i,end:s,stake:l,subnetID:c,signature:h,publicKey:p}=e,m=[y("Node ID",n),De(c)?f("Subnet ID","Primary Network"):y("Subnet ID",c)];return p&&h&&m.push(y("Public Key",p),y("Proof",h)),m.push(u("Stake Amount",l,9,t),f("Delegation Fee",`${o/1e4} %`),N("Start Date",i),N("End Date",s)),a.push({title:"Staking Details",items:m}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var He=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:i,subnetID:s}=e,l=[y("Subnet ID",s),y("Node ID",n),N("Start Date",o),N("End Date",i)];return a.push({title:"Staking Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ge=(e,t)=>{let a=[],{txFee:r,chainID:n,managerAddress:o,subnetID:i,validators:s}=e,l=[y("Subnet ID",i),y("Chain ID",n),le("Manager Address",o)];return a.push({title:"L1 Details",items:l}),s.forEach(({balance:c,stake:h,nodeId:p,remainingBalanceOwners:m,deactivationOwners:d},x)=>{let T=[y("Node ID",p),u("Balance",c,9,t),u("Stake",h,9,t)];d.length>0&&T.push(f(`${d.length>1?"Owners":"Owner"} Able to Deactivate`,d.join(`
|
|
13
|
+
var na=Object.defineProperty;var oa=(e,t,a)=>t in e?na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var _=(e,t,a)=>(oa(e,typeof t!="symbol"?t+"":t,a),a),rt=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)};var A=(e,t,a)=>(rt(e,t,"read from private field"),a?a.call(e):t.get(e)),V=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a);},R=(e,t,a,r)=>(rt(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a);var nt={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 P=async({isTestnet:e})=>{let t=e?AVALANCHE_XP_TEST_NETWORK:AVALANCHE_XP_NETWORK,a=await new info.InfoApi(t.rpcUrl).getUpgradesInfo().catch(()=>{});return e?Avalanche.JsonRpcProvider.getDefaultFujiProvider(a):Avalanche.JsonRpcProvider.getDefaultMainnetProvider(a)};async function it({isTestnet:e,vmName:t}){let a=await P({isTestnet:e});if(t===NetworkVMType.AVM||!a.isEtnaEnabled())return {baseFee:BigInt(1e6),low:{maxFeePerGas:BigInt(1e6)},medium:{maxFeePerGas:BigInt(1e6)},high:{maxFeePerGas:BigInt(1e6)},isFixedFee:!0};let{price:r}=await a.getApiP().getFeeState(),n=100/Number(r)/100,o=Math.min(1,Math.max(n,.15)),i=Math.min(1,Math.max(n*2,.3)),s=1+o,l=1+i;return {baseFee:r,low:{maxFeePerGas:r},medium:{maxFeePerGas:r*BigInt(Math.round(100*s))/100n},high:{maxFeePerGas:r*BigInt(Math.round(100*l))/100n},isFixedFee:!1}}var lt=e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,mt=e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN;function ye(e,t,a="tx"){return `${e}/${a}/${t}`}function U({amount:e,decimals:t}){return e===void 0?new E(0):new E(e/10**t)}function dt({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let i=new Set(e.consumedUtxos.flatMap(m=>m.addresses)||[]),s=new Set(e.emittedUtxos.flatMap(m=>m.addresses)||[]),l=da({tx:e,isTestnet:o,networkToken:a,froms:i}),c=ua({tx:e,isTestnet:o,networkToken:a}),g=t.toLowerCase().startsWith("p-")?t.slice(2):t,p=i.has(g);return {hash:e.txHash,isContractCall:!1,isIncoming:!p,isOutgoing:p,from:[...i.values()].join(","),to:[...s.values()].join(","),isSender:p,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:l.toString()}],gasUsed:c.toString(),explorerLink:ye(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function da({tx:e,isTestnet:t,networkToken:a,froms:r}){let n=["ImportTx","ExportTx"].includes(e.txType),o=e.txType==="BaseTx",i=e.emittedUtxos.filter(m=>m.asset.assetId===te(!!t)&&!m.addresses.some(d=>r.has(d))).reduce((m,d)=>m.add(d.asset.amount),new E(0)),s=e.value.find(m=>m.assetId===te(!!t))?.amount,l=i.gt(new E(0))?i:s?new E(s):new E(0)??new E(0),c=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,g=e.emittedUtxos.filter(m=>m.asset.assetId===te(!!t)&&(e.txType==="ImportTx"&&m.consumedOnChainId===c||e.txType==="ExportTx"&&m.consumedOnChainId!==c)).reduce((m,d)=>m.add(d.amount),new E(0)),p=o?l:n?g:e.amountStaked.length===0?pt(e.value,!!t):pt(e.amountStaked,!!t);return U({amount:p?.toNumber(),decimals:a.decimals})}function ua({tx:e,isTestnet:t,networkToken:a}){let r=e.amountBurned?.filter(n=>n.assetId===te(!!t)).reduce((n,o)=>n.add(o.amount),new E(0));return U({amount:r?.toNumber(),decimals:a.decimals})}function pt(e,t){return e.filter(a=>a.assetId===te(t)).reduce((a,r)=>a.add(r.amount),new E(0))}function te(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}function ut({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let i=new Set(e.consumedUtxos.flatMap(x=>x.addresses)||[]),s=new Set(e.emittedUtxos.flatMap(x=>x.addresses)||[]),l=t.toLowerCase().startsWith("x-")?t.slice(2):t,c=["ImportTx","ExportTx"].includes(e.txType),{amount:g,isSender:p}=ga({tx:e,isTestnet:o,networkToken:a,chainAddress:l,isImportExport:c}),m=fa({isTestnet:o,tx:e,networkToken:a}),d=c?g.toString():p?g.minus(m).toString():g.toString();return {hash:e.txHash,isContractCall:!1,isIncoming:!p,isOutgoing:p,from:[...i.values()].join(","),to:[...s.values()].join(","),isSender:p,timestamp:e.timestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:d}],gasUsed:m.toString(),explorerLink:ye(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function ga({tx:e,isTestnet:t,networkToken:a,chainAddress:r,isImportExport:n}){if(n){let c=t?Avalanche.FujiContext.xBlockchainID:Avalanche.MainnetContext.xBlockchainID,g=e.emittedUtxos.filter(p=>p.asset.assetId===re(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===c||e.txType==="ExportTx"&&p.consumedOnChainId!==c)).reduce((p,m)=>p.add(m.asset.amount),new E(0));return {amount:U({amount:g.toNumber(),decimals:a.decimals}),isSender:!0}}let o=e.consumedUtxos.filter(c=>c.asset.assetId===re(!!t)&&c.addresses.includes(r)).reduce((c,g)=>c.add(g.asset.amount),new E(0)),i=e.emittedUtxos.filter(c=>c.asset.assetId===re(!!t)&&c.addresses.includes(r)).reduce((c,g)=>c.add(g.asset.amount),new E(0)),s=o.gte(i),l=s?o.minus(i):i.minus(o);return {amount:U({amount:l.toNumber(),decimals:a.decimals}),isSender:s}}function fa({isTestnet:e,tx:t,networkToken:a}){let r=t.amountUnlocked.filter(i=>i.assetId===re(!!e)).reduce((i,s)=>i.add(s.amount),new E(0)),n=t.amountCreated.filter(i=>i.assetId===re(!!e)).reduce((i,s)=>i.add(s.amount),new E(0)),o=r.minus(n);return U({amount:o.toNumber(),decimals:a.decimals})}function re(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}var ft=async({address:e,nextPageToken:t,offset:a,network:r,glacierService:n})=>{let{isTestnet:o,networkToken:i,explorerUrl:s,chainId:l}=r;if(!n.isHealthy())return {transactions:[],nextPageToken:""};let g=r.isTestnet?Network.FUJI:Network.MAINNET,p=await n.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:ya(e),network:g,pageSize:a,pageToken:t,sortOrder:SortOrder.DESC}),m=[];return lt(p)&&(m=p.transactions.map(d=>dt({tx:d,isTestnet:o,address:e,networkToken:i,explorerUrl:s,chainId:l}))),mt(p)&&(m=p.transactions.map(d=>ut({tx:d,isTestnet:o,address:e,networkToken:i,explorerUrl:s,chainId:l}))),{transactions:m,nextPageToken:p.nextPageToken}},ya=e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN;var Ta={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},Aa={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},yt=e=>{switch(e){case Environment.PRODUCTION:return Ta;case Environment.DEV:return Aa}};var Ie=class extends Error{constructor(){super(...arguments);_(this,"message","Glacier is unhealthy. Try again later.");}},Se=class{constructor({glacierApiUrl:t,headers:a}){_(this,"glacierSdk");_(this,"isGlacierHealthy",!0);_(this,"isHealthy",()=>this.isGlacierHealthy);this.glacierSdk=new Glacier({BASE:t,HEADERS:a});}setGlacierToUnhealthy(){this.isGlacierHealthy=!1,setTimeout(()=>{this.isGlacierHealthy=!0;},5*60*1e3);}async listLatestPrimaryNetworkTransactions(t){try{return this.glacierSdk.primaryNetworkTransactions.listLatestPrimaryNetworkTransactions(t)}catch(a){throw a instanceof Ie&&this.setGlacierToUnhealthy(),a}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(a){throw a instanceof Ie&&this.setGlacierToUnhealthy(),a}}};var F=async({operation:e,isSuccess:t,maxRetries:a=10,backoffPolicy:r=ne.exponential()})=>{let n=0,o=0,i;for(;o<a;){o>0&&await Sa(n);try{let l=await e(o);if(t(l))return l}catch(l){i=l;}n=r(o),o++;}let s=i?`Max retry exceeded. ${i}`:"Max retry exceeded.";throw new Error(s)},ne=class{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return a=>t*1e3}static constantMs(t){return a=>t}};function Sa(e){return new Promise(t=>setTimeout(t,e))}var Re=e=>F({operation:t=>e(t>0),maxRetries:2,backoffPolicy:ne.constant(1),isSuccess:t=>t?.status?.error_code!==429});function Tt(e){let t,a=0;for(t=0;t<e.length;t++)a+=e.charCodeAt(t)*(t+1);return a}function Be(e){let t,a=0;for(t=0;t<e.length;t++){let r=Tt(e[t]??"");a=a+65027/r;}return (""+a).slice(0,16)}async function oe(e,t){let a=await fetch(...e);if(!a.ok)throw new Error(`Request failed with status ${a.status}`);let r=await a.json();return t.parse(r)}var ie=class{constructor(t){this.proxyApiUrl=t;}simplePrice(t){let a=new URLSearchParams(t);return oe([`${this.proxyApiUrl}/proxy/coingecko/simple/price?${a}`,{method:"POST",headers:{"Content-Type":"application/json"}}],RawSimplePriceResponseSchema)}simplePriceByContractAddresses(t){let{id:a,...r}=t,n=new URLSearchParams(r);return oe([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${a}?${n}`,{method:"POST",headers:{"Content-Type":"application/json"}}],SimplePriceResponseSchema)}};var At=getBasicCoingeckoHttp(),M,W,ce=class{constructor({storage:t,proxyApiUrl:a}){V(this,M,void 0);V(this,W,void 0);_(this,"transformSimplePriceResponse",(t,a=[VsCurrencyType.USD])=>{let r={};return Object.keys(t).forEach(n=>{let o=t[n];r[n]={},a.forEach(i=>{r[n]={[i]:{price:o?.[i],change24:o?.[`${i}_24h_change`],vol24:o?.[`${i}_24h_vol`],marketCap:o?.[`${i}_market_cap`]}};});}),r});R(this,M,t),R(this,W,a);}async getSimplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD]}){let r,o=`getSimplePrice-${t?`${Be(t)}-${a.toString()}`:`${a.toString()}`}`;if(r=A(this,M)?.get?.(o),r)return r;try{r=await Re(i=>this.simplePrice({coinIds:t,currencies:a,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:i}));}catch{r=void 0;}return A(this,M)?.set?.(o,r),r}async getPricesByAddresses(t,a,r=VsCurrencyType.USD){let n,i=`getPricesWithMarketDataByAddresses-${`${Be(t)}-${a}-${r}`}`;if(n=A(this,M)?.get?.(i),n)return n;try{n=await Re(s=>this.fetchPricesByAddresses({assetPlatformId:a,tokenAddresses:t,currency:r,useCoingeckoProxy:s}));}catch{n=void 0;}return A(this,M)?.set?.(i,n),n}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:a,currency:r=VsCurrencyType.USD,useCoingeckoProxy:n=!1}){return n?new ie(A(this,W)).simplePriceByContractAddresses({id:t,contract_addresses:a,vs_currencies:[r],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0}):simpleTokenPrice(At,{assetPlatformId:t,tokenAddresses:a,currencies:[r],marketCap:!0,vol24:!0,change24:!0})}async simplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD],marketCap:r=!1,vol24:n=!1,change24:o=!1,lastUpdated:i=!1,useCoingeckoProxy:s=!1,shouldThrow:l=!0}){if(s){let c=await new ie(A(this,W)).simplePrice({ids:t,vs_currencies:a,include_market_cap:r,include_24hr_vol:n,include_24hr_change:o,include_last_updated_at:i});return this.transformSimplePriceResponse(c,a)}return simplePrice(At,{coinIds:t,currencies:a,marketCap:r,vol24:n,change24:o,lastUpdated:i,shouldThrow:l})}};M=new WeakMap,W=new WeakMap;object({date:string(),usd:record(number())});var u=(e,t,a,r)=>({label:e,type:DetailItemType.CURRENCY,value:t,maxDecimals:a,symbol:r}),f=(e,t,a="horizontal")=>({label:e,alignment:a,type:DetailItemType.TEXT,value:t});var me=(e,t)=>({label:e,type:DetailItemType.ADDRESS,value:t}),y=(e,t)=>({label:e,type:DetailItemType.NODE_ID,value:t});var N=(e,t)=>({label:e,type:DetailItemType.DATE,value:t});var O=({name:e,version:t})=>{switch(e){case AppName.CORE_MOBILE_IOS:case AppName.CORE_MOBILE_ANDROID:case AppName.CORE_WEB:case AppName.CORE_EXTENSION:case AppName.EXPLORER:return {"x-application-name":e,"x-application-version":t};case AppName.OTHER:return}};var It=e=>Object.keys(e).includes("unlockedUnstaked"),St=e=>Object.keys(e).includes("locked");function ve(e){let t=Object.values(e).reduce(function(a,r){let n=r.reduce(function(o,i){let s=Number(i.amount);return o+s},0);return a+n},0);return BigInt(t)}var kt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:i})=>{let s={},l={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 d in l){let x=l[d];if(!x||!x.length){s[d]=0n;continue}x.forEach(T=>{let b=(s[d]??0n)+BigInt(T.amount);s[d]=b;});}let c=new TokenUnit(s.unlockedUnstaked?s.unlockedUnstaked:0n,t.decimals,t.symbol),g=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(ve(e),t.decimals,t.symbol),m=a?p.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:TokenType.NATIVE,priceInCurrency:a,balance:p.toSubUnit(),balanceInCurrency:m,balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:m?.toFixed(2),available:c.toSubUnit(),availableInCurrency:g,availableDisplayValue:c.toDisplay(),availableCurrencyDisplayValue:g?.toFixed(2),utxos:e,balancePerType:{lockedStaked:s.lockedStaked,lockedStakeable:s.lockedStakeable,lockedPlatform:s.lockedPlatform,atomicMemoryLocked:s.atomicMemoryLocked,atomicMemoryUnlocked:s.atomicMemoryUnlocked,unlockedUnstaked:s.unlockedUnstaked,unlockedStaked:s.unlockedStaked,pendingStaked:s.pendingStaked},marketCap:r,vol24:n,change24:o,coingeckoId:i}};var bt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:i})=>{let s={},l={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let d in l){let x=l[d];if(!x||!x.length){s[d]=0n;continue}x.forEach(T=>{let b=(s[d]??0n)+BigInt(T.amount);s[d]=b;});}let c=new TokenUnit(s.unlocked?s.unlocked:0n,t.decimals,t.symbol),g=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(ve(e),t.decimals,t.symbol),m=a!==void 0?p.mul(a):void 0;return {...t,coingeckoId:i,type:TokenType.NATIVE,priceInCurrency:a,balance:p.toSubUnit(),balanceInCurrency:m?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:p.toDisplay(),balanceCurrencyDisplayValue:m?.toDisplay({fixedDp:2}),available:c.toSubUnit(),availableInCurrency:g,availableDisplayValue:c.toDisplay(),availableCurrencyDisplayValue:g?.toFixed(2),utxos:e,balancePerType:{unlocked:s.unlocked,locked:s.locked,atomicMemoryUnlocked:s.atomicMemoryUnlocked,atomicMemoryLocked:s.atomicMemoryLocked},marketCap:r,vol24:n,change24:o}};var Nt=async({addresses:e,currency:t,network:a,glacierService:r,tokenService:n})=>{if(!r.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let i=t.toLowerCase(),s=e[0]??"",l=a.networkToken,c=a.pricingProviders?.coingecko.nativeTokenId,g=a.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,p=a.isTestnet?Network.FUJI:Network.MAINNET,m=await r.getChainBalance({blockchainId:g,network:p,addresses:e.join(",")}).then(w=>w.balances),d=c?await n.getSimplePrice({coinIds:[c],currencies:[i]}):{},x=d?.[c??""]?.[i]?.price??void 0,T=d?.[c??""]?.[i]?.marketCap??void 0,D=d?.[c??""]?.[i]?.vol24??void 0,b=d?.[c??""]?.[i]?.change24??void 0,k;return It(m)?(k=kt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:D,change24:b,coingeckoId:c??""}),{[s]:{[l.symbol]:k}}):St(m)?(k=bt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:D,change24:b,coingeckoId:c??""}),{[s]:{[l.symbol]:k}}):Promise.reject("Incorrect type balance was returned from glacier")};function Vt({blockchainId:e,isTestnet:t}){let a=t?"fuji"+e:e,r=Ma.createHash("sha256").update(a).digest("base64");return "avax:"+La(r).substring(0,32)}var La=e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");var wt=async({accountIndex:e,xpubXP:t,walletType:a,network:r})=>{let n=!!r?.isTestnet;if(t===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let o=await P({isTestnet:n}),i;switch(a){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:{i=Avalanche.getAddressPublicKeyFromXpub(t,e);break}case WalletType.LedgerLive:case WalletType.Seedless:{i=Buffer.from(t,"hex");break}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${a}`)}return {[NetworkVMType.AVM]:o.getAddress(i,"X"),[NetworkVMType.PVM]:o.getAddress(i,"P")}};var Ua=z$1.union([z$1.tuple([z$1.string()]).describe("message to sign"),z$1.tuple([z$1.string().describe("message to sign"),z$1.number().nonnegative().describe("account index")])]),Et=e=>Ua.safeParse(e);var Lt=async({request:e,network:t,approvalController:a})=>{let r=Et(e.params);if(!r.success)return console.error("invalid params",r.error),{error:rpcErrors.invalidParams({message:"Params are invalid",data:{cause:r.error}})};let[n,o]=r.data,i=Buffer.from(n,"utf-8").toString("hex"),s={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:i,accountIndex:o},l={title:"Sign Message",dAppInfo:{name:e.dappInfo.name,action:`${e.dappInfo.name} requests you to sign the following message`,logoUri:e.dappInfo.icon},network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:[{title:"Message",items:[n]}]},c=await a.requestApproval({request:e,displayData:l,signingData:s});return "error"in c?{error:c.error}:"signedData"in c?{result:c.signedData}:{error:rpcErrors.internal("No signed data returned")}};var Oa=z$1.object({transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"]),externalIndices:z$1.number().array().optional(),internalIndices:z$1.number().array().optional(),utxos:z$1.string().array().optional()}),_t=e=>Oa.safeParse(e);var Ft=({utxoHexes:e=[],vm:t})=>{try{let a=utils.getManagerForVM(t).getDefaultCodec();return e.map(r=>{let n=utils.hexToBuffer(r);return Utxo.fromBytes(n,a)[0]})}catch{return []}};var ke=e=>{switch(e.type){case TxType.AddPermissionlessDelegator:case TxType.AddSubnetValidator:case TxType.CreateChain:case TxType.CreateSubnet:case TxType.RemoveSubnetValidator:case TxType.AddPermissionlessValidator:return e;case TxType.ConvertSubnetToL1:case TxType.SetL1ValidatorWeight:case TxType.DisableL1Validator:case TxType.IncreaseL1ValidatorBalance:case TxType.RegisterL1Validator:return {...e,chain:e.chain};case TxType.Export:return {...e,type:TxType.Export,chain:e.chain,destination:e.destination};case TxType.Import:return {...e,type:TxType.Import,chain:e.chain,source:e.source};case TxType.Base:return {...e,type:TxType.Base,chain:e.chain};default:return}};var Ot=e=>{switch(e.type){case TxType.AddPermissionlessDelegator:return "Add Delegator";case TxType.AddPermissionlessValidator:return "Add Validator";case TxType.Export:return "Approve Export";case TxType.Import:return "Approve Import";case TxType.Base:return "Approve Transaction";case TxType.AddSubnetValidator:return "Add Subnet Validator";case TxType.CreateChain:return "Approve Create Chain";case TxType.CreateSubnet:return "Approve Create Subnet";case TxType.RemoveSubnetValidator:return "Remove Subnet Validator";case TxType.ConvertSubnetToL1:return "Convert Subnet to L1";case TxType.DisableL1Validator:return "Disable L1 Validator";case TxType.IncreaseL1ValidatorBalance:return "Increase L1 Validator Balance";case TxType.RegisterL1Validator:return "Register L1 Validator";case TxType.SetL1ValidatorWeight:return "Set L1 Validator Weight";default:return "Sign Message"}};var we=async({indices:e,chainAlias:t,isChange:a,isTestnet:r,xpubXP:n})=>{if(!n||a&&t!=="X")return [];let o=await P({isTestnet:r});return e.map(i=>Avalanche.getAddressFromXpub(n,i,o,t,a))};var Ee=e=>e.type===TxType.AddPermissionlessDelegator,Me=e=>e.type===TxType.AddPermissionlessValidator,Le=e=>e.type===TxType.Export,_e=e=>e.type===TxType.Import,Ga=e=>e.type===TxType.Base,Ue=e=>e.type===TxType.AddSubnetValidator,Wa=e=>e.type===TxType.CreateChain,ja=e=>e.type===TxType.CreateSubnet,Fe=e=>e.type===TxType.RemoveSubnetValidator,Xt=e=>e.type===TxType.ConvertSubnetToL1,Ht=e=>e.type===TxType.DisableL1Validator,Gt=e=>e.type===TxType.IncreaseL1ValidatorBalance,Wt=e=>e.type===TxType.RegisterL1Validator,jt=e=>e.type===TxType.SetL1ValidatorWeight,To=e=>Ee(e)||Me(e)||Ue(e)||Fe(e),Ao=e=>Le(e)||_e(e),$t=e=>Ga(e),Jt=e=>Wa(e),qt=e=>ja(e);var B=(r=>(r.AVM="X-Chain",r.PVM="P-Chain",r.EVM="C-Chain",r))(B||{});function De(e){return e===Avalanche.MainnetContext.pBlockchainID}var Oe=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:i,stake:s,subnetID:l}=e,c=[y("Node ID",n),De(l)?f("Subnet ID","Primary Network"):y("Subnet ID",l),u("Stake Amount",s,9,t),N("Start Date",o),N("End Date",i)];return a.push({title:"Staking Details",items:c}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Xe=(e,t)=>{let a=[],{txFee:r,nodeID:n,delegationFee:o,start:i,end:s,stake:l,subnetID:c,signature:g,publicKey:p}=e,m=[y("Node ID",n),De(c)?f("Subnet ID","Primary Network"):y("Subnet ID",c)];return p&&g&&m.push(y("Public Key",p),y("Proof",g)),m.push(u("Stake Amount",l,9,t),f("Delegation Fee",`${o/1e4} %`),N("Start Date",i),N("End Date",s)),a.push({title:"Staking Details",items:m}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var He=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:i,subnetID:s}=e,l=[y("Subnet ID",s),y("Node ID",n),N("Start Date",o),N("End Date",i)];return a.push({title:"Staking Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ge=(e,t)=>{let a=[],{txFee:r,chainID:n,managerAddress:o,subnetID:i,validators:s}=e,l=[y("Subnet ID",i),y("Chain ID",n),me("Manager Address",o)];return a.push({title:"L1 Details",items:l}),s.forEach(({balance:c,stake:g,nodeId:p,remainingBalanceOwners:m,deactivationOwners:d},x)=>{let T=[y("Node ID",p),u("Balance",c,9,t),u("Stake",g,9,t)];d.length>0&&T.push(f(`${d.length>1?"Owners":"Owner"} Able to Deactivate`,d.join(`
|
|
14
14
|
`),"vertical")),m.length>0&&T.push(f(`${m.length>1?"Owners":"Owner"} of the Remaining Balance`,m.join(`
|
|
15
|
-
`),"vertical")),a.push({title:x===0?"Validators":void 0,items:T});}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var We=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,destination:i,type:s}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[o]}`),f("Target Chain",`Avalanche ${B[i]}`),f("Transaction Type",s?(s[0]||"").toUpperCase()+s.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var je=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,source:i,type:s}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[i]}`),f("Destination Chain",`Avalanche ${B[o]}`),f("Transaction Type",s?(s[0]||"").toUpperCase()+s.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var $e=(e,t)=>{let a=[],{txFee:r,nodeID:n,subnetID:o}=e,i=[y("Node ID",n),y("Subnet ID",o)];return a.push({title:"Staking Details",items:i}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Je=(e,t)=>{let a=[],{txFee:r,chain:n,outputs:o,memo:i}=e;return a.push({title:"Chain Details",items:[f("Active chain",`Avalanche ${B[n]}`)]}),o.forEach((s,l)=>{let c=s.owners.flatMap(
|
|
16
|
-
`),"vertical"),f("Signature Threshold",`${n}/${o.length}`,"vertical")]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ke=(e,t)=>{let a=[],{txFee:r,chainID:n,chainName:o,vmID:i,genesisData:s}=e,l=[f("Blockchain name",o,"vertical"),f("Blockchain ID",n,"vertical"),f("Virtual Machine ID",i,"vertical"),f("Genesis Data",s,"vertical")];return a.push({title:"Blockchain Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var ze=(e,t)=>{let a=[],{txFee:r,validationId:n}=e,o=[y("Validation ID",n)];return a.push({title:"L1 Details",items:o}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ye=(e,t)=>{let a=[],{txFee:r,balance:n,validationId:o}=e,i=[y("Validation ID",o),u("Increase by amount",n,9,t)];return a.push({title:"L1 Details",items:i}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ze=(e,t)=>{let a=[],{txFee:r,balance:n}=e,o=[u("Initial balance",n,9,t)];return a.push({title:"L1 Details",items:o}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Qe=(e,t)=>{let a=[],{txFee:r}=e;return r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var be=(e,t)=>{if($t(e))return Je(e,t);if(Le(e))return We(e,t);if(_e(e))return je(e,t);if(qt(e))return qe(e,t);if(Ee(e))return Oe(e,t);if(Me(e))return Xe(e,t);if(Jt(e))return Ke(e,t);if(Ue(e))return He(e,t);if(Fe(e))return $e(e,t);if(Xt(e))return Ge(e,t);if(Ht(e))return ze(e,t);if(Gt(e))return Ye(e,t);if(Wt(e))return Ze(e,t);if(jt(e))return Qe(e,t)};var Ya=process.env.GLACIER_API_KEY,zt=async({request:e,network:t,approvalController:a,glacierApiUrl:r,appInfo:n})=>{let o=_t(e.params);if(!o.success)return {error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:o.error}})};try{let{transactionHex:i,chainAlias:s,externalIndices:l,internalIndices:c,utxos:
|
|
15
|
+
`),"vertical")),a.push({title:x===0?"Validators":void 0,items:T});}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var We=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,destination:i,type:s}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[o]}`),f("Target Chain",`Avalanche ${B[i]}`),f("Transaction Type",s?(s[0]||"").toUpperCase()+s.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var je=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,source:i,type:s}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[i]}`),f("Destination Chain",`Avalanche ${B[o]}`),f("Transaction Type",s?(s[0]||"").toUpperCase()+s.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var $e=(e,t)=>{let a=[],{txFee:r,nodeID:n,subnetID:o}=e,i=[y("Node ID",n),y("Subnet ID",o)];return a.push({title:"Staking Details",items:i}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Je=(e,t)=>{let a=[],{txFee:r,chain:n,outputs:o,memo:i}=e;return a.push({title:"Chain Details",items:[f("Active chain",`Avalanche ${B[n]}`)]}),o.forEach((s,l)=>{let c=s.owners.flatMap(g=>[me("To",g),u("Amount",s.amount,9,t)]);s.owners.length>1&&c.push(f("Threshold",s.threshold.toString())),a.push({title:l===0?"Balance Change":void 0,items:c});}),n!==PVM&&i&&a.push({title:"Memo",items:[i]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var qe=(e,t)=>{let a=[],{txFee:r,threshold:n,controlKeys:o}=e;return a.push({title:"Subnet Details",items:[f(o.length>1?"Owners":"Owner",o.join(`
|
|
16
|
+
`),"vertical"),f("Signature Threshold",`${n}/${o.length}`,"vertical")]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ke=(e,t)=>{let a=[],{txFee:r,chainID:n,chainName:o,vmID:i,genesisData:s}=e,l=[f("Blockchain name",o,"vertical"),f("Blockchain ID",n,"vertical"),f("Virtual Machine ID",i,"vertical"),f("Genesis Data",s,"vertical")];return a.push({title:"Blockchain Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var ze=(e,t)=>{let a=[],{txFee:r,validationId:n}=e,o=[y("Validation ID",n)];return a.push({title:"L1 Details",items:o}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ye=(e,t)=>{let a=[],{txFee:r,balance:n,validationId:o}=e,i=[y("Validation ID",o),u("Increase by amount",n,9,t)];return a.push({title:"L1 Details",items:i}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ze=(e,t)=>{let a=[],{txFee:r,balance:n}=e,o=[u("Initial balance",n,9,t)];return a.push({title:"L1 Details",items:o}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Qe=(e,t)=>{let a=[],{txFee:r}=e;return r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var be=(e,t)=>{if($t(e))return Je(e,t);if(Le(e))return We(e,t);if(_e(e))return je(e,t);if(qt(e))return qe(e,t);if(Ee(e))return Oe(e,t);if(Me(e))return Xe(e,t);if(Jt(e))return Ke(e,t);if(Ue(e))return He(e,t);if(Fe(e))return $e(e,t);if(Xt(e))return Ge(e,t);if(Ht(e))return ze(e,t);if(Gt(e))return Ye(e,t);if(Wt(e))return Ze(e,t);if(jt(e))return Qe(e,t)};var Ya=process.env.GLACIER_API_KEY,zt=async({request:e,network:t,approvalController:a,glacierApiUrl:r,appInfo:n})=>{let o=_t(e.params);if(!o.success)return {error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:o.error}})};try{let{transactionHex:i,chainAlias:s,externalIndices:l,internalIndices:c,utxos:g}=o.data,p=Avalanche.getVmByChainAlias(s),m=utils.hexToBuffer(i),d=t.isTestnet??!1,x=await P({isTestnet:d}),T=e.context?.currentAddress;if(!T||typeof T!="string")return {error:rpcErrors.invalidRequest("No active account found")};let D=Ft({utxoHexes:g,vm:p}),b=D.length?D:await Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:s,network:d?Network.FUJI:Network.MAINNET,url:r,token:Ya,headers:O(n)}),k;if(s==="C")k=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:m,vm:p,utxos:b,fromAddress:T});else {let ee=utils.unpackWithManager(p,m),C=e.context?.xpubXP;if(C!==void 0&&typeof C!="string")return {error:rpcErrors.invalidParams("xpubXP must be a string")};let Ne=await we({indices:l??[],chainAlias:s,isChange:!1,isTestnet:d,xpubXP:C}),Ve=await we({indices:c??[],chainAlias:s,isChange:!0,isTestnet:d,xpubXP:C}),aa=[...new Set([T,...Ne,...Ve])].map(ra=>utils.parse(ra)[2]);k=await Avalanche.createAvalancheUnsignedTx({tx:ee,utxos:b,provider:x,fromAddressBytes:aa});}let w=await Avalanche.parseAvalancheTx(k,x,T),Ce=ke(w),Z=Ot(w);if(w.type==="unknown"||Ce===void 0)return {error:rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let ge={type:RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(k.toJSON()),data:w,vm:p,externalIndices:l,internalIndices:c},fe=be(Ce,t.networkToken.symbol);if(fe===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let xe={title:Z,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:fe,networkFeeSelector:!1},Q=await a.requestApproval({request:e,displayData:xe,signingData:ge});if("error"in Q)return {error:Q.error};let L=await Za(x,Q,p);return Qa({provider:x,txHash:L,vm:p,onTransactionConfirmed:a.onTransactionConfirmed,onTransactionReverted:a.onTransactionReverted,requestId:e.requestId}),{result:L}}catch(i){return console.error(i),{error:rpcErrors.internal({message:"Unable to create transaction",data:{cause:i}})}}},Za=async(e,t,a)=>{if("txHash"in t)return t.txHash;let{txID:r}=await e.issueTxHex(t.signedData,a);return r},Qa=async({provider:e,txHash:t,vm:a,onTransactionConfirmed:r,onTransactionReverted:n,requestId:o})=>{try{a===PVM?(await F({operation:()=>e.getApiP().getTxStatus({txID:t}),isSuccess:l=>["Committed","Dropped"].includes(l.status),maxRetries:7})).status==="Committed"?r(t,o):n(t,o):a===AVM?(await F({operation:()=>e.getApiX().getTxStatus({txID:t}),isSuccess:l=>["Accepted","Rejected"].includes(l.status),maxRetries:7})).status==="Accepted"?r(t,o):n(t,o):(await F({operation:()=>e.getApiC().getAtomicTxStatus(t),isSuccess:l=>["Accepted","Dropped"].includes(l.status),maxRetries:7})).status==="Accepted"?r(t,o):n(t,o);}catch(s){console.error(s),s instanceof Error&&s.message.startsWith("Max retry exceeded.")||n(t,o);}};var er=z$1.object({from:z$1.string().describe("Avalanche receiving address"),transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"])}),Yt=e=>er.safeParse(e);var rr=process.env.GLACIER_API_KEY,ea=async({request:e,network:t,approvalController:a,glacierApiUrl:r,appInfo:n})=>{let o=Yt(e.params);if(!o.success)return console.error("invalid params",o.error),{error:rpcErrors.invalidParams("Params are invalid")};let{transactionHex:i,chainAlias:s,from:l}=o.data,c=Avalanche.getVmByChainAlias(s),g=utils.hexToBuffer(i),p=t.isTestnet??!1,m=await P({isTestnet:p}),d=utils.unpackWithManager(c,g),x=await Avalanche.getUtxosByTxFromGlacier({transactionHex:i,chainAlias:s,network:p?Network.FUJI:Network.MAINNET,url:r,token:rr,headers:O(n)}),T;try{let C=utils.getManagerForVM(c).unpack(g,avaxSerial.SignedTx),Ne=await Avalanche.createAvalancheUnsignedTx({tx:d,utxos:x,provider:m,credentials:C.getCredentials()});T=d.getSigIndices().map((Ve,at)=>new Credential(Avalanche.populateCredential(Ve,{unsignedTx:Ne,credentialIndex:at})));}catch{T=d.getSigIndices().map(C=>new Credential(Avalanche.populateCredential(C)));}let D=await Avalanche.createAvalancheUnsignedTx({tx:d,provider:m,credentials:T,utxos:x}),b=utils.addressesFromBytes([utils.parse(l)[2]])[0];if(!b)return {error:rpcErrors.invalidRequest("Missing signer address")};let k=D.getSigIndicesForAddress(b);if(!k)return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let w=D.getSigIndices();if(!k.some(([ee,C])=>w[ee]?.includes(C)))return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let Z=await Avalanche.parseAvalancheTx(D,m,l),ge=ke(Z);if(Z.type==="unknown"||ge===void 0)return {error:rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let fe={type:RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:Z,vm:c,unsignedTxJson:JSON.stringify(D.toJSON()),ownSignatureIndices:k},xe=be(ge,t.networkToken.symbol);if(xe===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let Q={title:"Sign 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:xe},L=await a.requestApproval({request:e,displayData:Q,signingData:fe});return "error"in L?{error:L.error}:"signedData"in L?{result:L.signedData}:{error:rpcErrors.invalidRequest("No signed data returned")}};var K,he,z,G,Y,ta=class{constructor({approvalController:t,environment:a,appInfo:r}){V(this,K,void 0);V(this,he,void 0);V(this,z,void 0);V(this,G,void 0);V(this,Y,void 0);let{glacierApiUrl:n,proxyApiUrl:o}=yt(a);R(this,Y,r),R(this,K,new Se({glacierApiUrl:n,headers:O(r)})),R(this,he,o),R(this,z,n),R(this,G,t);}getProvider(t){return P({isTestnet:!!t.isTestnet})}getAddress({accountIndex:t,xpubXP:a,walletType:r,network:n}){return wt({accountIndex:t,xpubXP:a,walletType:r,network:n})}getBalances({addresses:t,network:a,storage:r,currency:n}){let o=new ce({storage:r,proxyApiUrl:A(this,he)});return Nt({addresses:t,currency:n,network:a,glacierService:A(this,K),tokenService:o})}getManifest(){let t=parseManifest(nt);return t.success?t.data:void 0}getNetworkFee(t){let{isTestnet:a,vmName:r}=t;return it({isTestnet:!!a,vmName:r})}getTransactionHistory({network:t,address:a,nextPageToken:r,offset:n}){return ft({network:t,address:a,nextPageToken:r,offset:n,glacierService:A(this,K)})}getTokens(t){return Promise.resolve([])}async onRpcRequest(t,a){switch(t.method){case RpcMethod.AVALANCHE_SIGN_MESSAGE:return Lt({request:t,network:a,approvalController:A(this,G)});case RpcMethod.AVALANCHE_SIGN_TRANSACTION:return ea({request:t,network:a,approvalController:A(this,G),glacierApiUrl:A(this,z),appInfo:A(this,Y)});case RpcMethod.AVALANCHE_SEND_TRANSACTION:return zt({request:t,network:a,approvalController:A(this,G),glacierApiUrl:A(this,z),appInfo:A(this,Y)});default:return {error:rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:a}){return Vt({blockchainId:t,isTestnet:a})}};K=new WeakMap,he=new WeakMap,z=new WeakMap,G=new WeakMap,Y=new WeakMap;var Cs=e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,Ns=e=>"balancePerType"in e&&"unlocked"in e.balancePerType;
|
|
17
17
|
|
|
18
|
-
export { ta as AvalancheModule, Ee as isAddPermissionlessDelegatorTx, Me as isAddPermissionlessValidatorTx, Ue as isAddSubnetValidatorTx, Ga as isBaseTx, Jt as isBlockchainDetails, $t as isChainDetails, Xt as isConvertSubnetToL1Tx, Wa as isCreateChainTx, ja as isCreateSubnetTx, Ht as isDisableL1ValidatorTx,
|
|
18
|
+
export { ta as AvalancheModule, Ee as isAddPermissionlessDelegatorTx, Me as isAddPermissionlessValidatorTx, Ue as isAddSubnetValidatorTx, Ga as isBaseTx, Jt as isBlockchainDetails, $t as isChainDetails, Xt as isConvertSubnetToL1Tx, Wa as isCreateChainTx, ja as isCreateSubnetTx, Ht as isDisableL1ValidatorTx, Ao as isExportImportTxDetails, Le as isExportTx, _e as isImportTx, Gt as isIncreaseL1ValidatorBalanceTx, Wt as isRegisterL1ValidatorTx, Fe as isRemoveSubnetValidatorTx, jt as isSetL1ValidatorWeightTx, To as isStakingDetails, qt as isSubnetDetails, Ns as isTokenWithBalanceAVM, Cs as isTokenWithBalancePVM };
|
|
19
19
|
//# sourceMappingURL=out.js.map
|
|
20
20
|
//# sourceMappingURL=index.js.map
|