@galacticcouncil/xc-core 0.13.0-pr297-cdac75d → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Xe=Object.create;var U=Object.defineProperty;var qe=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var ze=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty;var P=(a,e)=>{for(var t in e)U(a,t,{get:e[t],enumerable:!0})},fe=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $e(e))!je.call(a,i)&&i!==t&&U(a,i,{get:()=>e[i],enumerable:!(n=qe(e,i))||n.enumerable});return a};var Je=(a,e,t)=>(t=a!=null?Xe(ze(a)):{},fe(e||!a||!a.__esModule?U(t,"default",{value:a,enumerable:!0}):t,a)),Ye=a=>fe(U({},"__esModule",{value:!0}),a);var dt={};P(dt,{Abi:()=>x,Asset:()=>S,AssetAmount:()=>O,AssetRoute:()=>D,BaseConfig:()=>o,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>Te,ChainRoutes:()=>B,ChainType:()=>b,ConfigBuilder:()=>Ne,ConfigService:()=>K,ContractConfig:()=>oe,Erc20Client:()=>Z,EvmChain:()=>te,EvmClient:()=>g,EvmParachain:()=>ee,ExtrinsicConfig:()=>pe,MoveConfig:()=>ye,Parachain:()=>E,Precompile:()=>Qe,ProgramConfig:()=>ue,Snowbridge:()=>M,SolanaChain:()=>ne,SolanaQueryConfig:()=>ie,SubstrateQueryConfig:()=>se,SuiChain:()=>ae,SuiQueryConfig:()=>re,TransferValidation:()=>le,TransferValidationError:()=>me,TransferValidator:()=>ce,Wormhole:()=>m,XcmVersion:()=>xe,addr:()=>T,codec:()=>J,mrl:()=>Y,multiloc:()=>Q});module.exports=Ye(dt);var S=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var L=Je(require("big.js"),1);var he=require("@galacticcouncil/common");L.default.NE=-18;var O=class a extends S{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...i}){super(i),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new a({...e,...t})}isSame(e){return super.isEqual(e)&&this.decimals===e.decimals}isEqual(e){return this.isSame(e)&&this.amount===e.amount}copyWith(e){return new a({...this,...e})}padByPct(e){return new a({...this,amount:this.amount+this.amount*e/100n})}toBig(){return(0,L.default)(this.amount.toString())}toBigDecimal(e){return(0,L.default)(this.toDecimal(e))}toDecimal(e){return he.big.toDecimal(this.amount,this.decimals,e)}};var be=require("@wormhole-foundation/sdk-connect"),m=class{id;coreBridge;tokenBridge;tokenRelayer;platformAddressFormat;constructor({id:e,coreBridge:t,tokenBridge:n,tokenRelayer:i,platformAddressFormat:s}){this.id=e,this.coreBridge=t,this.tokenBridge=n,this.tokenRelayer=i,this.platformAddressFormat=s}static fromChain(e){if("wormhole"in e&&e.wormhole)return e.wormhole;throw new Error(e.name+" is not supported in Wormhole.")}static isKnown(e){return"wormhole"in e&&!!e.wormhole}getWormholeId(){return this.id}getCoreBridge(){return this.coreBridge}getTokenBridge(){return this.tokenBridge}getTokenRelayer(){if(this.tokenRelayer)return this.tokenRelayer;throw new Error("Wormhole relayer configuration missing")}normalizeAddress(e){return new be.UniversalAddress(e,this.platformAddressFormat).toString()}};var M=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var Te=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Te||{}),b=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(b||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:i=!1,key:s,name:r}){this.assetsData=new Map(e.map(u=>[u.asset.key,u])),this.ecosystem=t,this.explorer=n,this.isTestChain=i,this.key=s,this.name=r}get dex(){if(!this._dex)throw new Error(`No DEX attached to chain ${this.key}`);return this._dex}registerDex(e){return this._dex=e,this}isSubstrate(){return this.getType()==="parachain"||this.getType()==="evm-parachain"}isEvm(){return this.getType()==="evm-chain"||this.getType()==="evm-parachain"}isSolana(){return this.getType()==="solana-chain"}isSui(){return this.getType()==="sui-chain"}isEvmChain(){return this.getType()==="evm-chain"}isEvmParachain(){return this.getType()==="evm-parachain"}isParachain(){return this.getType()==="parachain"}getAsset(e){return this.assetsData.get(e)?.asset}getAssetId(e){return this.assetsData.get(e.key)?.id??e.originSymbol}getAssetDecimals(e){return this.assetsData.get(e.key)?.decimals}getAssetMin(e){return this.assetsData.get(e.key)?.min??0}getBalanceAssetId(e){return this.assetsData.get(e.key)?.balanceId??this.getAssetId(e)}updateAsset(e){this.assetsData.set(e.asset.key,e)}};var ge=require("@polkadot-api/legacy-provider"),Ce=require("@galacticcouncil/common");var xe=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(xe||{}),E=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:u=!1,usesSignerFee:p=!1,usesH160Acc:h=!1,usesLegacyEnhancer:v=!1,ws:w,xcmVersion:C="V4",...V}){super({...V}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=u,this.usesSignerFee=p,this.usesH160Acc=h,this.usesLegacyEnhancer=v,this.ws=w,this.xcmVersion=C}get client(){return Ce.SubstrateApis.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:(0,ge.withLegacy)()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},i=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(i.toLowerCase());if(r)return{asset:r,decimals:s};throw Error("Chain currency configuration not found")}getAssetXcmLocation(e){return this.assetsData.get(e.key)?.xcmLocation}getMetadataAssetId(e){return this.assetsData.get(e.key)?.metadataId??this.getAssetId(e)}getMinAssetId(e){return this.assetsData.get(e.key)?.minId??this.getAssetId(e)}findAssetById(e){return Array.from(this.assetsData.values()).find(t=>Object.hasOwn(t,"metadataId")?t.metadataId?.toString()===e:t.id?.toString()===e)}};var Ae=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var ve=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var we=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Pe=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var Se=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var Me=[{inputs:[],name:"AgentAlreadyExists",type:"error"},{inputs:[],name:"ShouldNotReachHere",type:"error"},{inputs:[],name:"InvalidNetwork",type:"error"},{inputs:[],name:"InvalidAsset",type:"error"},{inputs:[],name:"InsufficientGasLimit",type:"error"},{inputs:[],name:"InvalidCommand",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"ExceededMaximumValue",type:"error"},{inputs:[],name:"TooManyAssets",type:"error"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"CommandFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{components:[{internalType:"address",name:"origin",type:"address"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Asset[]",name:"assets",type:"tuple[]"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Xcm",name:"xcm",type:"tuple"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"value",type:"uint128"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],indexed:!1,internalType:"struct Payload",name:"payload",type:"tuple"}],name:"OutboundMessageAccepted",type:"event"},{inputs:[{components:[{internalType:"bytes32",name:"origin",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"bytes32",name:"topic",type:"bytes32"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"uint64",name:"gas",type:"uint64"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct Command[]",name:"commands",type:"tuple[]"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"},{internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"v2_submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"network",type:"uint8"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"id",type:"bytes32"}],name:"v2_createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"v2_outboundNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],name:"v2_isDispatched",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];var Ee=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];var Ie=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var x={Batch:Ae,Erc20:ve,Gmp:we,Meta:Pe,PolkadotXcm:Se,Snowbridge:Me,TokenBridge:Ee,TokenRelayer:Ie};var Qe={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var We=require("viem");var T={};P(T,{EvmAddr:()=>q,SolanaAddr:()=>$,Ss58Addr:()=>X,SuiAddr:()=>z});var I=require("@polkadot-api/substrate-bindings"),A=require("@polkadot-api/utils"),W=require("@solana/web3.js"),ke=require("viem"),d=require("@galacticcouncil/common"),Ze=/^0x[0-9a-fA-F]{64}$/,et=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,X=class{static isSs58Strict(e){if(!e||d.hex.isHex(e)||!et.test(e))return!1;let t=(0,I.getSs58AddressInfo)(e);return t.isValid&&t.publicKey.length===32}static isValid(e){return this.isSs58Strict(e)}static getPubKey(e){if(!this.isSs58Strict(e))throw new Error("Invalid SS58 address");let t=(0,I.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,A.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=d.hex.hexNormalize(e);d.hex.assertHexLen(n,32);let i=(0,A.fromHex)(d.hex.stripHexPrefix(n));return(0,I.fromBufferToBase58)(t)(i)}},q=class{static isValid(e){return(0,ke.isAddress)(e,{strict:!1})}},$=class{static isValid(e){try{let t=new W.PublicKey(e);return t.toBase58()===e&&t.toBytes().length===32}catch{return!1}}static getPubKey(e){if(!this.isValid(e))throw new Error("Invalid Solana address");return(0,A.toHex)(new W.PublicKey(e).toBytes())}static encodePubKey(e){let t=d.hex.hexNormalize(e);d.hex.assertHexLen(t,32);let n=(0,A.fromHex)(d.hex.stripHexPrefix(t));return new W.PublicKey(n).toBase58()}},z=class{static isValid(e){return Ze.test(e)}};var J={};P(J,{getHubCodecs:()=>j});var Re=require("polkadot-api"),De=require("@galacticcouncil/descriptors"),_=null;async function j(){return _||(_=await(0,Re.getTypedCodecs)(De.hub),_)}var Y={};P(Y,{createPayload:()=>nt,decodePayload:()=>at});var k=require("polkadot-api"),H=require("scale-ts"),N=require("@polkadot-api/utils"),f=require("@galacticcouncil/descriptors");async function Be(){let e=(await j()).tx.PolkadotXcm.send.inner.dest,t=(0,H.Struct)({destination:e});return(0,H.Enum)({V1:t})}function tt(a,e,t){let n;if(t)n=f.XcmV5Junction.AccountKey20({key:k.FixedSizeBinary.fromHex(e),network:void 0});else{let i=(0,k.AccountId)().enc(e);n=f.XcmV5Junction.AccountId32({id:k.FixedSizeBinary.fromBytes(i),network:void 0})}return f.XcmVersionedLocation.V5({parents:1,interior:f.XcmV5Junctions.X2([f.XcmV5Junction.Parachain(a.parachainId),n])})}async function nt(a,e,t=!1){let n=tt(a,e,t),i=await Be(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,N.toHex)(r)},toU8a(){return r}}}async function at(a){let e=a.startsWith("0x")?a.slice(2):a,t=(0,N.fromHex)(e);return(await Be()).dec(t)}var Q={};P(Q,{findGeneralIndex:()=>ot,findGlobalConsensus:()=>it,findNestedKey:()=>R,findPalletInstance:()=>rt,findParachain:()=>st});var Ve="GlobalConsensus",Fe="Parachain",Ue="GeneralIndex",Le="PalletInstance",R=(a,e)=>{let t=[];return JSON.stringify(a,(n,i)=>{let s=typeof i=="bigint"?i.toString():i;return i&&i[e]&&t.push(s),s}),t[0]},it=a=>{let e=R(a,Ve);return e&&e[Ve]},st=a=>{let e=R(a,Fe);return e&&e[Fe]},rt=a=>{let e=R(a,Le);return e&&e[Le]},ot=a=>{let e=R(a,Ue);return e&&e[Ue]};var{EvmAddr:pt}=T,Z=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!pt.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,We.encodeFunctionData)({abi:x.Erc20,args:[e,t],functionName:"approve"})}};var y=require("viem"),g=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>(0,y.http)(t));return(0,y.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,y.fallback)(e,{rank:!1}):(0,y.http)()})}getWsProvider(){return(0,y.createPublicClient)({chain:this.chain,transport:(0,y.webSocket)()})}getSigner(e){return(0,y.createWalletClient)({account:e,chain:this.chain,transport:(0,y.custom)(window.ethereum)})}};var{EvmAddr:yt}=T,ee=class extends E{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:i,...s}){super({...s}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=i&&new m(i)}get evmClient(){return new g(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(yt.isValid(e))return e;if(this.evmResolver)return this.evmResolver.toH160(e,this.client);throw new Error("No EVM resolver found for "+this.name)}};var te=class extends l{evmChain;id;rpcs;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,snowbridge:i,wormhole:s,...r}){super({...r}),this.evmChain=e,this.id=t,this.rpcs=n,this.snowbridge=i&&new M(i),this.wormhole=s&&new m(s)}get evmClient(){return new g(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,i=this.getAsset(t.toLowerCase());if(i)return{asset:i,decimals:n};throw Error("Chain currency configuration not found")}};var _e=require("@solana/web3.js");var ut="SOL",mt=9,ne=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new _e.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(ut.toLowerCase());if(e)return{asset:e,decimals:mt};throw Error("Chain currency configuration not found")}};var G=require("@mysten/sui/client");var lt="SUI",ct=9,ae=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,G.getFullnodeUrl)("mainnet");return new G.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(lt.toLowerCase());if(e)return{asset:e,decimals:ct};throw Error("Chain currency configuration not found")}};var D=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:u,tags:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=u,this.tags=p}};var B=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e,this.routes=new Map(t.map(({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:h,tags:v})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new D({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:h,tags:v})]))}getRoutes(){return Array.from(this.routes.values())}getUniqueRoutes(){let e=this.getRoutes();return[...new Map(e.map(t=>[t.source.asset,t])).values()]}getAssetRoutes(e){return this.getRoutes().filter(t=>t.source.asset.key===e.key)}getAssetDestinations(e){return this.getAssetRoutes(e).map(t=>t.destination.chain)}getAssetDestinationRoutes(e,t){let n=Array.from(this.routes.values()).filter(i=>i.source.asset===e&&i.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var c=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(c||{});var ie=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var se=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var re=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var He=require("viem");var oe=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:i,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=i}encodeFunctionData(){return(0,He.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var pe=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ye=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var ue=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...i}){super({...i,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var me=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},le=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},ce=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let i of this.criterias)n.push(i.check(e));return await Promise.allSettled(n).then(i=>i.forEach(s=>{if(s.status==="rejected"){let r=s.reason;t.push(r.report)}})),t}};function Ne(a){let e=a;return{assets:t=>({assets:e.getEcosystemAssets(t),asset:i=>{let s=e.getAsset(i);return{sourceChains:e.getSourceChains(s,t),source:u=>{let p=e.getChain(u);return{destinationChains:e.getDestinationChains(s,p),destination:v=>{let w=e.getChain(v),C=e.getAssetRoutes(s,p,w);return{routes:C,build:V=>{let Ge=C.find(F=>F.destination.asset.originSymbol===F.source.asset.originSymbol)||C[0],de=V?e.getAsset(V):Ge.destination.asset,[Ke]=e.getAssetRoutes(de,w,p),Oe=C.find(F=>F.destination.asset===de);return{origin:{chain:p,route:Oe},reverse:{chain:w,route:Ke}}}}}}}}}})}}var K=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),i=n.getRoutes(),s=({source:p,destination:h})=>p.asset===t.source.asset&&h.asset===t.destination.asset&&h.chain===t.destination.chain,r=i.filter(p=>!s(p)).concat(t),u=new B({...n,routes:r});this.routes.set(n.chain.key,u)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,addr,codec,mrl,multiloc});
1
+ "use strict";var Ne=Object.create;var F=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var U=(a,e)=>{for(var t in e)F(a,t,{get:e[t],enumerable:!0})},le=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of He(e))!Ke.call(a,i)&&i!==t&&F(a,i,{get:()=>e[i],enumerable:!(n=Oe(e,i))||n.enumerable});return a};var qe=(a,e,t)=>(t=a!=null?Ne(Ge(a)):{},le(e||!a||!a.__esModule?F(t,"default",{value:a,enumerable:!0}):t,a)),Xe=a=>le(F({},"__esModule",{value:!0}),a);var yt={};U(yt,{Abi:()=>A,Asset:()=>M,AssetAmount:()=>G,AssetRoute:()=>k,BaseConfig:()=>o,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>be,ChainRoutes:()=>R,ChainType:()=>h,ConfigBuilder:()=>Ue,ConfigService:()=>H,ContractConfig:()=>ie,Erc20Client:()=>Y,EvmChain:()=>Q,EvmClient:()=>C,EvmParachain:()=>J,ExtrinsicConfig:()=>se,MoveConfig:()=>re,Parachain:()=>I,Precompile:()=>$e,ProgramConfig:()=>oe,Snowbridge:()=>S,SolanaChain:()=>Z,SolanaQueryConfig:()=>te,SubstrateQueryConfig:()=>ne,SuiChain:()=>ee,SuiQueryConfig:()=>ae,TransferValidation:()=>ye,TransferValidationError:()=>pe,TransferValidator:()=>ue,Wormhole:()=>m,XcmVersion:()=>Te,addr:()=>T,mrl:()=>z,multiloc:()=>j});module.exports=Xe(yt);var M=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var L=qe(require("big.js"),1);var de=require("@galacticcouncil/common");L.default.NE=-18;var G=class a extends M{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...i}){super(i),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new a({...e,...t})}isSame(e){return super.isEqual(e)&&this.decimals===e.decimals}isEqual(e){return this.isSame(e)&&this.amount===e.amount}copyWith(e){return new a({...this,...e})}padByPct(e){return new a({...this,amount:this.amount+this.amount*e/100n})}toBig(){return(0,L.default)(this.amount.toString())}toBigDecimal(e){return(0,L.default)(this.toDecimal(e))}toDecimal(e){return de.big.toDecimal(this.amount,this.decimals,e)}};var ce=require("@wormhole-foundation/sdk-connect"),m=class{id;coreBridge;tokenBridge;tokenRelayer;platformAddressFormat;constructor({id:e,coreBridge:t,tokenBridge:n,tokenRelayer:i,platformAddressFormat:s}){this.id=e,this.coreBridge=t,this.tokenBridge=n,this.tokenRelayer=i,this.platformAddressFormat=s}static fromChain(e){if("wormhole"in e&&e.wormhole)return e.wormhole;throw new Error(e.name+" is not supported in Wormhole.")}static isKnown(e){return"wormhole"in e&&!!e.wormhole}getWormholeId(){return this.id}getCoreBridge(){return this.coreBridge}getTokenBridge(){return this.tokenBridge}getTokenRelayer(){if(this.tokenRelayer)return this.tokenRelayer;throw new Error("Wormhole relayer configuration missing")}normalizeAddress(e){return new ce.UniversalAddress(e,this.platformAddressFormat).toString()}};var S=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var be=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(be||{}),h=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(h||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:i=!1,key:s,name:r}){this.assetsData=new Map(e.map(u=>[u.asset.key,u])),this.ecosystem=t,this.explorer=n,this.isTestChain=i,this.key=s,this.name=r}get dex(){if(!this._dex)throw new Error(`No DEX attached to chain ${this.key}`);return this._dex}registerDex(e){return this._dex=e,this}isSubstrate(){return this.getType()==="parachain"||this.getType()==="evm-parachain"}isEvm(){return this.getType()==="evm-chain"||this.getType()==="evm-parachain"}isSolana(){return this.getType()==="solana-chain"}isSui(){return this.getType()==="sui-chain"}isEvmChain(){return this.getType()==="evm-chain"}isEvmParachain(){return this.getType()==="evm-parachain"}isParachain(){return this.getType()==="parachain"}getAsset(e){return this.assetsData.get(e)?.asset}getAssetId(e){return this.assetsData.get(e.key)?.id??e.originSymbol}getAssetDecimals(e){return this.assetsData.get(e.key)?.decimals}getAssetMin(e){return this.assetsData.get(e.key)?.min??0}getBalanceAssetId(e){return this.assetsData.get(e.key)?.balanceId??this.getAssetId(e)}updateAsset(e){this.assetsData.set(e.asset.key,e)}};var fe=require("@polkadot-api/legacy-provider"),he=require("@galacticcouncil/common");var Te=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Te||{}),I=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:u=!1,usesSignerFee:p=!1,usesH160Acc:f=!1,usesLegacyEnhancer:P=!1,ws:w,xcmVersion:x="V4",...B}){super({...B}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=u,this.usesSignerFee=p,this.usesH160Acc=f,this.usesLegacyEnhancer=P,this.ws=w,this.xcmVersion=x}get client(){return he.SubstrateApis.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:(0,fe.withLegacy)()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},i=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(i.toLowerCase());if(r)return{asset:r,decimals:s};throw Error("Chain currency configuration not found")}getAssetXcmLocation(e){return this.assetsData.get(e.key)?.xcmLocation}getMetadataAssetId(e){return this.assetsData.get(e.key)?.metadataId??this.getAssetId(e)}getMinAssetId(e){return this.assetsData.get(e.key)?.minId??this.getAssetId(e)}findAssetById(e){return Array.from(this.assetsData.values()).find(t=>Object.hasOwn(t,"metadataId")?t.metadataId?.toString()===e:t.id?.toString()===e)}};var ge=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ce=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var xe=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ae=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var ve=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var Pe=[{inputs:[{internalType:"address",name:"beefyClient",type:"address"},{internalType:"address",name:"agentExecutor",type:"address"},{internalType:"ParaID",name:"bridgeHubParaID",type:"uint32"},{internalType:"bytes32",name:"bridgeHubAgentID",type:"bytes32"},{internalType:"uint8",name:"foreignTokenDecimals",type:"uint8"},{internalType:"uint128",name:"destinationMaxTransferFee",type:"uint128"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AgentAlreadyCreated",type:"error"},{inputs:[],name:"AgentDoesNotExist",type:"error"},{inputs:[],name:"ChannelAlreadyCreated",type:"error"},{inputs:[],name:"ChannelDoesNotExist",type:"error"},{inputs:[],name:"Disabled",type:"error"},{inputs:[],name:"InsufficientEther",type:"error"},{inputs:[],name:"InvalidAgentExecutionPayload",type:"error"},{inputs:[],name:"InvalidChannelUpdate",type:"error"},{inputs:[],name:"InvalidCodeHash",type:"error"},{inputs:[],name:"InvalidConstructorParams",type:"error"},{inputs:[],name:"InvalidContract",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"NativeTransferFailed",type:"error"},{inputs:[],name:"NotEnoughGas",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"},{internalType:"uint256",name:"y",type:"uint256"}],name:"PRBMath_MulDiv18_Overflow",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"},{internalType:"uint256",name:"y",type:"uint256"},{internalType:"uint256",name:"denominator",type:"uint256"}],name:"PRBMath_MulDiv_Overflow",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Convert_Overflow",type:"error"},{inputs:[{internalType:"UD60x18",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Exp2_InputTooBig",type:"error"},{inputs:[{internalType:"UD60x18",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Log_InputTooSmall",type:"error"},{inputs:[],name:"TokenNotRegistered",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"ChannelCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"ChannelUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"tokenID",type:"bytes32"},{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"ForeignTokenRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"bytes32",name:"messageID",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"enum OperatingMode",name:"mode",type:"uint8"}],name:"OperatingModeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"bytes32",name:"messageID",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"}],name:"OutboundMessageAccepted",type:"event"},{anonymous:!1,inputs:[],name:"PricingParametersChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"TokenRegistrationSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"}],name:"TokenSent",type:"event"},{anonymous:!1,inputs:[],name:"TokenTransferFeesChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"AGENT_EXECUTOR",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"BEEFY_CLIENT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"agentExecute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"channelNoncesOf",outputs:[{internalType:"uint64",name:"",type:"uint64"},{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"channelOperatingModeOf",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"createChannel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"depositEther",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mintForeignToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"pricingParameters",outputs:[{internalType:"UD60x18",name:"",type:"uint256"},{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"queryForeignTokenID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"quoteRegisterTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{internalType:"uint128",name:"destinationFee",type:"uint128"}],name:"quoteSendTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"registerForeignToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{internalType:"uint128",name:"destinationFee",type:"uint128"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"sendToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setOperatingMode",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setPricingParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setTokenTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"ChannelID",name:"channelID",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"enum Command",name:"command",type:"uint8"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint64",name:"maxDispatchGas",type:"uint64"},{internalType:"uint256",name:"maxFeePerGas",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"bytes32",name:"id",type:"bytes32"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"}],name:"submitV1",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenID",type:"bytes32"}],name:"tokenAddressOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"transferNativeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}];var we=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];var Me=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var A={Batch:ge,Erc20:Ce,Gmp:xe,Meta:Ae,PolkadotXcm:ve,Snowbridge:Pe,TokenBridge:we,TokenRelayer:Me};var $e={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var Be=require("viem");var T={};U(T,{EvmAddr:()=>q,SolanaAddr:()=>X,Ss58Addr:()=>K,SuiAddr:()=>$});var D=require("@polkadot-api/substrate-bindings"),v=require("@polkadot-api/utils"),_=require("@solana/web3.js"),Se=require("viem"),b=require("@galacticcouncil/common"),ze=/^0x[0-9a-fA-F]{64}$/,je=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,K=class{static isSs58Strict(e){if(!e||b.hex.isHex(e)||!je.test(e))return!1;let t=(0,D.getSs58AddressInfo)(e);return t.isValid&&t.publicKey.length===32}static isValid(e){return this.isSs58Strict(e)}static getPubKey(e){if(!this.isSs58Strict(e))throw new Error("Invalid SS58 address");let t=(0,D.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,v.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=b.hex.hexNormalize(e);b.hex.assertHexLen(n,32);let i=(0,v.fromHex)(b.hex.stripHexPrefix(n));return(0,D.fromBufferToBase58)(t)(i)}},q=class{static isValid(e){return(0,Se.isAddress)(e,{strict:!1})}},X=class{static isValid(e){try{let t=new _.PublicKey(e);return t.toBase58()===e&&t.toBytes().length===32}catch{return!1}}static getPubKey(e){if(!this.isValid(e))throw new Error("Invalid Solana address");return(0,v.toHex)(new _.PublicKey(e).toBytes())}static encodePubKey(e){let t=b.hex.hexNormalize(e);b.hex.assertHexLen(t,32);let n=(0,v.fromHex)(b.hex.stripHexPrefix(t));return new _.PublicKey(n).toBase58()}},$=class{static isValid(e){return ze.test(e)}};var z={};U(z,{createPayload:()=>Je,decodePayload:()=>Qe});var g=require("polkadot-api"),W=require("scale-ts"),N=require("@polkadot-api/utils"),d=require("@galacticcouncil/descriptors");async function Ie(){let e=(await(0,g.getTypedCodecs)(d.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,W.Struct)({destination:e});return(0,W.Enum)({V1:t})}function Ye(a,e,t){let n;if(t)n=d.XcmV5Junction.AccountKey20({key:g.FixedSizeBinary.fromHex(e),network:void 0});else{let i=(0,g.AccountId)().enc(e);n=d.XcmV5Junction.AccountId32({id:g.FixedSizeBinary.fromBytes(i),network:void 0})}return d.XcmVersionedLocation.V5({parents:1,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.Parachain(a.parachainId),n])})}async function Je(a,e,t=!1){let n=Ye(a,e,t),i=await Ie(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,N.toHex)(r)},toU8a(){return r}}}async function Qe(a){let e=a.startsWith("0x")?a.slice(2):a,t=(0,N.fromHex)(e);return(await Ie()).dec(t)}var j={};U(j,{findGeneralIndex:()=>nt,findGlobalConsensus:()=>Ze,findNestedKey:()=>E,findPalletInstance:()=>tt,findParachain:()=>et});var De="GlobalConsensus",Ee="Parachain",ke="GeneralIndex",Re="PalletInstance",E=(a,e)=>{let t=[];return JSON.stringify(a,(n,i)=>{let s=typeof i=="bigint"?i.toString():i;return i&&i[e]&&t.push(s),s}),t[0]},Ze=a=>{let e=E(a,De);return e&&e[De]},et=a=>{let e=E(a,Ee);return e&&e[Ee]},tt=a=>{let e=E(a,Re);return e&&e[Re]},nt=a=>{let e=E(a,ke);return e&&e[ke]};var{EvmAddr:at}=T,Y=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!at.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,Be.encodeFunctionData)({abi:A.Erc20,args:[e,t],functionName:"approve"})}};var y=require("viem"),C=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>(0,y.http)(t));return(0,y.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,y.fallback)(e,{rank:!1}):(0,y.http)()})}getWsProvider(){return(0,y.createPublicClient)({chain:this.chain,transport:(0,y.webSocket)()})}getSigner(e){return(0,y.createWalletClient)({account:e,chain:this.chain,transport:(0,y.custom)(window.ethereum)})}};var{EvmAddr:it}=T,J=class extends I{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:i,...s}){super({...s}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=i&&new m(i)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(it.isValid(e))return e;if(this.evmResolver)return this.evmResolver.toH160(e,this.client);throw new Error("No EVM resolver found for "+this.name)}};var Q=class extends l{evmChain;id;rpcs;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,snowbridge:i,wormhole:s,...r}){super({...r}),this.evmChain=e,this.id=t,this.rpcs=n,this.snowbridge=i&&new S(i),this.wormhole=s&&new m(s)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,i=this.getAsset(t.toLowerCase());if(i)return{asset:i,decimals:n};throw Error("Chain currency configuration not found")}};var Ve=require("@solana/web3.js");var st="SOL",rt=9,Z=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Ve.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(st.toLowerCase());if(e)return{asset:e,decimals:rt};throw Error("Chain currency configuration not found")}};var O=require("@mysten/sui/client");var ot="SUI",pt=9,ee=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,O.getFullnodeUrl)("mainnet");return new O.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(ot.toLowerCase());if(e)return{asset:e,decimals:pt};throw Error("Chain currency configuration not found")}};var k=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:u,tags:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=u,this.tags=p}};var R=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e,this.routes=new Map(t.map(({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:f,tags:P})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new k({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:f,tags:P})]))}getRoutes(){return Array.from(this.routes.values())}getUniqueRoutes(){let e=this.getRoutes();return[...new Map(e.map(t=>[t.source.asset,t])).values()]}getAssetRoutes(e){return this.getRoutes().filter(t=>t.source.asset.key===e.key)}getAssetDestinations(e){return this.getAssetRoutes(e).map(t=>t.destination.chain)}getAssetDestinationRoutes(e,t){let n=Array.from(this.routes.values()).filter(i=>i.source.asset===e&&i.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var c=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(c||{});var te=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ne=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var ae=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Fe=require("viem");var ie=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:i,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=i}encodeFunctionData(){return(0,Fe.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var se=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var re=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var oe=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...i}){super({...i,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var pe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},ye=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},ue=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let i of this.criterias)n.push(i.check(e));return await Promise.allSettled(n).then(i=>i.forEach(s=>{if(s.status==="rejected"){let r=s.reason;t.push(r.report)}})),t}};function Ue(a){let e=a;return{assets:t=>({assets:e.getEcosystemAssets(t),asset:i=>{let s=e.getAsset(i);return{sourceChains:e.getSourceChains(s,t),source:u=>{let p=e.getChain(u);return{destinationChains:e.getDestinationChains(s,p),destination:P=>{let w=e.getChain(P),x=e.getAssetRoutes(s,p,w);return{routes:x,build:B=>{let Le=x.find(V=>V.destination.asset.originSymbol===V.source.asset.originSymbol)||x[0],me=B?e.getAsset(B):Le.destination.asset,[_e]=e.getAssetRoutes(me,w,p),We=x.find(V=>V.destination.asset===me);return{origin:{chain:p,route:We},reverse:{chain:w,route:_e}}}}}}}}}})}}var H=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),i=n.getRoutes(),s=({source:p,destination:f})=>p.asset===t.source.asset&&f.asset===t.destination.asset&&f.chain===t.destination.chain,r=i.filter(p=>!s(p)).concat(t),u=new R({...n,routes:r});this.routes.set(n.chain.key,u)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,addr,mrl,multiloc});