@avalabs/avalanche-module
Advanced tools
Comparing version 0.0.0-CP-9216-20240924020441 to 0.0.0-CP-9420-20250129154656
import * as _metamask_rpc_errors from '@metamask/rpc-errors'; | ||
import * as _avalabs_vm_module_types_dist_rpc from '@avalabs/vm-module-types/dist/rpc'; | ||
import * as _avalabs_vm_module_types_dist_transaction_history from '@avalabs/vm-module-types/dist/transaction-history'; | ||
import { Module, ApprovalController, Environment, Network, GetAddressParams, GetAddressResponse, GetBalancesParams, GetBalancesResponse, Manifest, NetworkFees, GetTransactionHistory, RpcRequest, TokenWithBalance, TokenWithBalancePVM, TokenWithBalanceAVM, TxDetails, AddPermissionlessDelegatorTx, AddPermissionlessValidatorTx, ExportTx, ImportTx, BaseTx, AddSubnetValidatorTx, CreateChainTx, CreateSubnetTx, RemoveSubnetValidatorTx, StakingDetails, ExportImportTxDetails } from '@avalabs/vm-module-types'; | ||
import { Module, ConstructorParams, Network, GetAddressParams, GetAddressResponse, GetBalancesParams, GetBalancesResponse, Manifest, NetworkFees, GetTransactionHistory, RpcRequest, GaslessApi, TokenWithBalance, TokenWithBalancePVM, TokenWithBalanceAVM, TxDetails, AddPermissionlessDelegatorTx, AddPermissionlessValidatorTx, ExportTx, ImportTx, BaseTx, AddSubnetValidatorTx, CreateChainTx, CreateSubnetTx, RemoveSubnetValidatorTx, ConvertSubnetToL1Tx, DisableL1ValidatorTx, IncreaseL1ValidatorBalanceTx, RegisterL1ValidatorTx, SetL1ValidatorWeightTx, StakingDetails, ExportImportTxDetails } from '@avalabs/vm-module-types'; | ||
import { Avalanche } from '@avalabs/core-wallets-sdk'; | ||
@@ -10,11 +10,8 @@ import { z } from 'zod'; | ||
#private; | ||
constructor({ approvalController, environment, }: { | ||
approvalController: ApprovalController; | ||
environment: Environment; | ||
}); | ||
getProvider(network: Network): Avalanche.JsonRpcProvider; | ||
getAddress({ accountIndex, xpubXP, isTestnet, walletType }: GetAddressParams): Promise<GetAddressResponse>; | ||
constructor({ approvalController, environment, appInfo }: ConstructorParams); | ||
getProvider(network: Network): Promise<Avalanche.JsonRpcProvider>; | ||
getAddress({ accountIndex, xpubXP, walletType, network }: GetAddressParams): Promise<GetAddressResponse>; | ||
getBalances({ addresses, network, storage, currency }: GetBalancesParams): Promise<GetBalancesResponse>; | ||
getManifest(): Manifest | undefined; | ||
getNetworkFee(_: Network): Promise<NetworkFees>; | ||
getNetworkFee(network: Network): Promise<NetworkFees>; | ||
getTransactionHistory({ network, address, nextPageToken, offset }: GetTransactionHistory): Promise<_avalabs_vm_module_types_dist_transaction_history.TransactionHistoryResponse>; | ||
@@ -34,2 +31,3 @@ getTokens(_: Network): Promise<never[]>; | ||
}>; | ||
getGaslessApi(): GaslessApi | undefined; | ||
static getHashedBlockchainId({ blockchainId, isTestnet }: { | ||
@@ -74,2 +72,7 @@ blockchainId: string; | ||
declare const isRemoveSubnetValidatorTx: (tx: TxDetails) => tx is RemoveSubnetValidatorTx; | ||
declare const isConvertSubnetToL1Tx: (tx: TxDetails) => tx is ConvertSubnetToL1Tx; | ||
declare const isDisableL1ValidatorTx: (tx: TxDetails) => tx is DisableL1ValidatorTx; | ||
declare const isIncreaseL1ValidatorBalanceTx: (tx: TxDetails) => tx is IncreaseL1ValidatorBalanceTx; | ||
declare const isRegisterL1ValidatorTx: (tx: TxDetails) => tx is RegisterL1ValidatorTx; | ||
declare const isSetL1ValidatorWeightTx: (tx: TxDetails) => tx is SetL1ValidatorWeightTx; | ||
declare const isStakingDetails: (tx: TxDetails) => tx is StakingDetails; | ||
@@ -81,2 +84,2 @@ declare const isExportImportTxDetails: (tx: TxDetails) => tx is ExportImportTxDetails; | ||
export { AvalancheModule, AvalancheSendTransactionParams, isAddPermissionlessDelegatorTx, isAddPermissionlessValidatorTx, isAddSubnetValidatorTx, isBaseTx, isBlockchainDetails, isChainDetails, isCreateChainTx, isCreateSubnetTx, isExportImportTxDetails, isExportTx, isImportTx, isRemoveSubnetValidatorTx, isStakingDetails, isSubnetDetails, isTokenWithBalanceAVM, isTokenWithBalancePVM }; | ||
export { AvalancheModule, AvalancheSendTransactionParams, isAddPermissionlessDelegatorTx, isAddPermissionlessValidatorTx, isAddSubnetValidatorTx, isBaseTx, isBlockchainDetails, isChainDetails, isConvertSubnetToL1Tx, isCreateChainTx, isCreateSubnetTx, isDisableL1ValidatorTx, isExportImportTxDetails, isExportTx, isImportTx, isIncreaseL1ValidatorBalanceTx, isRegisterL1ValidatorTx, isRemoveSubnetValidatorTx, isSetL1ValidatorWeightTx, isStakingDetails, isSubnetDetails, isTokenWithBalanceAVM, isTokenWithBalancePVM }; |
@@ -1,17 +0,20 @@ | ||
import { TxType, parseManifest, RpcMethod, Environment, NetworkVMType, WalletType, TokenType, RawSimplePriceResponseSchema, SimplePriceResponseSchema, DetailItemType } from '@avalabs/vm-module-types'; | ||
import { TxType, Environment, parseManifest, RpcMethod, NetworkVMType, AppName, WalletType, TokenType, RawSimplePriceResponseSchema, SimplePriceResponseSchema, DetailItemType } from '@avalabs/vm-module-types'; | ||
import { rpcErrors } from '@metamask/rpc-errors'; | ||
import { info, utils, PVM, AVM, avaxSerial, Credential, Utxo } from '@avalabs/avalanchejs'; | ||
import { ChainId, AVALANCHE_P_DEV_NETWORK, AVALANCHE_XP_TEST_NETWORK, AVALANCHE_XP_NETWORK } from '@avalabs/core-chains-sdk'; | ||
import { Avalanche } from '@avalabs/core-wallets-sdk'; | ||
import { Network, SortOrder, BlockchainId, Glacier, PrimaryNetworkChainName } from '@avalabs/glacier-sdk'; | ||
import R from 'big.js'; | ||
import { Avalanche } from '@avalabs/core-wallets-sdk'; | ||
import M from 'big.js'; | ||
import { getBasicCoingeckoHttp, VsCurrencyType, simpleTokenPrice, simplePrice } from '@avalabs/core-coingecko-sdk'; | ||
import { object, string, record, number, z } from 'zod'; | ||
import { object, string, record, number, z as z$1 } from 'zod'; | ||
import { TokenUnit } from '@avalabs/core-utils-sdk'; | ||
import ca from 'crypto'; | ||
import { utils, PVM, AVM, avaxSerial, Credential, Utxo } from '@avalabs/avalanchejs'; | ||
import Ua from 'crypto'; | ||
var Vt=Object.defineProperty;var Ut=(e,t,a)=>t in e?Vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var V=(e,t,a)=>(Ut(e,typeof t!="symbol"?t+"":t,a),a),He=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)};var f=(e,t,a)=>(He(e,t,"read from private field"),a?a.call(e):t.get(e)),I=(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);},D=(e,t,a,r)=>(He(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a);var Fe={name:"Avalanche",description:"",version:"0.0.1",sources:{module:{checksum:"",location:{npm:{filePath:"dist/bundle.js",packageName:"@avalabs/avalanche-module",registry:"https://registry.npmjs.org"}}},provider:{checksum:"",location:{npm:{filePath:"dist/provider.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"],namespaces:["avax"]},cointype:"9000",permissions:{rpc:{dapps:!0,methods:["avalanche_sendTransaction","avalanche_signTransaction","avalanche_signMessage"]}},manifestVersion:"0.0"};async function Oe(){return {baseFee:BigInt(1e6),low:{maxFeePerGas:BigInt(1e6)},medium:{maxFeePerGas:BigInt(1e6)},high:{maxFeePerGas:BigInt(1e6)},isFixedFee:!0}}var We=e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,Je=e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN;function pe(e,t,a="tx"){return `${e}/${a}/${t}`}function X({amount:e,decimals:t}){return e===void 0?new R(0):new R(e/10**t)}function Ke({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(l=>l.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(l=>l.addresses)||[]),o=Xt({tx:e,isTestnet:s,networkToken:a,froms:i}),p=Gt({tx:e,isTestnet:s,networkToken:a}),m=t.toLowerCase().startsWith("p-")?t.slice(2):t,d=i.has(m);return {hash:e.txHash,isContractCall:!1,isIncoming:!d,isOutgoing:d,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:d,timestamp:e.blockTimestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:o.toString()}],gasUsed:p.toString(),explorerLink:pe(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function Xt({tx:e,isTestnet:t,networkToken:a,froms:r}){let n=["ImportTx","ExportTx"].includes(e.txType),s=e.txType==="BaseTx",i=e.emittedUtxos.filter(l=>l.asset.assetId===Z(!!t)&&!l.addresses.some(u=>r.has(u))).reduce((l,u)=>l.add(u.asset.amount),new R(0)),c=e.value.find(l=>l.assetId===Z(!!t))?.amount,o=i.gt(new R(0))?i:c?new R(c):new R(0)??new R(0),p=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,m=e.emittedUtxos.filter(l=>l.asset.assetId===Z(!!t)&&(e.txType==="ImportTx"&&l.consumedOnChainId===p||e.txType==="ExportTx"&&l.consumedOnChainId!==p)).reduce((l,u)=>l.add(u.amount),new R(0)),d=s?o:n?m:e.amountStaked.length===0?qe(e.value,!!t):qe(e.amountStaked,!!t);return X({amount:d?.toNumber(),decimals:a.decimals})}function Gt({tx:e,isTestnet:t,networkToken:a}){let r=e.amountBurned?.filter(n=>n.assetId===Z(!!t)).reduce((n,s)=>n.add(s.amount),new R(0));return X({amount:r?.toNumber(),decimals:a.decimals})}function qe(e,t){return e.filter(a=>a.assetId===Z(t)).reduce((a,r)=>a.add(r.amount),new R(0))}function Z(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}function ze({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:s}){let i=new Set(e.consumedUtxos.flatMap(l=>l.addresses)||[]),c=new Set(e.emittedUtxos.flatMap(l=>l.addresses)||[]),o=Ft({tx:e,isTestnet:s,networkToken:a}),p=Ot({isTestnet:s,tx:e,totalAmountCreated:o,networkToken:a}),m=t.toLowerCase().startsWith("x-")?t.slice(2):t,d=i.has(m);return {hash:e.txHash,isContractCall:!1,isIncoming:!d,isOutgoing:d,from:[...i.values()].join(","),to:[...c.values()].join(","),isSender:d,timestamp:e.timestamp*1e3,tokens:[{decimal:a.decimals.toString(),name:a.name,symbol:a.symbol,type:TokenType.NATIVE,amount:o.toString()}],gasUsed:p.toString(),explorerLink:pe(n??"",e.txHash,"tx"),txType:e.txType,chainId:r.toString()}}function Ft({tx:e,isTestnet:t,networkToken:a}){let r=["ImportTx","ExportTx"].includes(e.txType),n=t?Avalanche.FujiContext.xBlockchainID:Avalanche.MainnetContext.xBlockchainID,s=e.emittedUtxos.filter(o=>o.asset.assetId===Ce(!!t)&&(e.txType==="ImportTx"&&o.consumedOnChainId===n||e.txType==="ExportTx"&&o.consumedOnChainId!==n)).reduce((o,p)=>o.add(p.asset.amount),new R(0)),i=e.amountCreated.filter(o=>o.assetId===Ce(!!t)).reduce((o,p)=>o.add(p.amount),new R(0));return X({amount:(r?s:i).toNumber(),decimals:a.decimals})}function Ot({isTestnet:e,tx:t,totalAmountCreated:a,networkToken:r}){let s=t.amountUnlocked.filter(i=>i.assetId===Ce(!!e)).reduce((i,c)=>i.add(c.amount),new R(0)).minus(a);return X({amount:s.toNumber(),decimals:r.decimals})}function Ce(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}var Qe=async({address:e,nextPageToken:t,offset:a,network:r,glacierService:n})=>{let{isTestnet:s,networkToken:i,explorerUrl:c,chainId:o}=r;if(!n.isHealthy())return {transactions:[],nextPageToken:""};let m=await n.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:$t(e),network:s?Network.FUJI:Network.MAINNET,pageSize:a,pageToken:t,sortOrder:SortOrder.DESC}),d=[];return We(m)&&(d=m.transactions.map(l=>Ke({tx:l,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:o}))),Je(m)&&(d=m.transactions.map(l=>ze({tx:l,isTestnet:s,address:e,networkToken:i,explorerUrl:c,chainId:o}))),{transactions:d,nextPageToken:m.nextPageToken}},$t=e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN;var Wt={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},Jt={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},tt=e=>{switch(e){case Environment.PRODUCTION:return Wt;case Environment.DEV:return Jt}};var ue=class extends Error{constructor(){super(...arguments);V(this,"message","Glacier is unhealthy. Try again later.");}},he=class{constructor({glacierApiUrl:t}){V(this,"glacierSdk");V(this,"isGlacierHealthy",!0);V(this,"isHealthy",()=>this.isGlacierHealthy);this.glacierSdk=new Glacier({BASE:t});}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 ue&&this.setGlacierToUnhealthy(),a}}async getChainBalance(t){try{return this.glacierSdk.primaryNetworkBalances.getBalancesByAddresses(t)}catch(a){throw a instanceof ue&&this.setGlacierToUnhealthy(),a}}};var U=async({operation:e,isSuccess:t,maxRetries:a=10,backoffPolicy:r=Q.exponential()})=>{let n=0,s=0,i;for(;s<a;){s>0&&await Kt(n);try{let o=await e(s);if(t(o))return o}catch(o){i=o;}n=r(s),s++;}let c=i?`Max retry exceeded. ${i}`:"Max retry exceeded.";throw new Error(c)},Q=class{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return a=>t*1e3}static constantMs(t){return a=>t}};function Kt(e){return new Promise(t=>setTimeout(t,e))}var be=e=>U({operation:t=>e(t>0),maxRetries:2,backoffPolicy:Q.constant(1),isSuccess:t=>t?.status?.error_code!==429});function at(e){let t,a=0;for(t=0;t<e.length;t++)a+=e.charCodeAt(t)*(t+1);return a}function Ie(e){let t,a=0;for(t=0;t<e.length;t++){let r=at(e[t]??"");a=a+65027/r;}return (""+a).slice(0,16)}async function ge(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 ee=class{constructor(t){this.proxyApiUrl=t;}simplePrice(t){let a=new URLSearchParams(t);return ge([`${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 ge([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${a}?${n}`,{method:"POST",headers:{"Content-Type":"application/json"}}],SimplePriceResponseSchema)}};var nt=getBasicCoingeckoHttp(),B,G,ae=class{constructor({storage:t,proxyApiUrl:a}){I(this,B,void 0);I(this,G,void 0);V(this,"transformSimplePriceResponse",(t,a=[VsCurrencyType.USD])=>{let r={};return Object.keys(t).forEach(n=>{let s=t[n];r[n]={},a.forEach(i=>{r[n]={[i]:{price:s?.[i],change24:s?.[`${i}_24h_change`],vol24:s?.[`${i}_24h_vol`],marketCap:s?.[`${i}_market_cap`]}};});}),r});D(this,B,t),D(this,G,a);}async getSimplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD]}){let r,s=`getSimplePrice-${t?`${Ie(t)}-${a.toString()}`:`${a.toString()}`}`;if(r=f(this,B)?.get?.(s),r)return r;try{r=await be(i=>this.simplePrice({coinIds:t,currencies:a,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:i}));}catch{r=void 0;}return f(this,B)?.set?.(s,r),r}async getPricesByAddresses(t,a,r=VsCurrencyType.USD){let n,i=`getPricesWithMarketDataByAddresses-${`${Ie(t)}-${a}-${r}`}`;if(n=f(this,B)?.get?.(i),n)return n;try{n=await be(c=>this.fetchPricesByAddresses({assetPlatformId:a,tokenAddresses:t,currency:r,useCoingeckoProxy:c}));}catch{n=void 0;}return f(this,B)?.set?.(i,n),n}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:a,currency:r=VsCurrencyType.USD,useCoingeckoProxy:n=!1}){return n?new ee(f(this,G)).simplePriceByContractAddresses({id:t,contract_addresses:a,vs_currencies:[r],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0}):simpleTokenPrice(nt,{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:s=!1,lastUpdated:i=!1,useCoingeckoProxy:c=!1,shouldThrow:o=!0}){if(c){let p=await new ee(f(this,G)).simplePrice({ids:t,vs_currencies:a,include_market_cap:r,include_24hr_vol:n,include_24hr_change:s,include_last_updated_at:i});return this.transformSimplePriceResponse(p,a)}return simplePrice(nt,{coinIds:t,currencies:a,marketCap:r,vol24:n,change24:s,lastUpdated:i,shouldThrow:o})}};B=new WeakMap,G=new WeakMap;object({date:string(),usd:record(number())});var w=(e,t,a,r)=>({label:e,type:DetailItemType.CURRENCY,value:t,maxDecimals:a,symbol:r}),g=(e,t,a="horizontal")=>({label:e,alignment:a,type:DetailItemType.TEXT,value:t});var De=(e,t)=>({label:e,type:DetailItemType.ADDRESS,value:t}),v=(e,t)=>({label:e,type:DetailItemType.NODE_ID,value:t});var N=(e,t)=>({label:e,type:DetailItemType.DATE,value:t});var rt=e=>Object.keys(e).includes("unlockedUnstaked"),st=e=>Object.keys(e).includes("locked");function ye(e){let t=Object.values(e).reduce(function(a,r){let n=r.reduce(function(s,i){let c=Number(i.amount);return s+c},0);return a+n},0);return BigInt(t)}function T(e,t){return t===void 0?0:t/10**e}var it=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:s,coingeckoId:i})=>{let c=t.decimals,o={},p={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 h in p){let y=p[h];if(!y||!y.length){o[h]=0;continue}y.forEach(k=>{let x=(o[h]??0)+Number(k.amount);o[h]=x;});}let m=new TokenUnit(o.unlockedUnstaked?o.unlockedUnstaked:0n,t.decimals,t.symbol),d=a?m.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,l=new TokenUnit(ye(e),t.decimals,t.symbol),u=a?l.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0;return {...t,type:TokenType.NATIVE,priceInCurrency:a,balance:l.toSubUnit(),balanceInCurrency:u,balanceDisplayValue:l.toDisplay(),balanceCurrencyDisplayValue:u?.toFixed(2),available:m.toSubUnit(),availableInCurrency:d,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:d?.toFixed(2),utxos:e,balancePerType:{lockedStaked:T(c,o.lockedStaked),lockedStakeable:T(c,o.lockedStakeable),lockedPlatform:T(c,o.lockedPlatform),atomicMemoryLocked:T(c,o.atomicMemoryLocked),atomicMemoryUnlocked:T(c,o.atomicMemoryUnlocked),unlockedUnstaked:T(c,o.unlockedUnstaked),unlockedStaked:T(c,o.unlockedStaked),pendingStaked:T(c,o.pendingStaked)},marketCap:r,vol24:n,change24:s,coingeckoId:i}};var lt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:s,coingeckoId:i})=>{let c=t.decimals,o={},p={unlocked:e.unlocked,locked:e.locked,atomicMemoryUnlocked:e.atomicMemoryUnlocked,atomicMemoryLocked:e.atomicMemoryLocked};for(let h in p){let y=p[h];if(!y||!y.length){o[h]=0;continue}y.forEach(k=>{let x=(o[h]??0)+Number(k.amount);o[h]=x;});}let m=new TokenUnit(o.unlocked?o.unlocked:0n,t.decimals,t.symbol),d=a?m.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,l=new TokenUnit(ye(e),t.decimals,t.symbol),u=a!==void 0?l.mul(a):void 0;return {...t,coingeckoId:i,type:TokenType.NATIVE,priceInCurrency:a,balance:l.toSubUnit(),balanceInCurrency:u?.toDisplay({fixedDp:2,asNumber:!0}),balanceDisplayValue:l.toDisplay(),balanceCurrencyDisplayValue:u?.toDisplay({fixedDp:2}),available:m.toSubUnit(),availableInCurrency:d,availableDisplayValue:m.toDisplay(),availableCurrencyDisplayValue:d?.toFixed(2),utxos:e,balancePerType:{unlocked:T(c,o.unlocked),locked:T(c,o.locked),atomicMemoryUnlocked:T(c,o.atomicMemoryUnlocked),atomicMemoryLocked:T(c,o.atomicMemoryLocked)},marketCap:r,vol24:n,change24:s}};var dt=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(),c=e[0]??"",o=a.networkToken,p=a.pricingProviders?.coingecko.nativeTokenId,m=a.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,d=a.isTestnet?Network.FUJI:Network.MAINNET,l=await r.getChainBalance({blockchainId:m,network:d,addresses:e.join(",")}).then(q=>q.balances),u=p?await n.getSimplePrice({coinIds:[p],currencies:[i]}):{},h=u?.[p??""]?.[i]?.price??void 0,y=u?.[p??""]?.[i]?.marketCap??void 0,k=u?.[p??""]?.[i]?.vol24??void 0,A=u?.[p??""]?.[i]?.change24??void 0,x;return rt(l)?(x=it({balance:l,networkToken:o,priceInCurrency:h,marketCap:y,vol24:k,change24:A,coingeckoId:p??""}),{[c]:{[o.symbol]:x}}):st(l)?(x=lt({balance:l,networkToken:o,priceInCurrency:h,marketCap:y,vol24:k,change24:A,coingeckoId:p??""}),{[c]:{[o.symbol]:x}}):Promise.reject("Incorrect type balance was returned from glacier")};function ut({blockchainId:e,isTestnet:t}){let a=t?"fuji"+e:e,r=ca.createHash("sha256").update(a).digest("base64");return "avax:"+la(r).substring(0,32)}var la=e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");var yt=async({accountIndex:e,isTestnet:t,xpubXP:a,walletType:r})=>{if(a===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let n=t?Avalanche.JsonRpcProvider.getDefaultFujiProvider():Avalanche.JsonRpcProvider.getDefaultMainnetProvider(),s;switch(r){case WalletType.Mnemonic:case WalletType.Ledger:case WalletType.Keystone:{s=Avalanche.getAddressPublicKeyFromXpub(a,e);break}case WalletType.LedgerLive:case WalletType.Seedless:{s=Buffer.from(a,"hex");break}default:throw rpcErrors.invalidParams(`Unsupported wallet type: ${r}`)}return {[NetworkVMType.AVM]:n.getAddress(s,"X"),[NetworkVMType.PVM]:n.getAddress(s,"P")}};var pa=z.union([z.tuple([z.string()]).describe("message to sign"),z.tuple([z.string().describe("message to sign"),z.number().nonnegative().describe("account index")])]),ft=e=>pa.safeParse(e);var Tt=async({request:e,network:t,approvalController:a})=>{let r=ft(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,s]=r.data,i=Buffer.from(n,"utf-8").toString("hex"),c={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:i,accountIndex:s},o={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]}]},p=await a.requestApproval({request:e,displayData:o,signingData:c});return "error"in p?{error:p.error}:"signedData"in p?{result:p.signedData}:{error:rpcErrors.internal("No signed data returned")}};var da=z.object({transactionHex:z.string(),chainAlias:z.enum(["X","P","C"]),externalIndices:z.number().array().optional(),internalIndices:z.number().array().optional(),utxos:z.string().array().optional()}),At=e=>da.safeParse(e);var E=({isTestnet:e})=>e?Avalanche.JsonRpcProvider.getDefaultFujiProvider():Avalanche.JsonRpcProvider.getDefaultMainnetProvider();var Pt=({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 fe=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.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 St=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";default:return "Sign Message"}};var Be=async({indices:e,chainAlias:t,isChange:a,isTestnet:r,xpubXP:n})=>{if(!n||a&&t!=="X")return [];let s=E({isTestnet:r});return e.map(i=>Avalanche.getAddressFromXpub(n,i,s,t,a))};var we=e=>e.type===TxType.AddPermissionlessDelegator,Ne=e=>e.type===TxType.AddPermissionlessValidator,Ee=e=>e.type===TxType.Export,Me=e=>e.type===TxType.Import,ga=e=>e.type===TxType.Base,Ve=e=>e.type===TxType.AddSubnetValidator,ya=e=>e.type===TxType.CreateChain,fa=e=>e.type===TxType.CreateSubnet,Ue=e=>e.type===TxType.RemoveSubnetValidator,Er=e=>we(e)||Ne(e)||Ve(e)||Ue(e),Mr=e=>Ee(e)||Me(e),Ct=e=>ga(e),bt=e=>ya(e),It=e=>fa(e);function _e(e){return e===Avalanche.MainnetContext.pBlockchainID}var xe=(e,t)=>{let a=[];if(Ct(e)){let{chain:n,outputs:s,memo:i}=e;a.push({title:"Chain Details",items:[g("Active chain",`Avalanche ${j[n]}`)]}),s.forEach((c,o)=>{let p=c.owners.flatMap(m=>[De("To",m),w("Amount",c.amount,9,t)]);c.owners.length>1&&p.push(g("Threshold",c.threshold.toString())),a.push({title:o===0?"Balance Change":void 0,items:p});}),n!==PVM&&i&&a.push({title:"Memo",items:[i]});}else if(Ee(e)){let{amount:n,chain:s,destination:i,type:c}=e;a.push({title:"Transaction Details",items:[g("Source Chain",`Avalanche ${j[s]}`),g("Target Chain",`Avalanche ${j[i]}`),g("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),w("Amount",n,9,t)]});}else if(Me(e)){let{amount:n,chain:s,source:i,type:c}=e;a.push({title:"Transaction Details",items:[g("Source Chain",`Avalanche ${j[i]}`),g("Destination Chain",`Avalanche ${j[s]}`),g("Transaction Type",c?(c[0]||"").toUpperCase()+c.slice(1):""),w("Amount",n,9,t)]});}else if(It(e)){let{threshold:n,controlKeys:s}=e;a.push({title:"Subnet Details",items:[g(s.length>1?"Owners":"Owner",s.join(` | ||
`),"vertical"),g("Signature Threshold",`${n}/${s.length}`,"vertical")]});}else if(we(e)){let{nodeID:n,start:s,end:i,stake:c,subnetID:o}=e,p=[v("Node ID",n),_e(o)?g("Subnet ID","Primary Network"):v("Subnet ID",o),w("Stake Amount",c,9,t),N("Start Date",s),N("End Date",i)];a.push({title:"Staking Details",items:p});}else if(Ne(e)){let{nodeID:n,delegationFee:s,start:i,end:c,stake:o,subnetID:p,signature:m,publicKey:d}=e,l=[v("Node ID",n),_e(p)?g("Subnet ID","Primary Network"):v("Subnet ID",p)];d&&m&&l.push(v("Public Key",d),v("Proof",m)),l.push(w("Stake Amount",o,9,t),g("Delegation Fee",`${s/1e4} %`),N("Start Date",i),N("End Date",c)),a.push({title:"Staking Details",items:l});}else if(bt(e)){let{chainID:n,chainName:s,vmID:i,genesisData:c}=e,o=[g("Blockchain name",s,"vertical"),g("Blockchain ID",n,"vertical"),g("Virtual Machine ID",i,"vertical"),g("Genesis Data",c,"vertical")];a.push({title:"Blockchain Details",items:o});}else if(Ve(e)){let{nodeID:n,start:s,end:i,subnetID:c}=e,o=[v("Subnet ID",c),v("Node ID",n),N("Start Date",s),N("End Date",i)];a.push({title:"Staking Details",items:o});}else if(Ue(e)){let{nodeID:n,subnetID:s}=e,i=[v("Node ID",n),v("Subnet ID",s)];a.push({title:"Staking Details",items:i});}let{txFee:r}=e;return r&&a.push({title:"Network Fee",items:[w("Fee Amount",r,9,t)]}),a},j=(r=>(r.AVM="X Chain",r.PVM="P Chain",r.EVM="C Chain",r))(j||{});var Pa=process.env.GLACIER_API_KEY,Dt=async({request:e,network:t,approvalController:a,glacierApiUrl:r})=>{let n=At(e.params);if(!n.success)return {error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:n.error}})};try{let{transactionHex:s,chainAlias:i,externalIndices:c,internalIndices:o,utxos:p}=n.data,m=Avalanche.getVmByChainAlias(i),d=utils.hexToBuffer(s),l=t.isTestnet??!1,u=E({isTestnet:l}),h=e.context?.currentAddress;if(!h||typeof h!="string")return {error:rpcErrors.invalidRequest("No active account found")};let y=Pt({utxoHexes:p,vm:m}),k=y.length?y:await Avalanche.getUtxosByTxFromGlacier({transactionHex:s,chainAlias:i,isTestnet:l,url:r,token:Pa}),A;if(i==="C")A=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:d,vm:m,utxos:k,fromAddress:h});else {let Y=utils.unpackWithManager(m,d),S=e.context?.xpubXP;if(S!==void 0&&typeof S!="string")return {error:rpcErrors.invalidParams("xpubXP must be a string")};let ve=await Be({indices:c??[],chainAlias:i,isChange:!1,isTestnet:l,xpubXP:S}),Pe=await Be({indices:o??[],chainAlias:i,isChange:!0,isTestnet:l,xpubXP:S}),Et=[...new Set([h,...ve,...Pe])].map(Mt=>utils.parse(Mt)[2]);A=await Avalanche.createAvalancheUnsignedTx({tx:Y,utxos:k,provider:u,fromAddressBytes:Et});}let x=await Avalanche.parseAvalancheTx(A,u,h),q=fe(x),K=St(x);if(x.type==="unknown"||q===void 0)return {error:rpcErrors.internal("Unable to parse transaction data. Unsupported tx type")};let le={type:RpcMethod.AVALANCHE_SEND_TRANSACTION,unsignedTxJson:JSON.stringify(A.toJSON()),data:x,vm:m,externalIndices:c,internalIndices:o},Ae=xe(q,t.networkToken.symbol),ke={title:K,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:Ae,networkFeeSelector:!1},z=await a.requestApproval({request:e,displayData:ke,signingData:le});if("error"in z)return {error:z.error};let M=await Sa(u,z,m);return Ca({provider:u,txHash:M,vm:m,onTransactionConfirmed:a.onTransactionConfirmed,onTransactionReverted:a.onTransactionReverted,requestId:e.requestId}),{result:M}}catch(s){return console.error(s),{error:rpcErrors.internal({message:"Unable to create transaction",data:{cause:s}})}}},Sa=async(e,t,a)=>{if("txHash"in t)return t.txHash;let{txID:r}=await e.issueTxHex(t.signedData,a);return r},Ca=async({provider:e,txHash:t,vm:a,onTransactionConfirmed:r,onTransactionReverted:n,requestId:s})=>{try{a===PVM?(await U({operation:()=>e.getApiP().getTxStatus({txID:t}),isSuccess:o=>["Committed","Dropped"].includes(o.status),maxRetries:7})).status==="Committed"?r(t,s):n(t,s):a===AVM?(await U({operation:()=>e.getApiX().getTxStatus({txID:t}),isSuccess:o=>["Accepted","Rejected"].includes(o.status),maxRetries:7})).status==="Accepted"?r(t,s):n(t,s):(await U({operation:()=>e.getApiC().getAtomicTxStatus(t),isSuccess:o=>["Accepted","Dropped"].includes(o.status),maxRetries:7})).status==="Accepted"?r(t,s):n(t,s);}catch(c){console.error(c),c instanceof Error&&c.message.startsWith("Max retry exceeded.")||n(t,s);}};var ba=z.object({from:z.string().describe("Avalanche receiving address"),transactionHex:z.string(),chainAlias:z.enum(["X","P","C"])}),Rt=e=>ba.safeParse(e);var Ra=process.env.GLACIER_API_KEY,wt=async({request:e,network:t,approvalController:a,glacierApiUrl:r})=>{let n=Rt(e.params);if(!n.success)return console.error("invalid params",n.error),{error:rpcErrors.invalidParams("Params are invalid")};let{transactionHex:s,chainAlias:i,from:c}=n.data,o=Avalanche.getVmByChainAlias(i),p=utils.hexToBuffer(s),m=t.isTestnet??!1,d=E({isTestnet:m}),l=utils.unpackWithManager(o,p),u=await Avalanche.getUtxosByTxFromGlacier({transactionHex:s,chainAlias:i,isTestnet:m,url:r,token:Ra}),h;try{let S=utils.getManagerForVM(o).unpack(p,avaxSerial.SignedTx),ve=await Avalanche.createAvalancheUnsignedTx({tx:l,utxos:u,provider:d,credentials:S.getCredentials()});h=l.getSigIndices().map((Pe,Ge)=>new Credential(Avalanche.populateCredential(Pe,{unsignedTx:ve,credentialIndex:Ge})));}catch{h=l.getSigIndices().map(S=>new Credential(Avalanche.populateCredential(S)));}let y=await Avalanche.createAvalancheUnsignedTx({tx:l,provider:d,credentials:h,utxos:u}),k=utils.addressesFromBytes([utils.parse(c)[2]])[0];if(!k)return {error:rpcErrors.invalidRequest("Missing signer address")};let A=y.getSigIndicesForAddress(k);if(!A)return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let x=y.getSigIndices();if(!A.some(([Y,S])=>x[Y]?.includes(S)))return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let K=await Avalanche.parseAvalancheTx(y,d,c),le=fe(K);if(K.type==="unknown"||le===void 0)return {error:rpcErrors.invalidParams("Unable to parse transaction data. Unsupported tx type")};let Ae={type:RpcMethod.AVALANCHE_SIGN_TRANSACTION,data:K,vm:o,unsignedTxJson:JSON.stringify(y.toJSON()),ownSignatureIndices:A},ke=xe(le,t.networkToken.symbol),z={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:ke},M=await a.requestApproval({request:e,displayData:z,signingData:Ae});return "error"in M?{error:M.error}:"signedData"in M?{result:M.signedData}:{error:rpcErrors.invalidRequest("No signed data returned")}};var W,ce,J,L,Nt=class{constructor({approvalController:t,environment:a}){I(this,W,void 0);I(this,ce,void 0);I(this,J,void 0);I(this,L,void 0);let{glacierApiUrl:r,proxyApiUrl:n}=tt(a);D(this,W,new he({glacierApiUrl:r})),D(this,ce,n),D(this,J,r),D(this,L,t);}getProvider(t){return E({isTestnet:!!t.isTestnet})}getAddress({accountIndex:t,xpubXP:a,isTestnet:r,walletType:n}){return yt({accountIndex:t,xpubXP:a,isTestnet:r,walletType:n})}getBalances({addresses:t,network:a,storage:r,currency:n}){let s=new ae({storage:r,proxyApiUrl:f(this,ce)});return dt({addresses:t,currency:n,network:a,glacierService:f(this,W),tokenService:s})}getManifest(){let t=parseManifest(Fe);return t.success?t.data:void 0}getNetworkFee(t){return Oe()}getTransactionHistory({network:t,address:a,nextPageToken:r,offset:n}){return Qe({network:t,address:a,nextPageToken:r,offset:n,glacierService:f(this,W)})}getTokens(t){return Promise.resolve([])}async onRpcRequest(t,a){switch(t.method){case RpcMethod.AVALANCHE_SIGN_MESSAGE:return Tt({request:t,network:a,approvalController:f(this,L)});case RpcMethod.AVALANCHE_SIGN_TRANSACTION:return wt({request:t,network:a,approvalController:f(this,L),glacierApiUrl:f(this,J)});case RpcMethod.AVALANCHE_SEND_TRANSACTION:return Dt({request:t,network:a,approvalController:f(this,L),glacierApiUrl:f(this,J)});default:return {error:rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}static getHashedBlockchainId({blockchainId:t,isTestnet:a}){return ut({blockchainId:t,isTestnet:a})}};W=new WeakMap,ce=new WeakMap,J=new WeakMap,L=new WeakMap;var Vs=e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,Us=e=>"balancePerType"in e&&"unlocked"in e.balancePerType; | ||
var ia=Object.defineProperty;var sa=(e,t,a)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var U=(e,t,a)=>(sa(e,typeof t!="symbol"?t+"":t,a),a),mt=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)};var A=(e,t,a)=>(mt(e,t,"read from private field"),a?a.call(e):t.get(e)),R=(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);},E=(e,t,a,r)=>(mt(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a);var pt={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"]}},manifestVersion:"0.0"};var C=async({isTestnet:e,isDevnet:t})=>{let a=t?AVALANCHE_P_DEV_NETWORK:e?AVALANCHE_XP_TEST_NETWORK:AVALANCHE_XP_NETWORK,r=await new info.InfoApi(a.rpcUrl).getUpgradesInfo().catch(()=>{});return t?Avalanche.JsonRpcProvider.getDefaultDevnetProvider(r):e?Avalanche.JsonRpcProvider.getDefaultFujiProvider(r):Avalanche.JsonRpcProvider.getDefaultMainnetProvider(r)};async function dt({isTestnet:e,isDevnet:t,vmName:a}){let r=await C({isTestnet:e,isDevnet:t});if(a===NetworkVMType.AVM||!r.isEtnaEnabled())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)),l=1+s,c=1+i;return {baseFee:n,low:{maxFeePerGas:n},medium:{maxFeePerGas:n*BigInt(Math.round(100*l))/100n},high:{maxFeePerGas:n*BigInt(Math.round(100*c))/100n},isFixedFee:!1}}var gt=e=>e.chainInfo.chainName===PrimaryNetworkChainName.P_CHAIN,ft=e=>e.chainInfo.chainName===PrimaryNetworkChainName.X_CHAIN;function ye(e,t,a="tx"){return `${e}/${a}/${t}`}function F({amount:e,decimals:t}){return e===void 0?new M(0):new M(e/10**t)}function yt({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let s=new Set(e.consumedUtxos.flatMap(m=>m.addresses)||[]),i=new Set(e.emittedUtxos.flatMap(m=>m.addresses)||[]),l=ga({tx:e,isTestnet:o,networkToken:a,froms:s}),c=fa({tx:e,isTestnet:o,networkToken:a}),g=t.toLowerCase().startsWith("p-")?t.slice(2):t,p=s.has(g);return {hash:e.txHash,isContractCall:!1,isIncoming:!p,isOutgoing:p,from:[...s.values()].join(","),to:[...i.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 ga({tx:e,isTestnet:t,networkToken:a,froms:r}){let n=["ImportTx","ExportTx"].includes(e.txType),o=e.txType==="BaseTx",s=e.emittedUtxos.filter(m=>m.asset.assetId===ae(!!t)&&!m.addresses.some(d=>r.has(d))).reduce((m,d)=>m.add(d.asset.amount),new M(0)),i=e.value.find(m=>m.assetId===ae(!!t))?.amount,l=s.gt(new M(0))?s:i?new M(i):new M(0)??new M(0),c=t?Avalanche.FujiContext.pBlockchainID:Avalanche.MainnetContext.pBlockchainID,g=e.emittedUtxos.filter(m=>m.asset.assetId===ae(!!t)&&(e.txType==="ImportTx"&&m.consumedOnChainId===c||e.txType==="ExportTx"&&m.consumedOnChainId!==c)).reduce((m,d)=>m.add(d.amount),new M(0)),p=o?l:n?g:e.amountStaked.length===0?xt(e.value,!!t):xt(e.amountStaked,!!t);return F({amount:p?.toNumber(),decimals:a.decimals})}function fa({tx:e,isTestnet:t,networkToken:a}){let r=e.amountBurned?.filter(n=>n.assetId===ae(!!t)).reduce((n,o)=>n.add(o.amount),new M(0));return F({amount:r?.toNumber(),decimals:a.decimals})}function xt(e,t){return e.filter(a=>a.assetId===ae(t)).reduce((a,r)=>a.add(r.amount),new M(0))}function ae(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}function Tt({tx:e,address:t,networkToken:a,chainId:r,explorerUrl:n,isTestnet:o}){let s=new Set(e.consumedUtxos.flatMap(x=>x.addresses)||[]),i=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}=ya({tx:e,isTestnet:o,networkToken:a,chainAddress:l,isImportExport:c}),m=Ta({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:[...s.values()].join(","),to:[...i.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 ya({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===ne(!!t)&&(e.txType==="ImportTx"&&p.consumedOnChainId===c||e.txType==="ExportTx"&&p.consumedOnChainId!==c)).reduce((p,m)=>p.add(m.asset.amount),new M(0));return {amount:F({amount:g.toNumber(),decimals:a.decimals}),isSender:!0}}let o=e.consumedUtxos.filter(c=>c.asset.assetId===ne(!!t)&&c.addresses.includes(r)).reduce((c,g)=>c.add(g.asset.amount),new M(0)),s=e.emittedUtxos.filter(c=>c.asset.assetId===ne(!!t)&&c.addresses.includes(r)).reduce((c,g)=>c.add(g.asset.amount),new M(0)),i=o.gte(s),l=i?o.minus(s):s.minus(o);return {amount:F({amount:l.toNumber(),decimals:a.decimals}),isSender:i}}function Ta({isTestnet:e,tx:t,networkToken:a}){let r=t.amountUnlocked.filter(s=>s.assetId===ne(!!e)).reduce((s,i)=>s.add(i.amount),new M(0)),n=t.amountCreated.filter(s=>s.assetId===ne(!!e)).reduce((s,i)=>s.add(i.amount),new M(0)),o=r.minus(n);return F({amount:o.toNumber(),decimals:a.decimals})}function ne(e){return e?Avalanche.FujiContext.avaxAssetID:Avalanche.MainnetContext.avaxAssetID}var S=e=>e.chainId===ChainId.AVALANCHE_DEVNET_P||e.chainId===43117||e.chainId===ChainId.AVALANCHE_DEVNET_X;var St=async({address:e,nextPageToken:t,offset:a,network:r,glacierService:n})=>{let{isTestnet:o,networkToken:s,explorerUrl:i,chainId:l}=r;if(!n.isHealthy())return {transactions:[],nextPageToken:""};let g=S(r)?Network.DEVNET:r.isTestnet?Network.FUJI:Network.MAINNET,p=await n.listLatestPrimaryNetworkTransactions({addresses:e,blockchainId:Ia(e),network:g,pageSize:a,pageToken:t,sortOrder:SortOrder.DESC}),m=[];return gt(p)&&(m=p.transactions.map(d=>yt({tx:d,isTestnet:o,address:e,networkToken:s,explorerUrl:i,chainId:l}))),ft(p)&&(m=p.transactions.map(d=>Tt({tx:d,isTestnet:o,address:e,networkToken:s,explorerUrl:i,chainId:l}))),{transactions:m,nextPageToken:p.nextPageToken}},Ia=e=>e.split(",")[0]?.toLowerCase().startsWith("p-")?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN;var Sa={glacierApiUrl:"https://glacier-api.avax.network",proxyApiUrl:"https://proxy-api.avax.network"},va={glacierApiUrl:"https://glacier-api-dev.avax.network",proxyApiUrl:"https://proxy-api-dev.avax.network"},we=e=>{switch(e){case Environment.PRODUCTION:return Sa;case Environment.DEV:return va}};var Ie=class extends Error{constructor(){super(...arguments);U(this,"message","Glacier is unhealthy. Try again later.");}},Se=class{constructor({glacierApiUrl:t,headers:a}){U(this,"glacierSdk");U(this,"isGlacierHealthy",!0);U(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 O=async({operation:e,isSuccess:t,maxRetries:a=10,backoffPolicy:r=oe.exponential()})=>{let n=0,o=0,s;for(;o<a;){o>0&&await ka(n);try{let l=await e(o);if(t(l))return l}catch(l){s=l;}n=r(o),o++;}let i=s?`Max retry exceeded. ${s}`:"Max retry exceeded.";throw new Error(i)},oe=class{static exponential(){return t=>Math.pow(2,t)*1e3}static constant(t){return a=>t*1e3}static constantMs(t){return a=>t}};function ka(e){return new Promise(t=>setTimeout(t,e))}var Me=e=>O({operation:t=>e(t>0),maxRetries:2,backoffPolicy:oe.constant(1),isSuccess:t=>t?.status?.error_code!==429});function Dt(e){let t,a=0;for(t=0;t<e.length;t++)a+=e.charCodeAt(t)*(t+1);return a}function Le(e){let t,a=0;for(t=0;t<e.length;t++){let r=Dt(e[t]??"");a=a+65027/r;}return (""+a).slice(0,16)}async function ve(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 ve([`${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 ve([`${this.proxyApiUrl}/proxy/coingecko/simple/token_price/${a}?${n}`,{method:"POST",headers:{"Content-Type":"application/json"}}],SimplePriceResponseSchema)}};var kt=getBasicCoingeckoHttp(),L,j,ce=class{constructor({storage:t,proxyApiUrl:a}){R(this,L,void 0);R(this,j,void 0);U(this,"transformSimplePriceResponse",(t,a=[VsCurrencyType.USD])=>{let r={};return Object.keys(t).forEach(n=>{let o=t[n];r[n]={},a.forEach(s=>{r[n]={[s]:{price:o?.[s],change24:o?.[`${s}_24h_change`],vol24:o?.[`${s}_24h_vol`],marketCap:o?.[`${s}_market_cap`]}};});}),r});E(this,L,t),E(this,j,a);}async getSimplePrice({coinIds:t=[],currencies:a=[VsCurrencyType.USD]}){let r,o=`getSimplePrice-${t?`${Le(t)}-${a.toString()}`:`${a.toString()}`}`;if(r=A(this,L)?.get?.(o),r)return r;try{r=await Me(s=>this.simplePrice({coinIds:t,currencies:a,marketCap:!0,vol24:!0,change24:!0,useCoingeckoProxy:s}));}catch{r=void 0;}return A(this,L)?.set?.(o,r),r}async getPricesByAddresses(t,a,r=VsCurrencyType.USD){let n,s=`getPricesWithMarketDataByAddresses-${`${Le(t)}-${a}-${r}`}`;if(n=A(this,L)?.get?.(s),n)return n;try{n=await Me(i=>this.fetchPricesByAddresses({assetPlatformId:a,tokenAddresses:t,currency:r,useCoingeckoProxy:i}));}catch{n=void 0;}return A(this,L)?.set?.(s,n),n}async fetchPricesByAddresses({assetPlatformId:t,tokenAddresses:a,currency:r=VsCurrencyType.USD,useCoingeckoProxy:n=!1}){return n?new ie(A(this,j)).simplePriceByContractAddresses({id:t,contract_addresses:a,vs_currencies:[r],include_market_cap:!0,include_24hr_vol:!0,include_24hr_change:!0}):simpleTokenPrice(kt,{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:s=!1,useCoingeckoProxy:i=!1,shouldThrow:l=!0}){if(i){let c=await new ie(A(this,j)).simplePrice({ids:t,vs_currencies:a,include_market_cap:r,include_24hr_vol:n,include_24hr_change:o,include_last_updated_at:s});return this.transformSimplePriceResponse(c,a)}return simplePrice(kt,{coinIds:t,currencies:a,marketCap:r,vol24:n,change24:o,lastUpdated:s,shouldThrow:l})}};L=new WeakMap,j=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 V=(e,t)=>({label:e,type:DetailItemType.DATE,value:t});var X=({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 bt=e=>Object.keys(e).includes("unlockedUnstaked"),Pt=e=>Object.keys(e).includes("locked");function De(e){let t=Object.values(e).reduce(function(a,r){let n=r.reduce(function(o,s){let i=Number(s.amount);return o+i},0);return a+n},0);return BigInt(t)}var Nt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:s})=>{let i={},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){i[d]=0n;continue}x.forEach(T=>{let P=(i[d]??0n)+BigInt(T.amount);i[d]=P;});}let c=new TokenUnit(i.unlockedUnstaked?i.unlockedUnstaked:0n,t.decimals,t.symbol),g=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(De(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:i.lockedStaked,lockedStakeable:i.lockedStakeable,lockedPlatform:i.lockedPlatform,atomicMemoryLocked:i.atomicMemoryLocked,atomicMemoryUnlocked:i.atomicMemoryUnlocked,unlockedUnstaked:i.unlockedUnstaked,unlockedStaked:i.unlockedStaked,pendingStaked:i.pendingStaked},marketCap:r,vol24:n,change24:o,coingeckoId:s}};var Rt=({balance:e,networkToken:t,priceInCurrency:a,marketCap:r,vol24:n,change24:o,coingeckoId:s})=>{let i={},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){i[d]=0n;continue}x.forEach(T=>{let P=(i[d]??0n)+BigInt(T.amount);i[d]=P;});}let c=new TokenUnit(i.unlocked?i.unlocked:0n,t.decimals,t.symbol),g=a?c.mul(a).toDisplay({fixedDp:2,asNumber:!0}):void 0,p=new TokenUnit(De(e),t.decimals,t.symbol),m=a!==void 0?p.mul(a):void 0;return {...t,coingeckoId:s,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:i.unlocked,locked:i.locked,atomicMemoryUnlocked:i.atomicMemoryUnlocked,atomicMemoryLocked:i.atomicMemoryLocked},marketCap:r,vol24:n,change24:o}};var Bt=async({addresses:e,currency:t,network:a,glacierService:r,tokenService:n})=>{if(!r.isHealthy())return Promise.reject("Glacier is unhealthy. Try again later.");let s=t.toLowerCase(),i=e[0]??"",l=a.networkToken,c=a.pricingProviders?.coingecko.nativeTokenId,g=a.vmName===NetworkVMType.PVM?BlockchainId.P_CHAIN:BlockchainId.X_CHAIN,p=S(a)?Network.DEVNET: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:[s]}):{},x=d?.[c??""]?.[s]?.price??void 0,T=d?.[c??""]?.[s]?.marketCap??void 0,b=d?.[c??""]?.[s]?.vol24??void 0,P=d?.[c??""]?.[s]?.change24??void 0,k;return bt(m)?(k=Nt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:b,change24:P,coingeckoId:c??""}),{[i]:{[l.symbol]:k}}):Pt(m)?(k=Rt({balance:m,networkToken:l,priceInCurrency:x,marketCap:T,vol24:b,change24:P,coingeckoId:c??""}),{[i]:{[l.symbol]:k}}):Promise.reject("Incorrect type balance was returned from glacier")};function wt({blockchainId:e,isTestnet:t}){let a=t?"fuji"+e:e,r=Ua.createHash("sha256").update(a).digest("base64");return "avax:"+Fa(r).substring(0,32)}var Fa=e=>e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");var _t=async({accountIndex:e,xpubXP:t,walletType:a,network:r})=>{let n=!!r?.isTestnet,o=r&&S(r);if(t===void 0)throw rpcErrors.invalidParams("xpubXP is required to get address");let s=await C({isTestnet:n,isDevnet:o}),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]:s.getAddress(i,"X"),[NetworkVMType.PVM]:s.getAddress(i,"P")}};var Xa=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")])]),Ut=e=>Xa.safeParse(e);var Ot=async({request:e,network:t,approvalController:a})=>{let r=Ut(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,s=Buffer.from(n,"utf-8").toString("hex"),i={type:RpcMethod.AVALANCHE_SIGN_MESSAGE,data:s,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:i});return "error"in c?{error:c.error}:"signedData"in c?{result:c.signedData}:{error:rpcErrors.internal("No signed data returned")}};var Ga=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()}),Xt=e=>Ga.safeParse(e);var Gt=({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 Wt=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 Ue=async({indices:e,chainAlias:t,isChange:a,isTestnet:r,xpubXP:n})=>{if(!n||a&&t!=="X")return [];let o=await C({isTestnet:r});return e.map(s=>Avalanche.getAddressFromXpub(n,s,o,t,a))};var Fe=e=>e.type===TxType.AddPermissionlessDelegator,Oe=e=>e.type===TxType.AddPermissionlessValidator,Xe=e=>e.type===TxType.Export,He=e=>e.type===TxType.Import,$a=e=>e.type===TxType.Base,Ge=e=>e.type===TxType.AddSubnetValidator,Ja=e=>e.type===TxType.CreateChain,qa=e=>e.type===TxType.CreateSubnet,We=e=>e.type===TxType.RemoveSubnetValidator,jt=e=>e.type===TxType.ConvertSubnetToL1,$t=e=>e.type===TxType.DisableL1Validator,Jt=e=>e.type===TxType.IncreaseL1ValidatorBalance,qt=e=>e.type===TxType.RegisterL1Validator,Kt=e=>e.type===TxType.SetL1ValidatorWeight,ko=e=>Fe(e)||Oe(e)||Ge(e)||We(e),bo=e=>Xe(e)||He(e),zt=e=>$a(e),Yt=e=>Ja(e),Zt=e=>qa(e);var B=(r=>(r.AVM="X-Chain",r.PVM="P-Chain",r.EVM="C-Chain",r))(B||{});function be(e){return e===Avalanche.MainnetContext.pBlockchainID}var je=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:s,stake:i,subnetID:l}=e,c=[y("Node ID",n),be(l)?f("Subnet ID","Primary Network"):y("Subnet ID",l),u("Stake Amount",i,9,t),V("Start Date",o),V("End Date",s)];return a.push({title:"Staking Details",items:c}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var $e=(e,t)=>{let a=[],{txFee:r,nodeID:n,delegationFee:o,start:s,end:i,stake:l,subnetID:c,signature:g,publicKey:p}=e,m=[y("Node ID",n),be(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} %`),V("Start Date",s),V("End Date",i)),a.push({title:"Staking Details",items:m}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Je=(e,t)=>{let a=[],{txFee:r,nodeID:n,start:o,end:s,subnetID:i}=e,l=[y("Subnet ID",i),y("Node ID",n),V("Start Date",o),V("End Date",s)];return a.push({title:"Staking Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var qe=(e,t)=>{let a=[],{txFee:r,chainID:n,managerAddress:o,subnetID:s,validators:i}=e,l=[y("Subnet ID",s),y("Chain ID",n),me("Manager Address",o)];return a.push({title:"L1 Details",items:l}),i.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(` | ||
`),"vertical")),m.length>0&&T.push(f(`${m.length>1?"Owners":"Owner"} of the Remaining Balance`,m.join(` | ||
`),"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 Ke=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,destination:s,type:i}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[o]}`),f("Target Chain",`Avalanche ${B[s]}`),f("Transaction Type",i?(i[0]||"").toUpperCase()+i.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var ze=(e,t)=>{let a=[],{txFee:r,amount:n,chain:o,source:s,type:i}=e;return a.push({title:"Transaction Details",items:[f("Source Chain",`Avalanche ${B[s]}`),f("Destination Chain",`Avalanche ${B[o]}`),f("Transaction Type",i?(i[0]||"").toUpperCase()+i.slice(1):""),u("Amount",n,9,t)]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ye=(e,t)=>{let a=[],{txFee:r,nodeID:n,subnetID:o}=e,s=[y("Node ID",n),y("Subnet ID",o)];return a.push({title:"Staking Details",items:s}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Ze=(e,t)=>{let a=[],{txFee:r,chain:n,outputs:o,memo:s}=e;return a.push({title:"Chain Details",items:[f("Active chain",`Avalanche ${B[n]}`)]}),o.forEach((i,l)=>{let c=i.owners.flatMap(g=>[me("To",g),u("Amount",i.amount,9,t)]);i.owners.length>1&&c.push(f("Threshold",i.threshold.toString())),a.push({title:l===0?"Balance Change":void 0,items:c});}),n!==PVM&&s&&a.push({title:"Memo",items:[s]}),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(` | ||
`),"vertical"),f("Signature Threshold",`${n}/${o.length}`,"vertical")]}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var et=(e,t)=>{let a=[],{txFee:r,chainID:n,chainName:o,vmID:s,genesisData:i}=e,l=[f("Blockchain name",o,"vertical"),f("Blockchain ID",n,"vertical"),f("Virtual Machine ID",s,"vertical"),f("Genesis Data",i,"vertical")];return a.push({title:"Blockchain Details",items:l}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var tt=(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 at=(e,t)=>{let a=[],{txFee:r,balance:n,validationId:o}=e,s=[y("Validation ID",o),u("Increase by amount",n,9,t)];return a.push({title:"L1 Details",items:s}),r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var rt=(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 nt=(e,t)=>{let a=[],{txFee:r}=e;return r&&a.push({title:"Network Fee",items:[u("Fee Amount",r,9,t)]}),a};var Pe=(e,t)=>{if(zt(e))return Ze(e,t);if(Xe(e))return Ke(e,t);if(He(e))return ze(e,t);if(Zt(e))return Qe(e,t);if(Fe(e))return je(e,t);if(Oe(e))return $e(e,t);if(Yt(e))return et(e,t);if(Ge(e))return Je(e,t);if(We(e))return Ye(e,t);if(jt(e))return qe(e,t);if($t(e))return tt(e,t);if(Jt(e))return at(e,t);if(qt(e))return rt(e,t);if(Kt(e))return nt(e,t)};var er=process.env.GLACIER_API_KEY,Qt=async({request:e,network:t,approvalController:a,glacierApiUrl:r,appInfo:n})=>{let o=Xt(e.params);if(!o.success)return {error:rpcErrors.invalidParams({message:"Transaction params are invalid",data:{cause:o.error}})};try{let{transactionHex:s,chainAlias:i,externalIndices:l,internalIndices:c,utxos:g}=o.data,p=Avalanche.getVmByChainAlias(i),m=utils.hexToBuffer(s),d=t.isTestnet??!1,x=await C({isTestnet:d,isDevnet:S(t)}),T=e.context?.currentAddress;if(!T||typeof T!="string")return {error:rpcErrors.invalidRequest("No active account found")};let b=Gt({utxoHexes:g,vm:p}),P=b.length?b:await Avalanche.getUtxosByTxFromGlacier({transactionHex:s,chainAlias:i,network:S(t)?Network.DEVNET:d?Network.FUJI:Network.MAINNET,url:r,token:er,headers:X(n)}),k;if(i==="C")k=await Avalanche.createAvalancheEvmUnsignedTx({txBytes:m,vm:p,utxos:P,fromAddress:T});else {let te=utils.unpackWithManager(p,m),N=e.context?.xpubXP;if(N!==void 0&&typeof N!="string")return {error:rpcErrors.invalidParams("xpubXP must be a string")};let Ve=await Ue({indices:l??[],chainAlias:i,isChange:!1,isTestnet:d,xpubXP:N}),Re=await Ue({indices:c??[],chainAlias:i,isChange:!0,isTestnet:d,xpubXP:N}),na=[...new Set([T,...Ve,...Re])].map(oa=>utils.parse(oa)[2]);k=await Avalanche.createAvalancheUnsignedTx({tx:te,utxos:P,provider:x,fromAddressBytes:na});}let w=await Avalanche.parseAvalancheTx(k,x,T),Ne=ke(w),Q=Wt(w);if(w.type==="unknown"||Ne===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=Pe(Ne,t.networkToken.symbol);if(fe===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let xe={title:Q,network:{chainId:t.chainId,name:t.chainName,logoUri:t.logoUri},details:fe,networkFeeSelector:!1},ee=await a.requestApproval({request:e,displayData:xe,signingData:ge});if("error"in ee)return {error:ee.error};let _=await tr(x,ee,p);return ar({provider:x,txHash:_,vm:p,onTransactionConfirmed:a.onTransactionConfirmed,onTransactionReverted:a.onTransactionReverted,requestId:e.requestId}),{result:_}}catch(s){return console.error(s),{error:rpcErrors.internal({message:"Unable to create transaction",data:{cause:s}})}}},tr=async(e,t,a)=>{if("txHash"in t)return t.txHash;let{txID:r}=await e.issueTxHex(t.signedData,a);return r},ar=async({provider:e,txHash:t,vm:a,onTransactionConfirmed:r,onTransactionReverted:n,requestId:o})=>{try{a===PVM?(await O({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 O({operation:()=>e.getApiX().getTxStatus({txID:t}),isSuccess:l=>["Accepted","Rejected"].includes(l.status),maxRetries:7})).status==="Accepted"?r(t,o):n(t,o):(await O({operation:()=>e.getApiC().getAtomicTxStatus(t),isSuccess:l=>["Accepted","Dropped"].includes(l.status),maxRetries:7})).status==="Accepted"?r(t,o):n(t,o);}catch(i){console.error(i),i instanceof Error&&i.message.startsWith("Max retry exceeded.")||n(t,o);}};var rr=z$1.object({from:z$1.string().describe("Avalanche receiving address"),transactionHex:z$1.string(),chainAlias:z$1.enum(["X","P","C"])}),ea=e=>rr.safeParse(e);var ir=process.env.GLACIER_API_KEY,aa=async({request:e,network:t,approvalController:a,glacierApiUrl:r,appInfo:n})=>{let o=ea(e.params);if(!o.success)return console.error("invalid params",o.error),{error:rpcErrors.invalidParams("Params are invalid")};let{transactionHex:s,chainAlias:i,from:l}=o.data,c=Avalanche.getVmByChainAlias(i),g=utils.hexToBuffer(s),p=t.isTestnet??!1,m=await C({isTestnet:p,isDevnet:S(t)}),d=utils.unpackWithManager(c,g),x=await Avalanche.getUtxosByTxFromGlacier({transactionHex:s,chainAlias:i,network:S(t)?Network.DEVNET:p?Network.FUJI:Network.MAINNET,url:r,token:ir,headers:X(n)}),T;try{let N=utils.getManagerForVM(c).unpack(g,avaxSerial.SignedTx),Ve=await Avalanche.createAvalancheUnsignedTx({tx:d,utxos:x,provider:m,credentials:N.getCredentials()});T=d.getSigIndices().map((Re,lt)=>new Credential(Avalanche.populateCredential(Re,{unsignedTx:Ve,credentialIndex:lt})));}catch{T=d.getSigIndices().map(N=>new Credential(Avalanche.populateCredential(N)));}let b=await Avalanche.createAvalancheUnsignedTx({tx:d,provider:m,credentials:T,utxos:x}),P=utils.addressesFromBytes([utils.parse(l)[2]])[0];if(!P)return {error:rpcErrors.invalidRequest("Missing signer address")};let k=b.getSigIndicesForAddress(P);if(!k)return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let w=b.getSigIndices();if(!k.some(([te,N])=>w[te]?.includes(N)))return {error:rpcErrors.invalidRequest("This account has nothing to sign")};let Q=await Avalanche.parseAvalancheTx(b,m,l),ge=ke(Q);if(Q.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:Q,vm:c,unsignedTxJson:JSON.stringify(b.toJSON()),ownSignatureIndices:k},xe=Pe(ge,t.networkToken.symbol);if(xe===void 0)return {error:rpcErrors.internal("Unable to parse transaction display data. Unsupported tx type")};let ee={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},_=await a.requestApproval({request:e,displayData:ee,signingData:fe});return "error"in _?{error:_.error}:"signedData"in _?{result:_.signedData}:{error:rpcErrors.invalidRequest("No signed data returned")}};var z,he,Y,W,Z,ra=class{constructor({approvalController:t,environment:a,appInfo:r}){R(this,z,void 0);R(this,he,void 0);R(this,Y,void 0);R(this,W,void 0);R(this,Z,void 0);let{glacierApiUrl:n,proxyApiUrl:o}=we(a);E(this,Z,r),E(this,z,new Se({glacierApiUrl:n,headers:X(r)})),E(this,he,o),E(this,Y,n),E(this,W,t);}getProvider(t){return C({isTestnet:!!t.isTestnet,isDevnet:S(t)})}getAddress({accountIndex:t,xpubXP:a,walletType:r,network:n}){return _t({accountIndex:t,xpubXP:a,walletType:r,network:n})}getBalances({addresses:t,network:a,storage:r,currency:n}){let o=S(a)?we(Environment.DEV).proxyApiUrl:A(this,he),s=new ce({storage:r,proxyApiUrl:o});return Bt({addresses:t,currency:n,network:a,glacierService:A(this,z),tokenService:s})}getManifest(){let t=parseManifest(pt);return t.success?t.data:void 0}getNetworkFee(t){let{isTestnet:a,vmName:r}=t;return dt({isTestnet:!!a,isDevnet:S(t),vmName:r})}getTransactionHistory({network:t,address:a,nextPageToken:r,offset:n}){return St({network:t,address:a,nextPageToken:r,offset:n,glacierService:A(this,z)})}getTokens(t){return Promise.resolve([])}async onRpcRequest(t,a){switch(t.method){case RpcMethod.AVALANCHE_SIGN_MESSAGE:return Ot({request:t,network:a,approvalController:A(this,W)});case RpcMethod.AVALANCHE_SIGN_TRANSACTION:return aa({request:t,network:a,approvalController:A(this,W),glacierApiUrl:A(this,Y),appInfo:A(this,Z)});case RpcMethod.AVALANCHE_SEND_TRANSACTION:return Qt({request:t,network:a,approvalController:A(this,W),glacierApiUrl:A(this,Y),appInfo:A(this,Z)});default:return {error:rpcErrors.methodNotSupported(`Method ${t.method} not supported`)}}}getGaslessApi(){}static getHashedBlockchainId({blockchainId:t,isTestnet:a}){return wt({blockchainId:t,isTestnet:a})}};z=new WeakMap,he=new WeakMap,Y=new WeakMap,W=new WeakMap,Z=new WeakMap;var _s=e=>"balancePerType"in e&&"unlockedUnstaked"in e.balancePerType,Us=e=>"balancePerType"in e&&"unlocked"in e.balancePerType; | ||
export { Nt as AvalancheModule, we as isAddPermissionlessDelegatorTx, Ne as isAddPermissionlessValidatorTx, Ve as isAddSubnetValidatorTx, ga as isBaseTx, bt as isBlockchainDetails, Ct as isChainDetails, ya as isCreateChainTx, fa as isCreateSubnetTx, Mr as isExportImportTxDetails, Ee as isExportTx, Me as isImportTx, Ue as isRemoveSubnetValidatorTx, Er as isStakingDetails, It as isSubnetDetails, Us as isTokenWithBalanceAVM, Vs as isTokenWithBalancePVM }; | ||
export { ra as AvalancheModule, Fe as isAddPermissionlessDelegatorTx, Oe as isAddPermissionlessValidatorTx, Ge as isAddSubnetValidatorTx, $a as isBaseTx, Yt as isBlockchainDetails, zt as isChainDetails, jt as isConvertSubnetToL1Tx, Ja as isCreateChainTx, qa as isCreateSubnetTx, $t as isDisableL1ValidatorTx, bo as isExportImportTxDetails, Xe as isExportTx, He as isImportTx, Jt as isIncreaseL1ValidatorBalanceTx, qt as isRegisterL1ValidatorTx, We as isRemoveSubnetValidatorTx, Kt as isSetL1ValidatorWeightTx, ko as isStakingDetails, Zt as isSubnetDetails, Us as isTokenWithBalanceAVM, _s as isTokenWithBalancePVM }; | ||
//# sourceMappingURL=out.js.map | ||
//# sourceMappingURL=index.js.map |
@@ -10,3 +10,3 @@ { | ||
"npm": { | ||
"filePath": "dist/bundle.js", | ||
"filePath": "dist/index.js", | ||
"packageName": "@avalabs/avalanche-module", | ||
@@ -16,12 +16,2 @@ "registry": "https://registry.npmjs.org" | ||
} | ||
}, | ||
"provider": { | ||
"checksum": "", | ||
"location": { | ||
"npm": { | ||
"filePath": "dist/provider.js", | ||
"packageName": "@avalabs/avalanche-module", | ||
"registry": "https://registry.npmjs.org" | ||
} | ||
} | ||
} | ||
@@ -36,3 +26,4 @@ }, | ||
"avax:imji8papUf2EhV3le337w1vgFauqkJg-", | ||
"avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl" | ||
"avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl", | ||
"avax:N5PeRoKwDDREF0awn2GPsb9sHnGRzdEX" | ||
], | ||
@@ -39,0 +30,0 @@ "namespaces": ["avax"] |
{ | ||
"name": "@avalabs/avalanche-module", | ||
"version": "0.0.0-CP-9216-20240924020441", | ||
"version": "0.0.0-CP-9420-20250129154656", | ||
"main": "dist/index.cjs", | ||
@@ -14,17 +14,18 @@ "module": "dist/index.js", | ||
"dependencies": { | ||
"@avalabs/core-chains-sdk": "3.1.0-alpha.5", | ||
"@avalabs/avalanchejs": "4.1.2-alpha.3", | ||
"@avalabs/core-chains-sdk": "3.1.0-alpha.30", | ||
"@avalabs/core-coingecko-sdk": "3.1.0-alpha.30", | ||
"@avalabs/core-etherscan-sdk": "3.1.0-alpha.30", | ||
"@avalabs/core-utils-sdk": "3.1.0-alpha.30", | ||
"@avalabs/core-wallets-sdk": "3.1.0-alpha.30", | ||
"@avalabs/glacier-sdk": "3.1.0-alpha.30", | ||
"@avalabs/types": "3.1.0-alpha.30", | ||
"@metamask/rpc-errors": "6.3.0", | ||
"@avalabs/core-utils-sdk": "3.1.0-alpha.5", | ||
"@avalabs/core-etherscan-sdk": "3.1.0-alpha.5", | ||
"@avalabs/glacier-sdk": "3.1.0-alpha.5", | ||
"@avalabs/core-wallets-sdk": "3.1.0-alpha.5", | ||
"@avalabs/core-coingecko-sdk": "3.1.0-alpha.5", | ||
"big.js": "6.2.1", | ||
"bn.js": "5.2.1", | ||
"zod": "3.23.8", | ||
"@avalabs/types": "3.1.0-alpha.5", | ||
"@avalabs/avalanchejs": "4.0.5", | ||
"@avalabs/vm-module-types": "0.0.0-CP-9216-20240924020441" | ||
"@avalabs/vm-module-types": "0.0.0-CP-9420-20250129154656" | ||
}, | ||
"devDependencies": { | ||
"@types/big.js": "6.2.2", | ||
"@types/bn.js": "5.1.5", | ||
@@ -35,5 +36,4 @@ "@types/jest": "29.5.7", | ||
"tsup": "7.2.0", | ||
"@types/big.js": "6.2.2", | ||
"@internal/utils": "0.2.0", | ||
"@internal/tsup-config": "0.0.1", | ||
"@internal/utils": "0.3.4", | ||
"eslint-config-custom": "0.0.1" | ||
@@ -40,0 +40,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
376755
438
+ Added@adraffy/ens-normalize@1.10.0(transitive)
+ Added@ampproject/remapping@2.3.0(transitive)
+ Added@avalabs/avalanchejs@4.1.2-alpha.3(transitive)
+ Added@avalabs/core-chains-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/core-coingecko-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/core-etherscan-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/core-utils-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/core-wallets-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/glacier-sdk@3.1.0-alpha.30(transitive)
+ Added@avalabs/types@3.1.0-alpha.30(transitive)
+ Added@avalabs/vm-module-types@0.0.0-CP-9420-20250129154656(transitive)
+ Added@babel/code-frame@7.26.2(transitive)
+ Added@babel/compat-data@7.26.5(transitive)
+ Added@babel/core@7.26.7(transitive)
+ Added@babel/generator@7.26.5(transitive)
+ Added@babel/helper-annotate-as-pure@7.25.9(transitive)
+ Added@babel/helper-compilation-targets@7.26.5(transitive)
+ Added@babel/helper-create-class-features-plugin@7.25.9(transitive)
+ Added@babel/helper-create-regexp-features-plugin@7.26.3(transitive)
+ Added@babel/helper-define-polyfill-provider@0.6.3(transitive)
+ Added@babel/helper-environment-visitor@7.24.7(transitive)
+ Added@babel/helper-member-expression-to-functions@7.25.9(transitive)
+ Added@babel/helper-module-imports@7.25.9(transitive)
+ Added@babel/helper-module-transforms@7.26.0(transitive)
+ Added@babel/helper-optimise-call-expression@7.25.9(transitive)
+ Added@babel/helper-plugin-utils@7.26.5(transitive)
+ Added@babel/helper-remap-async-to-generator@7.25.9(transitive)
+ Added@babel/helper-replace-supers@7.26.5(transitive)
+ Added@babel/helper-skip-transparent-expression-wrappers@7.25.9(transitive)
+ Added@babel/helper-string-parser@7.25.9(transitive)
+ Added@babel/helper-validator-identifier@7.25.9(transitive)
+ Added@babel/helper-validator-option@7.25.9(transitive)
+ Added@babel/helper-wrap-function@7.25.9(transitive)
+ Added@babel/helpers@7.26.7(transitive)
+ Added@babel/parser@7.26.7(transitive)
+ Added@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(transitive)
+ Added@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(transitive)
+ Added@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(transitive)
+ Added@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(transitive)
+ Added@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(transitive)
+ Added@babel/plugin-proposal-async-generator-functions@7.20.7(transitive)
+ Added@babel/plugin-proposal-class-properties@7.18.6(transitive)
+ Added@babel/plugin-proposal-export-default-from@7.25.9(transitive)
+ Added@babel/plugin-proposal-logical-assignment-operators@7.20.7(transitive)
+ Added@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(transitive)
+ Added@babel/plugin-proposal-numeric-separator@7.18.6(transitive)
+ Added@babel/plugin-proposal-object-rest-spread@7.20.7(transitive)
+ Added@babel/plugin-proposal-optional-catch-binding@7.18.6(transitive)
+ Added@babel/plugin-proposal-optional-chaining@7.21.0(transitive)
+ Added@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(transitive)
+ Added@babel/plugin-syntax-async-generators@7.8.4(transitive)
+ Added@babel/plugin-syntax-dynamic-import@7.8.3(transitive)
+ Added@babel/plugin-syntax-export-default-from@7.25.9(transitive)
+ Added@babel/plugin-syntax-flow@7.26.0(transitive)
+ Added@babel/plugin-syntax-import-assertions@7.26.0(transitive)
+ Added@babel/plugin-syntax-import-attributes@7.26.0(transitive)
+ Added@babel/plugin-syntax-jsx@7.25.9(transitive)
+ Added@babel/plugin-syntax-logical-assignment-operators@7.10.4(transitive)
+ Added@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(transitive)
+ Added@babel/plugin-syntax-numeric-separator@7.10.4(transitive)
+ Added@babel/plugin-syntax-object-rest-spread@7.8.3(transitive)
+ Added@babel/plugin-syntax-optional-catch-binding@7.8.3(transitive)
+ Added@babel/plugin-syntax-optional-chaining@7.8.3(transitive)
+ Added@babel/plugin-syntax-typescript@7.25.9(transitive)
+ Added@babel/plugin-syntax-unicode-sets-regex@7.18.6(transitive)
+ Added@babel/plugin-transform-arrow-functions@7.25.9(transitive)
+ Added@babel/plugin-transform-async-generator-functions@7.25.9(transitive)
+ Added@babel/plugin-transform-async-to-generator@7.25.9(transitive)
+ Added@babel/plugin-transform-block-scoped-functions@7.26.5(transitive)
+ Added@babel/plugin-transform-block-scoping@7.25.9(transitive)
+ Added@babel/plugin-transform-class-properties@7.25.9(transitive)
+ Added@babel/plugin-transform-class-static-block@7.26.0(transitive)
+ Added@babel/plugin-transform-classes@7.25.9(transitive)
+ Added@babel/plugin-transform-computed-properties@7.25.9(transitive)
+ Added@babel/plugin-transform-destructuring@7.25.9(transitive)
+ Added@babel/plugin-transform-dotall-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-duplicate-keys@7.25.9(transitive)
+ Added@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-dynamic-import@7.25.9(transitive)
+ Added@babel/plugin-transform-exponentiation-operator@7.26.3(transitive)
+ Added@babel/plugin-transform-export-namespace-from@7.25.9(transitive)
+ Added@babel/plugin-transform-flow-strip-types@7.26.5(transitive)
+ Added@babel/plugin-transform-for-of@7.25.9(transitive)
+ Added@babel/plugin-transform-function-name@7.25.9(transitive)
+ Added@babel/plugin-transform-json-strings@7.25.9(transitive)
+ Added@babel/plugin-transform-literals@7.25.9(transitive)
+ Added@babel/plugin-transform-logical-assignment-operators@7.25.9(transitive)
+ Added@babel/plugin-transform-member-expression-literals@7.25.9(transitive)
+ Added@babel/plugin-transform-modules-amd@7.25.9(transitive)
+ Added@babel/plugin-transform-modules-commonjs@7.26.3(transitive)
+ Added@babel/plugin-transform-modules-systemjs@7.25.9(transitive)
+ Added@babel/plugin-transform-modules-umd@7.25.9(transitive)
+ Added@babel/plugin-transform-named-capturing-groups-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-new-target@7.25.9(transitive)
+ Added@babel/plugin-transform-nullish-coalescing-operator@7.26.6(transitive)
+ Added@babel/plugin-transform-numeric-separator@7.25.9(transitive)
+ Added@babel/plugin-transform-object-rest-spread@7.25.9(transitive)
+ Added@babel/plugin-transform-object-super@7.25.9(transitive)
+ Added@babel/plugin-transform-optional-catch-binding@7.25.9(transitive)
+ Added@babel/plugin-transform-optional-chaining@7.25.9(transitive)
+ Added@babel/plugin-transform-parameters@7.25.9(transitive)
+ Added@babel/plugin-transform-private-methods@7.25.9(transitive)
+ Added@babel/plugin-transform-private-property-in-object@7.25.9(transitive)
+ Added@babel/plugin-transform-property-literals@7.25.9(transitive)
+ Added@babel/plugin-transform-react-display-name@7.25.9(transitive)
+ Added@babel/plugin-transform-react-jsx@7.25.9(transitive)
+ Added@babel/plugin-transform-react-jsx-self@7.25.9(transitive)
+ Added@babel/plugin-transform-react-jsx-source@7.25.9(transitive)
+ Added@babel/plugin-transform-regenerator@7.25.9(transitive)
+ Added@babel/plugin-transform-regexp-modifiers@7.26.0(transitive)
+ Added@babel/plugin-transform-reserved-words@7.25.9(transitive)
+ Added@babel/plugin-transform-runtime@7.25.9(transitive)
+ Added@babel/plugin-transform-shorthand-properties@7.25.9(transitive)
+ Added@babel/plugin-transform-spread@7.25.9(transitive)
+ Added@babel/plugin-transform-sticky-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-template-literals@7.25.9(transitive)
+ Added@babel/plugin-transform-typeof-symbol@7.26.7(transitive)
+ Added@babel/plugin-transform-typescript@7.26.7(transitive)
+ Added@babel/plugin-transform-unicode-escapes@7.25.9(transitive)
+ Added@babel/plugin-transform-unicode-property-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-unicode-regex@7.25.9(transitive)
+ Added@babel/plugin-transform-unicode-sets-regex@7.25.9(transitive)
+ Added@babel/preset-env@7.26.7(transitive)
+ Added@babel/preset-flow@7.25.9(transitive)
+ Added@babel/preset-modules@0.1.6-no-external-plugins(transitive)
+ Added@babel/preset-typescript@7.26.0(transitive)
+ Added@babel/register@7.25.9(transitive)
+ Added@babel/runtime@7.26.7(transitive)
+ Added@babel/template@7.25.9(transitive)
+ Added@babel/traverse@7.26.7(transitive)
+ Added@babel/types@7.26.7(transitive)
+ Added@hapi/hoek@9.3.0(transitive)
+ Added@hapi/topo@5.1.0(transitive)
+ Added@isaacs/ttlcache@1.4.1(transitive)
+ Added@jest/create-cache-key-function@29.7.0(transitive)
+ Added@jest/environment@29.7.0(transitive)
+ Added@jest/fake-timers@29.7.0(transitive)
+ Added@jest/schemas@29.6.3(transitive)
+ Added@jest/types@26.6.227.5.129.6.3(transitive)
+ Added@jridgewell/gen-mapping@0.3.8(transitive)
+ Added@jridgewell/resolve-uri@3.1.2(transitive)
+ Added@jridgewell/set-array@1.2.1(transitive)
+ Added@jridgewell/source-map@0.3.6(transitive)
+ Added@jridgewell/sourcemap-codec@1.5.0(transitive)
+ Added@jridgewell/trace-mapping@0.3.25(transitive)
+ Added@metamask/json-rpc-engine@8.0.2(transitive)
+ Added@metamask/json-rpc-middleware-stream@7.0.2(transitive)
+ Added@metamask/object-multiplex@2.1.0(transitive)
+ Added@metamask/onboarding@1.0.1(transitive)
+ Added@metamask/providers@16.1.0(transitive)
+ Added@metamask/safe-event-emitter@3.1.2(transitive)
+ Added@metamask/sdk@0.29.3(transitive)
+ Added@metamask/sdk-communication-layer@0.29.2(transitive)
+ Added@metamask/sdk-install-modal-web@0.29.2(transitive)
+ Added@react-native-community/cli@13.5.1(transitive)
+ Added@react-native-community/cli-clean@13.5.1(transitive)
+ Added@react-native-community/cli-config@13.5.1(transitive)
+ Added@react-native-community/cli-debugger-ui@12.0.0-alpha.1513.5.1(transitive)
+ Added@react-native-community/cli-doctor@13.5.1(transitive)
+ Added@react-native-community/cli-hermes@13.5.1(transitive)
+ Added@react-native-community/cli-platform-android@13.5.1(transitive)
+ Added@react-native-community/cli-platform-apple@13.5.1(transitive)
+ Added@react-native-community/cli-platform-ios@13.5.1(transitive)
+ Added@react-native-community/cli-server-api@12.0.0-alpha.1513.5.1(transitive)
+ Added@react-native-community/cli-tools@12.0.0-alpha.1513.5.1(transitive)
+ Added@react-native-community/cli-types@13.5.1(transitive)
+ Added@react-native/assets-registry@0.74.0(transitive)
+ Added@react-native/babel-plugin-codegen@0.74.89(transitive)
+ Added@react-native/babel-preset@0.74.89(transitive)
+ Added@react-native/codegen@0.74.00.74.89(transitive)
+ Added@react-native/community-cli-plugin@0.74.0(transitive)
+ Added@react-native/debugger-frontend@0.74.89(transitive)
+ Added@react-native/dev-middleware@0.74.89(transitive)
+ Added@react-native/gradle-plugin@0.74.0(transitive)
+ Added@react-native/js-polyfills@0.74.0(transitive)
+ Added@react-native/metro-babel-transformer@0.74.89(transitive)
+ Added@react-native/normalize-colors@0.74.1(transitive)
+ Added@react-native/virtualized-lists@0.74.0(transitive)
+ Added@rnx-kit/chromium-edge-launcher@1.0.0(transitive)
+ Added@scure/base@1.2.4(transitive)
+ Added@sideway/address@4.1.5(transitive)
+ Added@sideway/formula@3.0.1(transitive)
+ Added@sideway/pinpoint@2.0.0(transitive)
+ Added@sinclair/typebox@0.27.8(transitive)
+ Added@sinonjs/commons@3.0.1(transitive)
+ Added@sinonjs/fake-timers@10.3.0(transitive)
+ Added@socket.io/component-emitter@3.1.2(transitive)
+ Added@types/dom-screen-wake-lock@1.0.3(transitive)
+ Added@types/istanbul-lib-coverage@2.0.6(transitive)
+ Added@types/istanbul-lib-report@3.0.3(transitive)
+ Added@types/istanbul-reports@3.0.4(transitive)
+ Added@types/node@18.15.13(transitive)
+ Added@types/node-forge@1.3.11(transitive)
+ Added@types/stack-utils@2.0.3(transitive)
+ Added@types/uuid@10.0.0(transitive)
+ Added@types/yargs@15.0.1916.0.917.0.33(transitive)
+ Added@types/yargs-parser@21.0.3(transitive)
+ Addedabort-controller@3.0.0(transitive)
+ Addedaccepts@1.3.8(transitive)
+ Addedacorn@8.14.0(transitive)
+ Addedanser@1.4.10(transitive)
+ Addedansi-fragments@0.2.1(transitive)
+ Addedansi-regex@4.1.15.0.1(transitive)
+ Addedansi-styles@3.2.14.3.05.2.0(transitive)
+ Addedanymatch@3.1.3(transitive)
+ Addedappdirsjs@1.2.7(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedasap@2.0.6(transitive)
+ Addedast-types@0.15.2(transitive)
+ Addedastral-regex@1.0.0(transitive)
+ Addedasync-limiter@1.0.1(transitive)
+ Addedavailable-typed-arrays@1.0.7(transitive)
+ Addedbabel-core@7.0.0-bridge.0(transitive)
+ Addedbabel-plugin-polyfill-corejs2@0.4.12(transitive)
+ Addedbabel-plugin-polyfill-corejs3@0.10.6(transitive)
+ Addedbabel-plugin-polyfill-regenerator@0.6.3(transitive)
+ Addedbabel-plugin-transform-flow-enums@0.0.2(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbip39@3.1.0(transitive)
+ Addedbl@4.1.0(transitive)
+ Addedbowser@2.11.0(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedbraces@3.0.3(transitive)
+ Addedbrowserslist@4.24.4(transitive)
+ Addedbser@2.1.1(transitive)
+ Addedbuffer@5.7.1(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedbufferutil@4.0.9(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcall-bind@1.0.8(transitive)
+ Addedcall-bind-apply-helpers@1.0.1(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcaller-callsite@2.0.0(transitive)
+ Addedcaller-path@2.0.0(transitive)
+ Addedcallsites@2.0.0(transitive)
+ Addedcamelcase@5.3.16.3.0(transitive)
+ Addedcaniuse-lite@1.0.30001697(transitive)
+ Addedchalk@4.1.2(transitive)
+ Addedchrome-launcher@0.15.2(transitive)
+ Addedci-info@2.0.03.9.0(transitive)
+ Addedcli-cursor@3.1.0(transitive)
+ Addedcli-spinners@2.9.2(transitive)
+ Addedcliui@6.0.08.0.1(transitive)
+ Addedclone@1.0.4(transitive)
+ Addedclone-deep@4.0.1(transitive)
+ Addedcolor-convert@1.9.32.0.1(transitive)
+ Addedcolor-name@1.1.31.1.4(transitive)
+ Addedcolorette@1.4.0(transitive)
+ Addedcommand-exists@1.2.9(transitive)
+ Addedcommander@9.5.0(transitive)
+ Addedcommondir@1.0.1(transitive)
+ Addedcompressible@2.0.18(transitive)
+ Addedcompression@1.7.5(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedconnect@3.7.0(transitive)
+ Addedconvert-source-map@2.0.0(transitive)
+ Addedcore-js-compat@3.40.0(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedcosmiconfig@5.2.1(transitive)
+ Addedcross-fetch@4.1.0(transitive)
+ Addedcross-spawn@7.0.6(transitive)
+ Addeddate-fns@2.30.0(transitive)
+ Addeddayjs@1.11.13(transitive)
+ Addeddebug@2.6.94.3.7(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addeddeepmerge@4.3.1(transitive)
+ Addeddefaults@1.0.4(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addeddefine-lazy-prop@2.0.0(transitive)
+ Addeddenodeify@1.2.1(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddetect-browser@5.3.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedeciesjs@0.3.21(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedelectron-to-chromium@1.5.91(transitive)
+ Addedemoji-regex@8.0.0(transitive)
+ Addedencodeurl@1.0.22.0.0(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedengine.io-client@6.6.3(transitive)
+ Addedengine.io-parser@5.2.3(transitive)
+ Addedenvinfo@7.14.0(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addederror-stack-parser@2.1.4(transitive)
+ Addederrorhandler@1.5.1(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedescalade@3.2.0(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedescape-string-regexp@2.0.04.0.0(transitive)
+ Addedesprima@4.0.1(transitive)
+ Addedesutils@2.0.3(transitive)
+ Addedetag@1.8.1(transitive)
+ Addedeth-rpc-errors@4.0.3(transitive)
+ Addedethers@6.8.1(transitive)
+ Addedevent-target-shim@5.0.1(transitive)
+ Addedeventemitter2@6.4.9(transitive)
+ Addedexeca@5.1.1(transitive)
+ Addedextension-port-stream@3.0.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-xml-parser@4.5.1(transitive)
+ Addedfb-watchman@2.0.2(transitive)
+ Addedfill-range@7.1.1(transitive)
+ Addedfinalhandler@1.1.2(transitive)
+ Addedfind-cache-dir@2.1.0(transitive)
+ Addedfind-up@3.0.04.1.05.0.0(transitive)
+ Addedflow-enums-runtime@0.0.6(transitive)
+ Addedflow-parser@0.206.0(transitive)
+ Addedfor-each@0.3.4(transitive)
+ Addedfresh@0.5.2(transitive)
+ Addedfs-extra@8.1.0(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedfsevents@2.3.3(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedfutoin-hkdf@1.5.3(transitive)
+ Addedgensync@1.0.0-beta.2(transitive)
+ Addedget-caller-file@2.0.5(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedget-stream@6.0.1(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedglobals@11.12.0(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhas-tostringtag@1.0.2(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhermes-estree@0.15.00.19.1(transitive)
+ Addedhermes-parser@0.15.00.19.1(transitive)
+ Addedhermes-profile-transformer@0.0.6(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addedhuman-signals@2.1.0(transitive)
+ Addedhypersdk-client@0.4.16(transitive)
+ Addedi18next@23.11.5(transitive)
+ Addedi18next-browser-languagedetector@7.1.0(transitive)
+ Addedimage-size@1.2.0(transitive)
+ Addedimport-fresh@2.0.0(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedip@1.1.9(transitive)
+ Addedis-arguments@1.2.0(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-callable@1.2.7(transitive)
+ Addedis-core-module@2.16.1(transitive)
+ Addedis-directory@0.3.1(transitive)
+ Addedis-docker@2.2.1(transitive)
+ Addedis-fullwidth-code-point@2.0.03.0.0(transitive)
+ Addedis-generator-function@1.1.0(transitive)
+ Addedis-interactive@1.0.0(transitive)
+ Addedis-number@7.0.0(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedis-regex@1.2.1(transitive)
+ Addedis-stream@2.0.1(transitive)
+ Addedis-typed-array@1.1.15(transitive)
+ Addedis-unicode-supported@0.1.0(transitive)
+ Addedis-wsl@1.1.02.2.0(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedisexe@2.0.0(transitive)
+ Addedisobject@3.0.1(transitive)
+ Addedjest-environment-node@29.7.0(transitive)
+ Addedjest-get-type@29.6.3(transitive)
+ Addedjest-message-util@29.7.0(transitive)
+ Addedjest-mock@29.7.0(transitive)
+ Addedjest-util@27.5.129.7.0(transitive)
+ Addedjest-validate@29.7.0(transitive)
+ Addedjest-worker@27.5.1(transitive)
+ Addedjoi@17.13.3(transitive)
+ Addedjs-yaml@3.14.1(transitive)
+ Addedjsc-android@250231.0.0(transitive)
+ Addedjsc-safe-url@0.2.4(transitive)
+ Addedjscodeshift@0.14.0(transitive)
+ Addedjsesc@3.0.23.1.0(transitive)
+ Addedjson-parse-better-errors@1.0.2(transitive)
+ Addedjson5@2.2.3(transitive)
+ Addedjsonfile@4.0.0(transitive)
+ Addedkind-of@6.0.3(transitive)
+ Addedkleur@3.0.3(transitive)
+ Addedleven@3.1.0(transitive)
+ Addedlighthouse-logger@1.4.2(transitive)
+ Addedlocate-path@3.0.05.0.06.0.0(transitive)
+ Addedlodash.debounce@4.0.8(transitive)
+ Addedlodash.throttle@4.1.1(transitive)
+ Addedlog-symbols@4.1.0(transitive)
+ Addedlogkitty@0.7.1(transitive)
+ Addedlossless-json@4.0.2(transitive)
+ Addedlru-cache@5.1.1(transitive)
+ Addedmake-dir@2.1.0(transitive)
+ Addedmakeerror@1.0.12(transitive)
+ Addedmarky@1.2.5(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmemoize-one@5.2.1(transitive)
+ Addedmerge-stream@2.0.0(transitive)
+ Addedmetro@0.79.1(transitive)
+ Addedmetro-babel-transformer@0.79.1(transitive)
+ Addedmetro-cache@0.79.1(transitive)
+ Addedmetro-cache-key@0.79.1(transitive)
+ Addedmetro-config@0.79.1(transitive)
+ Addedmetro-core@0.79.1(transitive)
+ Addedmetro-file-map@0.79.1(transitive)
+ Addedmetro-minify-terser@0.79.1(transitive)
+ Addedmetro-resolver@0.79.1(transitive)
+ Addedmetro-runtime@0.79.10.80.12(transitive)
+ Addedmetro-source-map@0.79.10.80.12(transitive)
+ Addedmetro-symbolicate@0.79.10.80.12(transitive)
+ Addedmetro-transform-plugins@0.79.1(transitive)
+ Addedmetro-transform-worker@0.79.1(transitive)
+ Addedmicromatch@4.0.8(transitive)
+ Addedmime@1.6.02.6.0(transitive)
+ Addedmimic-fn@2.1.0(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmkdirp@0.5.61.0.4(transitive)
+ Addedms@2.0.0(transitive)
+ Addednegotiator@0.6.30.6.4(transitive)
+ Addedneo-async@2.6.2(transitive)
+ Addednocache@3.0.4(transitive)
+ Addednode-abort-controller@3.1.1(transitive)
+ Addednode-dir@0.1.17(transitive)
+ Addednode-fetch@2.7.0(transitive)
+ Addednode-forge@1.3.1(transitive)
+ Addednode-int64@0.4.0(transitive)
+ Addednode-releases@2.0.19(transitive)
+ Addednode-stream-zip@1.15.0(transitive)
+ Addednormalize-path@3.0.0(transitive)
+ Addednpm-run-path@4.0.1(transitive)
+ Addednullthrows@1.1.1(transitive)
+ Addedob1@0.79.10.80.12(transitive)
+ Addedobj-multiplex@1.0.0(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedon-finished@2.3.02.4.1(transitive)
+ Addedon-headers@1.0.2(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedonetime@5.1.2(transitive)
+ Addedopen@6.4.07.4.28.4.2(transitive)
+ Addedora@5.4.1(transitive)
+ Addedp-limit@2.3.03.1.0(transitive)
+ Addedp-locate@3.0.04.1.05.0.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedparse-json@4.0.0(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpath-exists@3.0.04.0.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedpath-key@3.1.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpicocolors@1.1.1(transitive)
+ Addedpicomatch@2.3.14.0.2(transitive)
+ Addedpify@4.0.1(transitive)
+ Addedpirates@4.0.6(transitive)
+ Addedpkg-dir@3.0.0(transitive)
+ Addedpossible-typed-array-names@1.0.0(transitive)
+ Addedpretty-format@26.6.229.7.0(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedpromise@8.3.0(transitive)
+ Addedprompts@2.4.2(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedqr-code-styling@1.9.1(transitive)
+ Addedqrcode-generator@1.4.4(transitive)
+ Addedqrcode-terminal-nooctal@0.12.1(transitive)
+ Addedqueue@6.0.2(transitive)
+ Addedrange-parser@1.2.1(transitive)
+ Addedreact@18.2.0(transitive)
+ Addedreact-devtools-core@5.3.2(transitive)
+ Addedreact-is@17.0.218.3.1(transitive)
+ Addedreact-native@1000.0.0(transitive)
+ Addedreact-native-webview@11.26.1(transitive)
+ Addedreact-refresh@0.14.20.4.3(transitive)
+ Addedreact-shallow-renderer@16.15.0(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedreadline@1.3.0(transitive)
+ Addedrecast@0.21.5(transitive)
+ Addedregenerate@1.4.2(transitive)
+ Addedregenerate-unicode-properties@10.2.0(transitive)
+ Addedregenerator-runtime@0.13.110.14.1(transitive)
+ Addedregenerator-transform@0.15.2(transitive)
+ Addedregexpu-core@6.2.0(transitive)
+ Addedregjsgen@0.8.0(transitive)
+ Addedregjsparser@0.12.0(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedrequire-main-filename@2.0.0(transitive)
+ Addedresolve@1.22.10(transitive)
+ Addedresolve-from@3.0.0(transitive)
+ Addedrestore-cursor@3.1.0(transitive)
+ Addedrimraf@2.6.33.0.2(transitive)
+ Addedrollup-plugin-visualizer@5.14.0(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafe-regex-test@1.1.0(transitive)
+ Addedscheduler@0.24.0-canary-efb381bbf-20230505(transitive)
+ Addedsecp256k1@5.0.1(transitive)
+ Addedselfsigned@2.4.1(transitive)
+ Addedsemver@5.7.26.3.1(transitive)
+ Addedsend@0.19.0(transitive)
+ Addedserialize-error@2.1.0(transitive)
+ Addedserve-static@1.16.2(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedshallow-clone@3.0.1(transitive)
+ Addedshebang-command@2.0.0(transitive)
+ Addedshebang-regex@3.0.0(transitive)
+ Addedshell-quote@1.8.2(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addedsisteransi@1.0.5(transitive)
+ Addedslash@3.0.0(transitive)
+ Addedslice-ansi@2.1.0(transitive)
+ Addedsocket.io-client@4.8.1(transitive)
+ Addedsocket.io-parser@4.2.4(transitive)
+ Addedsource-map@0.5.70.6.10.7.4(transitive)
+ Addedsource-map-support@0.5.21(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedstack-utils@2.0.6(transitive)
+ Addedstackframe@1.3.4(transitive)
+ Addedstacktrace-parser@0.1.10(transitive)
+ Addedstatuses@1.5.02.0.1(transitive)
+ Addedstring-width@4.2.3(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedstrip-ansi@5.2.06.0.1(transitive)
+ Addedstrip-final-newline@2.0.0(transitive)
+ Addedstrnum@1.0.5(transitive)
+ Addedsudo-prompt@9.2.1(transitive)
+ Addedsupports-color@7.2.08.1.1(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtemp@0.8.4(transitive)
+ Addedtemp-dir@2.0.0(transitive)
+ Addedterser@5.37.0(transitive)
+ Addedthroat@5.0.0(transitive)
+ Addedthrough2@2.0.5(transitive)
+ Addedtmpl@1.0.5(transitive)
+ Addedto-regex-range@5.0.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtr46@0.0.3(transitive)
+ Addedtslib@2.4.0(transitive)
+ Addedtype-detect@4.0.8(transitive)
+ Addedtype-fest@0.7.1(transitive)
+ Addedunicode-canonical-property-names-ecmascript@2.0.1(transitive)
+ Addedunicode-match-property-ecmascript@2.0.0(transitive)
+ Addedunicode-match-property-value-ecmascript@2.2.0(transitive)
+ Addedunicode-property-aliases-ecmascript@2.1.0(transitive)
+ Addeduniversalify@0.1.2(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedupdate-browserslist-db@1.1.2(transitive)
+ Addedutf-8-validate@5.0.10(transitive)
+ Addedutil@0.12.5(transitive)
+ Addedutils-merge@1.0.1(transitive)
+ Addeduuid@8.3.2(transitive)
+ Addedvary@1.1.2(transitive)
+ Addedvlq@1.0.1(transitive)
+ Addedwalker@1.0.8(transitive)
+ Addedwcwidth@1.0.1(transitive)
+ Addedwebextension-polyfill@0.10.0(transitive)
+ Addedwebidl-conversions@3.0.1(transitive)
+ Addedwhatwg-fetch@3.6.20(transitive)
+ Addedwhatwg-url@5.0.0(transitive)
+ Addedwhich@2.0.2(transitive)
+ Addedwhich-module@2.0.1(transitive)
+ Addedwhich-typed-array@1.1.18(transitive)
+ Addedwrap-ansi@6.2.07.0.0(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedwrite-file-atomic@2.4.3(transitive)
+ Addedws@6.2.37.5.108.5.0(transitive)
+ Addedxmlhttprequest-ssl@2.1.2(transitive)
+ Addedxtend@4.0.2(transitive)
+ Addedy18n@4.0.35.0.8(transitive)
+ Addedyallist@3.1.1(transitive)
+ Addedyaml@2.7.0(transitive)
+ Addedyargs@15.4.117.7.2(transitive)
+ Addedyargs-parser@18.1.321.1.1(transitive)
+ Addedyocto-queue@0.1.0(transitive)
- Removed@avalabs/avalanchejs@4.0.5(transitive)
- Removed@avalabs/core-chains-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/core-coingecko-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/core-etherscan-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/core-utils-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/core-wallets-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/glacier-sdk@3.1.0-alpha.5(transitive)
- Removed@avalabs/types@3.1.0-alpha.5(transitive)
- Removed@avalabs/vm-module-types@0.0.0-CP-9216-20240924020441(transitive)
- Removed@types/node@11.11.6(transitive)
- Removedbip39@3.0.4(transitive)
- Removeddata-uri-to-buffer@4.0.1(transitive)
- Removedfetch-blob@3.2.0(transitive)
- Removedformdata-polyfill@4.0.10(transitive)
- Removednode-domexception@1.0.0(transitive)
- Removednode-fetch@3.3.2(transitive)
- Removedpbkdf2@3.1.2(transitive)
- Removedstring_decoder@1.3.0(transitive)
- Removedweb-streams-polyfill@3.3.3(transitive)
Updated@avalabs/vm-module-types@0.0.0-CP-9420-20250129154656