@galacticcouncil/xc-core 1.1.0-pr320-cf5318e → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
1
  export * from './wormhole';
2
2
  export * from './snowbridge';
3
3
  export * from './basejump';
4
- export * from './across';
@@ -1,12 +1,11 @@
1
1
  import { Chain as EvmChainDef } from 'viem';
2
2
  import { Chain, ChainAssetData, ChainCurrency, ChainParams, ChainType } from './Chain';
3
- import { Across, AcrossDef, Basejump, BasejumpDef, Snowbridge, SnowbridgeDef, Wormhole, WormholeDef } from '../bridge';
3
+ import { Basejump, BasejumpDef, Snowbridge, SnowbridgeDef, Wormhole, WormholeDef } from '../bridge';
4
4
  import { EvmClient } from '../evm';
5
5
  export interface EvmChainParams extends ChainParams<ChainAssetData> {
6
6
  evmChain: EvmChainDef;
7
7
  id: number;
8
8
  rpcs?: string[];
9
- across?: AcrossDef;
10
9
  basejump?: BasejumpDef;
11
10
  snowbridge?: SnowbridgeDef;
12
11
  wormhole?: WormholeDef;
@@ -15,11 +14,10 @@ export declare class EvmChain extends Chain<ChainAssetData> {
15
14
  readonly evmChain: EvmChainDef;
16
15
  readonly id: number;
17
16
  readonly rpcs?: string[];
18
- readonly across?: Across;
19
17
  readonly basejump?: Basejump;
20
18
  readonly snowbridge?: Snowbridge;
21
19
  readonly wormhole?: Wormhole;
22
- constructor({ evmChain, id, rpcs, across, basejump, snowbridge, wormhole, ...others }: EvmChainParams);
20
+ constructor({ evmChain, id, rpcs, basejump, snowbridge, wormhole, ...others }: EvmChainParams);
23
21
  get evmClient(): EvmClient;
24
22
  getType(): ChainType;
25
23
  getCurrency(): Promise<ChainCurrency>;
@@ -11,6 +11,7 @@ export interface FeeAmountConfigParams {
11
11
  transferAsset: Asset;
12
12
  source: AnyChain;
13
13
  destination: AnyChain;
14
+ amount?: bigint;
14
15
  }
15
16
  export interface FeeAmountConfigBuilder {
16
17
  build: (params: FeeAmountConfigParams) => Promise<FeeAmount>;
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var at=Object.create;var U=Object.defineProperty;var it=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,ot=Object.prototype.hasOwnProperty;var S=(i,e)=>{for(var t in e)U(i,t,{get:e[t],enumerable:!0})},xe=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of st(e))!ot.call(i,a)&&a!==t&&U(i,a,{get:()=>e[a],enumerable:!(n=it(e,a))||n.enumerable});return i};var pt=(i,e,t)=>(t=i!=null?at(rt(i)):{},xe(e||!i||!i.__esModule?U(t,"default",{value:i,enumerable:!0}):t,i)),yt=i=>xe(U({},"__esModule",{value:!0}),i);var St={};S(St,{Abi:()=>x,Across:()=>E,Asset:()=>M,AssetAmount:()=>z,AssetRoute:()=>V,BaseConfig:()=>o,Basejump:()=>I,CallType:()=>d,Chain:()=>l,ChainEcosystem:()=>we,ChainRoutes:()=>F,ChainType:()=>h,ConfigBuilder:()=>Je,ConfigService:()=>q,ContractConfig:()=>le,Erc20Client:()=>ie,EvmChain:()=>re,EvmClient:()=>C,EvmParachain:()=>se,ExtrinsicConfig:()=>de,MoveConfig:()=>ce,Parachain:()=>D,Precompile:()=>ut,ProgramConfig:()=>fe,Snowbridge:()=>k,SolanaChain:()=>oe,SolanaQueryConfig:()=>ye,SubstrateQueryConfig:()=>ue,SuiChain:()=>pe,SuiQueryConfig:()=>me,TransferValidation:()=>Te,TransferValidationError:()=>be,TransferValidator:()=>he,Wormhole:()=>m,XcmVersion:()=>Se,addr:()=>g,codec:()=>te,mrl:()=>ne,multiloc:()=>ae});module.exports=yt(St);var M=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var _=pt(require("big.js"),1);var Ae=require("@galacticcouncil/common");_.default.NE=-18;var z=class i extends M{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,_.default)(this.amount.toString())}toBigDecimal(e){return(0,_.default)(this.toDecimal(e))}toDecimal(e){return Ae.big.toDecimal(this.amount,this.decimals,e)}};var ve=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 ve.UniversalAddress(e,this.platformAddressFormat).toString()}};var k=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 E=class{spokePool;multicallHandler;snowbridgeL2Adaptor;snowbridgeL1Adaptor;swapRouter;swapQuoter;l1FeeToken;constructor({spokePool:e,multicallHandler:t,snowbridgeL2Adaptor:n,snowbridgeL1Adaptor:a,swapRouter:s,swapQuoter:r,l1FeeToken:p}){this.spokePool=e,this.multicallHandler=t,this.snowbridgeL2Adaptor=n,this.snowbridgeL1Adaptor=a,this.swapRouter=s,this.swapQuoter=r,this.l1FeeToken=p}static fromChain(e){if("across"in e&&e.across)return e.across;throw new Error(e.name+" is not supported in Across.")}static isKnown(e){return"across"in e&&!!e.across}getSpokePool(){return this.spokePool}getMulticallHandler(){return this.multicallHandler}getSnowbridgeL2Adaptor(){return this.snowbridgeL2Adaptor}getSnowbridgeL1Adaptor(){return this.snowbridgeL1Adaptor}getSwapRouter(){return this.swapRouter}getSwapQuoter(){return this.swapQuoter}getL1FeeToken(){return this.l1FeeToken}};var we=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(we||{}),h=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(h||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain: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)}};var Pe=require("@galacticcouncil/common");var Se=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Se||{}),D=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:p=!1,usesSignerFee:y=!1,usesH160Acc:v=!1,ws:X,xcmVersion:w="V4",...T}){super({...T}),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=v,this.ws=X,this.xcmVersion=w}get client(){return Pe.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 Me=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var ke=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var Ie=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ee=[{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 De=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var Re=[{inputs:[{internalType:"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 Be=[{inputs:[],name:"AgentAlreadyExists",type:"error"},{inputs:[],name:"ShouldNotReachHere",type:"error"},{inputs:[],name:"InvalidNetwork",type:"error"},{inputs:[],name:"InvalidAsset",type:"error"},{inputs:[],name:"InsufficientGasLimit",type:"error"},{inputs:[],name:"InvalidCommand",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"ExceededMaximumValue",type:"error"},{inputs:[],name:"TooManyAssets",type:"error"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"CommandFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{components:[{internalType:"address",name:"origin",type:"address"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Asset[]",name:"assets",type:"tuple[]"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Xcm",name:"xcm",type:"tuple"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"value",type:"uint128"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],indexed:!1,internalType:"struct Payload",name:"payload",type:"tuple"}],name:"OutboundMessageAccepted",type:"event"},{inputs:[{components:[{internalType:"bytes32",name:"origin",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"bytes32",name:"topic",type:"bytes32"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"uint64",name:"gas",type:"uint64"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct Command[]",name:"commands",type:"tuple[]"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"},{internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"v2_submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"network",type:"uint8"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"id",type:"bytes32"}],name:"v2_createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"v2_outboundNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],name:"v2_isDispatched",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];var Ve=[{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"depositToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"depositNativeEther",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"depositId",type:"uint256"}],name:"DepositCallInvoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"}],name:"DepositCallFailed",type:"event"}];var Fe=[{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{components:[{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"router",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct SwapParams",name:"swapParams",type:"tuple"},{components:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],internalType:"struct SendParams",name:"sendParams",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"sendTokenAndCall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{components:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],internalType:"struct SendParams",name:"sendParams",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"sendEtherAndCall",outputs:[],stateMutability:"payable",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"depositId",type:"uint256"}],name:"DepositCallInvoked",type:"event"}];var Le=[{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 Ue=[{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 _e=[{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"}];var We=[{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"}];var x={Batch:Me,Erc20:ke,Gmp:Ie,Basejump:Ee,Meta:De,PolkadotXcm:Re,Snowbridge:Be,SnowbridgeL1Adaptor:Ve,SnowbridgeL2Adaptor:Fe,TokenBridge:Le,TokenRelayer:Ue,UniswapV3Quoter:_e,UniswapV3SwapRouter:We};var ut={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var $e=require("viem");var g={};S(g,{EvmAddr:()=>J,SolanaAddr:()=>Y,Ss58Addr:()=>Q,SuiAddr:()=>Z});var R=require("@polkadot-api/substrate-bindings"),A=require("@polkadot-api/utils"),W=require("@solana/web3.js"),Ne=require("viem"),f=require("@galacticcouncil/common"),mt=/^0x[0-9a-fA-F]{64}$/,lt=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,Q=class{static isSs58Strict(e){if(!e||f.hex.isHex(e)||!lt.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,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,R.fromBufferToBase58)(t)(a)}},J=class{static isValid(e){return(0,Ne.isAddress)(e,{strict:!1})}},Y=class{static isValid(e){try{let t=new W.PublicKey(e);return t.toBase58()===e&&t.toBytes().length===32}catch{return!1}}static getPubKey(e){if(!this.isValid(e))throw new Error("Invalid Solana address");return(0,A.toHex)(new W.PublicKey(e).toBytes())}static encodePubKey(e){let t=f.hex.hexNormalize(e);f.hex.assertHexLen(t,32);let n=(0,A.fromHex)(f.hex.stripHexPrefix(t));return new W.PublicKey(n).toBase58()}},Z=class{static isValid(e){return mt.test(e)}};var te={};S(te,{getHubCodecs:()=>ee});var Oe=require("polkadot-api"),He=require("@galacticcouncil/descriptors"),N=null;async function ee(){return N||(N=await(0,Oe.getTypedCodecs)(He.hub),N)}var ne={};S(ne,{createPayload:()=>ct,decodePayload:()=>ft});var O=require("polkadot-api"),H=require("scale-ts"),G=require("@polkadot-api/utils"),b=require("@galacticcouncil/descriptors");async function Ge(){let e=(await ee()).tx.PolkadotXcm.send.inner.dest,t=(0,H.Struct)({destination:e});return(0,H.Enum)({V1:t})}function dt(i,e,t){let n;if(t)n=b.XcmV5Junction.AccountKey20({key:e,network:void 0});else{let a=(0,O.AccountId)().enc(e);n=b.XcmV5Junction.AccountId32({id:O.Binary.toHex(a),network:void 0})}return b.XcmVersionedLocation.V5({parents:1,interior:b.XcmV5Junctions.X2([b.XcmV5Junction.Parachain(i.parachainId),n])})}async function ct(i,e,t=!1){let n=dt(i,e,t),a=await Ge(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return(0,G.toHex)(r)},toU8a(){return r}}}async function ft(i){let e=i.startsWith("0x")?i.slice(2):i,t=(0,G.fromHex)(e);return(await Ge()).dec(t)}var ae={};S(ae,{findGeneralIndex:()=>gt,findGlobalConsensus:()=>bt,findNestedKey:()=>B,findPalletInstance:()=>ht,findParachain:()=>Tt});var Ke="GlobalConsensus",qe="Parachain",Xe="GeneralIndex",je="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]},bt=i=>{let e=B(i,Ke);return e&&e[Ke]},Tt=i=>{let e=B(i,qe);return e&&e[qe]},ht=i=>{let e=B(i,je);return e&&e[je]},gt=i=>{let e=B(i,Xe);return e&&e[Xe]};var{EvmAddr:Ct}=g,ie=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(!Ct.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,$e.encodeFunctionData)({abi:x.Erc20,args:[e,t],functionName:"approve"})}};var u=require("viem"),C=class{chain;rpcs;constructor(e,t){this.chain=e,this.rpcs=t||[]}get chainId(){return this.chain.id}get chainCurrency(){return this.chain.nativeCurrency.symbol}get chainDecimals(){return this.chain.nativeCurrency.decimals}get chainExplorer(){return this.chain.blockExplorers?.default.url}getProvider(){let e=this.rpcs.map(t=>(0,u.http)(t));return(0,u.createPublicClient)({chain:this.chain,transport:this.rpcs.length>0?(0,u.fallback)(e,{rank:!1}):(0,u.http)()})}getWsProvider(){return(0,u.createPublicClient)({chain:this.chain,transport:(0,u.webSocket)()})}getSigner(e){return(0,u.createWalletClient)({account:e,chain:this.chain,transport:(0,u.custom)(window.ethereum)})}};var{EvmAddr:xt}=g,se=class extends D{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(xt.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 re=class extends l{evmChain;id;rpcs;across;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,across:a,basejump:s,snowbridge:r,wormhole:p,...y}){super({...y}),this.evmChain=e,this.id=t,this.rpcs=n,this.across=a&&new E(a),this.basejump=s&&new I(s),this.snowbridge=r&&new k(r),this.wormhole=p&&new m(p)}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 ze=require("@solana/web3.js");var At="SOL",vt=9,oe=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 ze.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(At.toLowerCase());if(e)return{asset:e,decimals:vt};throw Error("Chain currency configuration not found")}};var K=require("@mysten/sui/client");var wt="SUI",Pt=9,pe=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,K.getFullnodeUrl)("mainnet");return new K.SuiClient({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(wt.toLowerCase());if(e)return{asset:e,decimals:Pt};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: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 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 d=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(d||{});var ye=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ue=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var me=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var Qe=require("viem");var le=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,Qe.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var de=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ce=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var fe=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 be=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Te=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)}},he=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 Je(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:X=>{let w=e.getChain(X),T=e.getAssetRoutes(s,y,w),j=[...new Map(T.map(P=>[P.destination.asset.key,P.destination.asset])).values()],Ye=j.length>1,Ze=j.length===1&&T.length>1;return{routes:T,destinationAssets:j,isAssetSelect:Ye,isTagSelect:Ze,build:(P,L)=>{let $=L?T.filter(c=>c.tags?.includes(L)):T,et=$.find(c=>c.destination.asset.originSymbol===c.source.asset.originSymbol)||$[0],ge=P?e.getAsset(P):et.destination.asset,Ce=e.getAssetRoutes(ge,w,y),tt=(L?Ce.filter(c=>c.tags?.includes(L)):[])[0]??Ce[0],nt=$.find(c=>c.destination.asset===ge);return{origin:{chain:y,route:nt},reverse:{chain:w,route:tt}}}}}}}}}})}}var q=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),a=n.getRoutes(),s=({source:y,destination:v})=>y.asset===t.source.asset&&v.asset===t.destination.asset&&v.chain===t.destination.chain,r=a.filter(y=>!s(y)).concat(t),p=new F({...n,routes:r});this.routes.set(n.chain.key,p)}};0&&(module.exports={Abi,Across,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,codec,mrl,multiloc});
1
+ "use strict";var Qe=Object.create;var U=Object.defineProperty;var Ze=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var S=(i,e)=>{for(var t in e)U(i,t,{get:e[t],enumerable:!0})},Ce=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of et(e))!nt.call(i,a)&&a!==t&&U(i,a,{get:()=>e[a],enumerable:!(n=Ze(e,a))||n.enumerable});return i};var at=(i,e,t)=>(t=i!=null?Qe(tt(i)):{},Ce(e||!i||!i.__esModule?U(t,"default",{value:i,enumerable:!0}):t,i)),it=i=>Ce(U({},"__esModule",{value:!0}),i);var xt={};S(xt,{Abi:()=>x,Asset:()=>M,AssetAmount:()=>$,AssetRoute:()=>B,BaseConfig:()=>o,Basejump:()=>I,CallType:()=>c,Chain:()=>l,ChainEcosystem:()=>ve,ChainRoutes:()=>V,ChainType:()=>g,ConfigBuilder:()=>qe,ConfigService:()=>O,ContractConfig:()=>me,Erc20Client:()=>ae,EvmChain:()=>se,EvmClient:()=>C,EvmParachain:()=>ie,ExtrinsicConfig:()=>le,MoveConfig:()=>ce,Parachain:()=>k,Precompile:()=>st,ProgramConfig:()=>de,Snowbridge:()=>E,SolanaChain:()=>re,SolanaQueryConfig:()=>pe,SubstrateQueryConfig:()=>ye,SuiChain:()=>oe,SuiQueryConfig:()=>ue,TransferValidation:()=>be,TransferValidationError:()=>fe,TransferValidator:()=>he,Wormhole:()=>m,XcmVersion:()=>Pe,addr:()=>T,codec:()=>ee,mrl:()=>te,multiloc:()=>ne});module.exports=it(xt);var M=class{key;originSymbol;constructor({key:e,originSymbol:t}){this.key=e,this.originSymbol=t}isEqual(e){return this.key===e.key&&this.originSymbol===e.originSymbol}};var W=at(require("big.js"),1);var xe=require("@galacticcouncil/common");W.default.NE=-18;var $=class i extends M{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 xe.big.toDecimal(this.amount,this.decimals,e)}};var Ae=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 Ae.UniversalAddress(e,this.platformAddressFormat).toString()}};var E=class{id;gateway;constructor({id:e,gateway:t}){this.id=e,this.gateway=t}static fromChain(e){if("snowbridge"in e&&e.snowbridge)return e.snowbridge;throw new Error(e.name+" is not supported in Snowbridge.")}static isKnown(e){return"snowbridge"in e&&!!e.snowbridge}getConsensusId(){return this.id}getGateway(){return this.gateway}};var 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 ve=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(ve||{}),g=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(g||{}),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 we=require("@galacticcouncil/common");var Pe=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Pe||{}),k=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:v=!1,ws:j,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=v,this.ws=j,this.xcmVersion=w}get client(){return we.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 Se=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"SubcallSucceeded",type:"event"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSome",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"value",type:"uint256[]"},{internalType:"bytes[]",name:"callData",type:"bytes[]"},{internalType:"uint64[]",name:"gasLimit",type:"uint64[]"}],name:"batchSomeUntilFailure",outputs:[],stateMutability:"nonpayable",type:"function"}];var Me=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var Ee=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ie=[{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 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,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var Re=[{inputs:[{internalType:"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:[],name:"AgentAlreadyExists",type:"error"},{inputs:[],name:"ShouldNotReachHere",type:"error"},{inputs:[],name:"InvalidNetwork",type:"error"},{inputs:[],name:"InvalidAsset",type:"error"},{inputs:[],name:"InsufficientGasLimit",type:"error"},{inputs:[],name:"InvalidCommand",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"ExceededMaximumValue",type:"error"},{inputs:[],name:"TooManyAssets",type:"error"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"CommandFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{components:[{internalType:"address",name:"origin",type:"address"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Asset[]",name:"assets",type:"tuple[]"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Xcm",name:"xcm",type:"tuple"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"value",type:"uint128"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],indexed:!1,internalType:"struct Payload",name:"payload",type:"tuple"}],name:"OutboundMessageAccepted",type:"event"},{inputs:[{components:[{internalType:"bytes32",name:"origin",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"bytes32",name:"topic",type:"bytes32"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"uint64",name:"gas",type:"uint64"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct Command[]",name:"commands",type:"tuple[]"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"},{internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"v2_submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"network",type:"uint8"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"id",type:"bytes32"}],name:"v2_createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"v2_outboundNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],name:"v2_isDispatched",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];var Be=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];var Ve=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var x={Batch:Se,Erc20:Me,Gmp:Ee,Basejump:Ie,Meta:ke,PolkadotXcm:Re,Snowbridge:De,TokenBridge:Be,TokenRelayer:Ve};var st={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var Ge=require("viem");var T={};S(T,{EvmAddr:()=>J,SolanaAddr:()=>Y,Ss58Addr:()=>z,SuiAddr:()=>Q});var R=require("@polkadot-api/substrate-bindings"),A=require("@polkadot-api/utils"),L=require("@solana/web3.js"),Fe=require("viem"),f=require("@galacticcouncil/common"),rt=/^0x[0-9a-fA-F]{64}$/,ot=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,z=class{static isSs58Strict(e){if(!e||f.hex.isHex(e)||!ot.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,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,R.fromBufferToBase58)(t)(a)}},J=class{static isValid(e){return(0,Fe.isAddress)(e,{strict:!1})}},Y=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()}},Q=class{static isValid(e){return rt.test(e)}};var ee={};S(ee,{getHubCodecs:()=>Z});var Ue=require("polkadot-api"),We=require("@galacticcouncil/descriptors"),H=null;async function Z(){return H||(H=await(0,Ue.getTypedCodecs)(We.hub),H)}var te={};S(te,{createPayload:()=>yt,decodePayload:()=>ut});var _=require("polkadot-api"),N=require("scale-ts"),K=require("@polkadot-api/utils"),b=require("@galacticcouncil/descriptors");async function Le(){let e=(await Z()).tx.PolkadotXcm.send.inner.dest,t=(0,N.Struct)({destination:e});return(0,N.Enum)({V1:t})}function pt(i,e,t){let n;if(t)n=b.XcmV5Junction.AccountKey20({key:e,network:void 0});else{let a=(0,_.AccountId)().enc(e);n=b.XcmV5Junction.AccountId32({id:_.Binary.toHex(a),network:void 0})}return b.XcmVersionedLocation.V5({parents:1,interior:b.XcmV5Junctions.X2([b.XcmV5Junction.Parachain(i.parachainId),n])})}async function yt(i,e,t=!1){let n=pt(i,e,t),a=await Le(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return(0,K.toHex)(r)},toU8a(){return r}}}async function ut(i){let e=i.startsWith("0x")?i.slice(2):i,t=(0,K.fromHex)(e);return(await Le()).dec(t)}var ne={};S(ne,{findGeneralIndex:()=>dt,findGlobalConsensus:()=>mt,findNestedKey:()=>D,findPalletInstance:()=>ct,findParachain:()=>lt});var He="GlobalConsensus",_e="Parachain",Ne="GeneralIndex",Ke="PalletInstance",D=(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]},mt=i=>{let e=D(i,He);return e&&e[He]},lt=i=>{let e=D(i,_e);return e&&e[_e]},ct=i=>{let e=D(i,Ke);return e&&e[Ke]},dt=i=>{let e=D(i,Ne);return e&&e[Ne]};var{EvmAddr:ft}=T,ae=class{client;address;constructor(e,t){this.validateClient(e),this.validateContract(t),this.client=e,this.address=t}validateClient(e){if(!e)throw new Error("No EVM client found")}validateContract(e){if(!e)throw new Error("Contract address is required");this.validateContractAddress(e)}validateContractAddress(e){if(!ft.isValid(e))throw new Error("Contract address "+e+" is not valid h160 address")}async balanceOf(e){return await this.client.getProvider().readContract({abi: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,Ge.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:bt}=T,ie=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 C(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(bt.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 se=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 I(a),this.snowbridge=s&&new E(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 Oe=require("@solana/web3.js");var ht="SOL",gt=9,re=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 Oe.Connection(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(ht.toLowerCase());if(e)return{asset:e,decimals:gt};throw Error("Chain currency configuration not found")}};var G=require("@mysten/sui/client");var Tt="SUI",Ct=9,oe=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(Tt.toLowerCase());if(e)return{asset:e,decimals:Ct};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 pe=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var ye=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var ue=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};var je=require("viem");var me=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,je.encodeFunctionData)({abi:this.abi,functionName:this.func,args:this.args})}};var le=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var ce=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var de=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 fe=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},be=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},he=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 qe(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:j=>{let w=e.getChain(j),h=e.getAssetRoutes(s,u,w),q=[...new Map(h.map(P=>[P.destination.asset.key,P.destination.asset])).values()],Xe=q.length>1,$e=q.length===1&&h.length>1;return{routes:h,destinationAssets:q,isAssetSelect:Xe,isTagSelect:$e,build:(P,F)=>{let X=F?h.filter(d=>d.tags?.includes(F)):h,ze=X.find(d=>d.destination.asset.originSymbol===d.source.asset.originSymbol)||X[0],ge=P?e.getAsset(P):ze.destination.asset,Te=e.getAssetRoutes(ge,w,u),Je=(F?Te.filter(d=>d.tags?.includes(F)):[])[0]??Te[0],Ye=X.find(d=>d.destination.asset===ge);return{origin:{chain:u,route:Ye},reverse:{chain:w,route:Je}}}}}}}}}})}}var O=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:v})=>u.asset===t.source.asset&&v.asset===t.destination.asset&&v.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,codec,mrl,multiloc});
package/build/index.mjs CHANGED
@@ -1 +1 @@
1
- var He=Object.defineProperty;var w=(i,e)=>{for(var t in e)He(i,t,{get:e[t],enumerable:!0})};import Ne from"buffer";typeof window<"u"&&(window.Buffer=Ne.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 U from"big.js";import{big as Ge}from"@galacticcouncil/common";U.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 U(this.amount.toString())}toBigDecimal(e){return U(this.toDecimal(e))}toDecimal(e){return Ge.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as Ke}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 Ke(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 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 k=class{spokePool;multicallHandler;snowbridgeL2Adaptor;snowbridgeL1Adaptor;swapRouter;swapQuoter;l1FeeToken;constructor({spokePool:e,multicallHandler:t,snowbridgeL2Adaptor:n,snowbridgeL1Adaptor:a,swapRouter:s,swapQuoter:r,l1FeeToken:p}){this.spokePool=e,this.multicallHandler=t,this.snowbridgeL2Adaptor=n,this.snowbridgeL1Adaptor=a,this.swapRouter=s,this.swapQuoter=r,this.l1FeeToken=p}static fromChain(e){if("across"in e&&e.across)return e.across;throw new Error(e.name+" is not supported in Across.")}static isKnown(e){return"across"in e&&!!e.across}getSpokePool(){return this.spokePool}getMulticallHandler(){return this.multicallHandler}getSnowbridgeL2Adaptor(){return this.snowbridgeL2Adaptor}getSnowbridgeL1Adaptor(){return this.snowbridgeL1Adaptor}getSwapRouter(){return this.swapRouter}getSwapQuoter(){return this.swapQuoter}getL1FeeToken(){return this.l1FeeToken}};var qe=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(qe||{}),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 Xe}from"@galacticcouncil/common";var je=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(je||{}),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:F,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=F,this.xcmVersion=C}get client(){return Xe.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 $=[{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 z=[{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 J=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var Y=[{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 Z=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback",payable:!0},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function",constant:!0},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"structGovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"structGovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"structGovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"structGovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"structStructs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function",constant:!0},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"structStructs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"structStructs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function",constant:!0},{stateMutability:"payable",type:"receive",payable:!0},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function",payable:!0}];var ee=[{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 te=[{inputs:[],name:"AgentAlreadyExists",type:"error"},{inputs:[],name:"ShouldNotReachHere",type:"error"},{inputs:[],name:"InvalidNetwork",type:"error"},{inputs:[],name:"InvalidAsset",type:"error"},{inputs:[],name:"InsufficientGasLimit",type:"error"},{inputs:[],name:"InvalidCommand",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"ExceededMaximumValue",type:"error"},{inputs:[],name:"TooManyAssets",type:"error"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"CommandFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{components:[{internalType:"address",name:"origin",type:"address"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Asset[]",name:"assets",type:"tuple[]"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Xcm",name:"xcm",type:"tuple"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"value",type:"uint128"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],indexed:!1,internalType:"struct Payload",name:"payload",type:"tuple"}],name:"OutboundMessageAccepted",type:"event"},{inputs:[{components:[{internalType:"bytes32",name:"origin",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"bytes32",name:"topic",type:"bytes32"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"uint64",name:"gas",type:"uint64"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct Command[]",name:"commands",type:"tuple[]"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"},{internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"v2_submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"network",type:"uint8"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"id",type:"bytes32"}],name:"v2_createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"v2_outboundNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],name:"v2_isDispatched",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];var ne=[{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"depositToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"depositNativeEther",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"depositId",type:"uint256"}],name:"DepositCallInvoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"}],name:"DepositCallFailed",type:"event"}];var ae=[{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{components:[{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"router",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct SwapParams",name:"swapParams",type:"tuple"},{components:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],internalType:"struct SendParams",name:"sendParams",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"sendTokenAndCall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint32",name:"fillDeadlineBuffer",type:"uint32"}],internalType:"struct DepositParams",name:"params",type:"tuple"},{components:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],internalType:"struct SendParams",name:"sendParams",type:"tuple"},{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes32",name:"topic",type:"bytes32"}],name:"sendEtherAndCall",outputs:[],stateMutability:"payable",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"depositId",type:"uint256"}],name:"DepositCallInvoked",type:"event"}];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,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];var se=[{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"}];var re=[{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"}];var oe=[{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"}];var x={Batch:$,Erc20:z,Gmp:J,Basejump:Y,Meta:Z,PolkadotXcm:ee,Snowbridge:te,SnowbridgeL1Adaptor:ne,SnowbridgeL2Adaptor:ae,TokenBridge:ie,TokenRelayer:se,UniswapV3Quoter:re,UniswapV3SwapRouter:oe};var pa={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as ft}from"viem";var g={};w(g,{EvmAddr:()=>O,SolanaAddr:()=>H,Ss58Addr:()=>_,SuiAddr:()=>N});import{getSs58AddressInfo as pe,fromBufferToBase58 as Qe}from"@polkadot-api/substrate-bindings";import{toHex as ye,fromHex as ue}from"@polkadot-api/utils";import{PublicKey as W}from"@solana/web3.js";import{isAddress as $e}from"viem";import{hex as f}from"@galacticcouncil/common";var ze=/^0x[0-9a-fA-F]{64}$/,Je=/^[1-9A-HJ-NP-Za-km-z]{47,48}$/,_=class{static isSs58Strict(e){if(!e||f.isHex(e)||!Je.test(e))return!1;let t=pe(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=pe(e);if(!t.isValid)throw new Error("Invalid SS58 address");return ye(t.publicKey)}static encodePubKey(e,t=0){let n=f.hexNormalize(e);f.assertHexLen(n,32);let a=ue(f.stripHexPrefix(n));return Qe(t)(a)}},O=class{static isValid(e){return $e(e,{strict:!1})}},H=class{static isValid(e){try{let t=new W(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 ye(new W(e).toBytes())}static encodePubKey(e){let t=f.hexNormalize(e);f.assertHexLen(t,32);let n=ue(f.stripHexPrefix(t));return new W(n).toBase58()}},N=class{static isValid(e){return ze.test(e)}};var me={};w(me,{getHubCodecs:()=>G});import{getTypedCodecs as Ye}from"polkadot-api";import{hub as Ze}from"@galacticcouncil/descriptors";var B=null;async function G(){return B||(B=await Ye(Ze),B)}var de={};w(de,{createPayload:()=>yt,decodePayload:()=>ut});import{AccountId as et,Binary as tt}from"polkadot-api";import{Struct as nt,Enum as at}from"scale-ts";import{toHex as it,fromHex as st}from"@polkadot-api/utils";import{XcmVersionedLocation as rt,XcmV5Junction as K,XcmV5Junctions as ot}from"@galacticcouncil/descriptors";async function le(){let e=(await G()).tx.PolkadotXcm.send.inner.dest,t=nt({destination:e});return at({V1:t})}function pt(i,e,t){let n;if(t)n=K.AccountKey20({key:e,network:void 0});else{let a=et().enc(e);n=K.AccountId32({id:tt.toHex(a),network:void 0})}return rt.V5({parents:1,interior:ot.X2([K.Parachain(i.parachainId),n])})}async function yt(i,e,t=!1){let n=pt(i,e,t),a=await le(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return it(r)},toU8a(){return r}}}async function ut(i){let e=i.startsWith("0x")?i.slice(2):i,t=st(e);return(await le()).dec(t)}var he={};w(he,{findGeneralIndex:()=>ct,findGlobalConsensus:()=>mt,findNestedKey:()=>v,findPalletInstance:()=>dt,findParachain:()=>lt});var ce="GlobalConsensus",fe="Parachain",be="GeneralIndex",ge="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]},mt=i=>{let e=v(i,ce);return e&&e[ce]},lt=i=>{let e=v(i,fe);return e&&e[fe]},dt=i=>{let e=v(i,ge);return e&&e[ge]},ct=i=>{let e=v(i,be);return e&&e[be]};var{EvmAddr:bt}=g,Te=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(!bt.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 ft({abi:x.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as Ce,createWalletClient as gt,custom as ht,fallback as Tt,http as Ae,webSocket as Ct}from"viem";var h=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=>Ae(t));return Ce({chain:this.chain,transport:this.rpcs.length>0?Tt(e,{rank:!1}):Ae()})}getWsProvider(){return Ce({chain:this.chain,transport:Ct()})}getSigner(e){return gt({account:e,chain:this.chain,transport:ht(window.ethereum)})}};var{EvmAddr:At}=g,xe=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 h(this.evmChain,this.rpcs)}getType(){return"evm-parachain"}async getDerivatedAddress(e){if(At.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 ve=class extends m{evmChain;id;rpcs;across;basejump;snowbridge;wormhole;constructor({evmChain:e,id:t,rpcs:n,across:a,basejump:s,snowbridge:r,wormhole:p,...y}){super({...y}),this.evmChain=e,this.id=t,this.rpcs=n,this.across=a&&new k(a),this.basejump=s&&new E(s),this.snowbridge=r&&new M(r),this.wormhole=p&&new u(p)}get evmClient(){return new h(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 xt}from"@solana/web3.js";var vt="SOL",Pt=9,Pe=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 xt(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(vt.toLowerCase());if(e)return{asset:e,decimals:Pt};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as wt,SuiClient as St}from"@mysten/sui/client";var Mt="SUI",Et=9,we=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=wt("mainnet");return new St({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(Mt.toLowerCase());if(e)return{asset:e,decimals:Et};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 R=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 Se=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var Me=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var Ee=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as kt}from"viem";var ke=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 kt({abi:this.abi,functionName:this.func,args:this.args})}};var Ie=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Be=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var De=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 Re=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Fe=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},Ve=class{criterias=[];constructor(...e){this.criterias=e}async validate(e){let t=[],n=[];for(let a of this.criterias)n.push(a.check(e));return await Promise.allSettled(n).then(a=>a.forEach(s=>{if(s.status==="rejected"){let r=s.reason;t.push(r.report)}})),t}};function It(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:F=>{let C=e.getChain(F),c=e.getAssetRoutes(s,y,C),V=[...new Map(c.map(A=>[A.destination.asset.key,A.destination.asset])).values()],Le=V.length>1,Ue=V.length===1&&c.length>1;return{routes:c,destinationAssets:V,isAssetSelect:Le,isTagSelect:Ue,build:(A,P)=>{let L=P?c.filter(l=>l.tags?.includes(P)):c,We=L.find(l=>l.destination.asset.originSymbol===l.source.asset.originSymbol)||L[0],X=A?e.getAsset(A):We.destination.asset,j=e.getAssetRoutes(X,C,y),_e=(P?j.filter(l=>l.tags?.includes(P)):[])[0]??j[0],Oe=L.find(l=>l.destination.asset===X);return{origin:{chain:y,route:Oe},reverse:{chain:C,route:_e}}}}}}}}}})}}var q=class{assets;chains;routes;constructor({assets:e,chains:t,routes:n}){this.assets=new Map(e),this.chains=new Map(t),this.routes=new Map(n)}getEcosystemAssets(e){return e?Array.from(new Set(Array.from(this.routes.values()).filter(t=>t.chain.ecosystem===e).map(t=>t.getRoutes()).flat(2).map(t=>t.source.asset))).sort((t,n)=>t.key.localeCompare(n.key)):Array.from(this.assets.values())}getAsset(e){let t=typeof e=="string"?e:e.key,n=this.assets.get(t);if(!n)throw new Error(`Asset ${t} not found`);return n}getChain(e){let t=typeof e=="string"?e:e.key,n=this.chains.get(t);if(!n)throw new Error(`Chain ${t} not found`);return n}getChainRoutes(e){let t=typeof e=="string"?e:e.key,n=this.routes.get(t);if(!n)throw new Error(`Chain route for ${t} not found`);return n}getSourceChains(e,t){return Array.from(this.routes.values()).filter(n=>!t||n.chain.ecosystem===t).filter(n=>n.getAssetRoutes(e).length).map(n=>n.chain)}getDestinationChains(e,t){return this.getChainRoutes(t).getAssetDestinations(e)}getAssetRoutes(e,t,n){return this.getChainRoutes(t).getAssetDestinationRoutes(e,n)}updateAsset(e){this.assets.set(e.key,e)}updateChain(e){this.chains.set(e.key,e)}updateRoutes(e){this.routes.set(e.chain.key,e)}updateChainRoute(e,t){let n=this.getChainRoutes(e),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 R({...n,routes:r});this.routes.set(n.chain.key,p)}};export{x as Abi,k as Across,S as Asset,Q as AssetAmount,D as AssetRoute,o as BaseConfig,E as Basejump,d as CallType,m as Chain,qe as ChainEcosystem,R as ChainRoutes,b as ChainType,It as ConfigBuilder,q as ConfigService,ke as ContractConfig,Te as Erc20Client,ve as EvmChain,h as EvmClient,xe as EvmParachain,Ie as ExtrinsicConfig,Be as MoveConfig,I as Parachain,pa as Precompile,De as ProgramConfig,M as Snowbridge,Pe as SolanaChain,Se as SolanaQueryConfig,Me as SubstrateQueryConfig,we as SuiChain,Ee as SuiQueryConfig,Fe as TransferValidation,Re as TransferValidationError,Ve as TransferValidator,u as Wormhole,je as XcmVersion,g as addr,me as codec,de as mrl,he as multiloc};
1
+ var Ue=Object.defineProperty;var w=(i,e)=>{for(var t in e)Ue(i,t,{get:e[t],enumerable:!0})};import We from"buffer";typeof window<"u"&&(window.Buffer=We.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 U from"big.js";import{big as Le}from"@galacticcouncil/common";U.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 U(this.amount.toString())}toBigDecimal(e){return U(this.toDecimal(e))}toDecimal(e){return Le.toDecimal(this.amount,this.decimals,e)}};import{UniversalAddress as He}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 He(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 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 _e=(s=>(s.Ethereum="Ethereum",s.Polkadot="Polkadot",s.Kusama="Kusama",s.Solana="Solana",s.Sui="Sui",s))(_e||{}),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 Ne}from"@galacticcouncil/common";var Oe=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Oe||{}),B=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:D,xcmVersion:C="V4",...d}){super({...d}),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=D,this.xcmVersion=C}get client(){return Ne.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 $=[{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 z=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var Q=[{inputs:[{internalType:"bytes",name:"vaa",type:"bytes"}],name:"wormholeTransferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}];var J=[{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 Y=[{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 Z=[{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:[],name:"AgentAlreadyExists",type:"error"},{inputs:[],name:"ShouldNotReachHere",type:"error"},{inputs:[],name:"InvalidNetwork",type:"error"},{inputs:[],name:"InvalidAsset",type:"error"},{inputs:[],name:"InsufficientGasLimit",type:"error"},{inputs:[],name:"InvalidCommand",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"ExceededMaximumValue",type:"error"},{inputs:[],name:"TooManyAssets",type:"error"},{inputs:[],name:"operatingMode",outputs:[{internalType:"enum OperatingMode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"agentID",type:"bytes32"}],name:"agentOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"agentID",type:"bytes32"},{indexed:!1,internalType:"address",name:"agent",type:"address"}],name:"AgentCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"topic",type:"bytes32"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"InboundMessageDispatched",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"CommandFailed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{components:[{internalType:"address",name:"origin",type:"address"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Asset[]",name:"assets",type:"tuple[]"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Xcm",name:"xcm",type:"tuple"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"value",type:"uint128"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],indexed:!1,internalType:"struct Payload",name:"payload",type:"tuple"}],name:"OutboundMessageAccepted",type:"event"},{inputs:[{components:[{internalType:"bytes32",name:"origin",type:"bytes32"},{internalType:"uint64",name:"nonce",type:"uint64"},{internalType:"bytes32",name:"topic",type:"bytes32"},{components:[{internalType:"uint8",name:"kind",type:"uint8"},{internalType:"uint64",name:"gas",type:"uint64"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct Command[]",name:"commands",type:"tuple[]"}],internalType:"struct InboundMessage",name:"message",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{components:[{components:[{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint256",name:"number",type:"uint256"},{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{internalType:"bytes32",name:"extrinsicsRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"kind",type:"uint256"},{internalType:"bytes4",name:"consensusEngineID",type:"bytes4"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Verification.DigestItem[]",name:"digestItems",type:"tuple[]"}],internalType:"struct Verification.ParachainHeader",name:"header",type:"tuple"},{components:[{internalType:"uint256",name:"pos",type:"uint256"},{internalType:"uint256",name:"width",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct Verification.HeadProof",name:"headProof",type:"tuple"},{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"parentNumber",type:"uint32"},{internalType:"bytes32",name:"parentHash",type:"bytes32"},{internalType:"uint64",name:"nextAuthoritySetID",type:"uint64"},{internalType:"uint32",name:"nextAuthoritySetLen",type:"uint32"},{internalType:"bytes32",name:"nextAuthoritySetRoot",type:"bytes32"}],internalType:"struct Verification.MMRLeafPartial",name:"leafPartial",type:"tuple"},{internalType:"bytes32[]",name:"leafProof",type:"bytes32[]"},{internalType:"uint256",name:"leafProofOrder",type:"uint256"}],internalType:"struct Verification.Proof",name:"headerProof",type:"tuple"},{internalType:"bytes32",name:"rewardAddress",type:"bytes32"}],name:"v2_submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"xcm",type:"bytes"},{internalType:"bytes[]",name:"assets",type:"bytes[]"},{internalType:"bytes",name:"claimer",type:"bytes"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"network",type:"uint8"},{internalType:"uint128",name:"executionFee",type:"uint128"},{internalType:"uint128",name:"relayerFee",type:"uint128"}],name:"v2_registerToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"id",type:"bytes32"}],name:"v2_createAgent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"v2_outboundNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],name:"v2_isDispatched",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];var te=[{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 ne=[{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:$,Erc20:z,Gmp:Q,Basejump:J,Meta:Y,PolkadotXcm:Z,Snowbridge:ee,TokenBridge:te,TokenRelayer:ne};var On={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};import{encodeFunctionData as ut}from"viem";var h={};w(h,{EvmAddr:()=>H,SolanaAddr:()=>_,Ss58Addr:()=>L,SuiAddr:()=>N});import{getSs58AddressInfo as ae,fromBufferToBase58 as Ke}from"@polkadot-api/substrate-bindings";import{toHex as ie,fromHex as se}from"@polkadot-api/utils";import{PublicKey as W}from"@solana/web3.js";import{isAddress as Ge}from"viem";import{hex as f}from"@galacticcouncil/common";var je=/^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=ae(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=ae(e);if(!t.isValid)throw new Error("Invalid SS58 address");return ie(t.publicKey)}static encodePubKey(e,t=0){let n=f.hexNormalize(e);f.assertHexLen(n,32);let a=se(f.stripHexPrefix(n));return Ke(t)(a)}},H=class{static isValid(e){return Ge(e,{strict:!1})}},_=class{static isValid(e){try{let t=new W(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 ie(new W(e).toBytes())}static encodePubKey(e){let t=f.hexNormalize(e);f.assertHexLen(t,32);let n=se(f.stripHexPrefix(t));return new W(n).toBase58()}},N=class{static isValid(e){return je.test(e)}};var re={};w(re,{getHubCodecs:()=>O});import{getTypedCodecs as Xe}from"polkadot-api";import{hub as $e}from"@galacticcouncil/descriptors";var I=null;async function O(){return I||(I=await Xe($e),I)}var pe={};w(pe,{createPayload:()=>it,decodePayload:()=>st});import{AccountId as ze,Binary as Qe}from"polkadot-api";import{Struct as Je,Enum as Ye}from"scale-ts";import{toHex as Ze,fromHex as et}from"@polkadot-api/utils";import{XcmVersionedLocation as tt,XcmV5Junction as K,XcmV5Junctions as nt}from"@galacticcouncil/descriptors";async function oe(){let e=(await O()).tx.PolkadotXcm.send.inner.dest,t=Je({destination:e});return Ye({V1:t})}function at(i,e,t){let n;if(t)n=K.AccountKey20({key:e,network:void 0});else{let a=ze().enc(e);n=K.AccountId32({id:Qe.toHex(a),network:void 0})}return tt.V5({parents:1,interior:nt.X2([K.Parachain(i.parachainId),n])})}async function it(i,e,t=!1){let n=at(i,e,t),a=await oe(),s={tag:"V1",value:{destination:n}},r=a.enc(s);return{bytes:r,toHex(){return Ze(r)},toU8a(){return r}}}async function st(i){let e=i.startsWith("0x")?i.slice(2):i,t=et(e);return(await oe()).dec(t)}var ce={};w(ce,{findGeneralIndex:()=>yt,findGlobalConsensus:()=>rt,findNestedKey:()=>v,findPalletInstance:()=>pt,findParachain:()=>ot});var ye="GlobalConsensus",ue="Parachain",me="GeneralIndex",le="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]},rt=i=>{let e=v(i,ye);return e&&e[ye]},ot=i=>{let e=v(i,ue);return e&&e[ue]},pt=i=>{let e=v(i,le);return e&&e[le]},yt=i=>{let e=v(i,me);return e&&e[me]};var{EvmAddr:mt}=h,de=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 ut({abi:A.Erc20,args:[e,t],functionName:"approve"})}};import{createPublicClient as fe,createWalletClient as lt,custom as ct,fallback as dt,http as be,webSocket as ft}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=>be(t));return fe({chain:this.chain,transport:this.rpcs.length>0?dt(e,{rank:!1}):be()})}getWsProvider(){return fe({chain:this.chain,transport:ft()})}getSigner(e){return lt({account:e,chain:this.chain,transport:ct(window.ethereum)})}};var{EvmAddr:bt}=h,he=class extends B{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(bt.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 ge=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 E(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 ht}from"@solana/web3.js";var gt="SOL",Tt=9,Te=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 ht(e[0],{wsEndpoint:t[0],commitment:"confirmed"})}getType(){return"solana-chain"}async getCurrency(){let e=this.getAsset(gt.toLowerCase());if(e)return{asset:e,decimals:Tt};throw Error("Chain currency configuration not found")}};import{getFullnodeUrl as Ct,SuiClient as xt}from"@mysten/sui/client";var At="SUI",vt=9,Ce=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=Ct("mainnet");return new xt({url:e})}getType(){return"sui-chain"}async getCurrency(){let e=this.getAsset(At.toLowerCase());if(e)return{asset:e,decimals:vt};throw Error("Chain currency configuration not found")}};var k=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic: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 R=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 k({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 xe=class extends o{address;token;constructor({address:e,token:t,...n}){super({...n,type:"Solana"}),this.address=e,this.token=t}};var Ae=class extends o{args;transform;constructor({args:e=[],transform:t,...n}){super({...n,type:"Substrate"}),this.args=e,this.transform=t}};var ve=class extends o{address;token;constructor({address:e,...t}){super({...t,type:"Sui"}),this.address=e}};import{encodeFunctionData as Pt}from"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 Pt({abi:this.abi,functionName:this.func,args:this.args})}};var we=class extends o{getTx;constructor({getTx:e,...t}){super({...t,type:"Substrate"}),this.getTx=e}};var Se=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 Ee=class extends Error{report;constructor(e,t){super(e),this.name="TransferValidationError",this.report=t}},Be=class{sourceConstraint;destinationConstraint;constructor(e,t){this.sourceConstraint=e,this.destinationConstraint=t}ruleFor(e){let{source:t,destination:n}=e;return this.sourceConstraint(t.chain)&&this.destinationConstraint(n.chain)}check(e){if(this.ruleFor(e))return this.validate(e)}},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 wt(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:D=>{let C=e.getChain(D),d=e.getAssetRoutes(s,y,C),F=[...new Map(d.map(x=>[x.destination.asset.key,x.destination.asset])).values()],ke=F.length>1,Re=F.length===1&&d.length>1;return{routes:d,destinationAssets:F,isAssetSelect:ke,isTagSelect:Re,build:(x,P)=>{let V=P?d.filter(l=>l.tags?.includes(P)):d,De=V.find(l=>l.destination.asset.originSymbol===l.source.asset.originSymbol)||V[0],j=x?e.getAsset(x):De.destination.asset,q=e.getAssetRoutes(j,C,y),Fe=(P?q.filter(l=>l.tags?.includes(P)):[])[0]??q[0],Ve=V.find(l=>l.destination.asset===j);return{origin:{chain:y,route:Ve},reverse:{chain:C,route:Fe}}}}}}}}}})}}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: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 R({...n,routes:r});this.routes.set(n.chain.key,p)}};export{A as Abi,S as Asset,X as AssetAmount,k as AssetRoute,o as BaseConfig,E as Basejump,c as CallType,m as Chain,_e as ChainEcosystem,R as ChainRoutes,b as ChainType,wt as ConfigBuilder,G as ConfigService,Pe as ContractConfig,de as Erc20Client,ge as EvmChain,g as EvmClient,he as EvmParachain,we as ExtrinsicConfig,Se as MoveConfig,B as Parachain,On as Precompile,Me as ProgramConfig,M as Snowbridge,Te as SolanaChain,xe as SolanaQueryConfig,Ae as SubstrateQueryConfig,Ce as SuiChain,ve as SuiQueryConfig,Be as TransferValidation,Ee as TransferValidationError,Ie as TransferValidator,u as Wormhole,Oe as XcmVersion,h as addr,re as codec,pe as mrl,ce as multiloc};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-core",
3
- "version": "1.1.0-pr320-cf5318e",
3
+ "version": "1.1.0",
4
4
  "description": "Cross-chain sdk core",
5
5
  "author": "GalacticCouncil",
6
6
  "type": "module",
@@ -1,29 +0,0 @@
1
- import { AnyChain } from '../chain';
2
- export type AcrossDef = {
3
- spokePool: string;
4
- multicallHandler: string;
5
- snowbridgeL2Adaptor?: string;
6
- snowbridgeL1Adaptor?: string;
7
- swapRouter?: string;
8
- swapQuoter?: string;
9
- l1FeeToken?: string;
10
- };
11
- export declare class Across {
12
- readonly spokePool: string;
13
- readonly multicallHandler: string;
14
- readonly snowbridgeL2Adaptor?: string;
15
- readonly snowbridgeL1Adaptor?: string;
16
- readonly swapRouter?: string;
17
- readonly swapQuoter?: string;
18
- readonly l1FeeToken?: string;
19
- constructor({ spokePool, multicallHandler, snowbridgeL2Adaptor, snowbridgeL1Adaptor, swapRouter, swapQuoter, l1FeeToken, }: AcrossDef);
20
- static fromChain(chain: AnyChain): Across;
21
- static isKnown(chain: AnyChain): boolean;
22
- getSpokePool(): string;
23
- getMulticallHandler(): string;
24
- getSnowbridgeL2Adaptor(): string | undefined;
25
- getSnowbridgeL1Adaptor(): string | undefined;
26
- getSwapRouter(): string | undefined;
27
- getSwapQuoter(): string | undefined;
28
- getL1FeeToken(): string | undefined;
29
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,112 +0,0 @@
1
- export declare const SNOWBRIDGE_L1_ADAPTOR: readonly [{
2
- readonly inputs: readonly [{
3
- readonly components: readonly [{
4
- readonly internalType: "address";
5
- readonly name: "inputToken";
6
- readonly type: "address";
7
- }, {
8
- readonly internalType: "address";
9
- readonly name: "outputToken";
10
- readonly type: "address";
11
- }, {
12
- readonly internalType: "uint256";
13
- readonly name: "inputAmount";
14
- readonly type: "uint256";
15
- }, {
16
- readonly internalType: "uint256";
17
- readonly name: "outputAmount";
18
- readonly type: "uint256";
19
- }, {
20
- readonly internalType: "uint256";
21
- readonly name: "destinationChainId";
22
- readonly type: "uint256";
23
- }, {
24
- readonly internalType: "uint32";
25
- readonly name: "fillDeadlineBuffer";
26
- readonly type: "uint32";
27
- }];
28
- readonly internalType: "struct DepositParams";
29
- readonly name: "params";
30
- readonly type: "tuple";
31
- }, {
32
- readonly internalType: "address";
33
- readonly name: "recipient";
34
- readonly type: "address";
35
- }, {
36
- readonly internalType: "bytes32";
37
- readonly name: "topic";
38
- readonly type: "bytes32";
39
- }];
40
- readonly name: "depositToken";
41
- readonly outputs: readonly [];
42
- readonly stateMutability: "nonpayable";
43
- readonly type: "function";
44
- }, {
45
- readonly inputs: readonly [{
46
- readonly components: readonly [{
47
- readonly internalType: "address";
48
- readonly name: "inputToken";
49
- readonly type: "address";
50
- }, {
51
- readonly internalType: "address";
52
- readonly name: "outputToken";
53
- readonly type: "address";
54
- }, {
55
- readonly internalType: "uint256";
56
- readonly name: "inputAmount";
57
- readonly type: "uint256";
58
- }, {
59
- readonly internalType: "uint256";
60
- readonly name: "outputAmount";
61
- readonly type: "uint256";
62
- }, {
63
- readonly internalType: "uint256";
64
- readonly name: "destinationChainId";
65
- readonly type: "uint256";
66
- }, {
67
- readonly internalType: "uint32";
68
- readonly name: "fillDeadlineBuffer";
69
- readonly type: "uint32";
70
- }];
71
- readonly internalType: "struct DepositParams";
72
- readonly name: "params";
73
- readonly type: "tuple";
74
- }, {
75
- readonly internalType: "address";
76
- readonly name: "recipient";
77
- readonly type: "address";
78
- }, {
79
- readonly internalType: "bytes32";
80
- readonly name: "topic";
81
- readonly type: "bytes32";
82
- }];
83
- readonly name: "depositNativeEther";
84
- readonly outputs: readonly [];
85
- readonly stateMutability: "nonpayable";
86
- readonly type: "function";
87
- }, {
88
- readonly anonymous: false;
89
- readonly inputs: readonly [{
90
- readonly indexed: false;
91
- readonly internalType: "bytes32";
92
- readonly name: "topic";
93
- readonly type: "bytes32";
94
- }, {
95
- readonly indexed: false;
96
- readonly internalType: "uint256";
97
- readonly name: "depositId";
98
- readonly type: "uint256";
99
- }];
100
- readonly name: "DepositCallInvoked";
101
- readonly type: "event";
102
- }, {
103
- readonly anonymous: false;
104
- readonly inputs: readonly [{
105
- readonly indexed: false;
106
- readonly internalType: "bytes32";
107
- readonly name: "topic";
108
- readonly type: "bytes32";
109
- }];
110
- readonly name: "DepositCallFailed";
111
- readonly type: "event";
112
- }];
@@ -1,169 +0,0 @@
1
- export declare const SNOWBRIDGE_L2_ADAPTOR: readonly [{
2
- readonly inputs: readonly [{
3
- readonly components: readonly [{
4
- readonly internalType: "address";
5
- readonly name: "inputToken";
6
- readonly type: "address";
7
- }, {
8
- readonly internalType: "address";
9
- readonly name: "outputToken";
10
- readonly type: "address";
11
- }, {
12
- readonly internalType: "uint256";
13
- readonly name: "inputAmount";
14
- readonly type: "uint256";
15
- }, {
16
- readonly internalType: "uint256";
17
- readonly name: "outputAmount";
18
- readonly type: "uint256";
19
- }, {
20
- readonly internalType: "uint256";
21
- readonly name: "destinationChainId";
22
- readonly type: "uint256";
23
- }, {
24
- readonly internalType: "uint32";
25
- readonly name: "fillDeadlineBuffer";
26
- readonly type: "uint32";
27
- }];
28
- readonly internalType: "struct DepositParams";
29
- readonly name: "params";
30
- readonly type: "tuple";
31
- }, {
32
- readonly components: readonly [{
33
- readonly internalType: "uint256";
34
- readonly name: "inputAmount";
35
- readonly type: "uint256";
36
- }, {
37
- readonly internalType: "address";
38
- readonly name: "router";
39
- readonly type: "address";
40
- }, {
41
- readonly internalType: "bytes";
42
- readonly name: "callData";
43
- readonly type: "bytes";
44
- }];
45
- readonly internalType: "struct SwapParams";
46
- readonly name: "swapParams";
47
- readonly type: "tuple";
48
- }, {
49
- readonly components: readonly [{
50
- readonly internalType: "bytes";
51
- readonly name: "xcm";
52
- readonly type: "bytes";
53
- }, {
54
- readonly internalType: "bytes[]";
55
- readonly name: "assets";
56
- readonly type: "bytes[]";
57
- }, {
58
- readonly internalType: "bytes";
59
- readonly name: "claimer";
60
- readonly type: "bytes";
61
- }, {
62
- readonly internalType: "uint128";
63
- readonly name: "executionFee";
64
- readonly type: "uint128";
65
- }, {
66
- readonly internalType: "uint128";
67
- readonly name: "relayerFee";
68
- readonly type: "uint128";
69
- }];
70
- readonly internalType: "struct SendParams";
71
- readonly name: "sendParams";
72
- readonly type: "tuple";
73
- }, {
74
- readonly internalType: "address";
75
- readonly name: "recipient";
76
- readonly type: "address";
77
- }, {
78
- readonly internalType: "bytes32";
79
- readonly name: "topic";
80
- readonly type: "bytes32";
81
- }];
82
- readonly name: "sendTokenAndCall";
83
- readonly outputs: readonly [];
84
- readonly stateMutability: "nonpayable";
85
- readonly type: "function";
86
- }, {
87
- readonly inputs: readonly [{
88
- readonly components: readonly [{
89
- readonly internalType: "address";
90
- readonly name: "inputToken";
91
- readonly type: "address";
92
- }, {
93
- readonly internalType: "address";
94
- readonly name: "outputToken";
95
- readonly type: "address";
96
- }, {
97
- readonly internalType: "uint256";
98
- readonly name: "inputAmount";
99
- readonly type: "uint256";
100
- }, {
101
- readonly internalType: "uint256";
102
- readonly name: "outputAmount";
103
- readonly type: "uint256";
104
- }, {
105
- readonly internalType: "uint256";
106
- readonly name: "destinationChainId";
107
- readonly type: "uint256";
108
- }, {
109
- readonly internalType: "uint32";
110
- readonly name: "fillDeadlineBuffer";
111
- readonly type: "uint32";
112
- }];
113
- readonly internalType: "struct DepositParams";
114
- readonly name: "params";
115
- readonly type: "tuple";
116
- }, {
117
- readonly components: readonly [{
118
- readonly internalType: "bytes";
119
- readonly name: "xcm";
120
- readonly type: "bytes";
121
- }, {
122
- readonly internalType: "bytes[]";
123
- readonly name: "assets";
124
- readonly type: "bytes[]";
125
- }, {
126
- readonly internalType: "bytes";
127
- readonly name: "claimer";
128
- readonly type: "bytes";
129
- }, {
130
- readonly internalType: "uint128";
131
- readonly name: "executionFee";
132
- readonly type: "uint128";
133
- }, {
134
- readonly internalType: "uint128";
135
- readonly name: "relayerFee";
136
- readonly type: "uint128";
137
- }];
138
- readonly internalType: "struct SendParams";
139
- readonly name: "sendParams";
140
- readonly type: "tuple";
141
- }, {
142
- readonly internalType: "address";
143
- readonly name: "recipient";
144
- readonly type: "address";
145
- }, {
146
- readonly internalType: "bytes32";
147
- readonly name: "topic";
148
- readonly type: "bytes32";
149
- }];
150
- readonly name: "sendEtherAndCall";
151
- readonly outputs: readonly [];
152
- readonly stateMutability: "payable";
153
- readonly type: "function";
154
- }, {
155
- readonly anonymous: false;
156
- readonly inputs: readonly [{
157
- readonly indexed: false;
158
- readonly internalType: "bytes32";
159
- readonly name: "topic";
160
- readonly type: "bytes32";
161
- }, {
162
- readonly indexed: false;
163
- readonly internalType: "uint256";
164
- readonly name: "depositId";
165
- readonly type: "uint256";
166
- }];
167
- readonly name: "DepositCallInvoked";
168
- readonly type: "event";
169
- }];
@@ -1,48 +0,0 @@
1
- export declare const UNISWAP_V3_QUOTER: readonly [{
2
- readonly inputs: readonly [{
3
- readonly components: readonly [{
4
- readonly internalType: "address";
5
- readonly name: "tokenIn";
6
- readonly type: "address";
7
- }, {
8
- readonly internalType: "address";
9
- readonly name: "tokenOut";
10
- readonly type: "address";
11
- }, {
12
- readonly internalType: "uint256";
13
- readonly name: "amount";
14
- readonly type: "uint256";
15
- }, {
16
- readonly internalType: "uint24";
17
- readonly name: "fee";
18
- readonly type: "uint24";
19
- }, {
20
- readonly internalType: "uint160";
21
- readonly name: "sqrtPriceLimitX96";
22
- readonly type: "uint160";
23
- }];
24
- readonly internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
25
- readonly name: "params";
26
- readonly type: "tuple";
27
- }];
28
- readonly name: "quoteExactOutputSingle";
29
- readonly outputs: readonly [{
30
- readonly internalType: "uint256";
31
- readonly name: "amountIn";
32
- readonly type: "uint256";
33
- }, {
34
- readonly internalType: "uint160";
35
- readonly name: "sqrtPriceX96After";
36
- readonly type: "uint160";
37
- }, {
38
- readonly internalType: "uint32";
39
- readonly name: "initializedTicksCrossed";
40
- readonly type: "uint32";
41
- }, {
42
- readonly internalType: "uint256";
43
- readonly name: "gasEstimate";
44
- readonly type: "uint256";
45
- }];
46
- readonly stateMutability: "nonpayable";
47
- readonly type: "function";
48
- }];
@@ -1,48 +0,0 @@
1
- export declare const UNISWAP_V3_SWAP_ROUTER: readonly [{
2
- readonly inputs: readonly [{
3
- readonly components: readonly [{
4
- readonly internalType: "address";
5
- readonly name: "tokenIn";
6
- readonly type: "address";
7
- }, {
8
- readonly internalType: "address";
9
- readonly name: "tokenOut";
10
- readonly type: "address";
11
- }, {
12
- readonly internalType: "uint24";
13
- readonly name: "fee";
14
- readonly type: "uint24";
15
- }, {
16
- readonly internalType: "address";
17
- readonly name: "recipient";
18
- readonly type: "address";
19
- }, {
20
- readonly internalType: "uint256";
21
- readonly name: "deadline";
22
- readonly type: "uint256";
23
- }, {
24
- readonly internalType: "uint256";
25
- readonly name: "amountOut";
26
- readonly type: "uint256";
27
- }, {
28
- readonly internalType: "uint256";
29
- readonly name: "amountInMaximum";
30
- readonly type: "uint256";
31
- }, {
32
- readonly internalType: "uint160";
33
- readonly name: "sqrtPriceLimitX96";
34
- readonly type: "uint160";
35
- }];
36
- readonly internalType: "struct ISwapRouter.ExactOutputSingleParams";
37
- readonly name: "params";
38
- readonly type: "tuple";
39
- }];
40
- readonly name: "exactOutputSingle";
41
- readonly outputs: readonly [{
42
- readonly internalType: "uint256";
43
- readonly name: "amountIn";
44
- readonly type: "uint256";
45
- }];
46
- readonly stateMutability: "payable";
47
- readonly type: "function";
48
- }];