@galacticcouncil/xc-core 1.1.0 → 1.1.1-pr332-2c0b9f6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/evm/abi/Snowbridge.d.ts +57 -0
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -416,4 +416,61 @@ export declare const SNOWBRIDGE: readonly [{
|
|
|
416
416
|
}];
|
|
417
417
|
readonly stateMutability: "view";
|
|
418
418
|
readonly type: "function";
|
|
419
|
+
}, {
|
|
420
|
+
readonly inputs: readonly [{
|
|
421
|
+
readonly internalType: "address";
|
|
422
|
+
readonly name: "token";
|
|
423
|
+
readonly type: "address";
|
|
424
|
+
}, {
|
|
425
|
+
readonly internalType: "ParaID";
|
|
426
|
+
readonly name: "destinationChain";
|
|
427
|
+
readonly type: "uint32";
|
|
428
|
+
}, {
|
|
429
|
+
readonly internalType: "uint128";
|
|
430
|
+
readonly name: "destinationFee";
|
|
431
|
+
readonly type: "uint128";
|
|
432
|
+
}];
|
|
433
|
+
readonly name: "quoteSendTokenFee";
|
|
434
|
+
readonly outputs: readonly [{
|
|
435
|
+
readonly internalType: "uint256";
|
|
436
|
+
readonly name: "";
|
|
437
|
+
readonly type: "uint256";
|
|
438
|
+
}];
|
|
439
|
+
readonly stateMutability: "view";
|
|
440
|
+
readonly type: "function";
|
|
441
|
+
}, {
|
|
442
|
+
readonly inputs: readonly [{
|
|
443
|
+
readonly internalType: "address";
|
|
444
|
+
readonly name: "token";
|
|
445
|
+
readonly type: "address";
|
|
446
|
+
}, {
|
|
447
|
+
readonly internalType: "ParaID";
|
|
448
|
+
readonly name: "destinationChain";
|
|
449
|
+
readonly type: "uint32";
|
|
450
|
+
}, {
|
|
451
|
+
readonly components: readonly [{
|
|
452
|
+
readonly internalType: "enum Kind";
|
|
453
|
+
readonly name: "kind";
|
|
454
|
+
readonly type: "uint8";
|
|
455
|
+
}, {
|
|
456
|
+
readonly internalType: "bytes";
|
|
457
|
+
readonly name: "data";
|
|
458
|
+
readonly type: "bytes";
|
|
459
|
+
}];
|
|
460
|
+
readonly internalType: "struct MultiAddress";
|
|
461
|
+
readonly name: "destinationAddress";
|
|
462
|
+
readonly type: "tuple";
|
|
463
|
+
}, {
|
|
464
|
+
readonly internalType: "uint128";
|
|
465
|
+
readonly name: "destinationFee";
|
|
466
|
+
readonly type: "uint128";
|
|
467
|
+
}, {
|
|
468
|
+
readonly internalType: "uint128";
|
|
469
|
+
readonly name: "amount";
|
|
470
|
+
readonly type: "uint128";
|
|
471
|
+
}];
|
|
472
|
+
readonly name: "sendToken";
|
|
473
|
+
readonly outputs: readonly [];
|
|
474
|
+
readonly stateMutability: "payable";
|
|
475
|
+
readonly type: "function";
|
|
419
476
|
}];
|
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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});
|
|
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:()=>d,Chain:()=>l,ChainEcosystem:()=>ve,ChainRoutes:()=>V,ChainType:()=>T,ConfigBuilder:()=>qe,ConfigService:()=>O,ContractConfig:()=>me,Erc20Client:()=>ae,EvmChain:()=>se,EvmClient:()=>C,EvmParachain:()=>ie,ExtrinsicConfig:()=>le,MoveConfig:()=>de,Parachain:()=>k,Precompile:()=>st,ProgramConfig:()=>ce,Snowbridge:()=>E,SolanaChain:()=>re,SolanaQueryConfig:()=>pe,SubstrateQueryConfig:()=>ye,SuiChain:()=>oe,SuiQueryConfig:()=>ue,TransferValidation:()=>be,TransferValidationError:()=>fe,TransferValidator:()=>he,Wormhole:()=>m,XcmVersion:()=>Pe,addr:()=>g,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||{}),T=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s.EvmChain="evm-chain",s.SolanaChain="solana-chain",s.SuiChain="sui-chain",s))(T||{}),l=class{assetsData;ecosystem;explorer;isTestChain;key;name;_dex;constructor({assetsData:e,ecosystem:t,explorer:n,isTestChain:a=!1,key:s,name:r}){this.assetsData=new Map(e.map(y=>[y.asset.key,y])),this.ecosystem=t,this.explorer=n,this.isTestChain=a,this.key=s,this.name=r}get dex(){if(!this._dex)throw new Error(`No DEX attached to chain ${this.key}`);return this._dex}registerDex(e){return this._dex=e,this}isSubstrate(){return this.getType()==="parachain"||this.getType()==="evm-parachain"}isEvm(){return this.getType()==="evm-chain"||this.getType()==="evm-parachain"}isSolana(){return this.getType()==="solana-chain"}isSui(){return this.getType()==="sui-chain"}isEvmChain(){return this.getType()==="evm-chain"}isEvmParachain(){return this.getType()==="evm-parachain"}isParachain(){return this.getType()==="parachain"}getAsset(e){return this.assetsData.get(e)?.asset}getAssetId(e){return this.assetsData.get(e.key)?.id??e.originSymbol}getAssetDecimals(e){return this.assetsData.get(e.key)?.decimals}getAssetMin(e){return this.assetsData.get(e.key)?.min??0}getBalanceAssetId(e){return this.assetsData.get(e.key)?.balanceId??this.getAssetId(e)}updateAsset(e){this.assetsData.set(e.asset.key,e)}};var 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 De=[{inputs:[{internalType:"uint32",name:"paraId",type:"uint32"},{internalType:"bytes32",name:"beneficiary",type:"bytes32"},{components:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct PolkadotXcm.AssetAddressInfo[]",name:"assets",type:"tuple[]"},{internalType:"uint32",name:"feeAssetItem",type:"uint32"}],name:"transferAssetsToPara32",outputs:[],stateMutability:"nonpayable",type:"function"}];var Re=[{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"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{internalType:"uint128",name:"destinationFee",type:"uint128"}],name:"quoteSendTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{internalType:"uint128",name:"destinationFee",type:"uint128"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"sendToken",outputs:[],stateMutability:"payable",type:"function"}];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:De,Snowbridge:Re,TokenBridge:Be,TokenRelayer:Ve};var st={Batch:"0x0000000000000000000000000000000000000808",Bridge:"0x0000000000000000000000000000000000000816",PolkadotXcm:"0x000000000000000000000000000000000000081A"};var Ge=require("viem");var g={};S(g,{EvmAddr:()=>J,SolanaAddr:()=>Y,Ss58Addr:()=>z,SuiAddr:()=>Q});var D=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,D.getSs58AddressInfo)(e);return t.isValid&&t.publicKey.length===32}static isValid(e){return this.isSs58Strict(e)}static getPubKey(e){if(!this.isSs58Strict(e))throw new Error("Invalid SS58 address");let t=(0,D.getSs58AddressInfo)(e);if(!t.isValid)throw new Error("Invalid SS58 address");return(0,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,D.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:()=>ct,findGlobalConsensus:()=>mt,findNestedKey:()=>R,findPalletInstance:()=>dt,findParachain:()=>lt});var He="GlobalConsensus",_e="Parachain",Ne="GeneralIndex",Ke="PalletInstance",R=(i,e)=>{let t=[];return JSON.stringify(i,(n,a)=>{let s=typeof a=="bigint"?a.toString():a;return a&&a[e]&&t.push(s),s}),t[0]},mt=i=>{let e=R(i,He);return e&&e[He]},lt=i=>{let e=R(i,_e);return e&&e[_e]},dt=i=>{let e=R(i,Ke);return e&&e[Ke]},ct=i=>{let e=R(i,Ne);return e&&e[Ne]};var{EvmAddr:ft}=g,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}=g,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",Tt=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:Tt};throw Error("Chain currency configuration not found")}};var G=require("@mysten/sui/client");var gt="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(gt.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 d=(a=>(a.Evm="Evm",a.Substrate="Substrate",a.Solana="Solana",a.Sui="Sui",a))(d||{});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 de=class extends o{transaction;constructor({transaction:e,...t}){super({...t,type:"Sui"}),this.transaction=e}};var ce=class extends o{instructions;signers;rentReserve;constructor({instructions:e,signers:t,rentReserve:n,...a}){super({...a,type:"Solana"}),this.instructions=e,this.signers=t,this.rentReserve=n??0n}};var 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(c=>c.tags?.includes(F)):h,ze=X.find(c=>c.destination.asset.originSymbol===c.source.asset.originSymbol)||X[0],Te=P?e.getAsset(P):ze.destination.asset,ge=e.getAssetRoutes(Te,w,u),Je=(F?ge.filter(c=>c.tags?.includes(F)):[])[0]??ge[0],Ye=X.find(c=>c.destination.asset===Te);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 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};
|
|
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 Ke=(s=>(s.v1="V1",s.v2="V2",s.v3="V3",s.v4="V4",s.v5="V5",s))(Ke||{}),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"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{internalType:"uint128",name:"destinationFee",type:"uint128"}],name:"quoteSendTokenFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"ParaID",name:"destinationChain",type:"uint32"},{components:[{internalType:"enum Kind",name:"kind",type:"uint8"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct MultiAddress",name:"destinationAddress",type:"tuple"},{internalType:"uint128",name:"destinationFee",type:"uint128"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"sendToken",outputs:[],stateMutability:"payable",type:"function"}];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 Kn={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 Oe}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 Oe(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:()=>K});import{getTypedCodecs as Xe}from"polkadot-api";import{hub as $e}from"@galacticcouncil/descriptors";var k=null;async function K(){return k||(k=await Xe($e),k)}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 O,XcmV5Junctions as nt}from"@galacticcouncil/descriptors";async function oe(){let e=(await K()).tx.PolkadotXcm.send.inner.dest,t=Je({destination:e});return Ye({V1:t})}function at(i,e,t){let n;if(t)n=O.AccountKey20({key:e,network:void 0});else{let a=ze().enc(e);n=O.AccountId32({id:Qe.toHex(a),network:void 0})}return tt.V5({parents:1,interior:nt.X2([O.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 I=class{source;destination;contract;extrinsic;move;program;transact;tags;constructor({source:e,destination:t,contract:n,extrinsic:a,move:s,program:r,transact:p,tags:y}){this.source=e,this.destination=t,this.contract=n,this.extrinsic=a,this.move=s,this.program=r,this.transact=p,this.tags=y}};var 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 I({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)}},ke=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()],Ie=F.length>1,Re=F.length===1&&d.length>1;return{routes:d,destinationAssets:F,isAssetSelect:Ie,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,I 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,Kn 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,ke as TransferValidator,u as Wormhole,Ke as XcmVersion,h as addr,re as codec,pe as mrl,ce as multiloc};
|