@galacticcouncil/xc-core 0.1.0 → 0.3.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 +1 -1
- package/build/index.mjs +1 -1
- package/build/types/chain/Chain.d.ts +4 -0
- package/build/types/chain/EvmChain.d.ts +1 -1
- package/build/types/chain/EvmParachain.d.ts +1 -1
- package/build/types/chain/Parachain.d.ts +13 -14
- package/build/types/config/definition/extrinsic/ExtrinsicConfig.d.ts +8 -4
- package/build/types/config/definition/extrinsic/ExtrinsicConfigBuilder.d.ts +5 -4
- package/build/types/utils/account.d.ts +3 -4
- package/build/types/utils/mrl.d.ts +1 -2
- package/package.json +5 -5
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ye=Object.create;var O=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var R=(a,e)=>{for(var t in e)O(a,t,{get:e[t],enumerable:!0})},ge=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Qe(e))!et.call(a,i)&&i!==t&&O(a,i,{get:()=>e[i],enumerable:!(n=Je(e,i))||n.enumerable});return a};var tt=(a,e,t)=>(t=a!=null?Ye(Ze(a)):{},ge(e||!a||!a.__esModule?O(t,"default",{value:a,enumerable:!0}):t,a)),nt=a=>ge(O({},"__esModule",{value:!0}),a);var xt={};R(xt,{Abi:()=>M,Asset:()=>B,AssetAmount:()=>j,AssetRoute:()=>W,BaseConfig:()=>y,CallType:()=>g,Chain:()=>h,ChainEcosystem:()=>Ae,ChainRoutes:()=>K,ChainType:()=>A,ConfigBuilder:()=>qe,ConfigService:()=>q,ContractConfig:()=>le,DexFactory:()=>pe,Erc20Client:()=>ae,EvmChain:()=>se,EvmClient:()=>w,EvmParachain:()=>ie,ExtrinsicConfig:()=>de,MoveConfig:()=>ce,Parachain:()=>F,Precompile:()=>at,ProgramConfig:()=>fe,Snowbridge:()=>V,SolanaChain:()=>re,SolanaQueryConfig:()=>ye,SubstrateApis:()=>U,SubstrateQueryConfig:()=>ue,SuiChain:()=>oe,SuiQueryConfig:()=>me,TransferValidation:()=>be,TransferValidationError:()=>he,TransferValidator:()=>Te,Wormhole:()=>f,XcmVersion:()=>Se,acc:()=>Y,addr:()=>v,mrl:()=>te,multiloc:()=>ne});module.exports=nt(xt);var B=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 H=tt(require("big.js"),1);var Ce=require("@galacticcouncil/common");H.default.NE=-18;var j=class a extends B{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,H.default)(this.amount.toString())}toBigDecimal(e,t){return(0,H.default)(this.toDecimal(e,t))}toDecimal(e,t){return Ce.big.toDecimal(this.amount,this.decimals,e,t)}};var xe=require("@wormhole-foundation/sdk-connect"),f=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 xe.UniversalAddress(e,this.platformAddressFormat).toString()}};var V=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 Ae=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Ae||{}),A=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(A||{}),h=class{assetsData;ecosystem;explorer;isTestChain;key;name;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:i=!1,key:s,name:r}){this.assetsData=new Map(e.map(o=>[o.asset.key,o])),this.ecosystem=t,this.explorer=n,this.isTestChain=i,this.key=s,this.name=r}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 Me=require("@polkadot-api/substrate-bindings");var ve=require("polkadot-api"),we=require("polkadot-api/ws-provider"),Pe=require("lru-cache"),U=class a{static _instance=new a;dispose=(e,t)=>{console.log("Releasing "+t+" connection"),e.destroy()};_cache=new Pe.LRUCache({max:40,dispose:this.dispose});constructor(){if(a._instance)throw new Error("Use SubstrateApis.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}createCacheKey(e){return e.join(",")}findCacheKey(e){let t=e.find(i=>this._cache.has(i));if(t)return t;let n=this.createCacheKey(e);return this._cache.has(n)?n:null}createClient(e){let t=(0,we.getWsProvider)(e),n=(0,ve.createClient)(t),i=this.createCacheKey(e);return console.log(`Created PAPI client for ${i}`),this._cache.set(i,n,{noDisposeOnSet:!0}),n}api(e){let t=typeof e=="string"?e.split(","):e,n=this.findCacheKey(t);return n?this._cache.get(n):this.createClient(t)}release(){for(let[e,t]of this._cache.entries())console.log("Disconnecting from "+e),t.destroy();this._cache.clear()}};var Se=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Se||{}),F=class extends h{genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:o=!1,usesSignerFee:p=!1,usesH160Acc:m=!1,ws:c,xcmVersion:l="V4",...T}){super({...T}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=o,this.usesSignerFee=p,this.usesH160Acc=m,this.ws=c,this.xcmVersion=l}async getXcmVersionForCall(e,t,n=0){try{let i=this.api,s=await i.getFinalizedBlock(),r=await i.getMetadata(s.hash),o=Me.metadata.dec(r),p=o.metadata.tag==="v14"||o.metadata.tag==="v15"?o.metadata.value:null;if(!p)throw new Error("Unsupported metadata version");let m=p,c=m.pallets.find(d=>d.name.toLowerCase()===e.toLowerCase());if(!c?.calls)throw new Error(`Pallet ${e} not found or has no calls`);let l=m.lookup[c.calls];if(!l||l.type!=="enum")throw new Error(`Invalid calls structure for pallet ${e}`);let T=Object.keys(l.value).find(d=>d.toLowerCase()===t.toLowerCase());if(!T)throw new Error(`Method ${t} not found in pallet ${e}`);let P=l.value[T];if(!P.value||!P.value.length)return this.xcmVersion;let z=P.value[n];if(z===void 0)throw new Error(`Argument index ${n} not found for ${e}.${t}`);let E=m.lookup[z];if(E&&E.type==="enum"){let d=Object.keys(E.value);if(d.includes("V5"))return"V5";if(d.includes("V4"))return"V4";if(d.includes("V3"))return"V3";if(d.includes("V2"))return"V2";if(d.includes("V1"))return"V1"}return this.xcmVersion}catch(i){return console.warn(`Failed to detect XCM version for ${e}.${t}:`,i),this.xcmVersion}}get api(){return U.getInstance().api(this.ws)}getType(){return"parachain"}async getCurrency(){let n=(await this.api.getChainSpecData()).properties||{},i=n.tokenSymbol||[],s=n.tokenDecimals||[],r=i[0],o=s[0];if(r){let p=this.getAsset(r.toLowerCase());if(p)return{asset:p,decimals:o}}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 Ie=[{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 ke=[{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 De=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",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,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 Re=[{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 Be=[{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 Ve=[{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 Ue=[{inputs:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct Xtokens.Currency[]",name:"currencies",type:"tuple[]"},{internalType:"uint32",name:"feeItem",type:"uint32"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transferMultiCurrencies",outputs:[],stateMutability:"nonpayable",type:"function"}];var M={Batch:Ie,Erc20:ke,Gmp:De,Meta:Ee,Snowbridge:Re,TokenBridge:Be,TokenRelayer:Ve,Xtokens:Ue};var at={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",Xtokens:"0x0000000000000000000000000000000000000804"};var Ge=require("viem");var Y={};R(Y,{getMultilocationDerivatedAccount:()=>it,getSovereignAccounts:()=>st});var C=require("@polkadot-api/substrate-bindings"),S=require("@polkadot-api/utils");function it(a,e,t,n=!1){let i=e.length===42,s=i?"AccountKey20":"AccountId32",r;if(i)r=(0,S.fromHex)(e.slice(2));else{let l=(0,C.getSs58AddressInfo)(e);if(!l.isValid)throw new Error("Invalid SS58 address");r=l.publicKey}let o="SiblingChain";t==0&&a?o="ChildChain":t==1&&!a&&(o="ParentChain");let p=C.compactNumber.enc,m=new Uint8Array([...new TextEncoder().encode(o),...a?p(a):[],...p(s.length+(i?20:32)),...new TextEncoder().encode(s),...r]),c=(0,C.Blake2256)(m);return n?(0,S.toHex)(c.slice(0,20)):(0,C.fromBufferToBase58)(42)(c)}function st(a){let e=new Uint8Array(4);new DataView(e.buffer).setUint32(0,a,!0);let t=new TextEncoder().encode("para"),n=new TextEncoder().encode("sibl"),i=(0,S.toHex)(new Uint8Array([...t,...e])).padEnd(66,"0"),s=(0,S.toHex)(new Uint8Array([...n,...e])).padEnd(66,"0"),r=s.slice(0,42);return{generic:s,moonbeam:r,relay:i}}var v={};R(v,{EvmAddr:()=>Q,SolanaAddr:()=>Z,Ss58Addr:()=>J,SuiAddr:()=>ee});var L=require("@polkadot-api/substrate-bindings"),I=require("@polkadot-api/utils"),G=require("@solana/web3.js"),Fe=require("viem"),x=require("@galacticcouncil/common"),rt=/^0x[0-9a-fA-F]{64}$/,ot=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,J=class{static isSs58Strict(e){if(!e||x.hex.isHex(e)||!ot.test(e))return!1;let t=(0,L.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,L.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,I.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=x.hex.hexNormalize(e);x.hex.assertHexLen(n,32);let i=(0,I.fromHex)(x.hex.stripHexPrefix(n));return(0,L.fromBufferToBase58)(t)(i)}},Q=class{static isValid(e){return(0,Fe.isAddress)(e,{strict:!1})}},Z=class{static isValid(e){try{let t=new G.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,I.toHex)(new G.PublicKey(e).toBytes())}static encodePubKey(e){let t=x.hex.hexNormalize(e);x.hex.assertHexLen(t,32);let n=(0,I.fromHex)(x.hex.stripHexPrefix(t));return new G.PublicKey(n).toBase58()}},ee=class{static isValid(e){return rt.test(e)}};var te={};R(te,{createPayload:()=>pt,decodePayload:()=>yt,encodeDestination:()=>ut});var k=require("polkadot-api"),Le=require("@polkadot-api/substrate-bindings"),D=require("@polkadot-api/utils"),X=require("scale-ts"),b=require("@galacticcouncil/descriptors");async function _e(a){try{let t=(await(0,k.getTypedCodecs)(b.hydration)).tx.PolkadotXcm.send.inner.dest,n=(0,X.Struct)({destination:t});return(0,X.Enum)({V1:n})}catch(e){throw new Error(`Failed to get codec for parachain ${a.key}: ${e}`)}}function We(a,e,t){let n=a.xcmVersion.toUpperCase(),i;if(t){let r=e.startsWith("0x")?e:"0x"+e,o=(0,D.fromHex)(r.slice(2));if(o.length!==20)throw new Error(`Invalid Ethereum address length: ${o.length}`);i=b.XcmV3Junction.AccountKey20({key:k.FixedSizeBinary.fromHex(r),network:void 0})}else{let r=(0,Le.getSs58AddressInfo)(e);if(!r.isValid||r.publicKey.length!==32)throw new Error("Invalid SS58 address");i=b.XcmV3Junction.AccountId32({id:k.FixedSizeBinary.fromHex((0,D.toHex)(r.publicKey)),network:void 0})}return b.XcmVersionedLocation[n]({parents:1,interior:b.XcmV3Junctions.X2([b.XcmV3Junction.Parachain(a.parachainId),i])})}async function pt(a,e,t=!1){let n=We(a,e,t),i=await _e(a),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,D.toHex)(r)},toU8a(){return r}}}async function yt(a,e){let t=e.startsWith("0x")?e.slice(2):e,n=(0,D.fromHex)(t);return(await _e(a)).dec(n)}async function ut(a,e,t=!1){let n=We(a,e,t);return(await(0,k.getTypedCodecs)(b.hydration)).tx.PolkadotXcm.send.inner.dest.enc(n)}var ne={};R(ne,{findGeneralIndex:()=>ct,findGlobalConsensus:()=>mt,findNestedKey:()=>_,findPalletInstance:()=>dt,findParachain:()=>lt});var Ke="GlobalConsensus",Ne="Parachain",Oe="GeneralIndex",He="PalletInstance",_=(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]},mt=a=>{let e=_(a,Ke);return e&&e[Ke]},lt=a=>{let e=_(a,Ne);return e&&e[Ne]},dt=a=>{let e=_(a,He);return e&&e[He]},ct=a=>{let e=_(a,Oe);return e&&e[Oe]};var{EvmAddr:ft}=v,ae=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(!ft.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:M.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:M.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:M.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,Ge.encodeFunctionData)({abi:M.Erc20,args:[e,t],functionName:"approve"})}};var u=require("viem"),w=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,u.http)(t));return(0,u.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,u.fallback)(e,{rank:!1}):(0,u.http)()})}getWsProvider(){return(0,u.createPublicClient)({chain:this.chain,transport:(0,u.webSocket)()})}getSigner(e){return(0,u.createWalletClient)({account:e,chain:this.chain,transport:(0,u.custom)(window.ethereum)})}};var{EvmAddr:ht}=v,ie=class extends F{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 f(i)}get client(){return new w(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(ht.isValid(e))return e;if(this.evmResolver){let t=await this.api;return this.evmResolver.toH160(e,t)}throw new Error("No EVM resolver found for "+this.name)}};var se=class extends h{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 V(i),this.wormhole=s&&new f(s)}get client(){return new w(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.client.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 Xe=require("@solana/web3.js");var bt="SOL",Tt=9,re=class extends h{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new f(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Xe.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(bt.toLowerCase());if(e)return{asset:e,decimals:Tt};throw Error("Chain currency configuration not found")}};var $=require("@mysten/sui/client");var gt="SUI",Ct=9,oe=class extends h{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new f(t)}get client(){let e=(0,$.getFullnodeUrl)("mainnet");return new $.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(gt.toLowerCase());if(e)return{asset:e,decimals:Ct};throw Error("Chain currency configuration not found")}};var pe=class a{static _instance=new a;_dex=new Map([]);constructor(){if(a._instance)throw new Error("Use DexFactory.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}register(e){this._dex.set(e.chain.key,e)}get(e){return this._dex.get(e)}};var W=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:o,tags:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=o,this.tags=p}};var K=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:o,program:p,transact:m,tags:c})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new W({source:n,destination:i,contract:s,extrinsic:r,move:o,program:p,transact:m,tags:c})]))}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 y=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 g=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(g||{});var ye=class extends y{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ue=class extends y{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var me=class extends y{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var $e=require("viem");var le=class extends y{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,$e.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var de=class extends y{getArgs;constructor({getArgs:e,...t}){super({...t,type:"Substrate"}),this.getArgs=e}};var ce=class extends y{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var fe=class extends y{instructions;signers;constructor({instructions:e,signers:t,...n}){super({...n,type:"Solana"}),this.instructions=e,this.signers=t}};var he=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},be=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)}},Te=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 qe(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:o=>{let p=e.getChain(o);return{destinationChains:e.getDestinationChains(s,p),destination:c=>{let l=e.getChain(c),T=e.getAssetRoutes(s,p,l);return{routes:T,build:P=>{let E=T.find(N=>N.destination.asset.originSymbol===N.source.asset.originSymbol)||T[0],d=P?e.getAsset(P):E.destination.asset,[ze]=e.getAssetRoutes(d,l,p),je=T.find(N=>N.destination.asset===d);return{origin:{chain:p,route:je},reverse:{chain:l,route:ze}}}}}}}}}})}}var q=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:m})=>p.asset===t.source.asset&&m.asset===t.destination.asset&&m.chain===t.destination.chain,r=i.filter(p=>!s(p)).concat(t),o=new K({...n,routes:r});this.routes.set(n.chain.key,o)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,DexFactory,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateApis,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,acc,addr,mrl,multiloc});
|
|
1
|
+
"use strict";var qe=Object.create;var N=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var je=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var I=(a,e)=>{for(var t in e)N(a,t,{get:e[t],enumerable:!0})},be=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ze(e))!Ye.call(a,i)&&i!==t&&N(a,i,{get:()=>e[i],enumerable:!(n=$e(e,i))||n.enumerable});return a};var Je=(a,e,t)=>(t=a!=null?qe(je(a)):{},be(e||!a||!a.__esModule?N(t,"default",{value:a,enumerable:!0}):t,a)),Qe=a=>be(N({},"__esModule",{value:!0}),a);var bt={};I(bt,{Abi:()=>P,Asset:()=>D,AssetAmount:()=>X,AssetRoute:()=>V,BaseConfig:()=>p,CallType:()=>h,Chain:()=>l,ChainEcosystem:()=>Ce,ChainRoutes:()=>F,ChainType:()=>C,ConfigBuilder:()=>Oe,ConfigService:()=>G,ContractConfig:()=>pe,DexFactory:()=>ie,Erc20Client:()=>Z,EvmChain:()=>te,EvmClient:()=>v,EvmParachain:()=>ee,ExtrinsicConfig:()=>ye,MoveConfig:()=>ue,Parachain:()=>R,Precompile:()=>Ze,ProgramConfig:()=>me,Snowbridge:()=>E,SolanaChain:()=>ne,SolanaQueryConfig:()=>se,SubstrateApis:()=>k,SubstrateQueryConfig:()=>re,SuiChain:()=>ae,SuiQueryConfig:()=>oe,TransferValidation:()=>de,TransferValidationError:()=>le,TransferValidator:()=>ce,Wormhole:()=>m,XcmVersion:()=>we,acc:()=>q,addr:()=>x,mrl:()=>J,multiloc:()=>Q});module.exports=Qe(bt);var D=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 W=Je(require("big.js"),1);var Te=require("@galacticcouncil/common");W.default.NE=-18;var X=class a extends D{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,W.default)(this.amount.toString())}toBigDecimal(e,t){return(0,W.default)(this.toDecimal(e,t))}toDecimal(e,t){return Te.big.toDecimal(this.amount,this.decimals,e,t)}};var ge=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 ge.UniversalAddress(e,this.platformAddressFormat).toString()}};var E=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 Ce=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Ce||{}),C=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(C||{}),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(y=>[y.asset.key,y])),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 xe=require("polkadot-api"),Ae=require("polkadot-api/ws-provider"),ve=require("lru-cache"),k=class a{static _instance=new a;dispose=(e,t)=>{console.log("Releasing "+t+" connection"),e.destroy()};_cache=new ve.LRUCache({max:40,dispose:this.dispose});constructor(){if(a._instance)throw new Error("Use SubstrateApis.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}createCacheKey(e){return e.join(",")}findCacheKey(e){let t=e.find(i=>this._cache.has(i));if(t)return t;let n=this.createCacheKey(e);return this._cache.has(n)?n:null}createClient(e){let t=(0,Ae.getWsProvider)(e),n=(0,xe.createClient)(t),i=this.createCacheKey(e);return console.log(`Created PAPI client for ${i}`),this._cache.set(i,n,{noDisposeOnSet:!0}),n}api(e){let t=typeof e=="string"?e.split(","):e,n=this.findCacheKey(t);return n?this._cache.get(n):this.createClient(t)}release(){for(let[e,t]of this._cache.entries())console.log("Disconnecting from "+e),t.destroy();this._cache.clear()}};var we=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(we||{}),R=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:y=!1,usesSignerFee:o=!1,usesH160Acc:f=!1,ws:b,xcmVersion:T="V4",...w}){super({...w}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=y,this.usesSignerFee=o,this.usesH160Acc=f,this.ws=b,this.xcmVersion=T}get client(){return k.getInstance().api(this.ws)}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 Pe=[{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 Me=[{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 Se=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ie=[{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 De=[{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 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 ke=[{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 Re=[{inputs:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct Xtokens.Currency[]",name:"currencies",type:"tuple[]"},{internalType:"uint32",name:"feeItem",type:"uint32"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transferMultiCurrencies",outputs:[],stateMutability:"nonpayable",type:"function"}];var P={Batch:Pe,Erc20:Me,Gmp:Se,Meta:Ie,Snowbridge:De,TokenBridge:Ee,TokenRelayer:ke,Xtokens:Re};var Ze={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",Xtokens:"0x0000000000000000000000000000000000000804"};var We=require("viem");var q={};I(q,{getMultilocationDerivatedAccount:()=>et,getSovereignAccounts:()=>tt});var d=require("@polkadot-api/substrate-bindings"),M=require("@polkadot-api/utils");function et(a,e,t,n=!1){let i=e.length===42,s=i?"AccountKey20":"AccountId32",r;if(i)r=(0,M.fromHex)(e.slice(2));else{let T=(0,d.getSs58AddressInfo)(e);if(!T.isValid)throw new Error("Invalid SS58 address");r=T.publicKey}let y="SiblingChain";t==0&&a?y="ChildChain":t==1&&!a&&(y="ParentChain");let o=d.compactNumber.enc,f=new Uint8Array([...new TextEncoder().encode(y),...a?o(a):[],...o(s.length+(i?20:32)),...new TextEncoder().encode(s),...r]),b=(0,d.Blake2256)(f);return n?(0,M.toHex)(b.slice(0,20)):(0,d.AccountId)().dec(b)}function tt(a){let e=d.u32.enc(a),t=new TextEncoder().encode("para"),n=new TextEncoder().encode("sibl"),i=(0,M.toHex)(new Uint8Array([...t,...e])).padEnd(66,"0"),s=(0,M.toHex)(new Uint8Array([...n,...e])).padEnd(66,"0"),r=s.slice(0,42);return{generic:s,moonbeam:r,relay:i}}var x={};I(x,{EvmAddr:()=>z,SolanaAddr:()=>j,Ss58Addr:()=>$,SuiAddr:()=>Y});var B=require("@polkadot-api/substrate-bindings"),S=require("@polkadot-api/utils"),L=require("@solana/web3.js"),Be=require("viem"),g=require("@galacticcouncil/common"),nt=/^0x[0-9a-fA-F]{64}$/,at=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,$=class{static isSs58Strict(e){if(!e||g.hex.isHex(e)||!at.test(e))return!1;let t=(0,B.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,B.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,S.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=g.hex.hexNormalize(e);g.hex.assertHexLen(n,32);let i=(0,S.fromHex)(g.hex.stripHexPrefix(n));return(0,B.fromBufferToBase58)(t)(i)}},z=class{static isValid(e){return(0,Be.isAddress)(e,{strict:!1})}},j=class{static isValid(e){try{let t=new L.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,S.toHex)(new L.PublicKey(e).toBytes())}static encodePubKey(e){let t=g.hex.hexNormalize(e);g.hex.assertHexLen(t,32);let n=(0,S.fromHex)(g.hex.stripHexPrefix(t));return new L.PublicKey(n).toBase58()}},Y=class{static isValid(e){return nt.test(e)}};var J={};I(J,{createPayload:()=>st,decodePayload:()=>rt});var A=require("polkadot-api"),K=require("scale-ts"),O=require("@polkadot-api/utils"),c=require("@galacticcouncil/descriptors");async function Ue(){let e=(await(0,A.getTypedCodecs)(c.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,K.Struct)({destination:e});return(0,K.Enum)({V1:t})}function it(a,e,t){let n;if(t)n=c.XcmV5Junction.AccountKey20({key:A.FixedSizeBinary.fromHex(e),network:void 0});else{let i=(0,A.AccountId)().enc(e);n=c.XcmV5Junction.AccountId32({id:A.FixedSizeBinary.fromBytes(i),network:void 0})}return c.XcmVersionedLocation.V5({parents:1,interior:c.XcmV5Junctions.X2([c.XcmV5Junction.Parachain(a.parachainId),n])})}async function st(a,e,t=!1){let n=it(a,e,t),i=await Ue(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,O.toHex)(r)},toU8a(){return r}}}async function rt(a){let e=a.startsWith("0x")?a.slice(2):a,t=(0,O.fromHex)(e);return(await Ue()).dec(t)}var Q={};I(Q,{findGeneralIndex:()=>ut,findGlobalConsensus:()=>ot,findNestedKey:()=>U,findPalletInstance:()=>yt,findParachain:()=>pt});var Ve="GlobalConsensus",Fe="Parachain",_e="GeneralIndex",Ne="PalletInstance",U=(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]},ot=a=>{let e=U(a,Ve);return e&&e[Ve]},pt=a=>{let e=U(a,Fe);return e&&e[Fe]},yt=a=>{let e=U(a,Ne);return e&&e[Ne]},ut=a=>{let e=U(a,_e);return e&&e[_e]};var{EvmAddr:mt}=x,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(!mt.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:P.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:P.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:P.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,We.encodeFunctionData)({abi:P.Erc20,args:[e,t],functionName:"approve"})}};var u=require("viem"),v=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,u.http)(t));return(0,u.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,u.fallback)(e,{rank:!1}):(0,u.http)()})}getWsProvider(){return(0,u.createPublicClient)({chain:this.chain,transport:(0,u.webSocket)()})}getSigner(e){return(0,u.createWalletClient)({account:e,chain:this.chain,transport:(0,u.custom)(window.ethereum)})}};var{EvmAddr:lt}=x,ee=class extends R{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 v(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(lt.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 E(i),this.wormhole=s&&new m(s)}get evmClient(){return new v(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 Le=require("@solana/web3.js");var dt="SOL",ct=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 Le.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(dt.toLowerCase());if(e)return{asset:e,decimals:ct};throw Error("Chain currency configuration not found")}};var H=require("@mysten/sui/client");var ft="SUI",ht=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,H.getFullnodeUrl)("mainnet");return new H.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(ft.toLowerCase());if(e)return{asset:e,decimals:ht};throw Error("Chain currency configuration not found")}};var ie=class a{static _instance=new a;_dex=new Map([]);constructor(){if(a._instance)throw new Error("Use DexFactory.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}register(e){this._dex.set(e.chain.key,e)}get(e){return this._dex.get(e)}};var V=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:y,tags:o}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=y,this.tags=o}};var F=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:y,program:o,transact:f,tags:b})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new V({source:n,destination:i,contract:s,extrinsic:r,move:y,program:o,transact:f,tags:b})]))}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 p=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 h=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(h||{});var se=class extends p{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var re=class extends p{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var oe=class extends p{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Ke=require("viem");var pe=class extends p{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,Ke.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var ye=class extends p{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ue=class extends p{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var me=class extends p{instructions;signers;constructor({instructions:e,signers:t,...n}){super({...n,type:"Solana"}),this.instructions=e,this.signers=t}};var le=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},de=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 Oe(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:y=>{let o=e.getChain(y);return{destinationChains:e.getDestinationChains(s,o),destination:b=>{let T=e.getChain(b),w=e.getAssetRoutes(s,o,T);return{routes:w,build:fe=>{let He=w.find(_=>_.destination.asset.originSymbol===_.source.asset.originSymbol)||w[0],he=fe?e.getAsset(fe):He.destination.asset,[Ge]=e.getAssetRoutes(he,T,o),Xe=w.find(_=>_.destination.asset===he);return{origin:{chain:o,route:Xe},reverse:{chain:T,route:Ge}}}}}}}}}})}}var G=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:o,destination:f})=>o.asset===t.source.asset&&f.asset===t.destination.asset&&f.chain===t.destination.chain,r=i.filter(o=>!s(o)).concat(t),y=new F({...n,routes:r});this.routes.set(n.chain.key,y)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,DexFactory,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateApis,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,acc,addr,mrl,multiloc});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ue=Object.defineProperty;var S=(i,e)=>{for(var t in e)Ue(i,t,{get:e[t],enumerable:!0})};import Le from"buffer";typeof window<"u"&&(window.Buffer=Le.Buffer);var E=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}};import V from"big.js";import{big as We}from"@galacticcouncil/common";V.NE=-18;var G=class i extends E{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...a}){super(a),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new i({...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 i({...this,...e})}padByPct(e){return new i({...this,amount:this.amount+this.amount*e/100n})}toBig(){return V(this.amount.toString())}toBigDecimal(e,t){return V(this.toDecimal(e,t))}toDecimal(e,t){return We.toDecimal(this.amount,this.decimals,e,t)}};import{UniversalAddress as _e}from"@wormhole-foundation/sdk-connect";var d=class{id;coreBridge;tokenBridge;tokenRelayer;platformAddressFormat;constructor({id:e,coreBridge:t,tokenBridge:n,tokenRelayer:a,platformAddressFormat:r}){this.id=e,this.coreBridge=t,this.tokenBridge=n,this.tokenRelayer=a,this.platformAddressFormat=r}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 _e(e,this.platformAddressFormat).toString()}};var I=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 Ke=(r=>(r.Ethereum="Ethereum",r.Polkadot="Polkadot",r.Kusama="Kusama",r.Solana="Solana",r.Sui="Sui",r))(Ke||{}),C=(r=>(r.Parachain="parachain",r.EvmParachain="evm-parachain",r.EvmChain="evm-chain",r.SolanaChain="solana-chain",r.SuiChain="sui-chain",r))(C||{}),f=class{assetsData;ecosystem;explorer;isTestChain;key;name;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:a=!1,key:r,name:s}){this.assetsData=new Map(e.map(o=>[o.asset.key,o])),this.ecosystem=t,this.explorer=n,this.isTestChain=a,this.key=r,this.name=s}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)}};import{metadata as Ge}from"@polkadot-api/substrate-bindings";import{createClient as Ne}from"polkadot-api";import{getWsProvider as Oe}from"polkadot-api/ws-provider";import{LRUCache as He}from"lru-cache";var k=class i{static _instance=new i;dispose=(e,t)=>{console.log("Releasing "+t+" connection"),e.destroy()};_cache=new He({max:40,dispose:this.dispose});constructor(){if(i._instance)throw new Error("Use SubstrateApis.getInstance() instead of new.");i._instance=this}static getInstance(){return i._instance}createCacheKey(e){return e.join(",")}findCacheKey(e){let t=e.find(a=>this._cache.has(a));if(t)return t;let n=this.createCacheKey(e);return this._cache.has(n)?n:null}createClient(e){let t=Oe(e),n=Ne(t),a=this.createCacheKey(e);return console.log(`Created PAPI client for ${a}`),this._cache.set(a,n,{noDisposeOnSet:!0}),n}api(e){let t=typeof e=="string"?e.split(","):e,n=this.findCacheKey(t);return n?this._cache.get(n):this.createClient(t)}release(){for(let[e,t]of this._cache.entries())console.log("Disconnecting from "+e),t.destroy();this._cache.clear()}};var Xe=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(Xe||{}),D=class extends f{genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:a,usesChainDecimals:r=!1,usesCexForwarding:s=!1,usesDeliveryFee:o=!1,usesSignerFee:p=!1,usesH160Acc:u=!1,ws:c,xcmVersion:m="V4",...h}){super({...h}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=a,this.usesChainDecimals=r,this.usesCexForwarding=s,this.usesDeliveryFee=o,this.usesSignerFee=p,this.usesH160Acc=u,this.ws=c,this.xcmVersion=m}async getXcmVersionForCall(e,t,n=0){try{let a=this.api,r=await a.getFinalizedBlock(),s=await a.getMetadata(r.hash),o=Ge.dec(s),p=o.metadata.tag==="v14"||o.metadata.tag==="v15"?o.metadata.value:null;if(!p)throw new Error("Unsupported metadata version");let u=p,c=u.pallets.find(l=>l.name.toLowerCase()===e.toLowerCase());if(!c?.calls)throw new Error(`Pallet ${e} not found or has no calls`);let m=u.lookup[c.calls];if(!m||m.type!=="enum")throw new Error(`Invalid calls structure for pallet ${e}`);let h=Object.keys(m.value).find(l=>l.toLowerCase()===t.toLowerCase());if(!h)throw new Error(`Method ${t} not found in pallet ${e}`);let T=m.value[h];if(!T.value||!T.value.length)return this.xcmVersion;let F=T.value[n];if(F===void 0)throw new Error(`Argument index ${n} not found for ${e}.${t}`);let v=u.lookup[F];if(v&&v.type==="enum"){let l=Object.keys(v.value);if(l.includes("V5"))return"V5";if(l.includes("V4"))return"V4";if(l.includes("V3"))return"V3";if(l.includes("V2"))return"V2";if(l.includes("V1"))return"V1"}return this.xcmVersion}catch(a){return console.warn(`Failed to detect XCM version for ${e}.${t}:`,a),this.xcmVersion}}get api(){return k.getInstance().api(this.ws)}getType(){return"parachain"}async getCurrency(){let n=(await this.api.getChainSpecData()).properties||{},a=n.tokenSymbol||[],r=n.tokenDecimals||[],s=a[0],o=r[0];if(s){let p=this.getAsset(s.toLowerCase());if(p)return{asset:p,decimals:o}}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 X=[{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 $=[{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 q=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var z=[{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 Q=[{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 j=[{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 Y=[{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 J=[{inputs:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct Xtokens.Currency[]",name:"currencies",type:"tuple[]"},{internalType:"uint32",name:"feeItem",type:"uint32"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transferMultiCurrencies",outputs:[],stateMutability:"nonpayable",type:"function"}];var w={Batch:X,Erc20:$,Gmp:q,Meta:z,Snowbridge:Q,TokenBridge:j,TokenRelayer:Y,Xtokens:J};var Qn={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",Xtokens:"0x0000000000000000000000000000000000000804"};import{encodeFunctionData as ft}from"viem";var Z={};S(Z,{getMultilocationDerivatedAccount:()=>Ye,getSovereignAccounts:()=>Je});import{Blake2256 as $e,getSs58AddressInfo as qe,fromBufferToBase58 as ze,compactNumber as Qe}from"@polkadot-api/substrate-bindings";import{toHex as U,fromHex as je}from"@polkadot-api/utils";function Ye(i,e,t,n=!1){let a=e.length===42,r=a?"AccountKey20":"AccountId32",s;if(a)s=je(e.slice(2));else{let m=qe(e);if(!m.isValid)throw new Error("Invalid SS58 address");s=m.publicKey}let o="SiblingChain";t==0&&i?o="ChildChain":t==1&&!i&&(o="ParentChain");let p=Qe.enc,u=new Uint8Array([...new TextEncoder().encode(o),...i?p(i):[],...p(r.length+(a?20:32)),...new TextEncoder().encode(r),...s]),c=$e(u);return n?U(c.slice(0,20)):ze(42)(c)}function Je(i){let e=new Uint8Array(4);new DataView(e.buffer).setUint32(0,i,!0);let t=new TextEncoder().encode("para"),n=new TextEncoder().encode("sibl"),a=U(new Uint8Array([...t,...e])).padEnd(66,"0"),r=U(new Uint8Array([...n,...e])).padEnd(66,"0"),s=r.slice(0,42);return{generic:r,moonbeam:s,relay:a}}var x={};S(x,{EvmAddr:()=>_,SolanaAddr:()=>K,Ss58Addr:()=>W,SuiAddr:()=>N});import{getSs58AddressInfo as ee,fromBufferToBase58 as Ze}from"@polkadot-api/substrate-bindings";import{toHex as te,fromHex as ne}from"@polkadot-api/utils";import{PublicKey as L}from"@solana/web3.js";import{isAddress as et}from"viem";import{hex as g}from"@galacticcouncil/common";var tt=/^0x[0-9a-fA-F]{64}$/,nt=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,W=class{static isSs58Strict(e){if(!e||g.isHex(e)||!nt.test(e))return!1;let t=ee(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=ee(e);if(!t.isValid)throw new Error("Invalid SS58 address");return te(t.publicKey)}static encodePubKey(e,t=0){let n=g.hexNormalize(e);g.assertHexLen(n,32);let a=ne(g.stripHexPrefix(n));return Ze(t)(a)}},_=class{static isValid(e){return et(e,{strict:!1})}},K=class{static isValid(e){try{let t=new L(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 te(new L(e).toBytes())}static encodePubKey(e){let t=g.hexNormalize(e);g.assertHexLen(t,32);let n=ne(g.stripHexPrefix(t));return new L(n).toBase58()}},N=class{static isValid(e){return tt.test(e)}};var ue={};S(ue,{createPayload:()=>pt,decodePayload:()=>yt,encodeDestination:()=>ut});import{getTypedCodecs as ie,FixedSizeBinary as ae}from"polkadot-api";import{getSs58AddressInfo as at}from"@polkadot-api/substrate-bindings";import{toHex as re,fromHex as se}from"@polkadot-api/utils";import{Struct as it,Enum as rt}from"scale-ts";import{XcmVersionedLocation as st,XcmV3Junction as O,XcmV3Junctions as ot,hydration as oe}from"@galacticcouncil/descriptors";async function pe(i){try{let t=(await ie(oe)).tx.PolkadotXcm.send.inner.dest,n=it({destination:t});return rt({V1:n})}catch(e){throw new Error(`Failed to get codec for parachain ${i.key}: ${e}`)}}function ye(i,e,t){let n=i.xcmVersion.toUpperCase(),a;if(t){let s=e.startsWith("0x")?e:"0x"+e,o=se(s.slice(2));if(o.length!==20)throw new Error(`Invalid Ethereum address length: ${o.length}`);a=O.AccountKey20({key:ae.fromHex(s),network:void 0})}else{let s=at(e);if(!s.isValid||s.publicKey.length!==32)throw new Error("Invalid SS58 address");a=O.AccountId32({id:ae.fromHex(re(s.publicKey)),network:void 0})}return st[n]({parents:1,interior:ot.X2([O.Parachain(i.parachainId),a])})}async function pt(i,e,t=!1){let n=ye(i,e,t),a=await pe(i),r={tag:"V1",value:{destination:n}},s=a.enc(r);return{bytes:s,toHex(){return re(s)},toU8a(){return s}}}async function yt(i,e){let t=e.startsWith("0x")?e.slice(2):e,n=se(t);return(await pe(i)).dec(n)}async function ut(i,e,t=!1){let n=ye(i,e,t);return(await ie(oe)).tx.PolkadotXcm.send.inner.dest.enc(n)}var fe={};S(fe,{findGeneralIndex:()=>dt,findGlobalConsensus:()=>mt,findNestedKey:()=>P,findPalletInstance:()=>ct,findParachain:()=>lt});var me="GlobalConsensus",le="Parachain",ce="GeneralIndex",de="PalletInstance",P=(i,e)=>{let t=[];return JSON.stringify(i,(n,a)=>{let r=typeof a=="bigint"?a.toString():a;return a&&a[e]&&t.push(r),r}),t[0]},mt=i=>{let e=P(i,me);return e&&e[me]},lt=i=>{let e=P(i,le);return e&&e[le]},ct=i=>{let e=P(i,de);return e&&e[de]},dt=i=>{let e=P(i,ce);return e&&e[ce]};var{EvmAddr:ht}=x,he=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(!ht.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:w.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:w.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:w.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return ft({abi:w.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as be,createWalletClient as bt,custom as gt,fallback as Tt,http as ge,webSocket as Ct}from"viem";var A=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=>ge(t));return be({chain:this.chain,transport:this.rpcs.length>0?Tt(e,{rank:!1}):ge()})}getWsProvider(){return be({chain:this.chain,transport:Ct()})}getSigner(e){return bt({account:e,chain:this.chain,transport:gt(window.ethereum)})}};var{EvmAddr:xt}=x,Te=class extends D{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:a,...r}){super({...r}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=a&&new d(a)}get client(){return new A(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(xt.isValid(e))return e;if(this.evmResolver){let t=await this.api;return this.evmResolver.toH160(e,t)}throw new Error("No EVM resolver found for "+this.name)}};var Ce=class extends f{evmChain;id;rpcs;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,snowbridge:a,wormhole:r,...s}){super({...s}),this.evmChain=e,this.id=t,this.rpcs=n,this.snowbridge=a&&new I(a),this.wormhole=r&&new d(r)}get client(){return new A(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.client.chain,t=e.symbol,n=e.decimals,a=this.getAsset(t.toLowerCase());if(a)return{asset:a,decimals:n};throw Error("Chain currency configuration not found")}};import{Connection as At}from"@solana/web3.js";var vt="SOL",wt=9,xe=class extends f{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...a}){super({...a}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new d(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new At(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(vt.toLowerCase());if(e)return{asset:e,decimals:wt};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as Pt,SuiClient as Mt}from"@mysten/sui/client";var St="SUI",Et=9,Ae=class extends f{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new d(t)}get client(){let e=Pt("mainnet");return new Mt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(St.toLowerCase());if(e)return{asset:e,decimals:Et};throw Error("Chain currency configuration not found")}};var ve=class i{static _instance=new i;_dex=new Map([]);constructor(){if(i._instance)throw new Error("Use DexFactory.getInstance() instead of new.");i._instance=this}static getInstance(){return i._instance}register(e){this._dex.set(e.chain.key,e)}get(e){return this._dex.get(e)}};var B=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:a,move:r,program:s,transact:o,tags:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=a,this.move=r,this.program=s,this.transact=o,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:a,contract:r,extrinsic:s,move:o,program:p,transact:u,tags:c})=>[`${n.asset.key}-${a.chain.key}-${a.asset.key}`,new B({source:n,destination:a,contract:r,extrinsic:s,move:o,program:p,transact:u,tags:c})]))}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(a=>a.source.asset===e&&a.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var y=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 b=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(b||{});var we=class extends y{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var Pe=class extends y{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var Me=class extends y{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as It}from"viem";var Se=class extends y{abi;address;args;value;constructor({abi:e,address:t,args:n,value:a,...r}){super({...r,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=a}encodeFunctionData(){return It({abi:this.abi,functionName:this.func,args:this.args})}};var Ee=class extends y{getArgs;constructor({getArgs:e,...t}){super({...t,type:"Substrate"}),this.getArgs=e}};var Ie=class extends y{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var ke=class extends y{instructions;signers;constructor({instructions:e,signers:t,...n}){super({...n,type:"Solana"}),this.instructions=e,this.signers=t}};var De=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Be=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)}},Re=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let a of this.criterias)n.push(a.check(e));return await Promise.allSettled(n).then(a=>a.forEach(r=>{if(r.status==="rejected"){let s=r.reason;t.push(s.report)}})),t}};function kt(i){let e=i;return{assets:t=>({assets:e.getEcosystemAssets(t),asset:a=>{let r=e.getAsset(a);return{sourceChains:e.getSourceChains(r,t),source:o=>{let p=e.getChain(o);return{destinationChains:e.getDestinationChains(r,p),destination:c=>{let m=e.getChain(c),h=e.getAssetRoutes(r,p,m);return{routes:h,build:T=>{let v=h.find(M=>M.destination.asset.originSymbol===M.source.asset.originSymbol)||h[0],l=T?e.getAsset(T):v.destination.asset,[Fe]=e.getAssetRoutes(l,m,p),Ve=h.find(M=>M.destination.asset===l);return{origin:{chain:p,route:Ve},reverse:{chain:m,route:Fe}}}}}}}}}})}}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),a=n.getRoutes(),r=({source:p,destination:u})=>p.asset===t.source.asset&&u.asset===t.destination.asset&&u.chain===t.destination.chain,s=a.filter(p=>!r(p)).concat(t),o=new R({...n,routes:s});this.routes.set(n.chain.key,o)}};export{w as Abi,E as Asset,G as AssetAmount,B as AssetRoute,y as BaseConfig,b as CallType,f as Chain,Ke as ChainEcosystem,R as ChainRoutes,C as ChainType,kt as ConfigBuilder,H as ConfigService,Se as ContractConfig,ve as DexFactory,he as Erc20Client,Ce as EvmChain,A as EvmClient,Te as EvmParachain,Ee as ExtrinsicConfig,Ie as MoveConfig,D as Parachain,Qn as Precompile,ke as ProgramConfig,I as Snowbridge,xe as SolanaChain,we as SolanaQueryConfig,k as SubstrateApis,Pe as SubstrateQueryConfig,Ae as SuiChain,Me as SuiQueryConfig,Be as TransferValidation,De as TransferValidationError,Re as TransferValidator,d as Wormhole,Xe as XcmVersion,Z as acc,x as addr,ue as mrl,fe as multiloc};
|
|
1
|
+
var De=Object.defineProperty;var P=(a,e)=>{for(var t in e)De(a,t,{get:e[t],enumerable:!0})};import ke from"buffer";typeof window<"u"&&(window.Buffer=ke.Buffer);var w=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}};import k from"big.js";import{big as Be}from"@galacticcouncil/common";k.NE=-18;var O=class a extends w{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 k(this.amount.toString())}toBigDecimal(e,t){return k(this.toDecimal(e,t))}toDecimal(e,t){return Be.toDecimal(this.amount,this.decimals,e,t)}};import{UniversalAddress as Re}from"@wormhole-foundation/sdk-connect";var u=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 Re(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 Fe=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Fe||{}),g=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(g||{}),m=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(p=>[p.asset.key,p])),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)}};import{createClient as Ue}from"polkadot-api";import{getWsProvider as Ve}from"polkadot-api/ws-provider";import{LRUCache as _e}from"lru-cache";var M=class a{static _instance=new a;dispose=(e,t)=>{console.log("Releasing "+t+" connection"),e.destroy()};_cache=new _e({max:40,dispose:this.dispose});constructor(){if(a._instance)throw new Error("Use SubstrateApis.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}createCacheKey(e){return e.join(",")}findCacheKey(e){let t=e.find(i=>this._cache.has(i));if(t)return t;let n=this.createCacheKey(e);return this._cache.has(n)?n:null}createClient(e){let t=Ve(e),n=Ue(t),i=this.createCacheKey(e);return console.log(`Created PAPI client for ${i}`),this._cache.set(i,n,{noDisposeOnSet:!0}),n}api(e){let t=typeof e=="string"?e.split(","):e,n=this.findCacheKey(t);return n?this._cache.get(n):this.createClient(t)}release(){for(let[e,t]of this._cache.entries())console.log("Disconnecting from "+e),t.destroy();this._cache.clear()}};var We=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(We||{}),I=class extends m{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:p=!1,usesSignerFee:o=!1,usesH160Acc:l=!1,ws:c,xcmVersion:d="V4",...b}){super({...b}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=p,this.usesSignerFee=o,this.usesH160Acc=l,this.ws=c,this.xcmVersion=d}get client(){return M.getInstance().api(this.ws)}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 H=[{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 G=[{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 X=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var q=[{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 $=[{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 z=[{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 Q=[{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 j=[{inputs:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"currencyAddress",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct Xtokens.Currency[]",name:"currencies",type:"tuple[]"},{internalType:"uint32",name:"feeItem",type:"uint32"},{components:[{internalType:"uint8",name:"parents",type:"uint8"},{internalType:"bytes[]",name:"interior",type:"bytes[]"}],internalType:"struct Xtokens.Multilocation",name:"destination",type:"tuple"},{internalType:"uint64",name:"weight",type:"uint64"}],name:"transferMultiCurrencies",outputs:[],stateMutability:"nonpayable",type:"function"}];var x={Batch:H,Erc20:G,Gmp:X,Meta:q,Snowbridge:$,TokenBridge:z,TokenRelayer:Q,Xtokens:j};var $n={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",Xtokens:"0x0000000000000000000000000000000000000804"};import{encodeFunctionData as ct}from"viem";var Y={};P(Y,{getMultilocationDerivatedAccount:()=>Xe,getSovereignAccounts:()=>qe});import{AccountId as Ne,Blake2256 as Le,compactNumber as Ke,getSs58AddressInfo as Oe,u32 as He}from"@polkadot-api/substrate-bindings";import{toHex as B,fromHex as Ge}from"@polkadot-api/utils";function Xe(a,e,t,n=!1){let i=e.length===42,s=i?"AccountKey20":"AccountId32",r;if(i)r=Ge(e.slice(2));else{let d=Oe(e);if(!d.isValid)throw new Error("Invalid SS58 address");r=d.publicKey}let p="SiblingChain";t==0&&a?p="ChildChain":t==1&&!a&&(p="ParentChain");let o=Ke.enc,l=new Uint8Array([...new TextEncoder().encode(p),...a?o(a):[],...o(s.length+(i?20:32)),...new TextEncoder().encode(s),...r]),c=Le(l);return n?B(c.slice(0,20)):Ne().dec(c)}function qe(a){let e=He.enc(a),t=new TextEncoder().encode("para"),n=new TextEncoder().encode("sibl"),i=B(new Uint8Array([...t,...e])).padEnd(66,"0"),s=B(new Uint8Array([...n,...e])).padEnd(66,"0"),r=s.slice(0,42);return{generic:s,moonbeam:r,relay:i}}var T={};P(T,{EvmAddr:()=>U,SolanaAddr:()=>V,Ss58Addr:()=>F,SuiAddr:()=>_});import{getSs58AddressInfo as J,fromBufferToBase58 as $e}from"@polkadot-api/substrate-bindings";import{toHex as Z,fromHex as ee}from"@polkadot-api/utils";import{PublicKey as R}from"@solana/web3.js";import{isAddress as ze}from"viem";import{hex as h}from"@galacticcouncil/common";var Qe=/^0x[0-9a-fA-F]{64}$/,je=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,F=class{static isSs58Strict(e){if(!e||h.isHex(e)||!je.test(e))return!1;let t=J(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=J(e);if(!t.isValid)throw new Error("Invalid SS58 address");return Z(t.publicKey)}static encodePubKey(e,t=0){let n=h.hexNormalize(e);h.assertHexLen(n,32);let i=ee(h.stripHexPrefix(n));return $e(t)(i)}},U=class{static isValid(e){return ze(e,{strict:!1})}},V=class{static isValid(e){try{let t=new R(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 Z(new R(e).toBytes())}static encodePubKey(e){let t=h.hexNormalize(e);h.assertHexLen(t,32);let n=ee(h.stripHexPrefix(t));return new R(n).toBase58()}},_=class{static isValid(e){return Qe.test(e)}};var ae={};P(ae,{createPayload:()=>ot,decodePayload:()=>pt});import{getTypedCodecs as Ye,FixedSizeBinary as te,AccountId as Je}from"polkadot-api";import{Struct as Ze,Enum as et}from"scale-ts";import{toHex as tt,fromHex as nt}from"@polkadot-api/utils";import{XcmVersionedLocation as at,XcmV5Junction as W,XcmV5Junctions as it,hub as st}from"@galacticcouncil/descriptors";async function ne(){let e=(await Ye(st)).tx.PolkadotXcm.send.inner.dest,t=Ze({destination:e});return et({V1:t})}function rt(a,e,t){let n;if(t)n=W.AccountKey20({key:te.fromHex(e),network:void 0});else{let i=Je().enc(e);n=W.AccountId32({id:te.fromBytes(i),network:void 0})}return at.V5({parents:1,interior:it.X2([W.Parachain(a.parachainId),n])})}async function ot(a,e,t=!1){let n=rt(a,e,t),i=await ne(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return tt(r)},toU8a(){return r}}}async function pt(a){let e=a.startsWith("0x")?a.slice(2):a,t=nt(e);return(await ne()).dec(t)}var pe={};P(pe,{findGeneralIndex:()=>lt,findGlobalConsensus:()=>yt,findNestedKey:()=>A,findPalletInstance:()=>mt,findParachain:()=>ut});var ie="GlobalConsensus",se="Parachain",re="GeneralIndex",oe="PalletInstance",A=(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]},yt=a=>{let e=A(a,ie);return e&&e[ie]},ut=a=>{let e=A(a,se);return e&&e[se]},mt=a=>{let e=A(a,oe);return e&&e[oe]},lt=a=>{let e=A(a,re);return e&&e[re]};var{EvmAddr:dt}=T,ye=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(!dt.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 ct({abi:x.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as ue,createWalletClient as ft,custom as ht,fallback as bt,http as me,webSocket as gt}from"viem";var 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=>me(t));return ue({chain:this.chain,transport:this.rpcs.length>0?bt(e,{rank:!1}):me()})}getWsProvider(){return ue({chain:this.chain,transport:gt()})}getSigner(e){return ft({account:e,chain:this.chain,transport:ht(window.ethereum)})}};var{EvmAddr:Tt}=T,le=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 u(i)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(Tt.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 ce=class extends m{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 u(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")}};import{Connection as Ct}from"@solana/web3.js";var xt="SOL",At=9,de=class extends m{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new u(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Ct(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(xt.toLowerCase());if(e)return{asset:e,decimals:At};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as vt,SuiClient as Pt}from"@mysten/sui/client";var wt="SUI",St=9,fe=class extends m{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new u(t)}get client(){let e=vt("mainnet");return new Pt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(wt.toLowerCase());if(e)return{asset:e,decimals:St};throw Error("Chain currency configuration not found")}};var he=class a{static _instance=new a;_dex=new Map([]);constructor(){if(a._instance)throw new Error("Use DexFactory.getInstance() instead of new.");a._instance=this}static getInstance(){return a._instance}register(e){this._dex.set(e.chain.key,e)}get(e){return this._dex.get(e)}};var E=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:p,tags:o}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=p,this.tags=o}};var D=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:p,program:o,transact:l,tags:c})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new E({source:n,destination:i,contract:s,extrinsic:r,move:p,program:o,transact:l,tags:c})]))}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 y=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 f=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(f||{});var be=class extends y{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ge=class extends y{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var Te=class extends y{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as Mt}from"viem";var Ce=class extends y{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 Mt({abi:this.abi,functionName:this.func,args:this.args})}};var xe=class extends y{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Ae=class extends y{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var ve=class extends y{instructions;signers;constructor({instructions:e,signers:t,...n}){super({...n,type:"Solana"}),this.instructions=e,this.signers=t}};var Pe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},we=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)}},Se=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 It(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:p=>{let o=e.getChain(p);return{destinationChains:e.getDestinationChains(s,o),destination:c=>{let d=e.getChain(c),b=e.getAssetRoutes(s,o,d);return{routes:b,build:L=>{let Me=b.find(v=>v.destination.asset.originSymbol===v.source.asset.originSymbol)||b[0],K=L?e.getAsset(L):Me.destination.asset,[Ie]=e.getAssetRoutes(K,d,o),Ee=b.find(v=>v.destination.asset===K);return{origin:{chain:o,route:Ee},reverse:{chain:d,route:Ie}}}}}}}}}})}}var N=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:o,destination:l})=>o.asset===t.source.asset&&l.asset===t.destination.asset&&l.chain===t.destination.chain,r=i.filter(o=>!s(o)).concat(t),p=new D({...n,routes:r});this.routes.set(n.chain.key,p)}};export{x as Abi,w as Asset,O as AssetAmount,E as AssetRoute,y as BaseConfig,f as CallType,m as Chain,Fe as ChainEcosystem,D as ChainRoutes,g as ChainType,It as ConfigBuilder,N as ConfigService,Ce as ContractConfig,he as DexFactory,ye as Erc20Client,ce as EvmChain,C as EvmClient,le as EvmParachain,xe as ExtrinsicConfig,Ae as MoveConfig,I as Parachain,$n as Precompile,ve as ProgramConfig,S as Snowbridge,de as SolanaChain,be as SolanaQueryConfig,M as SubstrateApis,ge as SubstrateQueryConfig,fe as SuiChain,Te as SuiQueryConfig,we as TransferValidation,Pe as TransferValidationError,Se as TransferValidator,u as Wormhole,We as XcmVersion,Y as acc,T as addr,ae as mrl,pe as multiloc};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Asset } from '../asset';
|
|
2
|
+
import { Dex } from './dex';
|
|
2
3
|
export type ChainAssetId = string | number | bigint | {
|
|
3
4
|
[key: string]: ChainAssetId;
|
|
4
5
|
};
|
|
@@ -56,9 +57,12 @@ export declare abstract class Chain<T extends ChainAssetData> {
|
|
|
56
57
|
readonly isTestChain: boolean;
|
|
57
58
|
readonly key: string;
|
|
58
59
|
readonly name: string;
|
|
60
|
+
private _dex?;
|
|
59
61
|
constructor({ assetsData, ecosystem, explorer, isTestChain, key, name, }: ChainParams<T>);
|
|
60
62
|
abstract getType(): ChainType;
|
|
61
63
|
abstract getCurrency(): Promise<ChainCurrency>;
|
|
64
|
+
get dex(): Dex;
|
|
65
|
+
registerDex(dex: Dex): this;
|
|
62
66
|
isSubstrate(): boolean;
|
|
63
67
|
isEvm(): boolean;
|
|
64
68
|
isSolana(): boolean;
|
|
@@ -16,7 +16,7 @@ export declare class EvmChain extends Chain<ChainAssetData> {
|
|
|
16
16
|
readonly snowbridge?: Snowbridge;
|
|
17
17
|
readonly wormhole?: Wormhole;
|
|
18
18
|
constructor({ evmChain, id, rpcs, snowbridge, wormhole, ...others }: EvmChainParams);
|
|
19
|
-
get
|
|
19
|
+
get evmClient(): EvmClient;
|
|
20
20
|
getType(): ChainType;
|
|
21
21
|
getCurrency(): Promise<ChainCurrency>;
|
|
22
22
|
}
|
|
@@ -15,7 +15,7 @@ export declare class EvmParachain extends Parachain {
|
|
|
15
15
|
readonly rpcs?: string[];
|
|
16
16
|
readonly wormhole?: Wormhole;
|
|
17
17
|
constructor({ evmChain, evmResolver, rpcs, wormhole, ...others }: EvmParachainParams);
|
|
18
|
-
get
|
|
18
|
+
get evmClient(): EvmClient;
|
|
19
19
|
getType(): ChainType;
|
|
20
20
|
getDerivatedAddress(address: string): Promise<string>;
|
|
21
21
|
}
|
|
@@ -2,9 +2,9 @@ import { PolkadotClient } from 'polkadot-api';
|
|
|
2
2
|
import { Asset } from '../asset';
|
|
3
3
|
import { Chain, ChainAssetData, ChainAssetId, ChainCurrency, ChainParams, ChainType } from './Chain';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* XCM multi-location objects (JSON-serializable)
|
|
6
6
|
*/
|
|
7
|
-
type XcmLocation = Record<string, any>;
|
|
7
|
+
export type XcmLocation = Record<string, any>;
|
|
8
8
|
/**
|
|
9
9
|
* XCM Version enum
|
|
10
10
|
*/
|
|
@@ -15,6 +15,14 @@ export declare enum XcmVersion {
|
|
|
15
15
|
v4 = "V4",
|
|
16
16
|
v5 = "V5"
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Parachain spec
|
|
20
|
+
*/
|
|
21
|
+
export interface ParachainSpec {
|
|
22
|
+
name: string;
|
|
23
|
+
genesisHash: string;
|
|
24
|
+
properties: any;
|
|
25
|
+
}
|
|
18
26
|
/**
|
|
19
27
|
* Parachain Asset Data
|
|
20
28
|
*
|
|
@@ -42,6 +50,7 @@ export interface ParachainParams extends ChainParams<ParachainAssetData> {
|
|
|
42
50
|
xcmVersion?: XcmVersion;
|
|
43
51
|
}
|
|
44
52
|
export declare class Parachain extends Chain<ParachainAssetData> {
|
|
53
|
+
private _chainSpec?;
|
|
45
54
|
readonly genesisHash: string;
|
|
46
55
|
readonly parachainId: number;
|
|
47
56
|
readonly ss58Format: number;
|
|
@@ -54,22 +63,12 @@ export declare class Parachain extends Chain<ParachainAssetData> {
|
|
|
54
63
|
readonly ws: string | string[];
|
|
55
64
|
readonly xcmVersion: XcmVersion;
|
|
56
65
|
constructor({ genesisHash, parachainId, ss58Format, treasury, usesChainDecimals, usesCexForwarding, usesDeliveryFee, usesSignerFee, usesH160Acc, ws, xcmVersion, ...others }: ParachainParams);
|
|
57
|
-
|
|
58
|
-
* Get XCM version for a specific pallet call by inspecting runtime metadata via PAPI
|
|
59
|
-
* This dynamically detects which XCM versions are supported by the pallet
|
|
60
|
-
*
|
|
61
|
-
* @param pallet - Pallet name (e.g., 'xTokens', 'polkadotXcm')
|
|
62
|
-
* @param method - Method name (e.g., 'transfer', 'transferMultiasset')
|
|
63
|
-
* @param argIndex - Index of the argument to inspect (usually the dest/beneficiary param)
|
|
64
|
-
* @returns Promise<XcmVersion> - Detected XCM version
|
|
65
|
-
*/
|
|
66
|
-
getXcmVersionForCall(pallet: string, method: string, argIndex?: number): Promise<XcmVersion>;
|
|
67
|
-
get api(): PolkadotClient;
|
|
66
|
+
get client(): PolkadotClient;
|
|
68
67
|
getType(): ChainType;
|
|
68
|
+
getSpec(): Promise<ParachainSpec>;
|
|
69
69
|
getCurrency(): Promise<ChainCurrency>;
|
|
70
70
|
getAssetXcmLocation(asset: Asset): XcmLocation | undefined;
|
|
71
71
|
getMetadataAssetId(asset: Asset): ChainAssetId;
|
|
72
72
|
getMinAssetId(asset: Asset): ChainAssetId;
|
|
73
73
|
findAssetById(id: string): ParachainAssetData | undefined;
|
|
74
74
|
}
|
|
75
|
-
export {};
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { PolkadotClient, Transaction, UnsafeTransaction } from 'polkadot-api';
|
|
1
2
|
import { BaseConfig, BaseConfigParams } from '../base';
|
|
2
|
-
|
|
3
|
+
type SafeTx = Transaction<any, string, string, void | undefined>;
|
|
4
|
+
type UnsafeTx = UnsafeTransaction<any, string, string, void | undefined>;
|
|
5
|
+
export type Extrinsic = SafeTx | UnsafeTx;
|
|
3
6
|
export interface ExtrinsicConfigParams extends Omit<BaseConfigParams, 'type'> {
|
|
4
|
-
|
|
7
|
+
getTx: (client: PolkadotClient) => Extrinsic;
|
|
5
8
|
}
|
|
6
9
|
export declare class ExtrinsicConfig extends BaseConfig {
|
|
7
|
-
|
|
8
|
-
constructor({
|
|
10
|
+
getTx: (client: PolkadotClient) => Extrinsic;
|
|
11
|
+
constructor({ getTx, ...other }: ExtrinsicConfigParams);
|
|
9
12
|
}
|
|
13
|
+
export {};
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { Binary } from 'polkadot-api';
|
|
1
2
|
import { AssetAmount } from '../../../asset';
|
|
2
3
|
import { AnyParachain } from '../../../chain';
|
|
3
4
|
import { TransferCtx } from '../../types';
|
|
4
5
|
import { ExtrinsicConfig } from './ExtrinsicConfig';
|
|
5
6
|
export interface TxWeight {
|
|
6
|
-
proofSize:
|
|
7
|
-
refTime:
|
|
7
|
+
proofSize: bigint;
|
|
8
|
+
refTime: bigint;
|
|
8
9
|
}
|
|
9
10
|
export interface TransactCtx {
|
|
10
11
|
chain: AnyParachain;
|
|
11
12
|
fee: AssetAmount;
|
|
12
13
|
feeBalance: AssetAmount;
|
|
13
|
-
call:
|
|
14
|
+
call: Binary;
|
|
14
15
|
weight: TxWeight;
|
|
15
16
|
}
|
|
16
17
|
export interface ExtrinsicConfigBuilderParams extends TransferCtx {
|
|
@@ -18,5 +19,5 @@ export interface ExtrinsicConfigBuilderParams extends TransferCtx {
|
|
|
18
19
|
transact?: TransactCtx;
|
|
19
20
|
}
|
|
20
21
|
export interface ExtrinsicConfigBuilder {
|
|
21
|
-
build: (params: ExtrinsicConfigBuilderParams) => ExtrinsicConfig
|
|
22
|
+
build: (params: ExtrinsicConfigBuilderParams) => Promise<ExtrinsicConfig>;
|
|
22
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Multilocation-derivative account - an account computed when
|
|
3
|
-
* via XCM.
|
|
2
|
+
* Multilocation-derivative account - an account computed when
|
|
3
|
+
* executing remote calls via XCM.
|
|
4
4
|
*
|
|
5
5
|
* @param parachainId parachain id or undefined in case of relay
|
|
6
6
|
* @param address sender address
|
|
@@ -11,8 +11,7 @@ export declare function getMultilocationDerivatedAccount(parachainId: number | u
|
|
|
11
11
|
/**
|
|
12
12
|
* Sovereign account — an account each chain in the ecosystem has, one for the relay chain
|
|
13
13
|
* and the other for other parachains. The account is owned by root and can only be used
|
|
14
|
-
* through SUDO (if available) or democracy (technical committee or referenda).
|
|
15
|
-
* account typically signs XCM messages in other chains in the ecosystem.
|
|
14
|
+
* through SUDO (if available) or democracy (technical committee or referenda).
|
|
16
15
|
*
|
|
17
16
|
* @param parachainId parachain id
|
|
18
17
|
* @returns sovereign account addresses
|
|
@@ -13,6 +13,5 @@ interface EncodedPayload {
|
|
|
13
13
|
toU8a(): Uint8Array;
|
|
14
14
|
}
|
|
15
15
|
export declare function createPayload(parachain: Parachain, address: string, isEthereumStyle?: boolean): Promise<EncodedPayload>;
|
|
16
|
-
export declare function decodePayload(
|
|
17
|
-
export declare function encodeDestination(parachain: Parachain, address: string, isEthereumStyle?: boolean): Promise<Uint8Array>;
|
|
16
|
+
export declare function decodePayload(payloadHex: string): Promise<VersionedUserAction>;
|
|
18
17
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Cross-chain sdk core",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"type": "module",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@galacticcouncil/descriptors": "^1.5.1",
|
|
37
36
|
"@types/big.js": "^6.2.2",
|
|
38
37
|
"@types/lru-cache": "^7.10.9"
|
|
39
38
|
},
|
|
40
39
|
"dependencies": {
|
|
41
|
-
"@galacticcouncil/common": "^0.1.
|
|
40
|
+
"@galacticcouncil/common": "^0.1.2",
|
|
41
|
+
"@galacticcouncil/descriptors": "^1.7.0",
|
|
42
42
|
"@noble/hashes": "^1.6.1",
|
|
43
43
|
"@wormhole-foundation/sdk-base": "3.2.0",
|
|
44
44
|
"@wormhole-foundation/sdk-connect": "3.2.0",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"bigint-buffer": "^1.1.5",
|
|
53
53
|
"buffer": "^6.0.3",
|
|
54
54
|
"bs58": "^6.0.0",
|
|
55
|
-
"lru-cache": "^11.
|
|
55
|
+
"lru-cache": "^11.2.2"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"polkadot-api": "
|
|
58
|
+
"polkadot-api": "^1.23.0",
|
|
59
59
|
"viem": "^2.38.3"
|
|
60
60
|
}
|
|
61
61
|
}
|