@galacticcouncil/xc-core 0.15.0 → 0.16.0-pr311-837d8d4
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.
|
@@ -46,7 +46,6 @@ export interface ParachainParams extends ChainParams<ParachainAssetData> {
|
|
|
46
46
|
usesDeliveryFee?: boolean;
|
|
47
47
|
usesSignerFee?: boolean;
|
|
48
48
|
usesH160Acc?: boolean;
|
|
49
|
-
usesLegacyEnhancer?: boolean;
|
|
50
49
|
ws: string | string[];
|
|
51
50
|
xcmVersion?: XcmVersion;
|
|
52
51
|
}
|
|
@@ -61,10 +60,9 @@ export declare class Parachain extends Chain<ParachainAssetData> {
|
|
|
61
60
|
readonly usesDeliveryFee: boolean;
|
|
62
61
|
readonly usesSignerFee: boolean;
|
|
63
62
|
readonly usesH160Acc: boolean;
|
|
64
|
-
readonly usesLegacyEnhancer: boolean;
|
|
65
63
|
readonly ws: string | string[];
|
|
66
64
|
readonly xcmVersion: XcmVersion;
|
|
67
|
-
constructor({ genesisHash, parachainId, ss58Format, treasury, usesChainDecimals, usesCexForwarding, usesDeliveryFee, usesSignerFee, usesH160Acc,
|
|
65
|
+
constructor({ genesisHash, parachainId, ss58Format, treasury, usesChainDecimals, usesCexForwarding, usesDeliveryFee, usesSignerFee, usesH160Acc, ws, xcmVersion, ...others }: ParachainParams);
|
|
68
66
|
get client(): PolkadotClient;
|
|
69
67
|
getType(): ChainType;
|
|
70
68
|
getSpec(): Promise<ParachainSpec>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { PolkadotClient, Transaction
|
|
1
|
+
import { PolkadotClient, Transaction } from 'polkadot-api';
|
|
2
2
|
import { BaseConfig, BaseConfigParams } from '../base';
|
|
3
|
-
type
|
|
4
|
-
type UnsafeTx = UnsafeTransaction<any, string, string, void | undefined>;
|
|
5
|
-
export type Extrinsic = SafeTx | UnsafeTx;
|
|
3
|
+
export type Extrinsic = Transaction<void | undefined>;
|
|
6
4
|
export interface ExtrinsicConfigParams extends Omit<BaseConfigParams, 'type'> {
|
|
7
5
|
getTx: (client: PolkadotClient) => Extrinsic;
|
|
8
6
|
}
|
|
@@ -10,4 +8,3 @@ export declare class ExtrinsicConfig extends BaseConfig {
|
|
|
10
8
|
getTx: (client: PolkadotClient) => Extrinsic;
|
|
11
9
|
constructor({ getTx, ...other }: ExtrinsicConfigParams);
|
|
12
10
|
}
|
|
13
|
-
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Binary } from 'polkadot-api';
|
|
2
1
|
import { AssetAmount } from '../../../asset';
|
|
3
2
|
import { AnyParachain } from '../../../chain';
|
|
4
3
|
import { TransferCtx } from '../../types';
|
|
@@ -11,7 +10,7 @@ export interface TransactCtx {
|
|
|
11
10
|
chain: AnyParachain;
|
|
12
11
|
fee: AssetAmount;
|
|
13
12
|
feeBalance: AssetAmount;
|
|
14
|
-
call:
|
|
13
|
+
call: Uint8Array;
|
|
15
14
|
weight: TxWeight;
|
|
16
15
|
}
|
|
17
16
|
export interface ExtrinsicConfigBuilderParams extends TransferCtx {
|
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var $e=Object.create;var L=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var _=(i,e)=>{for(var t in e)L(i,t,{get:e[t],enumerable:!0})},he=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Je(e))!Qe.call(i,a)&&a!==t&&L(i,a,{get:()=>e[a],enumerable:!(n=ze(e,a))||n.enumerable});return i};var Ze=(i,e,t)=>(t=i!=null?$e(Ye(i)):{},he(e||!i||!i.__esModule?L(t,"default",{value:i,enumerable:!0}):t,i)),et=i=>he(L({},"__esModule",{value:!0}),i);var ht={};_(ht,{Abi:()=>A,Asset:()=>I,AssetAmount:()=>X,AssetRoute:()=>V,BaseConfig:()=>o,Basejump:()=>E,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>Ce,ChainRoutes:()=>F,ChainType:()=>T,ConfigBuilder:()=>He,ConfigService:()=>K,ContractConfig:()=>pe,Erc20Client:()=>ee,EvmChain:()=>ne,EvmClient:()=>x,EvmParachain:()=>te,ExtrinsicConfig:()=>ye,MoveConfig:()=>ue,Parachain:()=>k,Precompile:()=>tt,ProgramConfig:()=>me,Snowbridge:()=>D,SolanaChain:()=>ae,SolanaQueryConfig:()=>se,SubstrateQueryConfig:()=>re,SuiChain:()=>ie,SuiQueryConfig:()=>oe,TransferValidation:()=>de,TransferValidationError:()=>le,TransferValidator:()=>ce,Wormhole:()=>m,XcmVersion:()=>ve,addr:()=>g,mrl:()=>Q,multiloc:()=>Z});module.exports=et(ht);var I=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var W=Ze(require("big.js"),1);var Te=require("@galacticcouncil/common");W.default.NE=-18;var X=class i extends I{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(0,W.default)(this.amount.toString())}toBigDecimal(e){return(0,W.default)(this.toDecimal(e))}toDecimal(e){return Te.big.toDecimal(this.amount,this.decimals,e)}};var ge=require("@wormhole-foundation/sdk-connect"),m=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 ge.UniversalAddress(e,this.platformAddressFormat).toString()}};var D=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 E=class{address;constructor({address:e}){this.address=e}static fromChain(e){if("basejump"in e&&e.basejump)return e.basejump;throw new Error(e.name+" is not supported in Basejump.")}static isKnown(e){return"basejump"in e&&!!e.basejump}getAddress(){return this.address}};var Ce=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Ce||{}),T=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(T||{}),l=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(y=>[y.asset.key,y])),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)}};var xe=require("@polkadot-api/legacy-provider"),Ae=require("@galacticcouncil/common");var ve=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(ve||{}),k=class extends l{_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:y=!1,usesSignerFee:u=!1,usesH160Acc:P=!1,usesLegacyEnhancer:q=!1,ws:w,xcmVersion:h="V4",...M}){super({...M}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=a,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=y,this.usesSignerFee=u,this.usesH160Acc=P,this.usesLegacyEnhancer=q,this.ws=w,this.xcmVersion=h}get client(){return Ae.SubstrateApis.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:(0,xe.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||{},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 Pe=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var we=[{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 Me=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Se=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{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:"address",name:"asset",type:"address"}],name:"quoteFee",outputs:[{internalType:"uint256",name:"fee",type:"uint256"}],stateMutability:"view",type:"function"}];var Ie=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var De=[{inputs:[{internalType:"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 Ee=[{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 ke=[{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 Re=[{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:Pe,Erc20:we,Gmp:Me,Basejump:Se,Meta:Ie,PolkadotXcm:De,Snowbridge:Ee,TokenBridge:ke,TokenRelayer:Re};var tt={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var We=require("viem");var g={};_(g,{EvmAddr:()=>z,SolanaAddr:()=>J,Ss58Addr:()=>$,SuiAddr:()=>Y});var R=require("@polkadot-api/substrate-bindings"),v=require("@polkadot-api/utils"),N=require("@solana/web3.js"),Be=require("viem"),f=require("@galacticcouncil/common"),nt=/^0x[0-9a-fA-F]{64}$/,at=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,$=class{static isSs58Strict(e){if(!e||f.hex.isHex(e)||!at.test(e))return!1;let t=(0,R.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,R.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 a=(0,v.fromHex)(f.hex.stripHexPrefix(n));return(0,R.fromBufferToBase58)(t)(a)}},z=class{static isValid(e){return(0,Be.isAddress)(e,{strict:!1})}},J=class{static isValid(e){try{let t=new N.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 N.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 N.PublicKey(n).toBase58()}},Y=class{static isValid(e){return nt.test(e)}};var Q={};_(Q,{createPayload:()=>st,decodePayload:()=>rt});var C=require("polkadot-api"),O=require("scale-ts"),H=require("@polkadot-api/utils"),d=require("@galacticcouncil/descriptors");async function Ve(){let e=(await(0,C.getTypedCodecs)(d.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,O.Struct)({destination:e});return(0,O.Enum)({V1:t})}function it(i,e,t){let n;if(t)n=d.XcmV5Junction.AccountKey20({key:C.FixedSizeBinary.fromHex(e),network:void 0});else{let a=(0,C.AccountId)().enc(e);n=d.XcmV5Junction.AccountId32({id:C.FixedSizeBinary.fromBytes(a),network:void 0})}return d.XcmVersionedLocation.V5({parents:1,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.Parachain(i.parachainId),n])})}async function st(i,e,t=!1){let n=it(i,e,t),a=await Ve(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return(0,H.toHex)(r)},toU8a(){return r}}}async function rt(i){let e=i.startsWith("0x")?i.slice(2):i,t=(0,H.fromHex)(e);return(await Ve()).dec(t)}var Z={};_(Z,{findGeneralIndex:()=>ut,findGlobalConsensus:()=>ot,findNestedKey:()=>B,findPalletInstance:()=>yt,findParachain:()=>pt});var Fe="GlobalConsensus",Ue="Parachain",Le="GeneralIndex",_e="PalletInstance",B=(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]},ot=i=>{let e=B(i,Fe);return e&&e[Fe]},pt=i=>{let e=B(i,Ue);return e&&e[Ue]},yt=i=>{let e=B(i,_e);return e&&e[_e]},ut=i=>{let e=B(i,Le);return e&&e[Le]};var{EvmAddr:mt}=g,ee=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!mt.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi: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,We.encodeFunctionData)({abi:A.Erc20,args:[e,t],functionName:"approve"})}};var p=require("viem"),x=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,p.http)(t));return(0,p.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,p.fallback)(e,{rank:!1}):(0,p.http)()})}getWsProvider(){return(0,p.createPublicClient)({chain:this.chain,transport:(0,p.webSocket)()})}getSigner(e){return(0,p.createWalletClient)({account:e,chain:this.chain,transport:(0,p.custom)(window.ethereum)})}};var{EvmAddr:lt}=g,te=class extends k{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 m(a)}get evmClient(){return new x(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(lt.isValid(e))return e;if(this.evmResolver)return this.evmResolver.toH160(e,this.client);throw new Error("No EVM resolver found for "+this.name)}};var ne=class extends l{evmChain;id;rpcs;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,basejump:a,snowbridge:s,wormhole:r,...y}){super({...y}),this.evmChain=e,this.id=t,this.rpcs=n,this.basejump=a&&new E(a),this.snowbridge=s&&new D(s),this.wormhole=r&&new m(r)}get evmClient(){return new x(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")}};var Ne=require("@solana/web3.js");var dt="SOL",ct=9,ae=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...a}){super({...a}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Ne.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(dt.toLowerCase());if(e)return{asset:e,decimals:ct};throw Error("Chain currency configuration not found")}};var G=require("@mysten/sui/client");var bt="SUI",ft=9,ie=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,G.getFullnodeUrl)("mainnet");return new G.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(bt.toLowerCase());if(e)return{asset:e,decimals:ft};throw Error("Chain currency configuration not found")}};var V=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:a,move:s,program:r,transact:y,tags:u}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=a,this.move=s,this.program=r,this.transact=y,this.tags=u}};var F=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e;let n=new Map;for(let a of t){let s=`${a.source.asset.key}-${a.destination.chain.key}-${a.destination.asset.key}`,r=n.get(s)??[];r.push(new V({source:a.source,destination:a.destination,contract:a.contract,extrinsic:a.extrinsic,move:a.move,program:a.program,transact:a.transact,tags:a.tags})),n.set(s,r)}this.routes=n}getRoutes(){return Array.from(this.routes.values()).flat()}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){let t=this.getAssetRoutes(e).map(n=>n.destination.chain);return[...new Set(t)]}getAssetDestinationRoutes(e,t){let n=this.getRoutes().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 c=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(c||{});var se=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var re=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var oe=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Oe=require("viem");var pe=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(0,Oe.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var ye=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ue=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var me=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 le=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},de=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},ce=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let 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 He(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:y=>{let u=e.getChain(y);return{destinationChains:e.getDestinationChains(s,u),destination:q=>{let w=e.getChain(q),h=e.getAssetRoutes(s,u,w),M=[...new Map(h.map(S=>[S.destination.asset.key,S.destination.asset])).values()],Ge=M.length>1,Ke=M.length===1&&h.length>1;return{routes:h,destinationAssets:M,isAssetSelect:Ge,isTagSelect:Ke,build:(S,U)=>{let j=U?h.filter(b=>b.tags?.includes(U)):h,qe=j.find(b=>b.destination.asset.originSymbol===b.source.asset.originSymbol)||j[0],be=S?e.getAsset(S):qe.destination.asset,fe=e.getAssetRoutes(be,w,u),je=(U?fe.filter(b=>b.tags?.includes(U)):[])[0]??fe[0],Xe=j.find(b=>b.destination.asset===be);return{origin:{chain:u,route:Xe},reverse:{chain:w,route:je}}}}}}}}}})}}var K=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),a=n.getRoutes(),s=({source:u,destination:P})=>u.asset===t.source.asset&&P.asset===t.destination.asset&&P.chain===t.destination.chain,r=a.filter(u=>!s(u)).concat(t),y=new F({...n,routes:r});this.routes.set(n.chain.key,y)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,Basejump,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});
|
|
1
|
+
"use strict";var Xe=Object.create;var U=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var _=(i,e)=>{for(var t in e)U(i,t,{get:e[t],enumerable:!0})},he=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ze(e))!Ye.call(i,a)&&a!==t&&U(i,a,{get:()=>e[a],enumerable:!(n=$e(e,a))||n.enumerable});return i};var Qe=(i,e,t)=>(t=i!=null?Xe(Je(i)):{},he(e||!i||!i.__esModule?U(t,"default",{value:i,enumerable:!0}):t,i)),Ze=i=>he(U({},"__esModule",{value:!0}),i);var ft={};_(ft,{Abi:()=>x,Asset:()=>S,AssetAmount:()=>X,AssetRoute:()=>B,BaseConfig:()=>o,Basejump:()=>D,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>Ce,ChainRoutes:()=>V,ChainType:()=>T,ConfigBuilder:()=>Oe,ConfigService:()=>G,ContractConfig:()=>pe,Erc20Client:()=>ee,EvmChain:()=>ne,EvmClient:()=>C,EvmParachain:()=>te,ExtrinsicConfig:()=>ye,MoveConfig:()=>ue,Parachain:()=>E,Precompile:()=>et,ProgramConfig:()=>me,Snowbridge:()=>I,SolanaChain:()=>ae,SolanaQueryConfig:()=>se,SubstrateQueryConfig:()=>re,SuiChain:()=>ie,SuiQueryConfig:()=>oe,TransferValidation:()=>de,TransferValidationError:()=>le,TransferValidator:()=>ce,Wormhole:()=>m,XcmVersion:()=>Ae,addr:()=>g,mrl:()=>Q,multiloc:()=>Z});module.exports=Ze(ft);var S=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var W=Qe(require("big.js"),1);var Te=require("@galacticcouncil/common");W.default.NE=-18;var X=class i extends S{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(0,W.default)(this.amount.toString())}toBigDecimal(e){return(0,W.default)(this.toDecimal(e))}toDecimal(e){return Te.big.toDecimal(this.amount,this.decimals,e)}};var ge=require("@wormhole-foundation/sdk-connect"),m=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 ge.UniversalAddress(e,this.platformAddressFormat).toString()}};var I=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var D=class{address;constructor({address:e}){this.address=e}static fromChain(e){if("basejump"in e&&e.basejump)return e.basejump;throw new Error(e.name+" is not supported in Basejump.")}static isKnown(e){return"basejump"in e&&!!e.basejump}getAddress(){return this.address}};var Ce=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(Ce||{}),T=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(T||{}),l=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(y=>[y.asset.key,y])),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)}};var xe=require("@galacticcouncil/common");var Ae=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Ae||{}),E=class extends l{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:a,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:y=!1,usesSignerFee:u=!1,usesH160Acc:P=!1,ws:K,xcmVersion:w="V4",...h}){super({...h}),this.genesisHash=e,this.parachainId=t,this.ss58Format=n,this.treasury=a,this.usesChainDecimals=s,this.usesCexForwarding=r,this.usesDeliveryFee=y,this.usesSignerFee=u,this.usesH160Acc=P,this.ws=K,this.xcmVersion=w}get client(){return xe.SubstrateApis.getInstance().api(this.ws)}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},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 ve=[{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 Pe=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var we=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Me=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{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:"address",name:"asset",type:"address"}],name:"quoteFee",outputs:[{internalType:"uint256",name:"fee",type:"uint256"}],stateMutability:"view",type:"function"}];var Se=[{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 Ie=[{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 De=[{inputs:[{internalType:"address",name:"beefyClient",type:"address"},{internalType:"address",name:"agentExecutor",type:"address"},{internalType:"ParaID",name:"bridgeHubParaID",type:"uint32"},{internalType:"bytes32",name:"bridgeHubAgentID",type:"bytes32"},{internalType:"uint8",name:"foreignTokenDecimals",type:"uint8"},{internalType:"uint128",name:"destinationMaxTransferFee",type:"uint128"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AgentAlreadyCreated",type:"error"},{inputs:[],name:"AgentDoesNotExist",type:"error"},{inputs:[],name:"ChannelAlreadyCreated",type:"error"},{inputs:[],name:"ChannelDoesNotExist",type:"error"},{inputs:[],name:"Disabled",type:"error"},{inputs:[],name:"InsufficientEther",type:"error"},{inputs:[],name:"InvalidAgentExecutionPayload",type:"error"},{inputs:[],name:"InvalidChannelUpdate",type:"error"},{inputs:[],name:"InvalidCodeHash",type:"error"},{inputs:[],name:"InvalidConstructorParams",type:"error"},{inputs:[],name:"InvalidContract",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"NativeTransferFailed",type:"error"},{inputs:[],name:"NotEnoughGas",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"},{internalType:"uint256",name:"y",type:"uint256"}],name:"PRBMath_MulDiv18_Overflow",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"},{internalType:"uint256",name:"y",type:"uint256"},{internalType:"uint256",name:"denominator",type:"uint256"}],name:"PRBMath_MulDiv_Overflow",type:"error"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Convert_Overflow",type:"error"},{inputs:[{internalType:"UD60x18",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Exp2_InputTooBig",type:"error"},{inputs:[{internalType:"UD60x18",name:"x",type:"uint256"}],name:"PRBMath_UD60x18_Log_InputTooSmall",type:"error"},{inputs:[],name:"TokenNotRegistered",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"ChannelCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"ChannelUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"tokenID",type:"bytes32"},{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"ForeignTokenRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"bytes32",name:"messageID",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"enum OperatingMode",name:"mode",type:"uint8"}],name:"OperatingModeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"ChannelID",name:"channelID",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"bytes32",name:"messageID",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"}],name:"OutboundMessageAccepted",type:"event"},{anonymous:!1,inputs:[],name:"PricingParametersChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"TokenRegistrationSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"}],name:"TokenSent",type:"event"},{anonymous:!1,inputs:[],name:"TokenTransferFeesChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"AGENT_EXECUTOR",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"BEEFY_CLIENT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"agentExecute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"channelNoncesOf",outputs:[{internalType:"uint64",name:"",type:"uint64"},{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"}],name:"channelOperatingModeOf",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"createChannel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"depositEther",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"ChannelID",name:"channelID",type:"bytes32"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mintForeignToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"pricingParameters",outputs:[{internalType:"UD60x18",name:"",type:"uint256"},{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"queryForeignTokenID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"quoteRegisterTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{internalType:"uint128",name:"destinationFee",type:"uint128"}],name:"quoteSendTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"registerForeignToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{internalType:"uint128",name:"destinationFee",type:"uint128"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"sendToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setOperatingMode",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setPricingParameters",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"setTokenTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"ChannelID",name:"channelID",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"enum Command",name:"command",type:"uint8"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint64",name:"maxDispatchGas",type:"uint64"},{internalType:"uint256",name:"maxFeePerGas",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"bytes32",name:"id",type:"bytes32"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"}],name:"submitV1",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenID",type:"bytes32"}],name:"tokenAddressOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"transferNativeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ee=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];var ke=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var x={Batch:ve,Erc20:Pe,Gmp:we,Basejump:Me,Meta:Se,PolkadotXcm:Ie,Snowbridge:De,TokenBridge:Ee,TokenRelayer:ke};var et={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var We=require("viem");var g={};_(g,{EvmAddr:()=>z,SolanaAddr:()=>J,Ss58Addr:()=>$,SuiAddr:()=>Y});var k=require("@polkadot-api/substrate-bindings"),A=require("@polkadot-api/utils"),L=require("@solana/web3.js"),Re=require("viem"),f=require("@galacticcouncil/common"),tt=/^0x[0-9a-fA-F]{64}$/,nt=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,$=class{static isSs58Strict(e){if(!e||f.hex.isHex(e)||!nt.test(e))return!1;let t=(0,k.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,k.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,A.toHex)(t.publicKey)}static encodePubKey(e,t=0){let n=f.hex.hexNormalize(e);f.hex.assertHexLen(n,32);let a=(0,A.fromHex)(f.hex.stripHexPrefix(n));return(0,k.fromBufferToBase58)(t)(a)}},z=class{static isValid(e){return(0,Re.isAddress)(e,{strict:!1})}},J=class{static isValid(e){try{let t=new L.PublicKey(e);return t.toBase58()===e&&t.toBytes().length===32}catch{return!1}}static getPubKey(e){if(!this.isValid(e))throw new Error("Invalid Solana address");return(0,A.toHex)(new L.PublicKey(e).toBytes())}static encodePubKey(e){let t=f.hex.hexNormalize(e);f.hex.assertHexLen(t,32);let n=(0,A.fromHex)(f.hex.stripHexPrefix(t));return new L.PublicKey(n).toBase58()}},Y=class{static isValid(e){return tt.test(e)}};var Q={};_(Q,{createPayload:()=>it,decodePayload:()=>st});var v=require("polkadot-api"),N=require("scale-ts"),O=require("@polkadot-api/utils"),d=require("@galacticcouncil/descriptors");async function Be(){let e=(await(0,v.getTypedCodecs)(d.hub)).tx.PolkadotXcm.send.inner.dest,t=(0,N.Struct)({destination:e});return(0,N.Enum)({V1:t})}function at(i,e,t){let n;if(t)n=d.XcmV5Junction.AccountKey20({key:e,network:void 0});else{let a=(0,v.AccountId)().enc(e);n=d.XcmV5Junction.AccountId32({id:v.Binary.toHex(a),network:void 0})}return d.XcmVersionedLocation.V5({parents:1,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.Parachain(i.parachainId),n])})}async function it(i,e,t=!1){let n=at(i,e,t),a=await Be(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return(0,O.toHex)(r)},toU8a(){return r}}}async function st(i){let e=i.startsWith("0x")?i.slice(2):i,t=(0,O.fromHex)(e);return(await Be()).dec(t)}var Z={};_(Z,{findGeneralIndex:()=>yt,findGlobalConsensus:()=>rt,findNestedKey:()=>R,findPalletInstance:()=>pt,findParachain:()=>ot});var Ve="GlobalConsensus",Fe="Parachain",Ue="GeneralIndex",_e="PalletInstance",R=(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]},rt=i=>{let e=R(i,Ve);return e&&e[Ve]},ot=i=>{let e=R(i,Fe);return e&&e[Fe]},pt=i=>{let e=R(i,_e);return e&&e[_e]},yt=i=>{let e=R(i,Ue);return e&&e[Ue]};var{EvmAddr:ut}=g,ee=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(!ut.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:x.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return(0,We.encodeFunctionData)({abi:x.Erc20,args:[e,t],functionName:"approve"})}};var p=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,p.http)(t));return(0,p.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,p.fallback)(e,{rank:!1}):(0,p.http)()})}getWsProvider(){return(0,p.createPublicClient)({chain:this.chain,transport:(0,p.webSocket)()})}getSigner(e){return(0,p.createWalletClient)({account:e,chain:this.chain,transport:(0,p.custom)(window.ethereum)})}};var{EvmAddr:mt}=g,te=class extends E{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 m(a)}get evmClient(){return new C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(mt.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 ne=class extends l{evmChain;id;rpcs;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,basejump:a,snowbridge:s,wormhole:r,...y}){super({...y}),this.evmChain=e,this.id=t,this.rpcs=n,this.basejump=a&&new D(a),this.snowbridge=s&&new I(s),this.wormhole=r&&new m(r)}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,a=this.getAsset(t.toLowerCase());if(a)return{asset:a,decimals:n};throw Error("Chain currency configuration not found")}};var Le=require("@solana/web3.js");var lt="SOL",dt=9,ae=class extends l{id;rpcUrls;wormhole;constructor({id:e,rpcUrls:t,wormhole:n,...a}){super({...a}),this.id=e,this.rpcUrls=t,this.wormhole=n&&new m(n)}get connection(){let{http:e,webSocket:t}=this.rpcUrls;return new Le.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(lt.toLowerCase());if(e)return{asset:e,decimals:dt};throw Error("Chain currency configuration not found")}};var H=require("@mysten/sui/client");var ct="SUI",bt=9,ie=class extends l{id;wormhole;constructor({id:e,wormhole:t,...n}){super({...n}),this.id=e,this.wormhole=t&&new m(t)}get client(){let e=(0,H.getFullnodeUrl)("mainnet");return new H.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(ct.toLowerCase());if(e)return{asset:e,decimals:bt};throw Error("Chain currency configuration not found")}};var B=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:a,move:s,program:r,transact:y,tags:u}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=a,this.move=s,this.program=r,this.transact=y,this.tags=u}};var V=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e;let n=new Map;for(let a of t){let s=`${a.source.asset.key}-${a.destination.chain.key}-${a.destination.asset.key}`,r=n.get(s)??[];r.push(new B({source:a.source,destination:a.destination,contract:a.contract,extrinsic:a.extrinsic,move:a.move,program:a.program,transact:a.transact,tags:a.tags})),n.set(s,r)}this.routes=n}getRoutes(){return Array.from(this.routes.values()).flat()}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){let t=this.getAssetRoutes(e).map(n=>n.destination.chain);return[...new Set(t)]}getAssetDestinationRoutes(e,t){let n=this.getRoutes().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 c=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(c||{});var se=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var re=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var oe=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Ne=require("viem");var pe=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(0,Ne.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var ye=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ue=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var me=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 le=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},de=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},ce=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let 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 Oe(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:y=>{let u=e.getChain(y);return{destinationChains:e.getDestinationChains(s,u),destination:K=>{let w=e.getChain(K),h=e.getAssetRoutes(s,u,w),q=[...new Map(h.map(M=>[M.destination.asset.key,M.destination.asset])).values()],He=q.length>1,Ge=q.length===1&&h.length>1;return{routes:h,destinationAssets:q,isAssetSelect:He,isTagSelect:Ge,build:(M,F)=>{let j=F?h.filter(b=>b.tags?.includes(F)):h,Ke=j.find(b=>b.destination.asset.originSymbol===b.source.asset.originSymbol)||j[0],be=M?e.getAsset(M):Ke.destination.asset,fe=e.getAssetRoutes(be,w,u),qe=(F?fe.filter(b=>b.tags?.includes(F)):[])[0]??fe[0],je=j.find(b=>b.destination.asset===be);return{origin:{chain:u,route:je},reverse:{chain:w,route:qe}}}}}}}}}})}}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),a=n.getRoutes(),s=({source:u,destination:P})=>u.asset===t.source.asset&&P.asset===t.destination.asset&&P.chain===t.destination.chain,r=a.filter(u=>!s(u)).concat(t),y=new V({...n,routes:r});this.routes.set(n.chain.key,y)}};0&&(module.exports={Abi,Asset,AssetAmount,AssetRoute,BaseConfig,Basejump,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 Fe=Object.defineProperty;var F=(i,e)=>{for(var t in e)Fe(i,t,{get:e[t],enumerable:!0})};import Ve from"buffer";typeof window<"u"&&(window.Buffer=Ve.Buffer);var S=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};import V from"big.js";import{big as Ue}from"@galacticcouncil/common";V.NE=-18;var q=class i extends S{amount;decimals;symbol;constructor({amount:e,decimals:t,symbol:n,...a}){super(a),this.amount=BigInt(e),this.decimals=t,this.symbol=n||this.originSymbol}static fromAsset(e,t){return new i({...e,...t})}isSame(e){return super.isEqual(e)&&this.decimals===e.decimals}isEqual(e){return this.isSame(e)&&this.amount===e.amount}copyWith(e){return new i({...this,...e})}padByPct(e){return new i({...this,amount:this.amount+this.amount*e/100n})}toBig(){return V(this.amount.toString())}toBigDecimal(e){return V(this.toDecimal(e))}toDecimal(e){return Ue.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as Le}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 Le(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 I=class{address;constructor({address:e}){this.address=e}static fromChain(e){if("basejump"in e&&e.basejump)return e.basejump;throw new Error(e.name+" is not supported in Basejump.")}static isKnown(e){return"basejump"in e&&!!e.basejump}getAddress(){return this.address}};var We=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(We||{}),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 _e}from"@polkadot-api/legacy-provider";import{SubstrateApis as Oe}from"@galacticcouncil/common";var Ne=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Ne||{}),E=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:T=!1,usesLegacyEnhancer:k=!1,ws:C,xcmVersion:c="V4",...x}){super({...x}),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=T,this.usesLegacyEnhancer=k,this.ws=C,this.xcmVersion=c}get client(){return Oe.getInstance().api(this.ws,{wsProviderOpts:this.usesLegacyEnhancer?{innerEnhancer:_e()}: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 j=[{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 X=[{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 $=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var z=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{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:"address",name:"asset",type:"address"}],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 J=[{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 Y=[{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 ee=[{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 v={Batch:j,Erc20:X,Gmp:$,Basejump:z,Meta:Q,PolkadotXcm:J,Snowbridge:Y,TokenBridge:Z,TokenRelayer:ee};var Nn={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as pt}from"viem";var h={};F(h,{EvmAddr:()=>W,SolanaAddr:()=>_,Ss58Addr:()=>L,SuiAddr:()=>O});import{getSs58AddressInfo as te,fromBufferToBase58 as He}from"@polkadot-api/substrate-bindings";import{toHex as ne,fromHex as ae}from"@polkadot-api/utils";import{PublicKey as U}from"@solana/web3.js";import{isAddress as Ge}from"viem";import{hex as f}from"@galacticcouncil/common";var Ke=/^0x[0-9a-fA-F]{64}$/,qe=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,L=class{static isSs58Strict(e){if(!e||f.isHex(e)||!qe.test(e))return!1;let t=te(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=te(e);if(!t.isValid)throw new Error("Invalid SS58 address");return ne(t.publicKey)}static encodePubKey(e,t=0){let n=f.hexNormalize(e);f.assertHexLen(n,32);let a=ae(f.stripHexPrefix(n));return He(t)(a)}},W=class{static isValid(e){return Ge(e,{strict:!1})}},_=class{static isValid(e){try{let t=new U(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 ne(new U(e).toBytes())}static encodePubKey(e){let t=f.hexNormalize(e);f.assertHexLen(t,32);let n=ae(f.stripHexPrefix(t));return new U(n).toBase58()}},O=class{static isValid(e){return Ke.test(e)}};var re={};F(re,{createPayload:()=>nt,decodePayload:()=>at});import{getTypedCodecs as je,FixedSizeBinary as ie,AccountId as Xe}from"polkadot-api";import{Struct as $e,Enum as ze}from"scale-ts";import{toHex as Qe,fromHex as Je}from"@polkadot-api/utils";import{XcmVersionedLocation as Ye,XcmV5Junction as N,XcmV5Junctions as Ze,hub as et}from"@galacticcouncil/descriptors";async function se(){let e=(await je(et)).tx.PolkadotXcm.send.inner.dest,t=$e({destination:e});return ze({V1:t})}function tt(i,e,t){let n;if(t)n=N.AccountKey20({key:ie.fromHex(e),network:void 0});else{let a=Xe().enc(e);n=N.AccountId32({id:ie.fromBytes(a),network:void 0})}return Ye.V5({parents:1,interior:Ze.X2([N.Parachain(i.parachainId),n])})}async function nt(i,e,t=!1){let n=tt(i,e,t),a=await se(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return Qe(r)},toU8a(){return r}}}async function at(i){let e=i.startsWith("0x")?i.slice(2):i,t=Je(e);return(await se()).dec(t)}var me={};F(me,{findGeneralIndex:()=>ot,findGlobalConsensus:()=>it,findNestedKey:()=>P,findPalletInstance:()=>rt,findParachain:()=>st});var oe="GlobalConsensus",pe="Parachain",ye="GeneralIndex",ue="PalletInstance",P=(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]},it=i=>{let e=P(i,oe);return e&&e[oe]},st=i=>{let e=P(i,pe);return e&&e[pe]},rt=i=>{let e=P(i,ue);return e&&e[ue]},ot=i=>{let e=P(i,ye);return e&&e[ye]};var{EvmAddr:yt}=h,le=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(!yt.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi:v.Erc20,address:this.address,args:[e],functionName:"balanceOf"})}async decimals(){return await this.client.getProvider().readContract({abi:v.Erc20,address:this.address,functionName:"decimals"})}async allowance(e,t){return await this.client.getProvider().readContract({abi:v.Erc20,address:this.address,args:[e,t],functionName:"allowance"})}approve(e,t){return pt({abi:v.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as de,createWalletClient as ut,custom as mt,fallback as lt,http as ce,webSocket as dt}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=>ce(t));return de({chain:this.chain,transport:this.rpcs.length>0?lt(e,{rank:!1}):ce()})}getWsProvider(){return de({chain:this.chain,transport:dt()})}getSigner(e){return ut({account:e,chain:this.chain,transport:mt(window.ethereum)})}};var{EvmAddr:ct}=h,fe=class extends E{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(ct.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 be=class extends m{evmChain;id;rpcs;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,basejump:a,snowbridge:s,wormhole:r,...p}){super({...p}),this.evmChain=e,this.id=t,this.rpcs=n,this.basejump=a&&new I(a),this.snowbridge=s&&new M(s),this.wormhole=r&&new u(r)}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 ft}from"@solana/web3.js";var bt="SOL",ht=9,he=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 ft(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(bt.toLowerCase());if(e)return{asset:e,decimals:ht};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as gt,SuiClient as Tt}from"@mysten/sui/client";var Ct="SUI",xt=9,ge=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=gt("mainnet");return new Tt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(Ct.toLowerCase());if(e)return{asset:e,decimals:xt};throw Error("Chain currency configuration not found")}};var D=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic: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 B=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e;let n=new Map;for(let a of t){let s=`${a.source.asset.key}-${a.destination.chain.key}-${a.destination.asset.key}`,r=n.get(s)??[];r.push(new D({source:a.source,destination:a.destination,contract:a.contract,extrinsic:a.extrinsic,move:a.move,program:a.program,transact:a.transact,tags:a.tags})),n.set(s,r)}this.routes=n}getRoutes(){return Array.from(this.routes.values()).flat()}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){let t=this.getAssetRoutes(e).map(n=>n.destination.chain);return[...new Set(t)]}getAssetDestinationRoutes(e,t){let n=this.getRoutes().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 d=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(d||{});var Te=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var Ce=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var xe=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as At}from"viem";var Ae=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 At({abi:this.abi,functionName:this.func,args:this.args})}};var ve=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Pe=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var we=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 Se=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Me=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)}},Ie=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 vt(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:k=>{let C=e.getChain(k),c=e.getAssetRoutes(s,y,C),x=[...new Map(c.map(A=>[A.destination.asset.key,A.destination.asset])).values()],Ee=x.length>1,De=x.length===1&&c.length>1;return{routes:c,destinationAssets:x,isAssetSelect:Ee,isTagSelect:De,build:(A,w)=>{let R=w?c.filter(l=>l.tags?.includes(w)):c,Be=R.find(l=>l.destination.asset.originSymbol===l.source.asset.originSymbol)||R[0],G=A?e.getAsset(A):Be.destination.asset,K=e.getAssetRoutes(G,C,y),ke=(w?K.filter(l=>l.tags?.includes(w)):[])[0]??K[0],Re=R.find(l=>l.destination.asset===G);return{origin:{chain:y,route:Re},reverse:{chain:C,route:ke}}}}}}}}}})}}var H=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),a=n.getRoutes(),s=({source:y,destination:T})=>y.asset===t.source.asset&&T.asset===t.destination.asset&&T.chain===t.destination.chain,r=a.filter(y=>!s(y)).concat(t),p=new B({...n,routes:r});this.routes.set(n.chain.key,p)}};export{v as Abi,S as Asset,q as AssetAmount,D as AssetRoute,o as BaseConfig,I as Basejump,d as CallType,m as Chain,We as ChainEcosystem,B as ChainRoutes,b as ChainType,vt as ConfigBuilder,H as ConfigService,Ae as ContractConfig,le as Erc20Client,be as EvmChain,g as EvmClient,fe as EvmParachain,ve as ExtrinsicConfig,Pe as MoveConfig,E as Parachain,Nn as Precompile,we as ProgramConfig,M as Snowbridge,he as SolanaChain,Te as SolanaQueryConfig,Ce as SubstrateQueryConfig,ge as SuiChain,xe as SuiQueryConfig,Me as TransferValidation,Se as TransferValidationError,Ie as TransferValidator,u as Wormhole,Ne as XcmVersion,h as addr,re as mrl,me as multiloc};
|
|
1
|
+
var Re=Object.defineProperty;var F=(i,e)=>{for(var t in e)Re(i,t,{get:e[t],enumerable:!0})};import Fe from"buffer";typeof window<"u"&&(window.Buffer=Fe.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 V from"big.js";import{big as Ve}from"@galacticcouncil/common";V.NE=-18;var q=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 V(this.amount.toString())}toBigDecimal(e){return V(this.toDecimal(e))}toDecimal(e){return Ve.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as Ue}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 Ue(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 M=class{address;constructor({address:e}){this.address=e}static fromChain(e){if("basejump"in e&&e.basejump)return e.basejump;throw new Error(e.name+" is not supported in Basejump.")}static isKnown(e){return"basejump"in e&&!!e.basejump}getAddress(){return this.address}};var We=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(We||{}),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{SubstrateApis as _e}from"@galacticcouncil/common";var Le=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Le||{}),I=class extends m{_chainSpec;genesisHash;parachainId;ss58Format;treasury;usesChainDecimals;usesCexForwarding;usesDeliveryFee;usesSignerFee;usesH160Acc;ws;xcmVersion;constructor({genesisHash:e,parachainId:t,ss58Format:n,treasury:a,usesChainDecimals:s=!1,usesCexForwarding:r=!1,usesDeliveryFee:p=!1,usesSignerFee:y=!1,usesH160Acc:T=!1,ws:B,xcmVersion:C="V4",...c}){super({...c}),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=T,this.ws=B,this.xcmVersion=C}get client(){return _e.getInstance().api(this.ws)}getType(){return"parachain"}async getSpec(){return this._chainSpec||(this._chainSpec=this.client.getChainSpecData()),this._chainSpec}async getCurrency(){let e=await this.getSpec(),{tokenSymbol:t,tokenDecimals:n}=e.properties||{},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 j=[{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 X=[{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 $=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var z=[{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{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:"address",name:"asset",type:"address"}],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 J=[{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 Y=[{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 ee=[{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:j,Erc20:X,Gmp:$,Basejump:z,Meta:Q,PolkadotXcm:J,Snowbridge:Y,TokenBridge:Z,TokenRelayer:ee};var Ln={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as ot}from"viem";var h={};F(h,{EvmAddr:()=>_,SolanaAddr:()=>L,Ss58Addr:()=>W,SuiAddr:()=>N});import{getSs58AddressInfo as te,fromBufferToBase58 as Ne}from"@polkadot-api/substrate-bindings";import{toHex as ne,fromHex as ae}from"@polkadot-api/utils";import{PublicKey as U}from"@solana/web3.js";import{isAddress as Oe}from"viem";import{hex as f}from"@galacticcouncil/common";var He=/^0x[0-9a-fA-F]{64}$/,Ge=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,W=class{static isSs58Strict(e){if(!e||f.isHex(e)||!Ge.test(e))return!1;let t=te(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=te(e);if(!t.isValid)throw new Error("Invalid SS58 address");return ne(t.publicKey)}static encodePubKey(e,t=0){let n=f.hexNormalize(e);f.assertHexLen(n,32);let a=ae(f.stripHexPrefix(n));return Ne(t)(a)}},_=class{static isValid(e){return Oe(e,{strict:!1})}},L=class{static isValid(e){try{let t=new U(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 ne(new U(e).toBytes())}static encodePubKey(e){let t=f.hexNormalize(e);f.assertHexLen(t,32);let n=ae(f.stripHexPrefix(t));return new U(n).toBase58()}},N=class{static isValid(e){return He.test(e)}};var se={};F(se,{createPayload:()=>tt,decodePayload:()=>nt});import{AccountId as Ke,Binary as qe,getTypedCodecs as je}from"polkadot-api";import{Struct as Xe,Enum as $e}from"scale-ts";import{toHex as ze,fromHex as Qe}from"@polkadot-api/utils";import{XcmVersionedLocation as Je,XcmV5Junction as O,XcmV5Junctions as Ye,hub as Ze}from"@galacticcouncil/descriptors";async function ie(){let e=(await je(Ze)).tx.PolkadotXcm.send.inner.dest,t=Xe({destination:e});return $e({V1:t})}function et(i,e,t){let n;if(t)n=O.AccountKey20({key:e,network:void 0});else{let a=Ke().enc(e);n=O.AccountId32({id:qe.toHex(a),network:void 0})}return Je.V5({parents:1,interior:Ye.X2([O.Parachain(i.parachainId),n])})}async function tt(i,e,t=!1){let n=et(i,e,t),a=await ie(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return ze(r)},toU8a(){return r}}}async function nt(i){let e=i.startsWith("0x")?i.slice(2):i,t=Qe(e);return(await ie()).dec(t)}var ue={};F(ue,{findGeneralIndex:()=>rt,findGlobalConsensus:()=>at,findNestedKey:()=>v,findPalletInstance:()=>st,findParachain:()=>it});var re="GlobalConsensus",oe="Parachain",pe="GeneralIndex",ye="PalletInstance",v=(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]},at=i=>{let e=v(i,re);return e&&e[re]},it=i=>{let e=v(i,oe);return e&&e[oe]},st=i=>{let e=v(i,ye);return e&&e[ye]},rt=i=>{let e=v(i,pe);return e&&e[pe]};var{EvmAddr:pt}=h,me=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!pt.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi: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 ot({abi:A.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as le,createWalletClient as yt,custom as ut,fallback as mt,http as de,webSocket as lt}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=>de(t));return le({chain:this.chain,transport:this.rpcs.length>0?mt(e,{rank:!1}):de()})}getWsProvider(){return le({chain:this.chain,transport:lt()})}getSigner(e){return yt({account:e,chain:this.chain,transport:ut(window.ethereum)})}};var{EvmAddr:dt}=h,ce=class extends I{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(dt.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 fe=class extends m{evmChain;id;rpcs;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,basejump:a,snowbridge:s,wormhole:r,...p}){super({...p}),this.evmChain=e,this.id=t,this.rpcs=n,this.basejump=a&&new M(a),this.snowbridge=s&&new S(s),this.wormhole=r&&new u(r)}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 ct}from"@solana/web3.js";var ft="SOL",bt=9,be=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 ct(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(ft.toLowerCase());if(e)return{asset:e,decimals:bt};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as ht,SuiClient as gt}from"@mysten/sui/client";var Tt="SUI",Ct=9,he=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=ht("mainnet");return new gt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(Tt.toLowerCase());if(e)return{asset:e,decimals:Ct};throw Error("Chain currency configuration not found")}};var E=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 D=class{routes=new Map;chain;constructor({chain:e,routes:t}){this.chain=e;let n=new Map;for(let a of t){let s=`${a.source.asset.key}-${a.destination.chain.key}-${a.destination.asset.key}`,r=n.get(s)??[];r.push(new E({source:a.source,destination:a.destination,contract:a.contract,extrinsic:a.extrinsic,move:a.move,program:a.program,transact:a.transact,tags:a.tags})),n.set(s,r)}this.routes=n}getRoutes(){return Array.from(this.routes.values()).flat()}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){let t=this.getAssetRoutes(e).map(n=>n.destination.chain);return[...new Set(t)]}getAssetDestinationRoutes(e,t){let n=this.getRoutes().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 d=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(d||{});var ge=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var Te=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var Ce=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as xt}from"viem";var xe=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 xt({abi:this.abi,functionName:this.func,args:this.args})}};var Ae=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ve=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,...a}){super({...a,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var we=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Se=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 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 At(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:B=>{let C=e.getChain(B),c=e.getAssetRoutes(s,y,C),k=[...new Map(c.map(x=>[x.destination.asset.key,x.destination.asset])).values()],Ie=k.length>1,Ee=k.length===1&&c.length>1;return{routes:c,destinationAssets:k,isAssetSelect:Ie,isTagSelect:Ee,build:(x,P)=>{let R=P?c.filter(l=>l.tags?.includes(P)):c,De=R.find(l=>l.destination.asset.originSymbol===l.source.asset.originSymbol)||R[0],G=x?e.getAsset(x):De.destination.asset,K=e.getAssetRoutes(G,C,y),Be=(P?K.filter(l=>l.tags?.includes(P)):[])[0]??K[0],ke=R.find(l=>l.destination.asset===G);return{origin:{chain:y,route:ke},reverse:{chain:C,route:Be}}}}}}}}}})}}var H=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),a=n.getRoutes(),s=({source:y,destination:T})=>y.asset===t.source.asset&&T.asset===t.destination.asset&&T.chain===t.destination.chain,r=a.filter(y=>!s(y)).concat(t),p=new D({...n,routes:r});this.routes.set(n.chain.key,p)}};export{A as Abi,w as Asset,q as AssetAmount,E as AssetRoute,o as BaseConfig,M as Basejump,d as CallType,m as Chain,We as ChainEcosystem,D as ChainRoutes,b as ChainType,At as ConfigBuilder,H as ConfigService,xe as ContractConfig,me as Erc20Client,fe as EvmChain,g as EvmClient,ce as EvmParachain,Ae as ExtrinsicConfig,ve as MoveConfig,I as Parachain,Ln as Precompile,Pe as ProgramConfig,S as Snowbridge,be as SolanaChain,ge as SolanaQueryConfig,Te as SubstrateQueryConfig,he as SuiChain,Ce as SuiQueryConfig,Se as TransferValidation,we as TransferValidationError,Me as TransferValidator,u as Wormhole,Le as XcmVersion,h as addr,se as mrl,ue as multiloc};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0-pr311-837d8d4",
|
|
4
4
|
"description": "Cross-chain sdk core",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"type": "module",
|
|
@@ -51,10 +51,9 @@
|
|
|
51
51
|
"bs58": "^6.0.0"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@galacticcouncil/common": "
|
|
55
|
-
"@galacticcouncil/descriptors": "
|
|
56
|
-
"
|
|
57
|
-
"polkadot-api": "^1.23.3",
|
|
54
|
+
"@galacticcouncil/common": "0.8.0-pr311-837d8d4",
|
|
55
|
+
"@galacticcouncil/descriptors": "2.1.0-pr311-837d8d4",
|
|
56
|
+
"polkadot-api": "^2.0.0",
|
|
58
57
|
"viem": "^2.38.3"
|
|
59
58
|
}
|
|
60
59
|
}
|