@wormhole-foundation/wormhole-connect 2.5.0-beta.6-development → 2.5.0-beta.7-development
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/dist/assets/{aptos-C1kJwF_9.js → aptos-B_l6-YSt.js} +2 -2
- package/dist/assets/{ccip-u-dcupj6.js → ccip-Clh7lDFd.js} +1 -1
- package/dist/assets/{create-CPwTP7kz.js → create-BrCILL-b.js} +1 -1
- package/dist/assets/events-Qrc8Qc0_.js +1 -0
- package/dist/assets/{evm-BsYn5oKw.js → evm-Dxka2v4f.js} +3 -3
- package/dist/assets/{evm-Dxzjrop9.js → evm-yUSNrxzF.js} +2 -2
- package/dist/assets/{index-CeaghD18.js → index-5IQaHp4s.js} +1 -1
- package/dist/assets/{index-ZIIwf20G.js → index-6HbyQ3jY.js} +1 -1
- package/dist/assets/{index-B9rs0U5M.js → index-BQuYDEQ6.js} +1 -1
- package/dist/assets/{index-CgFxnAZU.js → index-BcCKudwp.js} +2 -2
- package/dist/assets/{index-BH7tq5f6.js → index-BhIi21d2.js} +1 -1
- package/dist/assets/{index-DdnPSi37.js → index-CQTb26AL.js} +1 -1
- package/dist/assets/{index-DL0M3nJj.js → index-CTAjt_cp.js} +1 -1
- package/dist/assets/{index-B5MVX_TK.js → index-CVMIiUin.js} +1 -1
- package/dist/assets/{index-CCKwEjtb.js → index-CW9rA1zL.js} +1 -1
- package/dist/assets/{index-DNbxAEYp.js → index-CbV0zEo3.js} +1 -1
- package/dist/assets/{index-DtRRvCNn.js → index-CdW-fp8-.js} +1 -1
- package/dist/assets/{index-BjJiAUgL.js → index-CvMogzDh.js} +1 -1
- package/dist/assets/{index-CMzm2YRG.js → index-CxTqvuay.js} +1 -1
- package/dist/assets/{index-zq3lVwnm.js → index-DJS8zG6I.js} +1 -1
- package/dist/assets/{index-BVOiU4Pb.js → index-DUQ09nhZ.js} +1 -1
- package/dist/assets/{index-DCq08Jxr.js → index-DanTVZ2H.js} +1 -1
- package/dist/assets/{index-C1DsDrDL.js → index-DbuCffZl.js} +1 -1
- package/dist/assets/{index-DGS3sLO1.js → index-GUU3bnHw.js} +1 -1
- package/dist/assets/{index-B3ZaqhJg.js → index-VJdR0Vsp.js} +1 -1
- package/dist/assets/{index-DoiRS04H.js → index-XyUKebX5.js} +1 -1
- package/dist/assets/{index-Ci4biYvU.js → index-toVQVrsP.js} +1 -1
- package/dist/assets/{index.es-Cw18p-se.js → index.es-BK07yBK8.js} +6 -6
- package/dist/assets/{signer-C3DgLdvN.js → signer-Cqdo4YRC.js} +2 -2
- package/dist/assets/{solana-CGFN2NGX.js → solana-CeiXWtGd.js} +2 -2
- package/dist/assets/solana-DqfcEf7L.js +2 -0
- package/dist/assets/solanaEmbed.esm-BW4sfcDG.js +37 -0
- package/dist/assets/{sui-CnHcn_0B.js → sui-TntjpiE6.js} +2 -2
- package/dist/assets/{tokens-FDI1dtAz.js → tokens-wBpWq5l5.js} +1 -1
- package/dist/main.js +51 -51
- package/dist/src/config/tokens.d.ts +1 -2
- package/dist/src/config/tokens.d.ts.map +1 -1
- package/lib/{address-BOtk71bD.mjs → address-D74XlMdi.mjs} +1 -1
- package/lib/{address-BLzPWV-E.mjs → address-DXFbgyJW.mjs} +2 -2
- package/lib/{aptos-IOOei1no.mjs → aptos-BI_Iw81A.mjs} +3 -3
- package/lib/{aptos-VYpUdIbK.js → aptos-Bo2QKL_o.js} +2 -2
- package/lib/{aptos-BbiOuC0T.mjs → aptos-TMGaJnTR.mjs} +7 -7
- package/lib/{aptos-Cu3bovru.js → aptos-epuCDnon.js} +1 -1
- package/lib/{base64-DGCRk9J5.mjs → base64-DPCMLrON.mjs} +1 -1
- package/lib/{blake2b-m1jftOvW.mjs → blake2b-BmQx89Cf.mjs} +1 -1
- package/lib/{browser-ponyfill-P9fgAaV3.mjs → browser-ponyfill-Zjbs5ehD.mjs} +1 -1
- package/lib/{ccip-BwSVKpKT.js → ccip-B0XlsT4q.js} +1 -1
- package/lib/{ccip-BMIJyUMJ.mjs → ccip-O9JiAu3g.mjs} +1 -1
- package/lib/{chain-CT7ecDhV.mjs → chain-DaAd2Ztf.mjs} +1 -1
- package/lib/{chunk-IMTC3J2M-Cp_ALcg7.mjs → chunk-IMTC3J2M-Bn3rs7tb.mjs} +3 -3
- package/lib/{constants-Zb1SDoyk.js → constants-CRRDPpKq.js} +1 -1
- package/lib/{constants-CNaB7Vz0.mjs → constants-C_ygygtY.mjs} +2 -2
- package/lib/{contract-DMlP6-52.mjs → contract-BI_HDILr.mjs} +1 -1
- package/lib/{create-CjSkS1wx.mjs → create-CzWSWmF_.mjs} +1 -1
- package/lib/{evm-vs1nuIX9.js → evm-A_vVgbuq.js} +3 -3
- package/lib/{evm-BE8FQL2W.mjs → evm-B2vaKgl-.mjs} +9 -9
- package/lib/{evm-BnY3Xjp5.mjs → evm-BUp3X3u_.mjs} +9 -9
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/{index-TyTI1Rpd.mjs → index--QOOnO1S.mjs} +5 -5
- package/lib/{index-C-Sne3wZ.mjs → index-09ytttgm.mjs} +6 -6
- package/lib/{index-Bbko3kbd.mjs → index-5xE5bjpW.mjs} +1 -1
- package/lib/{index-DeaOcW3T.mjs → index-BLYjmYmu.mjs} +5 -5
- package/lib/{index-BX0NN4Gt.js → index-BLuX2qUK.js} +1 -1
- package/lib/{index-S9YvWjL2.mjs → index-BQwsEzas.mjs} +5 -5
- package/lib/{index-ZmrIUx4G.mjs → index-BYzONVwG.mjs} +7 -7
- package/lib/{index-VhZz7aDm.mjs → index-BbCcdl9J.mjs} +6 -6
- package/lib/{index-ClX6MswJ.mjs → index-BkHLwIMc.mjs} +1 -1
- package/lib/{index-R5pl_ZX0.mjs → index-Blt9MjZK.mjs} +1 -1
- package/lib/{index-BY3N1cHu.mjs → index-BtHKcrCx.mjs} +21865 -21889
- package/lib/{index-BeAbMbxI.mjs → index-BziywkBj.mjs} +5 -5
- package/lib/{index-CI0Gn3Tr.mjs → index-C2dc1ibN.mjs} +4 -4
- package/lib/{index-BoK8jtU6.mjs → index-C2jOUiub.mjs} +5 -5
- package/lib/{index-YiE0Zsh0.js → index-C6phwYcf.js} +1 -1
- package/lib/{index-D_8MTXNV.mjs → index-CGbZMLbJ.mjs} +3 -3
- package/lib/{index-B7vCK49k.js → index-CJ6ix-Ba.js} +1 -1
- package/lib/{index-BRxAbtLw.mjs → index-CJoOaE4V.mjs} +4 -4
- package/lib/{index-ByrxHjjX.mjs → index-C_dsyQjC.mjs} +1 -1
- package/lib/{index-v3wQXRCS.mjs → index-CdOqWihR.mjs} +4 -4
- package/lib/{index-lvBUAOOb.mjs → index-Cuu-xM0U.mjs} +5 -5
- package/lib/{index-vqUqbyTO.js → index-D1iGkVve.js} +1 -1
- package/lib/{index-BbhVOL8z.mjs → index-D527cJNU.mjs} +2 -2
- package/lib/{index-weOIpRUj.mjs → index-DQjqwKVk.mjs} +2 -2
- package/lib/{index-BWwLAsAv.js → index-Ds-8m9FJ.js} +1 -1
- package/lib/{index-B17gCPnx.mjs → index-DwNe7jw9.mjs} +4 -4
- package/lib/index-DyolZrtw.js +355 -0
- package/lib/{index-BnTn8Ra7.mjs → index-N9ZubIRF.mjs} +5 -5
- package/lib/{index-AcRpa_1A.js → index-OfCAPJfY.js} +1 -1
- package/lib/{index-XlKQRRY9.mjs → index-XFRw6zfV.mjs} +2 -2
- package/lib/{index-D65KCvoe.mjs → index-oV6GYK1F.mjs} +5 -5
- package/lib/{index-CFCr59i-.mjs → index-p5ykk6bd.mjs} +6 -6
- package/lib/{index-DqluC-QK.mjs → index-pjyIirVB.mjs} +2 -2
- package/lib/{index-B5e-iwF_.mjs → index-y9KziNii.mjs} +5 -5
- package/lib/{index.es-DnSeZgSJ.js → index.es-BqwtNmK3.js} +1 -1
- package/lib/{index.es-CdFzFJtS.mjs → index.es-CJSS5-PQ.mjs} +7 -7
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/mayan.mjs +10 -10
- package/lib/{mint-BHIE4XFB.mjs → mint-BjwZUbPm.mjs} +2 -2
- package/lib/ntt.mjs +10 -10
- package/lib/{platform-BsNmwXAy.mjs → platform-C-edrCmf.mjs} +4 -4
- package/lib/{platform-DOga68Bc.mjs → platform-pi9E7cPR.mjs} +4 -4
- package/lib/{provider-jsonrpc-BtYTlWkE.mjs → provider-jsonrpc-BjcoR80W.mjs} +2 -2
- package/lib/{sha3-CZwWmC3Q.mjs → sha3-B1KxiAa7.mjs} +1 -1
- package/lib/{signer-B1DCc2KI.mjs → signer-CgLO7fBA.mjs} +2 -2
- package/lib/{solana-Br8elCCP.mjs → solana-DEc3dpb3.mjs} +6 -6
- package/lib/{solana-C8zlP6_h.js → solana-RUZ7vSZb.js} +1 -1
- package/lib/solana-qHqB-cdc.mjs +18 -0
- package/lib/{solanaEmbed.esm-Caj_Jj25.js → solanaEmbed.esm-BF_4DBII.js} +1 -1
- package/lib/{solanaEmbed.esm-BF9ZsaBv.mjs → solanaEmbed.esm-y9UuVJCt.mjs} +3 -3
- package/lib/src/config/tokens.d.ts +1 -2
- package/lib/src/config/tokens.d.ts.map +1 -1
- package/lib/{sui-BSf2eNzs.js → sui-3nmolqRQ.js} +1 -1
- package/lib/{sui-BbWdjR65.mjs → sui-BDhyN78F.mjs} +3 -3
- package/lib/{sui-CCb2n4c-.mjs → sui-CuwmPzXZ.mjs} +8 -8
- package/lib/{tokens-Bn_yP9Gg.js → tokens-BKAVin7G.js} +1 -1
- package/lib/{tokens-BZX5r0x9.mjs → tokens-DKyJNITj.mjs} +4 -4
- package/lib/{units-B-syE-VK.mjs → units-YO78Cq5F.mjs} +2 -2
- package/lib/{unsignedTransaction-CO7Y1iWp.mjs → unsignedTransaction-Cj476rGh.mjs} +3 -3
- package/lib/{web3-CC6BgYUE.mjs → web3--AtxvLIy.mjs} +1 -1
- package/package.json +1 -1
- package/dist/assets/solana-D-RpLbqD.js +0 -2
- package/dist/assets/solanaEmbed.esm-BkAurkzW.js +0 -37
- package/lib/index-jd5KnKOn.js +0 -355
- package/lib/solana-Dz4VHyCV.mjs +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
var m=Object.defineProperty;var T=(c,e,t)=>e in c?m(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var f=(c,e,t)=>T(c,typeof e!="symbol"?e+"":e,t);import{E as g,C as h}from"./evm-Dxzjrop9.js";import{I as v,C as M}from"./contract-CiHLuMan.js";import{r as S}from"./chain-CxM3TvYC.js";import{af as w,ak as r,c7 as u,c9 as x,cn as I,aQ as C,cb as A,ad as G}from"../main.js";import{c as F}from"./create-CPwTP7kz.js";class U{constructor(e,t,b,n,a=!1){f(this,"transaction");f(this,"network");f(this,"chain");f(this,"description");f(this,"parallelizable");this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=a}}class y{constructor(e,t,b,n){f(this,"network");f(this,"chain");f(this,"provider");f(this,"contracts");f(this,"chainId");f(this,"coreAddress");f(this,"core");f(this,"coreIface");this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=w.get(e,t),this.coreIface=d.createInterface();const a=this.contracts.coreBridge;if(!a)throw new Error("Core bridge address not found");this.coreAddress=a,this.core=d.connect(a,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await g.chainFromRpc(e),a=t[n];if(a.network!==b)throw new Error(`Network mismatch: ${a.network} != ${b}`);return new y(b,n,e,a.contracts)}async*publishMessage(e,t,b,n){const a=new r(e).toString(),s=await this.getMessageFee(),i=await this.core.publishMessage.populateTransaction(b,t,n,{value:s});yield this.createUnsignedTx(u(i,a),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new r(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(x(t));yield this.createUnsignedTx(u(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:a}=b,s=this.coreIface.parseLog({topics:n.slice(),data:a});if(s===null)return;const i=new r(s.args.sender);return{chain:this.chain,emitter:i.toUniversalAddress(),sequence:s.args.sequence}}).filter(I)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:a,data:s}=n,i=this.coreIface.parseLog({topics:a.slice(),data:s});if(i===null)return null;const l=new r(i.args.sender);return F("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:l.toUniversalAddress(),consistencyLevel:Number(i.args.consistencyLevel),sequence:BigInt(i.args.sequence),nonce:Number(i.args.nonce),signatures:[],payload:C.decode(i.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new U(A(e,this.chainId),this.network,this.chain,t,b)}}const p=[{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"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],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:"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:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{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:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],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 GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{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"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{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:"submitRecoverChainId",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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],o="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",k=c=>c.length>1;class d extends h{constructor(...e){k(e)?super(...e):super(p,o,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new v(p)}static connect(e,t){return new M(e,p,t)}}f(d,"bytecode",o),f(d,"abi",p);const q=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:d},Symbol.toStringTag,{value:"Module"}));S(G,"WormholeCore",y);const N=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:y,ethers_contracts:q},Symbol.toStringTag,{value:"Module"}));export{y as E,U as a,N as i};
|
|
1
|
+
var m=Object.defineProperty;var T=(c,e,t)=>e in c?m(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var a=(c,e,t)=>T(c,typeof e!="symbol"?e+"":e,t);import{E as g,C as h}from"./evm-yUSNrxzF.js";import{I as v,C as M}from"./contract-CiHLuMan.js";import{r as S}from"./chain-CxM3TvYC.js";import{af as w,ak as r,c6 as u,c8 as x,cm as I,aQ as C,ca as A,ad as G}from"../main.js";import{c as F}from"./create-BrCILL-b.js";class U{constructor(e,t,b,n,f=!1){a(this,"transaction");a(this,"network");a(this,"chain");a(this,"description");a(this,"parallelizable");this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=f}}class y{constructor(e,t,b,n){a(this,"network");a(this,"chain");a(this,"provider");a(this,"contracts");a(this,"chainId");a(this,"coreAddress");a(this,"core");a(this,"coreIface");this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=w.get(e,t),this.coreIface=d.createInterface();const f=this.contracts.coreBridge;if(!f)throw new Error("Core bridge address not found");this.coreAddress=f,this.core=d.connect(f,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await g.chainFromRpc(e),f=t[n];if(f.network!==b)throw new Error(`Network mismatch: ${f.network} != ${b}`);return new y(b,n,e,f.contracts)}async*publishMessage(e,t,b,n){const f=new r(e).toString(),s=await this.getMessageFee(),i=await this.core.publishMessage.populateTransaction(b,t,n,{value:s});yield this.createUnsignedTx(u(i,f),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new r(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(x(t));yield this.createUnsignedTx(u(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:f}=b,s=this.coreIface.parseLog({topics:n.slice(),data:f});if(s===null)return;const i=new r(s.args.sender);return{chain:this.chain,emitter:i.toUniversalAddress(),sequence:s.args.sequence}}).filter(I)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:f,data:s}=n,i=this.coreIface.parseLog({topics:f.slice(),data:s});if(i===null)return null;const l=new r(i.args.sender);return F("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:l.toUniversalAddress(),consistencyLevel:Number(i.args.consistencyLevel),sequence:BigInt(i.args.sequence),nonce:Number(i.args.nonce),signatures:[],payload:C.decode(i.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new U(A(e,this.chainId),this.network,this.chain,t,b)}}const p=[{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"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],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:"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:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{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:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],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 GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{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"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{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:"submitRecoverChainId",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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{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:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],o="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",k=c=>c.length>1;class d extends h{constructor(...e){k(e)?super(...e):super(p,o,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new v(p)}static connect(e,t){return new M(e,p,t)}}a(d,"bytecode",o),a(d,"abi",p);const q=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:d},Symbol.toStringTag,{value:"Module"}));S(G,"WormholeCore",y);const N=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:y,ethers_contracts:q},Symbol.toStringTag,{value:"Module"}));export{y as E,U as a,N as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var k=Object.defineProperty;var v=(u,s,t)=>s in u?k(u,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[s]=t;var i=(u,s,t)=>v(u,typeof s!="symbol"?s+"":s,t);import{T as f,S as w}from"./sui-
|
|
1
|
+
var k=Object.defineProperty;var v=(u,s,t)=>s in u?k(u,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[s]=t;var i=(u,s,t)=>v(u,typeof s!="symbol"?s+"":s,t);import{T as f,S as w}from"./sui-TntjpiE6.js";import{cK as C,cd as S,cb as _,cc as b,aQ as y,ce as T}from"../main.js";import{S as M}from"./unsignedTransaction-arVvzoJx.js";import{r as x}from"./chain-CxM3TvYC.js";import"./blake2b-D2bgIwtM.js";import"./index-CEwrJRrR.js";const j=[["Testnet",{tokenMessengerState:"0x5252abd1137094ed1db3e0d75bc36abcd287aee4bc310f8e047727ef5682e7c2",messageTransmitterState:"0x98234bd0fa9ac12cc0a20a144a22e36d6a32f7e0a97baaeaf9c76cdc6d122d2e",usdcTreasury:"0x7170137d4a6431bf83351ac025baf462909bffe2877d87716374fb42b9629ebe"}],["Mainnet",{tokenMessengerState:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",messageTransmitterState:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",usdcTreasury:"0x57d6725e7a8b49a7b2a612f6bd66ab5f39fc95332ca48be421c3229d514a6de7"}]],E=C(j,[0,1]);class p{constructor(s,t,r,e){i(this,"network");i(this,"chain");i(this,"provider");i(this,"contracts");i(this,"usdcId");i(this,"usdcTreasuryId");i(this,"tokenMessengerId");i(this,"tokenMessengerStateId");i(this,"messageTransmitterId");i(this,"messageTransmitterStateId");var m,d,g,h;if(this.network=s,this.chain=t,this.provider=r,this.contracts=e,s==="Devnet")throw new Error("CircleBridge not supported on Devnet");const n=S.get(this.network,this.chain);if(!n)throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);const{tokenMessengerState:o,messageTransmitterState:a,usdcTreasury:c}=E(s);if(!((m=e.cctp)!=null&&m.tokenMessenger))throw new Error(`Circle Token Messenger contract for domain ${t} not found`);if(!((d=e.cctp)!=null&&d.messageTransmitter))throw new Error(`Circle Message Transmitter contract for domain ${t} not found`);this.usdcId=n,this.usdcTreasuryId=c,this.tokenMessengerId=(g=e.cctp)==null?void 0:g.tokenMessenger,this.messageTransmitterId=(h=e.cctp)==null?void 0:h.messageTransmitter,this.tokenMessengerStateId=o,this.messageTransmitterStateId=a}async*transfer(s,t,r){const e=new f,n=_.get(this.network,t.chain),[o,...a]=await w.getCoins(this.provider,s,this.usdcId);if(o===void 0)throw new Error("No USDC in wallet");const c=e.object(o.coinObjectId);a.length>0&&e.mergeCoins(c,a.map(d=>e.object(d.coinObjectId)));const[m]=e.splitCoins(c,[r]);e.moveCall({target:`${this.tokenMessengerId}::deposit_for_burn::deposit_for_burn`,arguments:[m,e.pure.u32(n),e.pure.address(t.address.toUniversalAddress().toString()),e.object(this.tokenMessengerStateId),e.object(this.messageTransmitterStateId),e.object("0x403"),e.object(this.usdcTreasuryId)],typeArguments:[this.usdcId]}),yield this.createUnsignedTx(e,"Sui.CircleBridge.Transfer")}async isTransferCompleted(s){const t=new f;t.moveCall({target:`${this.messageTransmitterId}::state::is_nonce_used`,arguments:[t.object(this.messageTransmitterStateId),t.pure.u32(s.sourceDomain),t.pure.u64(s.nonce)]});const r=await this.provider.devInspectTransactionBlock({sender:"0x0000000000000000000000000000000000000000000000000000000000000000",transactionBlock:t});try{return!!r.results[0].returnValues[0][0][0]}catch(e){return console.error(`Error reading if nonce was used: ${e}`),!1}}async*redeem(s,t,r){const e=new f,[n]=e.moveCall({target:`${this.messageTransmitterId}::receive_message::receive_message`,arguments:[e.pure.vector("u8",b.serialize(t)),e.pure.vector("u8",y.decode(r)),e.object(this.messageTransmitterStateId)]});if(!n)throw new Error("Failed to produce receipt");const[o]=e.moveCall({target:`${this.tokenMessengerId}::handle_receive_message::handle_receive_message`,arguments:[n,e.object(this.tokenMessengerStateId),e.object("0x403"),e.object(this.usdcTreasuryId)],typeArguments:[this.usdcId]});if(!o)throw new Error("Failed to produce stamp receipt ticket with burn message");const[a]=e.moveCall({target:`${this.tokenMessengerId}::handle_receive_message::deconstruct_stamp_receipt_ticket_with_burn_message`,arguments:[o]});if(!a)throw new Error("Failed to produce stamp receipt ticket");const[c]=e.moveCall({target:`${this.messageTransmitterId}::receive_message::stamp_receipt`,arguments:[a,e.object(this.messageTransmitterStateId)],typeArguments:[`${this.tokenMessengerId}::message_transmitter_authenticator::MessageTransmitterAuthenticator`]});if(!c)throw new Error("Failed to produce stamped receipt");e.moveCall({target:`${this.messageTransmitterId}::receive_message::complete_receive_message`,arguments:[c,e.object(this.messageTransmitterStateId)]}),yield this.createUnsignedTx(e,"Sui.CircleBridge.Redeem")}async parseTransactionDetails(s){var l;const t=await this.provider.waitForTransaction({digest:s,options:{showEvents:!0,showEffects:!0,showInput:!0}});if(!t)throw new Error("Transaction not found");if(!t.events)throw new Error("Transaction events not found");const r=(l=t.events)==null?void 0:l.find(I=>I.type.includes("send_message::MessageSent"));if(!r)throw new Error("No MessageSent event found");const e=new Uint8Array((r==null?void 0:r.parsedJson).message),[n,o]=b.deserialize(e),{payload:a}=n,c=a.messageSender,m=a.mintRecipient,d=T(this.network,n.sourceDomain),g=T(this.network,n.destinationDomain),h={chain:d,address:a.burnToken};return{from:{chain:d,address:c},to:{chain:g,address:m},token:h,amount:a.amount,message:n,id:{hash:o}}}static async fromRpc(s,t){const[r,e]=await w.chainFromRpc(s),n=t[e];if(n.network!==r)throw new Error(`Network mismatch: ${n.network} != ${r}`);return new p(r,e,s,n.contracts)}createUnsignedTx(s,t,r=!1){return new M(s,this.network,this.chain,t,r)}}x("Sui","CircleBridge",p);export{p as SuiCircleBridge,j as _suiCircleObjects,E as suiCircleObjects};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ue=Object.defineProperty;var Te=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>Te(r,typeof e!="symbol"?e+"":e,t);import{P as m,d as g,cA as ne,cB as Ce,T as ke,cC as _e,co as M,aN as Pe,c4 as L,cr as U,cs as V,aI as q,bR as oe,cD as ve,cE as ze,K as re,D as j,c8 as Ke,aJ as qe}from"../main.js";import{d as l,P as Fe,c as Ve}from"./index-CCKwEjtb.js";import{b as De,e as Oe}from"./signer-C3DgLdvN.js";import{c as Ge}from"./create-CPwTP7kz.js";import{r as Ne}from"./chain-CxM3TvYC.js";const se=r=>typeof r=="string"?g.Buffer.from(r):r;function b(r,e){return m.findProgramAddressSync(Array.isArray(r)?r.map(se):[se(r)],new m(e))[0]}function Mt(r,e){return{pubkey:new m(r),isWritable:!0,isSigner:e}}function bt(r,e){return{pubkey:new m(r),isWritable:!1,isSigner:e}}function z(r){if(r===null)throw Error("account info is null");return r.data}const ue=new m("BPFLoaderUpgradeab1e11111111111111111111111");function Re(r){return b([new m(r).toBuffer()],ue)}class $e extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>I(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?I(r,s.type):I(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return I(r,e.type.value)}}function I(r,e){var t;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+I(r,e.option);if("coption"in e)return 4+I(r,e.coption);if("defined"in e){const n=((t=r.types)==null?void 0:t.filter(a=>a.name===e.defined))??[];if(n.length!==1)throw new $e(`Type not found: ${JSON.stringify(e)}`);let s=n[0];return ce(r,s)}if("array"in e){let n=e.array[0],s=e.array[1];return I(r,n)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ye(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ge=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...ne},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...ne},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ce(ge,r)}function T(r,e,t,n){const s=typeof e=="string"?g.Buffer.from(e,"hex"):g.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=g.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),b([s,(()=>{const i=g.Buffer.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function je(r,e,t,n,s,a){return r.getAccountInfo(T(e,t,n,s),a).then(i=>!!z(i)[0])}function S(r){return b([g.Buffer.from("Bridge")],r)}async function fe(r,e,t){return r.getAccountInfo(S(e),t).then(n=>O.deserialize(z(n)))}class D{constructor(e,t){u(this,"guardianSetExpirationTime");u(this,"fee");this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new D(t,n)}}class O{constructor(e,t,n){u(this,"guardianSetIndex");u(this,"lastLamports");u(this,"config");this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=D.deserialize(e.subarray(12));return new O(t,n,s)}}function G(r,e){return b([g.Buffer.from("Sequence"),new m(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(G(e,t),n).then(s=>N.deserialize(z(s)))}class N{constructor(e,t,n){u(this,"sequence");u(this,"bump");u(this,"emitterType");this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new N(s,t,n)}value(){return this.sequence}}function W(r){return b([g.Buffer.from("emitter")],r)}function H(r,e){const t=W(r);return{emitter:t,sequence:G(t,e)}}async function We(r,e,t,n){return me(r,W(e),t,n)}function C(r){return b([g.Buffer.from("fee_collector")],r)}const ae=65,P=20;function He(r,e,t){return new ke({keys:[],programId:_e.programId,data:Je.serialize(r,e,t)})}class Je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,o=ae+P,c=i+s*o,f=32,d=g.Buffer.alloc(c+f);d.writeUInt8(s,0),d.write(n.toString("hex"),c,"hex");for(let p=0;p<s;++p){const y=e.at(p);if((y==null?void 0:y.length)!=ae)throw Error(`signatures[${p}].length != 65`);const h=t.at(p);if((h==null?void 0:h.length)!=P)throw Error(`keys[${p}].length != 20`);const A=i+o*p,k=A+65;d.writeUInt16LE(A,1+p*a),d.writeUInt8(0,3+p*a),d.writeUInt16LE(k,4+p*a),d.writeUInt8(0,6+p*a),d.writeUInt16LE(c,7+p*a),d.writeUInt16LE(f,9+p*a),d.writeUInt8(0,10+p*a),d.write(y.toString("hex"),A,"hex"),d.write(h.toString("hex"),k,"hex")}return d}}function x(r,e){return b([g.Buffer.from("GuardianSet"),(()=>{const t=g.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function J(r,e,t,n){return r.getAccountInfo(x(e,t),n).then(s=>R.deserialize(z(s)))}class R{constructor(e,t,n,s){u(this,"index");u(this,"keys");u(this,"creationTime");u(this,"expirationTime");this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),o=[];for(let c=0;c<n;++c){const f=8+c*P;o.push(e.subarray(f,f+P))}return new R(t,o,a,i)}}function E(r,e){return b([g.Buffer.from("PostedVAA"),e],r)}async function Qe(r,e,t){return r.getAccountInfo(new m(e),t).then(n=>$.deserialize(z(n)))}class ${constructor(e,t,n){u(this,"signatures");u(this,"hash");u(this,"guardianSetIndex");this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(o=>o!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new $(n,a,i)}}function le(r){return b([g.Buffer.from("upgrade")],r)}function pe(r,e,t){return M.transfer({fromPubkey:new m(e),toPubkey:C(r),lamports:t})}class Xe{constructor(e){u(this,"idl");this.idl=e}async encode(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Ze{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class B{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return l.bool(n);case"u8":return l.u8(n);case"i8":return l.i8(n);case"u16":return l.u16(n);case"i16":return l.i16(n);case"u32":return l.u32(n);case"i32":return l.i32(n);case"f32":return l.f32(n);case"u64":return l.u64(n);case"i64":return l.i64(n);case"f64":return l.f64(n);case"u128":return l.u128(n);case"i128":return l.i128(n);case"u256":return l.u256(n);case"i256":return l.i256(n);case"bytes":return l.vecU8(n);case"string":return l.str(n);case"publicKey":return l.publicKey(n);default:{if("vec"in e.type)return l.vec(B.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return l.option(B.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=B.fieldLayout({name:void 0,type:s},t);return l.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class Q{constructor(e){u(this,"ixLayout");this.ixLayout=Q.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}));return new Map(n)}encode(e,t){const n=g.Buffer.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),o=n.slice(0,i);return et(F[Ye(s)],o)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){var o;typeof e=="string"&&(e=t==="hex"?g.Buffer.from(e,"hex"):Pe.decode(e));let n=g.Buffer.from(e.slice(0,1)).readInt8(),s=g.Buffer.from(e.slice(1)),a=_(F[n]??"");return this.ixLayout.get(a)?{data:(o=this.ixLayout.get(a))==null?void 0:o.decode(s),name:a}:null}}var F;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(F||(F={}));function et(r,e){const t=g.Buffer.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class tt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class nt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class rt{constructor(e){u(this,"instruction");u(this,"accounts");u(this,"state");u(this,"events");u(this,"types");this.instruction=new Q(e),this.accounts=new Xe(e),this.state=new tt(e),this.events=new Ze(e),this.types=new nt(e)}}const X={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function ye(r,e){return new Fe(X,new m(r),e===void 0?{connection:null}:e,he())}function w(r,e){return ye(r,Ve(e))}function he(){return new rt(X)}function st(r,e,t,n){const s=w(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:Se(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),systemProgram:M.programId}}function at(r,e,t,n,s){const a=w(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:we(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t,n){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(n.hash)),claim:T(r,n.emitterAddress.toString(),L(n.emitterChain),n.sequence),feeCollector:C(r),recipient:new m(t),rent:U,systemProgram:M.programId}}function it(r,e,t,n){const s=w(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),guardianSetOld:x(r,t.guardianSet),guardianSetNew:x(r,t.guardianSet+1),systemProgram:M.programId}}function ot(r,e,t,n){const s=w(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:be(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),upgradeAuthority:le(r),spill:new m(n===void 0?e:n),implementation:new q(s).unwrap(),programData:Re(r),wormholeProgram:new m(r),rent:U,clock:V,bpfLoaderUpgradeable:ue,systemProgram:M.programId}}function ut(r,e,t,n,s,a){const i=w(e,r).methods.initialize(n,new oe(s.toString()),[...a.map(o=>[...new Uint8Array(o)])]);return i._ixFn(...i._args,{accounts:Ae(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ae(r,e){return{bridge:S(r),guardianSet:x(r,0),feeCollector:C(r),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}function Ie(r,e,t,n,s,a,i){const o=w(e,r).methods.postMessage(a,g.Buffer.from(s),i);return o._ixFn(...o._args,{accounts:Z(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Z(r,e,t,n){let s;return n?{emitter:n,sequence:s}=H(n,r):(n=e,s=G(n,r)),{bridge:S(r),message:new m(t),emitter:new m(n),sequence:s,payer:new m(e),feeCollector:C(r),clock:V,rent:U,systemProgram:M.programId}}function xe(r,e,t,n,s){const a=w(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,L(n.emitterChain),[...n.emitterAddress.toUint8Array()],new oe(n.sequence.toString()),n.consistencyLevel,g.Buffer.from(ve(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:Ee(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ee(r,e,t,n){return{guardianSet:x(r,n.guardianSet),bridge:S(r),signatureSet:new m(t),vaa:E(r,g.Buffer.from(n.hash)),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}const ct=19;async function Be(r,e,t,n,s,a){const i=n.guardianSet,o=await J(r,e,i,a),c=n.signatures,f=o.keys,d=7,p=[];for(let y=0;y<Math.ceil(c.length/d);++y){const h=y*d,A=Math.min(c.length,(y+1)*d),k=new Array(ct).fill(-1),ee=[],te=[];for(let K=0;K<A-h;++K){const Y=c.at(K+h);ee.push(g.Buffer.from(Y.signature.encode())),te.push(f.at(Y.guardianIndex)),k[Y.guardianIndex]=K}p.push(He(ee,te,g.Buffer.from(n.hash))),p.push(gt(r,e,t,n,s,k))}return p}function gt(r,e,t,n,s,a){const i=w(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new m(e),guardianSet:x(r,n.guardianSet),signatureSet:new m(t),instructions:ze,rent:U,systemProgram:M.programId}}function dt(r,e){const{emitter:t,sequence:n}=H(r,e);return{wormholeBridge:S(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:C(e)}}function ft(r,e,t,n){const s=Z(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const mt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:D,BridgeData:O,GuardianSetData:R,SequenceTracker:N,SignatureSetData:$,coder:he,createBridgeFeeTransferInstruction:pe,createInitializeInstruction:ut,createPostMessageInstruction:Ie,createPostVaaInstruction:xe,createReadOnlyWormholeProgramInterface:w,createSetFeesInstruction:st,createTransferFeesInstruction:at,createUpgradeContractInstruction:ot,createUpgradeGuardianSetInstruction:it,createVerifySignaturesInstructions:Be,createWormholeProgramInterface:ye,deriveClaimKey:T,deriveEmitterSequenceKey:G,deriveFeeCollectorKey:C,deriveGuardianSetKey:x,derivePostedVaaKey:E,deriveUpgradeAuthorityKey:le,deriveWormholeBridgeDataKey:S,deriveWormholeEmitterKey:W,getClaim:je,getEmitterKeys:H,getGuardianSet:J,getInitializeAccounts:Ae,getPostMessageAccounts:Z,getPostMessageCpiAccounts:ft,getPostVaaAccounts:Ee,getProgramSequenceTracker:We,getSequenceTracker:me,getSetFeesAccounts:Se,getSignatureSetData:Qe,getTransferFeesAccounts:we,getUpgradeContractAccounts:be,getUpgradeGuardianSetAccounts:Me,getVerifySignatureAccounts:Le,getWormholeBridgeData:fe,getWormholeDerivedAccounts:dt},Symbol.toStringTag,{value:"Module"})),ie="Program log: Sequence: ";class v{constructor(e,t,n,s){u(this,"network");u(this,"chain");u(this,"connection");u(this,"contracts");u(this,"chainId");u(this,"coreBridge");u(this,"address");u(this,"bridgeData");this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=L(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=w(a,n)}async getGuardianSet(e){const t=await J(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await De.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await fe(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=re.generate(),i=new q(e).unwrap(),o=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),c=await this.getMessageFee(),f=pe(this.coreBridge.programId,i,c),d=new j;d.feePayer=i,d.add(f,o),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=E(this.coreBridge.programId,g.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new q(e).unwrap(),i=re.generate(),o=await Be(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<o.length;f+=2){const d=new j().add(...o.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const c=new j().add(xe(this.connection,this.coreBridge.programId,a,t,i.publicKey));c.feePayer=a,yield this.createUnsignedTx({transaction:c},"Core.PostVAA")}static parseSequenceFromLog(e,t){var c,f,d,p;const{meta:n,transaction:{message:s}}=t;if(!((c=n==null?void 0:n.innerInstructions)!=null&&c.length))return[];const a=s.staticAccountKeys;if(a.filter(y=>y.toString()===e).length===0)return[];const i=(p=(d=(f=n==null?void 0:n.logMessages)==null?void 0:f.filter(y=>y.startsWith(ie)))==null?void 0:d[0])==null?void 0:p.replace(ie,"");if(!i)return[];const o=[];for(const y of n==null?void 0:n.innerInstructions){const h=y.instructions;o.push(...h.filter(A=>A.programIdIndex in a&&a[A.programIdIndex].toString()===e))}return o.length<1?[]:a.length<3?[]:o.map(y=>[new q(a[y.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(y=>y!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){var c;const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=(c=n.innerInstructions)==null?void 0:c.flatMap(f=>f.instructions.filter(d=>a.toString()===e.get(d.programIdIndex).toString())).map(f=>({programIdIndex:f.programIdIndex,accountKeyIndexes:f.accounts})),o=s.compiledInstructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString());return[...i,...o]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!(t!=null&&t.data))throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:o,nonce:c,payload:f}=de(new Uint8Array(t==null?void 0:t.data));return Ge("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:Ke(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:o,nonce:c,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[o,c]=i[0];return[{chain:this.chain,emitter:o,sequence:c}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]),c=await this.parsePostMessageAccount(o);return{chain:c.emitterChain,emitter:c.emitterAddress,sequence:c.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(o)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Oe(e,this.network,this.chain,t,n)}}Ne(qe,"WormholeCore",v);const At=Object.freeze(Object.defineProperty({__proto__:null,IDL:X,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ge,utils:mt},Symbol.toStringTag,{value:"Module"}));export{ue as B,v as S,S as a,W as b,G as c,C as d,T as e,E as f,We as g,b as h,z as i,ce as j,bt as k,Z as l,Re as m,Mt as n,le as o,ft as p,dt as q,je as r,pe as s,At as t};
|
|
1
|
+
var Ue=Object.defineProperty;var Te=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>Te(r,typeof e!="symbol"?e+"":e,t);import{P as m,d as g,cz as ne,cA as Ce,T as ke,cB as _e,cn as M,aN as Pe,c3 as L,cq as U,cr as V,aI as q,bQ as oe,cC as ve,cD as ze,K as re,D as j,c7 as Ke,aJ as qe}from"../main.js";import{d as l,P as Fe,c as Ve}from"./index-CW9rA1zL.js";import{b as De,e as Oe}from"./signer-Cqdo4YRC.js";import{c as Ge}from"./create-BrCILL-b.js";import{r as Ne}from"./chain-CxM3TvYC.js";const se=r=>typeof r=="string"?g.Buffer.from(r):r;function b(r,e){return m.findProgramAddressSync(Array.isArray(r)?r.map(se):[se(r)],new m(e))[0]}function Mt(r,e){return{pubkey:new m(r),isWritable:!0,isSigner:e}}function bt(r,e){return{pubkey:new m(r),isWritable:!1,isSigner:e}}function z(r){if(r===null)throw Error("account info is null");return r.data}const ue=new m("BPFLoaderUpgradeab1e11111111111111111111111");function Re(r){return b([new m(r).toBuffer()],ue)}class $e extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>I(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?I(r,s.type):I(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return I(r,e.type.value)}}function I(r,e){var t;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+I(r,e.option);if("coption"in e)return 4+I(r,e.coption);if("defined"in e){const n=((t=r.types)==null?void 0:t.filter(a=>a.name===e.defined))??[];if(n.length!==1)throw new $e(`Type not found: ${JSON.stringify(e)}`);let s=n[0];return ce(r,s)}if("array"in e){let n=e.array[0],s=e.array[1];return I(r,n)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ye(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ge=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...ne},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...ne},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ce(ge,r)}function T(r,e,t,n){const s=typeof e=="string"?g.Buffer.from(e,"hex"):g.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=g.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),b([s,(()=>{const i=g.Buffer.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function je(r,e,t,n,s,a){return r.getAccountInfo(T(e,t,n,s),a).then(i=>!!z(i)[0])}function S(r){return b([g.Buffer.from("Bridge")],r)}async function fe(r,e,t){return r.getAccountInfo(S(e),t).then(n=>O.deserialize(z(n)))}class D{constructor(e,t){u(this,"guardianSetExpirationTime");u(this,"fee");this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new D(t,n)}}class O{constructor(e,t,n){u(this,"guardianSetIndex");u(this,"lastLamports");u(this,"config");this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=D.deserialize(e.subarray(12));return new O(t,n,s)}}function G(r,e){return b([g.Buffer.from("Sequence"),new m(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(G(e,t),n).then(s=>N.deserialize(z(s)))}class N{constructor(e,t,n){u(this,"sequence");u(this,"bump");u(this,"emitterType");this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new N(s,t,n)}value(){return this.sequence}}function W(r){return b([g.Buffer.from("emitter")],r)}function H(r,e){const t=W(r);return{emitter:t,sequence:G(t,e)}}async function We(r,e,t,n){return me(r,W(e),t,n)}function C(r){return b([g.Buffer.from("fee_collector")],r)}const ae=65,P=20;function He(r,e,t){return new ke({keys:[],programId:_e.programId,data:Je.serialize(r,e,t)})}class Je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,o=ae+P,c=i+s*o,f=32,d=g.Buffer.alloc(c+f);d.writeUInt8(s,0),d.write(n.toString("hex"),c,"hex");for(let p=0;p<s;++p){const y=e.at(p);if((y==null?void 0:y.length)!=ae)throw Error(`signatures[${p}].length != 65`);const h=t.at(p);if((h==null?void 0:h.length)!=P)throw Error(`keys[${p}].length != 20`);const A=i+o*p,k=A+65;d.writeUInt16LE(A,1+p*a),d.writeUInt8(0,3+p*a),d.writeUInt16LE(k,4+p*a),d.writeUInt8(0,6+p*a),d.writeUInt16LE(c,7+p*a),d.writeUInt16LE(f,9+p*a),d.writeUInt8(0,10+p*a),d.write(y.toString("hex"),A,"hex"),d.write(h.toString("hex"),k,"hex")}return d}}function x(r,e){return b([g.Buffer.from("GuardianSet"),(()=>{const t=g.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function J(r,e,t,n){return r.getAccountInfo(x(e,t),n).then(s=>R.deserialize(z(s)))}class R{constructor(e,t,n,s){u(this,"index");u(this,"keys");u(this,"creationTime");u(this,"expirationTime");this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),o=[];for(let c=0;c<n;++c){const f=8+c*P;o.push(e.subarray(f,f+P))}return new R(t,o,a,i)}}function E(r,e){return b([g.Buffer.from("PostedVAA"),e],r)}async function Qe(r,e,t){return r.getAccountInfo(new m(e),t).then(n=>$.deserialize(z(n)))}class ${constructor(e,t,n){u(this,"signatures");u(this,"hash");u(this,"guardianSetIndex");this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(o=>o!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new $(n,a,i)}}function le(r){return b([g.Buffer.from("upgrade")],r)}function pe(r,e,t){return M.transfer({fromPubkey:new m(e),toPubkey:C(r),lamports:t})}class Xe{constructor(e){u(this,"idl");this.idl=e}async encode(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Ze{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class B{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return l.bool(n);case"u8":return l.u8(n);case"i8":return l.i8(n);case"u16":return l.u16(n);case"i16":return l.i16(n);case"u32":return l.u32(n);case"i32":return l.i32(n);case"f32":return l.f32(n);case"u64":return l.u64(n);case"i64":return l.i64(n);case"f64":return l.f64(n);case"u128":return l.u128(n);case"i128":return l.i128(n);case"u256":return l.u256(n);case"i256":return l.i256(n);case"bytes":return l.vecU8(n);case"string":return l.str(n);case"publicKey":return l.publicKey(n);default:{if("vec"in e.type)return l.vec(B.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return l.option(B.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=B.fieldLayout({name:void 0,type:s},t);return l.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class Q{constructor(e){u(this,"ixLayout");this.ixLayout=Q.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}));return new Map(n)}encode(e,t){const n=g.Buffer.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),o=n.slice(0,i);return et(F[Ye(s)],o)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){var o;typeof e=="string"&&(e=t==="hex"?g.Buffer.from(e,"hex"):Pe.decode(e));let n=g.Buffer.from(e.slice(0,1)).readInt8(),s=g.Buffer.from(e.slice(1)),a=_(F[n]??"");return this.ixLayout.get(a)?{data:(o=this.ixLayout.get(a))==null?void 0:o.decode(s),name:a}:null}}var F;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(F||(F={}));function et(r,e){const t=g.Buffer.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class tt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class nt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class rt{constructor(e){u(this,"instruction");u(this,"accounts");u(this,"state");u(this,"events");u(this,"types");this.instruction=new Q(e),this.accounts=new Xe(e),this.state=new tt(e),this.events=new Ze(e),this.types=new nt(e)}}const X={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function ye(r,e){return new Fe(X,new m(r),e===void 0?{connection:null}:e,he())}function w(r,e){return ye(r,Ve(e))}function he(){return new rt(X)}function st(r,e,t,n){const s=w(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:Se(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),systemProgram:M.programId}}function at(r,e,t,n,s){const a=w(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:we(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t,n){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(n.hash)),claim:T(r,n.emitterAddress.toString(),L(n.emitterChain),n.sequence),feeCollector:C(r),recipient:new m(t),rent:U,systemProgram:M.programId}}function it(r,e,t,n){const s=w(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),guardianSetOld:x(r,t.guardianSet),guardianSetNew:x(r,t.guardianSet+1),systemProgram:M.programId}}function ot(r,e,t,n){const s=w(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:be(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),upgradeAuthority:le(r),spill:new m(n===void 0?e:n),implementation:new q(s).unwrap(),programData:Re(r),wormholeProgram:new m(r),rent:U,clock:V,bpfLoaderUpgradeable:ue,systemProgram:M.programId}}function ut(r,e,t,n,s,a){const i=w(e,r).methods.initialize(n,new oe(s.toString()),[...a.map(o=>[...new Uint8Array(o)])]);return i._ixFn(...i._args,{accounts:Ae(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ae(r,e){return{bridge:S(r),guardianSet:x(r,0),feeCollector:C(r),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}function Ie(r,e,t,n,s,a,i){const o=w(e,r).methods.postMessage(a,g.Buffer.from(s),i);return o._ixFn(...o._args,{accounts:Z(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Z(r,e,t,n){let s;return n?{emitter:n,sequence:s}=H(n,r):(n=e,s=G(n,r)),{bridge:S(r),message:new m(t),emitter:new m(n),sequence:s,payer:new m(e),feeCollector:C(r),clock:V,rent:U,systemProgram:M.programId}}function xe(r,e,t,n,s){const a=w(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,L(n.emitterChain),[...n.emitterAddress.toUint8Array()],new oe(n.sequence.toString()),n.consistencyLevel,g.Buffer.from(ve(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:Ee(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ee(r,e,t,n){return{guardianSet:x(r,n.guardianSet),bridge:S(r),signatureSet:new m(t),vaa:E(r,g.Buffer.from(n.hash)),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}const ct=19;async function Be(r,e,t,n,s,a){const i=n.guardianSet,o=await J(r,e,i,a),c=n.signatures,f=o.keys,d=7,p=[];for(let y=0;y<Math.ceil(c.length/d);++y){const h=y*d,A=Math.min(c.length,(y+1)*d),k=new Array(ct).fill(-1),ee=[],te=[];for(let K=0;K<A-h;++K){const Y=c.at(K+h);ee.push(g.Buffer.from(Y.signature.encode())),te.push(f.at(Y.guardianIndex)),k[Y.guardianIndex]=K}p.push(He(ee,te,g.Buffer.from(n.hash))),p.push(gt(r,e,t,n,s,k))}return p}function gt(r,e,t,n,s,a){const i=w(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new m(e),guardianSet:x(r,n.guardianSet),signatureSet:new m(t),instructions:ze,rent:U,systemProgram:M.programId}}function dt(r,e){const{emitter:t,sequence:n}=H(r,e);return{wormholeBridge:S(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:C(e)}}function ft(r,e,t,n){const s=Z(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const mt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:D,BridgeData:O,GuardianSetData:R,SequenceTracker:N,SignatureSetData:$,coder:he,createBridgeFeeTransferInstruction:pe,createInitializeInstruction:ut,createPostMessageInstruction:Ie,createPostVaaInstruction:xe,createReadOnlyWormholeProgramInterface:w,createSetFeesInstruction:st,createTransferFeesInstruction:at,createUpgradeContractInstruction:ot,createUpgradeGuardianSetInstruction:it,createVerifySignaturesInstructions:Be,createWormholeProgramInterface:ye,deriveClaimKey:T,deriveEmitterSequenceKey:G,deriveFeeCollectorKey:C,deriveGuardianSetKey:x,derivePostedVaaKey:E,deriveUpgradeAuthorityKey:le,deriveWormholeBridgeDataKey:S,deriveWormholeEmitterKey:W,getClaim:je,getEmitterKeys:H,getGuardianSet:J,getInitializeAccounts:Ae,getPostMessageAccounts:Z,getPostMessageCpiAccounts:ft,getPostVaaAccounts:Ee,getProgramSequenceTracker:We,getSequenceTracker:me,getSetFeesAccounts:Se,getSignatureSetData:Qe,getTransferFeesAccounts:we,getUpgradeContractAccounts:be,getUpgradeGuardianSetAccounts:Me,getVerifySignatureAccounts:Le,getWormholeBridgeData:fe,getWormholeDerivedAccounts:dt},Symbol.toStringTag,{value:"Module"})),ie="Program log: Sequence: ";class v{constructor(e,t,n,s){u(this,"network");u(this,"chain");u(this,"connection");u(this,"contracts");u(this,"chainId");u(this,"coreBridge");u(this,"address");u(this,"bridgeData");this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=L(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=w(a,n)}async getGuardianSet(e){const t=await J(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await De.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await fe(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=re.generate(),i=new q(e).unwrap(),o=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),c=await this.getMessageFee(),f=pe(this.coreBridge.programId,i,c),d=new j;d.feePayer=i,d.add(f,o),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=E(this.coreBridge.programId,g.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new q(e).unwrap(),i=re.generate(),o=await Be(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<o.length;f+=2){const d=new j().add(...o.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const c=new j().add(xe(this.connection,this.coreBridge.programId,a,t,i.publicKey));c.feePayer=a,yield this.createUnsignedTx({transaction:c},"Core.PostVAA")}static parseSequenceFromLog(e,t){var c,f,d,p;const{meta:n,transaction:{message:s}}=t;if(!((c=n==null?void 0:n.innerInstructions)!=null&&c.length))return[];const a=s.staticAccountKeys;if(a.filter(y=>y.toString()===e).length===0)return[];const i=(p=(d=(f=n==null?void 0:n.logMessages)==null?void 0:f.filter(y=>y.startsWith(ie)))==null?void 0:d[0])==null?void 0:p.replace(ie,"");if(!i)return[];const o=[];for(const y of n==null?void 0:n.innerInstructions){const h=y.instructions;o.push(...h.filter(A=>A.programIdIndex in a&&a[A.programIdIndex].toString()===e))}return o.length<1?[]:a.length<3?[]:o.map(y=>[new q(a[y.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(y=>y!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){var c;const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=(c=n.innerInstructions)==null?void 0:c.flatMap(f=>f.instructions.filter(d=>a.toString()===e.get(d.programIdIndex).toString())).map(f=>({programIdIndex:f.programIdIndex,accountKeyIndexes:f.accounts})),o=s.compiledInstructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString());return[...i,...o]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!(t!=null&&t.data))throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:o,nonce:c,payload:f}=de(new Uint8Array(t==null?void 0:t.data));return Ge("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:Ke(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:o,nonce:c,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[o,c]=i[0];return[{chain:this.chain,emitter:o,sequence:c}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]),c=await this.parsePostMessageAccount(o);return{chain:c.emitterChain,emitter:c.emitterAddress,sequence:c.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(o)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Oe(e,this.network,this.chain,t,n)}}Ne(qe,"WormholeCore",v);const At=Object.freeze(Object.defineProperty({__proto__:null,IDL:X,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ge,utils:mt},Symbol.toStringTag,{value:"Module"}));export{ue as B,v as S,S as a,W as b,G as c,C as d,T as e,E as f,We as g,b as h,z as i,ce as j,bt as k,Z as l,Re as m,Mt as n,le as o,ft as p,dt as q,je as r,pe as s,At as t};
|