@galacticcouncil/xc-core 0.12.0 → 0.13.0-pr294-5865627
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/README.md +1 -1
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/build/types/chain/EvmChain.d.ts +7 -1
- package/build/types/chain/dex/index.d.ts +0 -1
- package/build/types/evm/abi/InstaBridge.d.ts +59 -0
- package/package.json +1 -1
- package/build/types/chain/dex/factory.d.ts +0 -9
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@galacticcouncil/xc-core)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Core building blocks for cross-chain operations — asset types, chain configurations, and bridge definitions. Backbone for `xc-sdk` and `xc-cfg` modules.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Oe=Object.create;var F=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Ke=Object.getPrototypeOf,qe=Object.prototype.hasOwnProperty;var U=(a,e)=>{for(var t in e)F(a,t,{get:e[t],enumerable:!0})},de=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ge(e))!qe.call(a,i)&&i!==t&&F(a,i,{get:()=>e[i],enumerable:!(n=He(e,i))||n.enumerable});return a};var Xe=(a,e,t)=>(t=a!=null?Oe(Ke(a)):{},de(e||!a||!a.__esModule?F(t,"default",{value:a,enumerable:!0}):t,a)),$e=a=>de(F({},"__esModule",{value:!0}),a);var ut={};U(ut,{Abi:()=>A,Asset:()=>M,AssetAmount:()=>G,AssetRoute:()=>k,BaseConfig:()=>o,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>be,ChainRoutes:()=>R,ChainType:()=>h,ConfigBuilder:()=>_e,ConfigService:()=>H,ContractConfig:()=>se,DexFactory:()=>te,Erc20Client:()=>Y,EvmChain:()=>Q,EvmClient:()=>C,EvmParachain:()=>J,ExtrinsicConfig:()=>re,MoveConfig:()=>oe,Parachain:()=>I,Precompile:()=>ze,ProgramConfig:()=>pe,Snowbridge:()=>S,SolanaChain:()=>Z,SolanaQueryConfig:()=>ne,SubstrateQueryConfig:()=>ae,SuiChain:()=>ee,SuiQueryConfig:()=>ie,TransferValidation:()=>ue,TransferValidationError:()=>ye,TransferValidator:()=>me,Wormhole:()=>m,XcmVersion:()=>ge,addr:()=>T,mrl:()=>z,multiloc:()=>j});module.exports=$e(ut);var M=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var _=Xe(require("big.js"),1);var ce=require("@galacticcouncil/common");_.default.NE=-18;var G=class a extends M{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...i}){super(i),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new a({...e,...t})}isSame(e){return super.isEqual(e)&&this.decimals===e.decimals}isEqual(e){return this.isSame(e)&&this.amount===e.amount}copyWith(e){return new a({...this,...e})}padByPct(e){return new a({...this,amount:this.amount+this.amount*e/100n})}toBig(){return(0,_.default)(this.amount.toString())}toBigDecimal(e){return(0,_.default)(this.toDecimal(e))}toDecimal(e){return ce.big.toDecimal(this.amount,this.decimals,e)}};var fe=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 fe.UniversalAddress(e,this.platformAddressFormat).toString()}};var S=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var be=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(be||{}),h=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(h||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:i=!1,key:s,name:r}){this.assetsData=new Map(e.map(u=>[u.asset.key,u])),this.ecosystem=t,this.explorer=n,this.isTestChain=i,this.key=s,this.name=r}get dex(){if(!this._dex)throw new Error(`No DEX attached to chain ${this.key}`);return this._dex}registerDex(e){return this._dex=e,this}isSubstrate(){return this.getType()==="parachain"||this.getType()==="evm-parachain"}isEvm(){return this.getType()==="evm-chain"||this.getType()==="evm-parachain"}isSolana(){return this.getType()==="solana-chain"}isSui(){return this.getType()==="sui-chain"}isEvmChain(){return this.getType()==="evm-chain"}isEvmParachain(){return this.getType()==="evm-parachain"}isParachain(){return this.getType()==="parachain"}getAsset(e){return this.assetsData.get(e)?.asset}getAssetId(e){return this.assetsData.get(e.key)?.id??e.originSymbol}getAssetDecimals(e){return this.assetsData.get(e.key)?.decimals}getAssetMin(e){return this.assetsData.get(e.key)?.min??0}getBalanceAssetId(e){return this.assetsData.get(e.key)?.balanceId??this.getAssetId(e)}updateAsset(e){this.assetsData.set(e.asset.key,e)}};var he=require("@polkadot-api/legacy-provider"),Te=require("@galacticcouncil/common");var ge=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(ge||{}),I=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:u=!1,usesSignerFee:p=!1,usesH160Acc:b=!1,usesLegacyEnhancer:P=!1,ws:w,xcmVersion:x="V4",...B}){super({...B}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=u,this.usesSignerFee=p,this.usesH160Acc=b,this.usesLegacyEnhancer=P,this.ws=w,this.xcmVersion=x}get client(){return Te.SubstrateApis.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:(0,he.withLegacy)()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},i=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(i.toLowerCase());if(r)return{asset:r,decimals:s};throw Error("Chain currency configuration not found")}getAssetXcmLocation(e){return this.assetsData.get(e.key)?.xcmLocation}getMetadataAssetId(e){return this.assetsData.get(e.key)?.metadataId??this.getAssetId(e)}getMinAssetId(e){return this.assetsData.get(e.key)?.minId??this.getAssetId(e)}findAssetById(e){return Array.from(this.assetsData.values()).find(t=>Object.hasOwn(t,"metadataId")?t.metadataId?.toString()===e:t.id?.toString()===e)}};var Ce=[{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 xe=[{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 Ae=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var ve=[{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 Pe=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var we=[{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 Me=[{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 Se=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var A={Batch:Ce,Erc20:xe,Gmp:Ae,Meta:ve,PolkadotXcm:Pe,Snowbridge:we,TokenBridge:Me,TokenRelayer:Se};var ze={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var Ve=require("viem");var T={};U(T,{EvmAddr:()=>q,SolanaAddr:()=>X,Ss58Addr:()=>K,SuiAddr:()=>$});var D=require("@polkadot-api/substrate-bindings"),v=require("@polkadot-api/utils"),L=require("@solana/web3.js"),Ie=require("viem"),f=require("@galacticcouncil/common"),je=/^0x[0-9a-fA-F]{64}$/,Ye=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,K=class{static isSs58Strict(e){if(!e||f.hex.isHex(e)||!Ye.test(e))return!1;let t=(0,D.getSs58AddressInfo)(e);return t.isValid&&t.publicKey.length===32}static isValid(e){return this.isSs58Strict(e)}static getPubKey(e){if(!this.isSs58Strict(e))throw new Error("Invalid SS58 address");let t=(0,D.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,v.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=f.hex.hexNormalize(e);f.hex.assertHexLen(n,32);let i=(0,v.fromHex)(f.hex.stripHexPrefix(n));return(0,D.fromBufferToBase58)(t)(i)}},q=class{static isValid(e){return(0,Ie.isAddress)(e,{strict:!1})}},X=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,v.toHex)(new L.PublicKey(e).toBytes())}static encodePubKey(e){let t=f.hex.hexNormalize(e);f.hex.assertHexLen(t,32);let n=(0,v.fromHex)(f.hex.stripHexPrefix(t));return new L.PublicKey(n).toBase58()}},$=class{static isValid(e){return je.test(e)}};var z={};U(z,{createPayload:()=>Qe,decodePayload:()=>Ze});var g=require("polkadot-api"),W=require("scale-ts"),N=require("@polkadot-api/utils"),d=require("@galacticcouncil/descriptors");async function De(){let e=(await(0,g.getTypedCodecs)(d.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,W.Struct)({destination:e});return(0,W.Enum)({V1:t})}function Je(a,e,t){let n;if(t)n=d.XcmV5Junction.AccountKey20({key:g.FixedSizeBinary.fromHex(e),network:void 0});else{let i=(0,g.AccountId)().enc(e);n=d.XcmV5Junction.AccountId32({id:g.FixedSizeBinary.fromBytes(i),network:void 0})}return d.XcmVersionedLocation.V5({parents:1,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.Parachain(a.parachainId),n])})}async function Qe(a,e,t=!1){let n=Je(a,e,t),i=await De(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,N.toHex)(r)},toU8a(){return r}}}async function Ze(a){let e=a.startsWith("0x")?a.slice(2):a,t=(0,N.fromHex)(e);return(await De()).dec(t)}var j={};U(j,{findGeneralIndex:()=>at,findGlobalConsensus:()=>et,findNestedKey:()=>E,findPalletInstance:()=>nt,findParachain:()=>tt});var Ee="GlobalConsensus",ke="Parachain",Re="GeneralIndex",Be="PalletInstance",E=(a,e)=>{let t=[];return JSON.stringify(a,(n,i)=>{let s=typeof i=="bigint"?i.toString():i;return i&&i[e]&&t.push(s),s}),t[0]},et=a=>{let e=E(a,Ee);return e&&e[Ee]},tt=a=>{let e=E(a,ke);return e&&e[ke]},nt=a=>{let e=E(a,Be);return e&&e[Be]},at=a=>{let e=E(a,Re);return e&&e[Re]};var{EvmAddr:it}=T,Y=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!it.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,Ve.encodeFunctionData)({abi:A.Erc20,args:[e,t],functionName:"approve"})}};var y=require("viem"),C=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>(0,y.http)(t));return(0,y.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,y.fallback)(e,{rank:!1}):(0,y.http)()})}getWsProvider(){return(0,y.createPublicClient)({chain:this.chain,transport:(0,y.webSocket)()})}getSigner(e){return(0,y.createWalletClient)({account:e,chain:this.chain,transport:(0,y.custom)(window.ethereum)})}};var{EvmAddr:st}=T,J=class extends I{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:i,...s}){super({...s}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=i&&new m(i)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(st.isValid(e))return e;if(this.evmResolver)return this.evmResolver.toH160(e,this.client);throw new Error("No EVM resolver found for "+this.name)}};var Q=class extends l{evmChain;id;rpcs;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,snowbridge:i,wormhole:s,...r}){super({...r}),this.evmChain=e,this.id=t,this.rpcs=n,this.snowbridge=i&&new S(i),this.wormhole=s&&new m(s)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,i=this.getAsset(t.toLowerCase());if(i)return{asset:i,decimals:n};throw Error("Chain currency configuration not found")}};var Fe=require("@solana/web3.js");var rt="SOL",ot=9,Z=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Fe.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(rt.toLowerCase());if(e)return{asset:e,decimals:ot};throw Error("Chain currency configuration not found")}};var O=require("@mysten/sui/client");var pt="SUI",yt=9,ee=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,O.getFullnodeUrl)("mainnet");return new O.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(pt.toLowerCase());if(e)return{asset:e,decimals:yt};throw Error("Chain currency configuration not found")}};var te=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 k=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:u,tags:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=u,this.tags=p}};var R=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e,this.routes=new Map(t.map(({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:b,tags:P})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new k({source:n,destination:i,contract:s,extrinsic:r,move:u,program:p,transact:b,tags:P})]))}getRoutes(){return Array.from(this.routes.values())}getUniqueRoutes(){let e=this.getRoutes();return[...new Map(e.map(t=>[t.source.asset,t])).values()]}getAssetRoutes(e){return this.getRoutes().filter(t=>t.source.asset.key===e.key)}getAssetDestinations(e){return this.getAssetRoutes(e).map(t=>t.destination.chain)}getAssetDestinationRoutes(e,t){let n=Array.from(this.routes.values()).filter(i=>i.source.asset===e&&i.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var c=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(c||{});var ne=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ae=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var ie=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Ue=require("viem");var se=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:i,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=i}encodeFunctionData(){return(0,Ue.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var re=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var oe=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var pe=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...i}){super({...i,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var ye=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},ue=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)}},me=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 _e(a){let e=a;return{assets:t=>({assets:e.getEcosystemAssets(t),asset:i=>{let s=e.getAsset(i);return{sourceChains:e.getSourceChains(s,t),source:u=>{let p=e.getChain(u);return{destinationChains:e.getDestinationChains(s,p),destination:P=>{let w=e.getChain(P),x=e.getAssetRoutes(s,p,w);return{routes:x,build:B=>{let Le=x.find(V=>V.destination.asset.originSymbol===V.source.asset.originSymbol)||x[0],le=B?e.getAsset(B):Le.destination.asset,[We]=e.getAssetRoutes(le,w,p),Ne=x.find(V=>V.destination.asset===le);return{origin:{chain:p,route:Ne},reverse:{chain:w,route:We}}}}}}}}}})}}var H=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),i=n.getRoutes(),s=({source:p,destination:b})=>p.asset===t.source.asset&&b.asset===t.destination.asset&&b.chain===t.destination.chain,r=i.filter(p=>!s(p)).concat(t),u=new R({...n,routes:r});this.routes.set(n.chain.key,u)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,DexFactory,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,addr,mrl,multiloc});
|
|
1
|
+
"use strict";var Oe=Object.create;var F=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Ke=Object.getPrototypeOf,qe=Object.prototype.hasOwnProperty;var U=(a,e)=>{for(var t in e)F(a,t,{get:e[t],enumerable:!0})},le=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of He(e))!qe.call(a,i)&&i!==t&&F(a,i,{get:()=>e[i],enumerable:!(n=Ge(e,i))||n.enumerable});return a};var Xe=(a,e,t)=>(t=a!=null?Oe(Ke(a)):{},le(e||!a||!a.__esModule?F(t,"default",{value:a,enumerable:!0}):t,a)),$e=a=>le(F({},"__esModule",{value:!0}),a);var ut={};U(ut,{Abi:()=>A,Asset:()=>M,AssetAmount:()=>H,AssetRoute:()=>k,BaseConfig:()=>o,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>be,ChainRoutes:()=>R,ChainType:()=>h,ConfigBuilder:()=>_e,ConfigService:()=>G,ContractConfig:()=>ie,Erc20Client:()=>Y,EvmChain:()=>Q,EvmClient:()=>C,EvmParachain:()=>J,ExtrinsicConfig:()=>se,MoveConfig:()=>re,Parachain:()=>I,Precompile:()=>ze,ProgramConfig:()=>oe,Snowbridge:()=>S,SolanaChain:()=>Z,SolanaQueryConfig:()=>te,SubstrateQueryConfig:()=>ne,SuiChain:()=>ee,SuiQueryConfig:()=>ae,TransferValidation:()=>ye,TransferValidationError:()=>pe,TransferValidator:()=>ue,Wormhole:()=>m,XcmVersion:()=>Te,addr:()=>T,mrl:()=>z,multiloc:()=>j});module.exports=$e(ut);var M=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var _=Xe(require("big.js"),1);var de=require("@galacticcouncil/common");_.default.NE=-18;var H=class a extends M{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...i}){super(i),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new a({...e,...t})}isSame(e){return super.isEqual(e)&&this.decimals===e.decimals}isEqual(e){return this.isSame(e)&&this.amount===e.amount}copyWith(e){return new a({...this,...e})}padByPct(e){return new a({...this,amount:this.amount+this.amount*e/100n})}toBig(){return(0,_.default)(this.amount.toString())}toBigDecimal(e){return(0,_.default)(this.toDecimal(e))}toDecimal(e){return de.big.toDecimal(this.amount,this.decimals,e)}};var ce=require("@wormhole-foundation/sdk-connect"),m=class{id;coreBridge;tokenBridge;tokenRelayer;platformAddressFormat;constructor({id:e,coreBridge:t,tokenBridge:n,tokenRelayer:i,platformAddressFormat:s}){this.id=e,this.coreBridge=t,this.tokenBridge=n,this.tokenRelayer=i,this.platformAddressFormat=s}static fromChain(e){if("wormhole"in e&&e.wormhole)return e.wormhole;throw new Error(e.name+" is not supported in Wormhole.")}static isKnown(e){return"wormhole"in e&&!!e.wormhole}getWormholeId(){return this.id}getCoreBridge(){return this.coreBridge}getTokenBridge(){return this.tokenBridge}getTokenRelayer(){if(this.tokenRelayer)return this.tokenRelayer;throw new Error("Wormhole relayer configuration missing")}normalizeAddress(e){return new ce.UniversalAddress(e,this.platformAddressFormat).toString()}};var S=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var be=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(be||{}),h=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(h||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:i=!1,key:s,name:r}){this.assetsData=new Map(e.map(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)}};var fe=require("@polkadot-api/legacy-provider"),he=require("@galacticcouncil/common");var Te=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Te||{}),I=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:p=!1,usesSignerFee:y=!1,usesH160Acc:f=!1,usesLegacyEnhancer:P=!1,ws:w,xcmVersion:x="V4",...B}){super({...B}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=p,this.usesSignerFee=y,this.usesH160Acc=f,this.usesLegacyEnhancer=P,this.ws=w,this.xcmVersion=x}get client(){return he.SubstrateApis.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:(0,fe.withLegacy)()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},i=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(i.toLowerCase());if(r)return{asset:r,decimals:s};throw Error("Chain currency configuration not found")}getAssetXcmLocation(e){return this.assetsData.get(e.key)?.xcmLocation}getMetadataAssetId(e){return this.assetsData.get(e.key)?.metadataId??this.getAssetId(e)}getMinAssetId(e){return this.assetsData.get(e.key)?.minId??this.getAssetId(e)}findAssetById(e){return Array.from(this.assetsData.values()).find(t=>Object.hasOwn(t,"metadataId")?t.metadataId?.toString()===e:t.id?.toString()===e)}};var ge=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ce=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var xe=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ae=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"address",name:"destAsset",type:"address"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],name:"bridgeViaWormhole",outputs:[{internalType:"uint64",name:"transferSequence",type:"uint64"},{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"quoteFee",outputs:[{internalType:"uint256",name:"fee",type:"uint256"}],stateMutability:"view",type:"function"}];var ve=[{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 Pe=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var we=[{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 Me=[{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 Se=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var A={Batch:ge,Erc20:Ce,Gmp:xe,InstaBridge:Ae,Meta:ve,PolkadotXcm:Pe,Snowbridge:we,TokenBridge:Me,TokenRelayer:Se};var ze={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var Ve=require("viem");var T={};U(T,{EvmAddr:()=>q,SolanaAddr:()=>X,Ss58Addr:()=>K,SuiAddr:()=>$});var D=require("@polkadot-api/substrate-bindings"),v=require("@polkadot-api/utils"),L=require("@solana/web3.js"),Ie=require("viem"),b=require("@galacticcouncil/common"),je=/^0x[0-9a-fA-F]{64}$/,Ye=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,K=class{static isSs58Strict(e){if(!e||b.hex.isHex(e)||!Ye.test(e))return!1;let t=(0,D.getSs58AddressInfo)(e);return t.isValid&&t.publicKey.length===32}static isValid(e){return this.isSs58Strict(e)}static getPubKey(e){if(!this.isSs58Strict(e))throw new Error("Invalid SS58 address");let t=(0,D.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,v.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=b.hex.hexNormalize(e);b.hex.assertHexLen(n,32);let i=(0,v.fromHex)(b.hex.stripHexPrefix(n));return(0,D.fromBufferToBase58)(t)(i)}},q=class{static isValid(e){return(0,Ie.isAddress)(e,{strict:!1})}},X=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,v.toHex)(new L.PublicKey(e).toBytes())}static encodePubKey(e){let t=b.hex.hexNormalize(e);b.hex.assertHexLen(t,32);let n=(0,v.fromHex)(b.hex.stripHexPrefix(t));return new L.PublicKey(n).toBase58()}},$=class{static isValid(e){return je.test(e)}};var z={};U(z,{createPayload:()=>Qe,decodePayload:()=>Ze});var g=require("polkadot-api"),N=require("scale-ts"),W=require("@polkadot-api/utils"),d=require("@galacticcouncil/descriptors");async function De(){let e=(await(0,g.getTypedCodecs)(d.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,N.Struct)({destination:e});return(0,N.Enum)({V1:t})}function Je(a,e,t){let n;if(t)n=d.XcmV5Junction.AccountKey20({key:g.FixedSizeBinary.fromHex(e),network:void 0});else{let i=(0,g.AccountId)().enc(e);n=d.XcmV5Junction.AccountId32({id:g.FixedSizeBinary.fromBytes(i),network:void 0})}return d.XcmVersionedLocation.V5({parents:1,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.Parachain(a.parachainId),n])})}async function Qe(a,e,t=!1){let n=Je(a,e,t),i=await De(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return(0,W.toHex)(r)},toU8a(){return r}}}async function Ze(a){let e=a.startsWith("0x")?a.slice(2):a,t=(0,W.fromHex)(e);return(await De()).dec(t)}var j={};U(j,{findGeneralIndex:()=>at,findGlobalConsensus:()=>et,findNestedKey:()=>E,findPalletInstance:()=>nt,findParachain:()=>tt});var Ee="GlobalConsensus",ke="Parachain",Re="GeneralIndex",Be="PalletInstance",E=(a,e)=>{let t=[];return JSON.stringify(a,(n,i)=>{let s=typeof i=="bigint"?i.toString():i;return i&&i[e]&&t.push(s),s}),t[0]},et=a=>{let e=E(a,Ee);return e&&e[Ee]},tt=a=>{let e=E(a,ke);return e&&e[ke]},nt=a=>{let e=E(a,Be);return e&&e[Be]},at=a=>{let e=E(a,Re);return e&&e[Re]};var{EvmAddr:it}=T,Y=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!it.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:A.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,Ve.encodeFunctionData)({abi:A.Erc20,args:[e,t],functionName:"approve"})}};var u=require("viem"),C=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>(0,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:st}=T,J=class extends I{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:i,...s}){super({...s}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=i&&new m(i)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(st.isValid(e))return e;if(this.evmResolver)return this.evmResolver.toH160(e,this.client);throw new Error("No EVM resolver found for "+this.name)}};var Q=class extends l{evmChain;id;rpcs;instaBridge;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,instaBridge:i,snowbridge:s,wormhole:r,...p}){super({...p}),this.evmChain=e,this.id=t,this.rpcs=n,this.instaBridge=i,this.snowbridge=s&&new S(s),this.wormhole=r&&new m(r)}getInstaBridge(){return this.instaBridge?.address}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,i=this.getAsset(t.toLowerCase());if(i)return{asset:i,decimals:n};throw Error("Chain currency configuration not found")}};var Fe=require("@solana/web3.js");var rt="SOL",ot=9,Z=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...i}){super({...i}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Fe.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(rt.toLowerCase());if(e)return{asset:e,decimals:ot};throw Error("Chain currency configuration not found")}};var O=require("@mysten/sui/client");var pt="SUI",yt=9,ee=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,O.getFullnodeUrl)("mainnet");return new O.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(pt.toLowerCase());if(e)return{asset:e,decimals:yt};throw Error("Chain currency configuration not found")}};var k=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:i,move:s,program:r,transact:p,tags:y}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=p,this.tags=y}};var R=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e,this.routes=new Map(t.map(({source:n,destination:i,contract:s,extrinsic:r,move:p,program:y,transact:f,tags:P})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new k({source:n,destination:i,contract:s,extrinsic:r,move:p,program:y,transact:f,tags:P})]))}getRoutes(){return Array.from(this.routes.values())}getUniqueRoutes(){let e=this.getRoutes();return[...new Map(e.map(t=>[t.source.asset,t])).values()]}getAssetRoutes(e){return this.getRoutes().filter(t=>t.source.asset.key===e.key)}getAssetDestinations(e){return this.getAssetRoutes(e).map(t=>t.destination.chain)}getAssetDestinationRoutes(e,t){let n=Array.from(this.routes.values()).filter(i=>i.source.asset===e&&i.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var c=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(c||{});var te=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ne=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var ae=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Ue=require("viem");var ie=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:i,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=i}encodeFunctionData(){return(0,Ue.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var se=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var re=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var oe=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...i}){super({...i,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var pe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},ye=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},ue=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let i of this.criterias)n.push(i.check(e));return await Promise.allSettled(n).then(i=>i.forEach(s=>{if(s.status==="rejected"){let r=s.reason;t.push(r.report)}})),t}};function _e(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 y=e.getChain(p);return{destinationChains:e.getDestinationChains(s,y),destination:P=>{let w=e.getChain(P),x=e.getAssetRoutes(s,y,w);return{routes:x,build:B=>{let Le=x.find(V=>V.destination.asset.originSymbol===V.source.asset.originSymbol)||x[0],me=B?e.getAsset(B):Le.destination.asset,[Ne]=e.getAssetRoutes(me,w,y),We=x.find(V=>V.destination.asset===me);return{origin:{chain:y,route:We},reverse:{chain:w,route:Ne}}}}}}}}}})}}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:y,destination:f})=>y.asset===t.source.asset&&f.asset===t.destination.asset&&f.chain===t.destination.chain,r=i.filter(y=>!s(y)).concat(t),p=new R({...n,routes:r});this.routes.set(n.chain.key,p)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,CallType,Chain,ChainEcosystem,ChainRoutes,ChainType,ConfigBuilder,ConfigService,ContractConfig,Erc20Client,EvmChain,EvmClient,EvmParachain,ExtrinsicConfig,MoveConfig,Parachain,Precompile,ProgramConfig,Snowbridge,SolanaChain,SolanaQueryConfig,SubstrateQueryConfig,SuiChain,SuiQueryConfig,TransferValidation,TransferValidationError,TransferValidator,Wormhole,XcmVersion,addr,mrl,multiloc});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Se=Object.defineProperty;var D=(a,e)=>{for(var t in e)Se(a,t,{get:e[t],enumerable:!0})};import Ie from"buffer";typeof window<"u"&&(window.Buffer=Ie.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 Ee}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){return k(this.toDecimal(e))}toDecimal(e){return Ee.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as De}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 De(e,this.platformAddressFormat).toString()}};var M=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var ke=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(ke||{}),b=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(b||{}),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(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)}};import{withLegacy as Be}from"@polkadot-api/legacy-provider";import{SubstrateApis as Re}from"@galacticcouncil/common";var Fe=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Fe||{}),S=class extends m{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:i,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:y=!1,usesSignerFee:p=!1,usesH160Acc:d=!1,usesLegacyEnhancer:T=!1,ws:C,xcmVersion:f="V4",...v}){super({...v}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=i,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=y,this.usesSignerFee=p,this.usesH160Acc=d,this.usesLegacyEnhancer=T,this.ws=C,this.xcmVersion=f}get client(){return Re.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:Be()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},i=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(i.toLowerCase());if(r)return{asset:r,decimals:s};throw Error("Chain currency configuration not found")}getAssetXcmLocation(e){return this.assetsData.get(e.key)?.xcmLocation}getMetadataAssetId(e){return this.assetsData.get(e.key)?.metadataId??this.getAssetId(e)}getMinAssetId(e){return this.assetsData.get(e.key)?.minId??this.getAssetId(e)}findAssetById(e){return Array.from(this.assetsData.values()).find(t=>Object.hasOwn(t,"metadataId")?t.metadataId?.toString()===e:t.id?.toString()===e)}};var N=[{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 H=[{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 G=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var K=[{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:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var X=[{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 $=[{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 z=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var x={Batch:N,Erc20:H,Gmp:G,Meta:K,PolkadotXcm:q,Snowbridge:X,TokenBridge:$,TokenRelayer:z};var Sn={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as tt}from"viem";var h={};D(h,{EvmAddr:()=>F,SolanaAddr:()=>V,Ss58Addr:()=>R,SuiAddr:()=>U});import{getSs58AddressInfo as Q,fromBufferToBase58 as Ve}from"@polkadot-api/substrate-bindings";import{toHex as j,fromHex as Y}from"@polkadot-api/utils";import{PublicKey as B}from"@solana/web3.js";import{isAddress as Ue}from"viem";import{hex as c}from"@galacticcouncil/common";var _e=/^0x[0-9a-fA-F]{64}$/,Le=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,R=class{static isSs58Strict(e){if(!e||c.isHex(e)||!Le.test(e))return!1;let t=Q(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=Q(e);if(!t.isValid)throw new Error("Invalid SS58 address");return j(t.publicKey)}static encodePubKey(e,t=0){let n=c.hexNormalize(e);c.assertHexLen(n,32);let i=Y(c.stripHexPrefix(n));return Ve(t)(i)}},F=class{static isValid(e){return Ue(e,{strict:!1})}},V=class{static isValid(e){try{let t=new B(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 j(new B(e).toBytes())}static encodePubKey(e){let t=c.hexNormalize(e);c.assertHexLen(t,32);let n=Y(c.stripHexPrefix(t));return new B(n).toBase58()}},U=class{static isValid(e){return _e.test(e)}};var ee={};D(ee,{createPayload:()=>Qe,decodePayload:()=>je});import{getTypedCodecs as We,FixedSizeBinary as J,AccountId as Oe}from"polkadot-api";import{Struct as Ne,Enum as He}from"scale-ts";import{toHex as Ge,fromHex as Ke}from"@polkadot-api/utils";import{XcmVersionedLocation as qe,XcmV5Junction as _,XcmV5Junctions as Xe,hub as $e}from"@galacticcouncil/descriptors";async function Z(){let e=(await We($e)).tx.PolkadotXcm.send.inner.dest,t=Ne({destination:e});return He({V1:t})}function ze(a,e,t){let n;if(t)n=_.AccountKey20({key:J.fromHex(e),network:void 0});else{let i=Oe().enc(e);n=_.AccountId32({id:J.fromBytes(i),network:void 0})}return qe.V5({parents:1,interior:Xe.X2([_.Parachain(a.parachainId),n])})}async function Qe(a,e,t=!1){let n=ze(a,e,t),i=await Z(),s={tag:"V1",value:{destination:n}},r=i.enc(s);return{bytes:r,toHex(){return Ge(r)},toU8a(){return r}}}async function je(a){let e=a.startsWith("0x")?a.slice(2):a,t=Ke(e);return(await Z()).dec(t)}var se={};D(se,{findGeneralIndex:()=>et,findGlobalConsensus:()=>Ye,findNestedKey:()=>A,findPalletInstance:()=>Ze,findParachain:()=>Je});var te="GlobalConsensus",ne="Parachain",ae="GeneralIndex",ie="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]},Ye=a=>{let e=A(a,te);return e&&e[te]},Je=a=>{let e=A(a,ne);return e&&e[ne]},Ze=a=>{let e=A(a,ie);return e&&e[ie]},et=a=>{let e=A(a,ae);return e&&e[ae]};var{EvmAddr:nt}=h,re=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(!nt.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 tt({abi:x.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as oe,createWalletClient as at,custom as it,fallback as st,http as pe,webSocket as rt}from"viem";var g=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>pe(t));return oe({chain:this.chain,transport:this.rpcs.length>0?st(e,{rank:!1}):pe()})}getWsProvider(){return oe({chain:this.chain,transport:rt()})}getSigner(e){return at({account:e,chain:this.chain,transport:it(window.ethereum)})}};var{EvmAddr:ot}=h,ye=class extends S{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 g(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(ot.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 ue=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 M(i),this.wormhole=s&&new u(s)}get evmClient(){return new g(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,i=this.getAsset(t.toLowerCase());if(i)return{asset:i,decimals:n};throw Error("Chain currency configuration not found")}};import{Connection as pt}from"@solana/web3.js";var yt="SOL",ut=9,me=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 pt(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(yt.toLowerCase());if(e)return{asset:e,decimals:ut};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as mt,SuiClient as lt}from"@mysten/sui/client";var dt="SUI",ct=9,le=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=mt("mainnet");return new lt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(dt.toLowerCase());if(e)return{asset:e,decimals:ct};throw Error("Chain currency configuration not found")}};var de=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 I=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:p}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=i,this.move=s,this.program=r,this.transact=y,this.tags=p}};var E=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:p,transact:d,tags:T})=>[`${n.asset.key}-${i.chain.key}-${i.asset.key}`,new I({source:n,destination:i,contract:s,extrinsic:r,move:y,program:p,transact:d,tags:T})]))}getRoutes(){return Array.from(this.routes.values())}getUniqueRoutes(){let e=this.getRoutes();return[...new Map(e.map(t=>[t.source.asset,t])).values()]}getAssetRoutes(e){return this.getRoutes().filter(t=>t.source.asset.key===e.key)}getAssetDestinations(e){return this.getAssetRoutes(e).map(t=>t.destination.chain)}getAssetDestinationRoutes(e,t){let n=Array.from(this.routes.values()).filter(i=>i.source.asset===e&&i.destination.chain===t);if(n.length===0)throw new Error(`AssetRoute for asset ${e.key} and destination ${t.key} not found`);return n}};var o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var l=(i=>(i.Evm="Evm",i.Substrate="Substrate",i.Solana="Solana",i.Sui="Sui",i))(l||{});var ce=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var fe=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var be=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as ft}from"viem";var he=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:i,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=i}encodeFunctionData(){return ft({abi:this.abi,functionName:this.func,args:this.args})}};var ge=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Te=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var Ce=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...i}){super({...i,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var xe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Ae=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)}},ve=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 bt(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 p=e.getChain(y);return{destinationChains:e.getDestinationChains(s,p),destination:T=>{let C=e.getChain(T),f=e.getAssetRoutes(s,p,C);return{routes:f,build:v=>{let Pe=f.find(P=>P.destination.asset.originSymbol===P.source.asset.originSymbol)||f[0],W=v?e.getAsset(v):Pe.destination.asset,[we]=e.getAssetRoutes(W,C,p),Me=f.find(P=>P.destination.asset===W);return{origin:{chain:p,route:Me},reverse:{chain:C,route:we}}}}}}}}}})}}var L=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:d})=>p.asset===t.source.asset&&d.asset===t.destination.asset&&d.chain===t.destination.chain,r=i.filter(p=>!s(p)).concat(t),y=new E({...n,routes:r});this.routes.set(n.chain.key,y)}};export{x as Abi,w as Asset,O as AssetAmount,I as AssetRoute,o as BaseConfig,l as CallType,m as Chain,ke as ChainEcosystem,E as ChainRoutes,b as ChainType,bt as ConfigBuilder,L as ConfigService,he as ContractConfig,de as DexFactory,re as Erc20Client,ue as EvmChain,g as EvmClient,ye as EvmParachain,ge as ExtrinsicConfig,Te as MoveConfig,S as Parachain,Sn as Precompile,Ce as ProgramConfig,M as Snowbridge,me as SolanaChain,ce as SolanaQueryConfig,fe as SubstrateQueryConfig,le as SuiChain,be as SuiQueryConfig,Ae as TransferValidation,xe as TransferValidationError,ve as TransferValidator,u as Wormhole,Fe as XcmVersion,h as addr,ee as mrl,se as multiloc};
|
|
1
|
+
var Me=Object.defineProperty;var D=(i,e)=>{for(var t in e)Me(i,t,{get:e[t],enumerable:!0})};import Ie from"buffer";typeof window<"u"&&(window.Buffer=Ie.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 B from"big.js";import{big as Ee}from"@galacticcouncil/common";B.NE=-18;var N=class i extends w{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 B(this.amount.toString())}toBigDecimal(e){return B(this.toDecimal(e))}toDecimal(e){return Ee.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as De}from"@wormhole-foundation/sdk-connect";var u=class{id;coreBridge;tokenBridge;tokenRelayer;platformAddressFormat;constructor({id:e,coreBridge:t,tokenBridge:n,tokenRelayer:a,platformAddressFormat:s}){this.id=e,this.coreBridge=t,this.tokenBridge=n,this.tokenRelayer=a,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 De(e,this.platformAddressFormat).toString()}};var S=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var Be=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Be||{}),b=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(b||{}),m=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:a=!1,key:s,name:r}){this.assetsData=new Map(e.map(p=>[p.asset.key,p])),this.ecosystem=t,this.explorer=n,this.isTestChain=a,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{withLegacy as ke}from"@polkadot-api/legacy-provider";import{SubstrateApis as Re}from"@galacticcouncil/common";var Fe=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Fe||{}),M=class extends m{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;usesLegacyEnhancer;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:a,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:p=!1,usesSignerFee:y=!1,usesH160Acc:d=!1,usesLegacyEnhancer:T=!1,ws:C,xcmVersion:f="V4",...v}){super({...v}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=a,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=p,this.usesSignerFee=y,this.usesH160Acc=d,this.usesLegacyEnhancer=T,this.ws=C,this.xcmVersion=f}get client(){return Re.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:ke()}:void 0})}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},a=Array.isArray(t)?t[0]:t,s=Array.isArray(n)?n[0]:n,r=this.getAsset(a.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 O=[{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 H=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var K=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"address",name:"destAsset",type:"address"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],name:"bridgeViaWormhole",outputs:[{internalType:"uint64",name:"transferSequence",type:"uint64"},{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"quoteFee",outputs:[{internalType:"uint256",name:"fee",type:"uint256"}],stateMutability:"view",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 X=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var $=[{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 x={Batch:O,Erc20:G,Gmp:H,InstaBridge:K,Meta:q,PolkadotXcm:X,Snowbridge:$,TokenBridge:z,TokenRelayer:Q};var Dn={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as tt}from"viem";var h={};D(h,{EvmAddr:()=>F,SolanaAddr:()=>V,Ss58Addr:()=>R,SuiAddr:()=>U});import{getSs58AddressInfo as j,fromBufferToBase58 as Ve}from"@polkadot-api/substrate-bindings";import{toHex as Y,fromHex as J}from"@polkadot-api/utils";import{PublicKey as k}from"@solana/web3.js";import{isAddress as Ue}from"viem";import{hex as c}from"@galacticcouncil/common";var _e=/^0x[0-9a-fA-F]{64}$/,Le=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,R=class{static isSs58Strict(e){if(!e||c.isHex(e)||!Le.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 Y(t.publicKey)}static encodePubKey(e,t=0){let n=c.hexNormalize(e);c.assertHexLen(n,32);let a=J(c.stripHexPrefix(n));return Ve(t)(a)}},F=class{static isValid(e){return Ue(e,{strict:!1})}},V=class{static isValid(e){try{let t=new k(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 Y(new k(e).toBytes())}static encodePubKey(e){let t=c.hexNormalize(e);c.assertHexLen(t,32);let n=J(c.stripHexPrefix(t));return new k(n).toBase58()}},U=class{static isValid(e){return _e.test(e)}};var te={};D(te,{createPayload:()=>Qe,decodePayload:()=>je});import{getTypedCodecs as We,FixedSizeBinary as Z,AccountId as Ne}from"polkadot-api";import{Struct as Oe,Enum as Ge}from"scale-ts";import{toHex as He,fromHex as Ke}from"@polkadot-api/utils";import{XcmVersionedLocation as qe,XcmV5Junction as _,XcmV5Junctions as Xe,hub as $e}from"@galacticcouncil/descriptors";async function ee(){let e=(await We($e)).tx.PolkadotXcm.send.inner.dest,t=Oe({destination:e});return Ge({V1:t})}function ze(i,e,t){let n;if(t)n=_.AccountKey20({key:Z.fromHex(e),network:void 0});else{let a=Ne().enc(e);n=_.AccountId32({id:Z.fromBytes(a),network:void 0})}return qe.V5({parents:1,interior:Xe.X2([_.Parachain(i.parachainId),n])})}async function Qe(i,e,t=!1){let n=ze(i,e,t),a=await ee(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return He(r)},toU8a(){return r}}}async function je(i){let e=i.startsWith("0x")?i.slice(2):i,t=Ke(e);return(await ee()).dec(t)}var re={};D(re,{findGeneralIndex:()=>et,findGlobalConsensus:()=>Ye,findNestedKey:()=>A,findPalletInstance:()=>Ze,findParachain:()=>Je});var ne="GlobalConsensus",ae="Parachain",ie="GeneralIndex",se="PalletInstance",A=(i,e)=>{let t=[];return JSON.stringify(i,(n,a)=>{let s=typeof a=="bigint"?a.toString():a;return a&&a[e]&&t.push(s),s}),t[0]},Ye=i=>{let e=A(i,ne);return e&&e[ne]},Je=i=>{let e=A(i,ae);return e&&e[ae]},Ze=i=>{let e=A(i,se);return e&&e[se]},et=i=>{let e=A(i,ie);return e&&e[ie]};var{EvmAddr:nt}=h,oe=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(!nt.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 tt({abi:x.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as pe,createWalletClient as at,custom as it,fallback as st,http as ye,webSocket as rt}from"viem";var g=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>ye(t));return pe({chain:this.chain,transport:this.rpcs.length>0?st(e,{rank:!1}):ye()})}getWsProvider(){return pe({chain:this.chain,transport:rt()})}getSigner(e){return at({account:e,chain:this.chain,transport:it(window.ethereum)})}};var{EvmAddr:ot}=h,ue=class extends M{evmChain;evmResolver;rpcs;wormhole;constructor({evmChain:e,evmResolver:t,rpcs:n,wormhole:a,...s}){super({...s}),this.evmChain=e,this.evmResolver=t,this.rpcs=n,this.wormhole=a&&new u(a)}get evmClient(){return new g(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(ot.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 me=class extends m{evmChain;id;rpcs;instaBridge;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,instaBridge:a,snowbridge:s,wormhole:r,...p}){super({...p}),this.evmChain=e,this.id=t,this.rpcs=n,this.instaBridge=a,this.snowbridge=s&&new S(s),this.wormhole=r&&new u(r)}getInstaBridge(){return this.instaBridge?.address}get evmClient(){return new g(this.evmChain,this.rpcs)}getType(){return"evm-chain"}async getCurrency(){let{nativeCurrency:e}=this.evmClient.chain,t=e.symbol,n=e.decimals,a=this.getAsset(t.toLowerCase());if(a)return{asset:a,decimals:n};throw Error("Chain currency configuration not found")}};import{Connection as pt}from"@solana/web3.js";var yt="SOL",ut=9,le=class extends m{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...a}){super({...a}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new u(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new pt(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(yt.toLowerCase());if(e)return{asset:e,decimals:ut};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as mt,SuiClient as lt}from"@mysten/sui/client";var dt="SUI",ct=9,de=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=mt("mainnet");return new lt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(dt.toLowerCase());if(e)return{asset:e,decimals:ct};throw Error("Chain currency configuration not found")}};var I=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:a,move:s,program:r,transact:p,tags:y}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=a,this.move=s,this.program=r,this.transact=p,this.tags=y}};var E=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e,this.routes=new Map(t.map(({source:n,destination:a,contract:s,extrinsic:r,move:p,program:y,transact:d,tags:T})=>[`${n.asset.key}-${a.chain.key}-${a.asset.key}`,new I({source:n,destination:a,contract:s,extrinsic:r,move:p,program:y,transact:d,tags:T})]))}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 o=class{module;func;type;constructor({module:e,func:t,type:n}){this.module=e,this.func=t,this.type=n}toString(){return this.module+":"+this.func}};var l=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(l||{});var ce=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var fe=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var be=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as ft}from"viem";var he=class extends o{abi;address;args;value;constructor({abi:e,address:t,args:n,value:a,...s}){super({...s,type:"Evm"}),this.abi=e,this.address=t,this.args=n,this.value=a}encodeFunctionData(){return ft({abi:this.abi,functionName:this.func,args:this.args})}};var ge=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Te=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var Ce=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...a}){super({...a,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var xe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Ae=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)}},ve=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(s=>{if(s.status==="rejected"){let r=s.reason;t.push(r.report)}})),t}};function bt(i){let e=i;return{assets:t=>({assets:e.getEcosystemAssets(t),asset:a=>{let s=e.getAsset(a);return{sourceChains:e.getSourceChains(s,t),source:p=>{let y=e.getChain(p);return{destinationChains:e.getDestinationChains(s,y),destination:T=>{let C=e.getChain(T),f=e.getAssetRoutes(s,y,C);return{routes:f,build:v=>{let Pe=f.find(P=>P.destination.asset.originSymbol===P.source.asset.originSymbol)||f[0],W=v?e.getAsset(v):Pe.destination.asset,[we]=e.getAssetRoutes(W,C,y),Se=f.find(P=>P.destination.asset===W);return{origin:{chain:y,route:Se},reverse:{chain:C,route:we}}}}}}}}}})}}var L=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(),s=({source:y,destination:d})=>y.asset===t.source.asset&&d.asset===t.destination.asset&&d.chain===t.destination.chain,r=a.filter(y=>!s(y)).concat(t),p=new E({...n,routes:r});this.routes.set(n.chain.key,p)}};export{x as Abi,w as Asset,N as AssetAmount,I as AssetRoute,o as BaseConfig,l as CallType,m as Chain,Be as ChainEcosystem,E as ChainRoutes,b as ChainType,bt as ConfigBuilder,L as ConfigService,he as ContractConfig,oe as Erc20Client,me as EvmChain,g as EvmClient,ue as EvmParachain,ge as ExtrinsicConfig,Te as MoveConfig,M as Parachain,Dn as Precompile,Ce as ProgramConfig,S as Snowbridge,le as SolanaChain,ce as SolanaQueryConfig,fe as SubstrateQueryConfig,de as SuiChain,be as SuiQueryConfig,Ae as TransferValidation,xe as TransferValidationError,ve as TransferValidator,u as Wormhole,Fe as XcmVersion,h as addr,te as mrl,re as multiloc};
|
|
@@ -2,10 +2,14 @@ import { Chain as EvmChainDef } from 'viem';
|
|
|
2
2
|
import { Chain, ChainAssetData, ChainCurrency, ChainParams, ChainType } from './Chain';
|
|
3
3
|
import { Snowbridge, SnowbridgeDef, Wormhole, WormholeDef } from '../bridge';
|
|
4
4
|
import { EvmClient } from '../evm';
|
|
5
|
+
export type InstaBridgeDef = {
|
|
6
|
+
address: string;
|
|
7
|
+
};
|
|
5
8
|
export interface EvmChainParams extends ChainParams<ChainAssetData> {
|
|
6
9
|
evmChain: EvmChainDef;
|
|
7
10
|
id: number;
|
|
8
11
|
rpcs?: string[];
|
|
12
|
+
instaBridge?: InstaBridgeDef;
|
|
9
13
|
snowbridge?: SnowbridgeDef;
|
|
10
14
|
wormhole?: WormholeDef;
|
|
11
15
|
}
|
|
@@ -13,9 +17,11 @@ export declare class EvmChain extends Chain<ChainAssetData> {
|
|
|
13
17
|
readonly evmChain: EvmChainDef;
|
|
14
18
|
readonly id: number;
|
|
15
19
|
readonly rpcs?: string[];
|
|
20
|
+
readonly instaBridge?: InstaBridgeDef;
|
|
16
21
|
readonly snowbridge?: Snowbridge;
|
|
17
22
|
readonly wormhole?: Wormhole;
|
|
18
|
-
constructor({ evmChain, id, rpcs, snowbridge, wormhole, ...others }: EvmChainParams);
|
|
23
|
+
constructor({ evmChain, id, rpcs, instaBridge, snowbridge, wormhole, ...others }: EvmChainParams);
|
|
24
|
+
getInstaBridge(): string | undefined;
|
|
19
25
|
get evmClient(): EvmClient;
|
|
20
26
|
getType(): ChainType;
|
|
21
27
|
getCurrency(): Promise<ChainCurrency>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare const INSTA_BRIDGE: readonly [{
|
|
2
|
+
readonly inputs: readonly [{
|
|
3
|
+
readonly internalType: "address";
|
|
4
|
+
readonly name: "asset";
|
|
5
|
+
readonly type: "address";
|
|
6
|
+
}, {
|
|
7
|
+
readonly internalType: "uint256";
|
|
8
|
+
readonly name: "amount";
|
|
9
|
+
readonly type: "uint256";
|
|
10
|
+
}, {
|
|
11
|
+
readonly internalType: "uint16";
|
|
12
|
+
readonly name: "destChain";
|
|
13
|
+
readonly type: "uint16";
|
|
14
|
+
}, {
|
|
15
|
+
readonly internalType: "address";
|
|
16
|
+
readonly name: "destAsset";
|
|
17
|
+
readonly type: "address";
|
|
18
|
+
}, {
|
|
19
|
+
readonly internalType: "bytes32";
|
|
20
|
+
readonly name: "recipient";
|
|
21
|
+
readonly type: "bytes32";
|
|
22
|
+
}];
|
|
23
|
+
readonly name: "bridgeViaWormhole";
|
|
24
|
+
readonly outputs: readonly [{
|
|
25
|
+
readonly internalType: "uint64";
|
|
26
|
+
readonly name: "transferSequence";
|
|
27
|
+
readonly type: "uint64";
|
|
28
|
+
}, {
|
|
29
|
+
readonly internalType: "uint64";
|
|
30
|
+
readonly name: "messageSequence";
|
|
31
|
+
readonly type: "uint64";
|
|
32
|
+
}];
|
|
33
|
+
readonly stateMutability: "payable";
|
|
34
|
+
readonly type: "function";
|
|
35
|
+
}, {
|
|
36
|
+
readonly inputs: readonly [{
|
|
37
|
+
readonly internalType: "bytes";
|
|
38
|
+
readonly name: "vaa";
|
|
39
|
+
readonly type: "bytes";
|
|
40
|
+
}];
|
|
41
|
+
readonly name: "completeTransfer";
|
|
42
|
+
readonly outputs: readonly [];
|
|
43
|
+
readonly stateMutability: "nonpayable";
|
|
44
|
+
readonly type: "function";
|
|
45
|
+
}, {
|
|
46
|
+
readonly inputs: readonly [{
|
|
47
|
+
readonly internalType: "uint256";
|
|
48
|
+
readonly name: "amount";
|
|
49
|
+
readonly type: "uint256";
|
|
50
|
+
}];
|
|
51
|
+
readonly name: "quoteFee";
|
|
52
|
+
readonly outputs: readonly [{
|
|
53
|
+
readonly internalType: "uint256";
|
|
54
|
+
readonly name: "fee";
|
|
55
|
+
readonly type: "uint256";
|
|
56
|
+
}];
|
|
57
|
+
readonly stateMutability: "view";
|
|
58
|
+
readonly type: "function";
|
|
59
|
+
}];
|
package/package.json
CHANGED