@wormhole-foundation/wormhole-connect 4.0.0-beta.0-development → 4.0.0-beta.1-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-CIKjhZ5R.js → aptos-CaGPw7HM.js} +2 -2
- package/dist/assets/create-54a95t1x.js +1 -0
- package/dist/assets/{evm-Ky_mCHhS.js → evm-Bv0RsFka.js} +2 -2
- package/dist/assets/{index-DW7sWcdW.js → index-B5JfIVKE.js} +1 -1
- package/dist/assets/{index-DHLr3HmO.js → index-BCD-VOiF.js} +1 -1
- package/dist/assets/index-BwhO0jGm.js +1 -0
- package/dist/assets/{index-DpM61P6H.js → index-CMULoTsT.js} +1 -1
- package/dist/assets/{index-DZpeOp3V.js → index-CO4HXUmy.js} +1 -1
- package/dist/assets/{index-Bg3NWSHL.js → index-COw2RtBx.js} +1 -1
- package/dist/assets/{index-DRk-Cj0P.js → index-ClrVAZUa.js} +1 -1
- package/dist/assets/{index-D7RgFG0F.js → index-CzQeh-hT.js} +1 -1
- package/dist/assets/{index-Csghphw2.js → index-DC4mZtDw.js} +1 -1
- package/dist/assets/{index-Cqs_fFht.js → index-DI-xN_q3.js} +1 -1
- package/dist/assets/{index-DVbfoP0w.js → index-DRsHBjoG.js} +1 -1
- package/dist/assets/{index-CdAFGcxx.js → index-DXcQbQ8r.js} +1 -1
- package/dist/assets/{index-DJ52h-dV.js → index-DxHhcWFS.js} +1 -1
- package/dist/assets/{index-g9iLhWvp.js → index-GKTf0CV7.js} +1 -1
- package/dist/assets/{index-DuR9wYhp.js → index-aoYIFErC.js} +1 -1
- package/dist/assets/{index-DfNgilHG.js → index-jixjwN_L.js} +1 -1
- package/dist/assets/{solana-jYIeIu4B.js → solana-DpD0VkQS.js} +2 -2
- package/dist/assets/{sui-B96bqBVv.js → sui-7K04yY2U.js} +2 -2
- package/dist/main.js +75 -75
- package/dist/src/components/TokenBalance.d.ts.map +1 -1
- package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
- package/dist/src/config/testnet/tokens.d.ts.map +1 -1
- package/dist/src/contexts/wallet/WalletProvider.d.ts.map +1 -1
- package/dist/src/hooks/useFetchSupportedRoutes.d.ts.map +1 -1
- package/dist/src/hooks/useTokenListWithSearch.d.ts +1 -4
- package/dist/src/hooks/useTokenListWithSearch.d.ts.map +1 -1
- package/dist/src/routes/operator.d.ts.map +1 -1
- package/dist/src/routes/sdkv2/route.d.ts +2 -2
- package/dist/src/routes/sdkv2/route.d.ts.map +1 -1
- package/dist/src/telemetry/types.d.ts +1 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/utils/sdkv2.d.ts.map +1 -1
- package/dist/src/utils/wrappedNativeTokens.d.ts +12 -0
- package/dist/src/utils/wrappedNativeTokens.d.ts.map +1 -0
- package/dist/src/views/Terms.d.ts.map +1 -1
- package/dist/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts +2 -4
- package/dist/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts.map +1 -1
- package/lib/{account-D0Q4K1CI.js → account-24z6tDMM.js} +1 -1
- package/lib/{account-BdDruAAr.mjs → account-BcnWVXmg.mjs} +1 -1
- package/lib/{address-fSXS9iww.mjs → address-BX2fIOro.mjs} +1 -1
- package/lib/{address-BO6rj6uK.js → address-Bc-5yO4D.js} +1 -1
- package/lib/{aptos-B1VSCmD9.mjs → aptos-5b4F4UXd.mjs} +4 -4
- package/lib/{aptos-DG7QN21P.js → aptos-B_Yz-0gh.js} +1 -1
- package/lib/{aptos-BnKScTtI.mjs → aptos-DO_Sexq-.mjs} +7 -7
- package/lib/{aptos-B3C7cnvM.js → aptos-DffuIzI0.js} +2 -2
- package/lib/{basic-BRYkcAmD.mjs → basic-BclwqsOq.mjs} +4 -4
- package/lib/{basic-CN2jAqvS.js → basic-BdiYk8Hf.js} +1 -1
- package/lib/{basic-DufHOLGA.js → basic-CuO6iz8a.js} +1 -1
- package/lib/{basic-Cw13RoYq.mjs → basic-HasHL_DG.mjs} +4 -4
- package/lib/{blake2b-CT6EW399.mjs → blake2b-CVpPk5O9.mjs} +1 -1
- package/lib/{blake2b-B_Q_lTGN.js → blake2b-DXExLbRg.js} +1 -1
- package/lib/{browser-ponyfill-CnfcLhK-.mjs → browser-ponyfill-DeOApqpH.mjs} +1 -1
- package/lib/{browser-ponyfill-DbGoEOBo.js → browser-ponyfill-VhIu9z_I.js} +1 -1
- package/lib/{chain-BCKkYvDb.js → chain-BxNUWKZE.js} +1 -1
- package/lib/{chain-_dXKRkCE.mjs → chain-CvZsIsLh.mjs} +1 -1
- package/lib/{chunk-KJH4KKG6-RA0hChr8.mjs → chunk-KJH4KKG6-BgebMATq.mjs} +2 -2
- package/lib/{chunk-KJH4KKG6-BXBLZwfY.js → chunk-KJH4KKG6-DNlN4p21.js} +1 -1
- package/lib/{constants-QsbOfMbk.mjs → constants-DnbaS3cF.mjs} +3 -3
- package/lib/constants-abC7FLXq.js +1 -0
- package/lib/{contract-MkLF5rqi.js → contract-CTycrpaK.js} +1 -1
- package/lib/{contract-C_4H8x77.mjs → contract-KYuIk_vR.mjs} +1 -1
- package/lib/{core-Cpb3gtg_.js → core-COM78LTW.js} +3 -3
- package/lib/{core-ntLR7o2S.mjs → core-DT_3gIqi.mjs} +6 -6
- package/lib/{create-naslyPfU.mjs → create-BvzkkBPW.mjs} +1 -1
- package/lib/{create-CfgTxAS-.js → create-CGZYy2vu.js} +1 -1
- package/lib/{evm-C6xp3v8Z.mjs → evm-CUR4-a7F.mjs} +9 -9
- package/lib/{evm-B3G2Vkzg.js → evm-CoLwXequ.js} +2 -2
- package/lib/{evm-B20n3mf_.mjs → evm-DoVrPE_X.mjs} +7 -7
- package/lib/{evm-aSG_vFbw.js → evm-Dv-WYu07.js} +2 -2
- package/lib/executor.js +1 -1
- package/lib/executor.mjs +815 -572
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/{index-DSmKiYkD.mjs → index-B1KwS33G.mjs} +5 -5
- package/lib/{index-vhQ5Q8ov.mjs → index-B2sVzSwb.mjs} +52 -97
- package/lib/{index-Bz7ogqhR.mjs → index-B3idKQJG.mjs} +1 -1
- package/lib/index-B7Afz_5P.js +1 -0
- package/lib/{index-Dq7WWqFe.js → index-B7HBnPLP.js} +1 -1
- package/lib/{index-DQX74QAE.js → index-BFBwRlid.js} +1 -1
- package/lib/{index-C6XNAQ4w.js → index-BZZZ8OeS.js} +1 -1
- package/lib/{index-C3LC73WN.js → index-BaYN-RHF.js} +1 -1
- package/lib/{index-BTUx12aa.js → index-Bhwzpq1T.js} +1 -1
- package/lib/{index-MsaML_Ju.mjs → index-Bicx897u.mjs} +2 -2
- package/lib/{index-Dajw3Alx.mjs → index-BlWksu-f.mjs} +1 -1
- package/lib/{index-DS8bl8fA.mjs → index-Bn0hkKKz.mjs} +4 -4
- package/lib/{index-BojkMsXD.js → index-BoKTcLq-.js} +1 -1
- package/lib/{index-BRYq_Nt2.mjs → index-Bp4ojxz6.mjs} +4 -4
- package/lib/{index-Cnznwcdb.js → index-BqabgGIh.js} +1 -1
- package/lib/{index-DxYgNWMY.mjs → index-BtEjOWoP.mjs} +3 -3
- package/lib/{index-BJcbyvof.js → index-C8HxYDNY.js} +1 -1
- package/lib/{index-Bhd_YhUf.js → index-C9Bk-rKp.js} +1 -1
- package/lib/{index-YAL4zolc.js → index-C9uGqcwH.js} +1 -1
- package/lib/{index-BQvEIlB2.mjs → index-CBGUPQXa.mjs} +3 -3
- package/lib/{index-IHxtA-NL.js → index-CGpn3INM.js} +1 -1
- package/lib/{index-BRyW-hBN.mjs → index-CTpINVAG.mjs} +2 -2
- package/lib/{index-bNUantLb.js → index-CjjP3Qp5.js} +1 -1
- package/lib/{index-CU73EUQW.js → index-CkGYgQTz.js} +1 -1
- package/lib/{index-DqzqJgVc.mjs → index-CkvxfaqA.mjs} +3 -3
- package/lib/{index-DfDB5FLw.js → index-ClMpLrxa.js} +1 -1
- package/lib/{index-B7VNYedX.mjs → index-CtU_hkYp.mjs} +4 -4
- package/lib/{index-DMOY218i.js → index-CzRVzbTC.js} +1 -1
- package/lib/{index-B4S4sz6p.mjs → index-Czxl_5Tr.mjs} +5 -5
- package/lib/{index-D0XQIiQn.js → index-D6qJDbzm.js} +1 -1
- package/lib/{index-D-H8WyKb.mjs → index-DGzoIr_I.mjs} +1 -1
- package/lib/{index-BD0gcmCp.mjs → index-DPpi4Don.mjs} +5 -5
- package/lib/{index-7_BfcP8x.mjs → index-DZaOh3F9.mjs} +2105 -2021
- package/lib/{index-QlIJYJce.js → index-DaY7_eQ6.js} +66 -66
- package/lib/{index-C3L-xKvN.mjs → index-DlmQ0_RF.mjs} +4839 -4850
- package/lib/{index-D5ENAOm3.js → index-DmsirrTI.js} +1 -1
- package/lib/{index-DnO0ZdKy.mjs → index-DpN0dULN.mjs} +1 -1
- package/lib/{index-BNuKzxGJ.js → index-DydXCN0v.js} +1 -1
- package/lib/{index-CSMunRpZ.mjs → index-NKV6j8zE.mjs} +3 -3
- package/lib/{index-BIYx5IBr.mjs → index-OlMuNft9.mjs} +3 -3
- package/lib/{index-tztRp3yJ.js → index-P9DbJOzh.js} +1 -1
- package/lib/{index-D1y-l93C.js → index-UbeUI3Ir.js} +1 -1
- package/lib/{index-BZYEbYGY.mjs → index-ZGgSxaDf.mjs} +3 -3
- package/lib/{index-DFpSbD7R.mjs → index-_e8uUnEK.mjs} +5 -5
- package/lib/{index-Cb9lswnP.js → index-cCBQV2Yv.js} +8 -8
- package/lib/{index-B9ybSY9R.mjs → index-cggXdVJu.mjs} +5 -5
- package/lib/{index.es-C476iHvN.mjs → index.es-5ecqX8B9.mjs} +4 -4
- package/lib/{index.es-CU6nhwJO.js → index.es-LBG64XJ6.js} +1 -1
- package/lib/{index.es-CkGpObng.js → index.es-owVcNlof.js} +3 -3
- package/lib/{index.es-CtiAoQ78.mjs → index.es-zNH_KzcH.mjs} +3 -3
- package/lib/index.js +1 -1
- package/lib/index.mjs +5 -5
- package/lib/mayan.js +1 -1
- package/lib/mayan.mjs +11 -11
- package/lib/{mint-zy6P38iu.js → mint-B4t2SvV6.js} +1 -1
- package/lib/{mint-DyoU9X22.mjs → mint-BGuU5y5m.mjs} +1 -1
- package/lib/ntt.js +1 -1
- package/lib/ntt.mjs +14 -12
- package/lib/{platform-x3ZBJ0YM.js → platform-Bkbg7A9d.js} +1 -1
- package/lib/{platform-BqpAMtgx.mjs → platform-C5gJAqtZ.mjs} +3 -3
- package/lib/{platform-BhspUaMJ.js → platform-C6QB7aIN.js} +1 -1
- package/lib/{platform-DQfpyXSV.mjs → platform-DBNvSsue.mjs} +4 -4
- package/lib/{platform-BHAZvZ_O.mjs → platform-DtB8gGMl.mjs} +4 -4
- package/lib/{platform-4nANkJAM.js → platform-qdbxkhTI.js} +1 -1
- package/lib/{provider-jsonrpc-DIXcAw4Q.mjs → provider-jsonrpc-BIIDy-Aw.mjs} +2 -2
- package/lib/{provider-jsonrpc-BCKoIijx.js → provider-jsonrpc-DHzam3ud.js} +1 -1
- package/lib/{secp256k1-CaaRyr2C.mjs → secp256k1-BF6Vm50D.mjs} +1 -1
- package/lib/{secp256k1-C60XBS-e.js → secp256k1-Bb6lbAjK.js} +1 -1
- package/lib/{secp256k1-UnRv5Suy.mjs → secp256k1-BfK5OWRP.mjs} +1 -1
- package/lib/{secp256k1-BWFGSbjt.mjs → secp256k1-CqT-a-I8.mjs} +1 -1
- package/lib/{secp256k1-CFt7TfEF.js → secp256k1-DRTQ6WrU.js} +1 -1
- package/lib/{secp256k1-BIiWvuxu.js → secp256k1-D_GNj8sK.js} +1 -1
- package/lib/{signer-DhO2iGae.mjs → signer-BH3gAHuj.mjs} +2 -2
- package/lib/{signer-BFY1Ytf6.js → signer-MBixef_P.js} +1 -1
- package/lib/{solana-CQk4ocg8.mjs → solana-C1puc64V.mjs} +11 -11
- package/lib/solana-C8xK8qJY.mjs +18 -0
- package/lib/solana-CRSliekb.js +1 -0
- package/lib/{solana-Cp49k9--.js → solana-CtBdJ6Wt.js} +4 -4
- package/lib/{solanaEmbed.esm-Cwa6cl_R.js → solanaEmbed.esm-BpIKVhXq.js} +1 -1
- package/lib/{solanaEmbed.esm-DBOqO9Ii.mjs → solanaEmbed.esm-NdE_DQuw.mjs} +3 -3
- package/lib/src/components/TokenBalance.d.ts.map +1 -1
- package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
- package/lib/src/config/testnet/tokens.d.ts.map +1 -1
- package/lib/src/contexts/wallet/WalletProvider.d.ts.map +1 -1
- package/lib/src/hooks/useFetchSupportedRoutes.d.ts.map +1 -1
- package/lib/src/hooks/useTokenListWithSearch.d.ts +1 -4
- package/lib/src/hooks/useTokenListWithSearch.d.ts.map +1 -1
- package/lib/src/routes/operator.d.ts.map +1 -1
- package/lib/src/routes/sdkv2/route.d.ts +2 -2
- package/lib/src/routes/sdkv2/route.d.ts.map +1 -1
- package/lib/src/telemetry/types.d.ts +1 -0
- package/lib/src/telemetry/types.d.ts.map +1 -1
- package/lib/src/utils/sdkv2.d.ts.map +1 -1
- package/lib/src/utils/wrappedNativeTokens.d.ts +12 -0
- package/lib/src/utils/wrappedNativeTokens.d.ts.map +1 -0
- package/lib/src/views/Terms.d.ts.map +1 -1
- package/lib/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts +2 -4
- package/lib/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts.map +1 -1
- package/lib/{sui-C2a1eehP.mjs → sui-BW7tMLZs.mjs} +4 -4
- package/lib/{sui-9gsoM56W.js → sui-DdujB9Bc.js} +1 -1
- package/lib/{sui-Cr98JBgS.js → sui-QcDjGW68.js} +1 -1
- package/lib/{sui-B4RvzEXx.mjs → sui-euceXgYf.mjs} +7 -7
- package/lib/{tokens-BbFKf6Hv.mjs → tokens-DI-tPIbd.mjs} +3 -3
- package/lib/{tokens-LVHsSbYG.js → tokens-DJos2DwM.js} +1 -1
- package/lib/{transfer-DZ-wNocj.js → transfer-BinEH6ml.js} +1 -1
- package/lib/{transfer-BV1ou1GP.mjs → transfer-DTvv5m_5.mjs} +2 -2
- package/lib/{units-BqUlbZ46.mjs → units-CVEv4txp.mjs} +2 -2
- package/lib/{units-D-oRQjOa.js → units-DtldPRXy.js} +1 -1
- package/lib/{unsignedTransaction-BmxD6VsY.mjs → unsignedTransaction-CVE7GUdC.mjs} +3 -3
- package/lib/{unsignedTransaction-CiPKh85X.js → unsignedTransaction-DL3WyIkF.js} +1 -1
- package/lib/{w3m-modal-3qLkbPfi.mjs → w3m-modal-B2VF8j7W.mjs} +2 -2
- package/lib/{w3m-modal-D4-nrnEK.mjs → w3m-modal-C32eQxEe.mjs} +2 -2
- package/lib/{w3m-modal-CoTG8Zu4.js → w3m-modal-DSY2qJYP.js} +1 -1
- package/lib/{w3m-modal-xqVExHU-.js → w3m-modal-DgqSQLqZ.js} +1 -1
- package/lib/{web3-C1wK6wIV.js → web3-BKaP497Y.js} +1 -1
- package/lib/{web3-BkEb7AgB.mjs → web3-BifDBsFp.mjs} +8 -4
- package/package.json +49 -44
- package/dist/assets/create-q7V6muDT.js +0 -1
- package/dist/assets/index-B59bCuJJ.js +0 -1
- package/lib/constants-BR_zyzqY.js +0 -1
- package/lib/index-CXsUtRJQ.js +0 -1
- package/lib/solana-Dv_mUYcl.mjs +0 -18
- package/lib/solana-g3YsP966.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./web3-C1wK6wIV.js"),y=require("./index-Dq7WWqFe.js"),B=require("./unsignedTransaction-CiPKh85X.js"),k=new n.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new n.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const T=new n.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new n.PublicKey("So11111111111111111111111111111111111111112");new n.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class V extends Error{constructor(e){super(e)}}class H extends V{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const G=n.LayoutExports.struct([n.LayoutExports.u32("mintAuthorityOption"),n.publicKey("mintAuthority"),n.u64("supply"),n.LayoutExports.u8("decimals"),n.bool("isInitialized"),n.LayoutExports.u32("freezeAuthorityOption"),n.publicKey("freezeAuthority")]);G.span;function q(r,e,t=!1,a=k,i=T){if(!t&&!n.PublicKey.isOnCurve(e.toBuffer()))throw new H;const[s]=n.PublicKey.findProgramAddressSync([e.toBuffer(),a.toBuffer(),r.toBuffer()],i);return s}function X(r,e,t,a,i=k,s=T){return $(r,e,t,a,n.Buffer.alloc(0),i,s)}function $(r,e,t,a,i,s=k,o=T){const u=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:n.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new n.TransactionInstruction({keys:u,programId:o,data:i})}function v(r,e){return new y.Program(I.TokenMessengerIdl,new n.PublicKey(r),e===void 0?{connection:null}:e)}function C(r,e){return v(r,y.createReadOnlyProvider(e))}function A(r,e){return new y.Program(I.MessageTransmitterIdl,new n.PublicKey(r),e===void 0?{connection:null}:e)}function R(r,e){return A(r,y.createReadOnlyProvider(e))}const m=(r,e,t)=>{const a=[n.Buffer.from(y.index.bytes.utf8.encode(r))];if(t)for(const s of t)typeof s=="string"?a.push(n.Buffer.from(y.index.bytes.utf8.encode(s))):Array.isArray(s)?a.push(n.Buffer.from(s)):n.Buffer.isBuffer(s)?a.push(s):a.push(s.toBuffer());const i=n.PublicKey.findProgramAddressSync(a,e);return{publicKey:i[0],bump:i[1]}};function O(r,e,t,a,i,s,o,u,c){const l=m("message_transmitter",r),d=m("token_messenger",e),f=m("token_minter",e),p=m("local_token",e,[t]),M=m("remote_token_messenger",e,[a.toString()]),S=m("sender_authority",e),h=v(e),P=m("__event_authority",e);return h.methods.depositForBurn({amount:new n.BN(u.toString()),destinationDomain:a,mintRecipient:new n.PublicKey(o.toUint8Array())}).accounts({owner:i,senderAuthorityPda:S.publicKey,burnTokenAccount:s,messageTransmitter:l.publicKey,tokenMessenger:d.publicKey,remoteTokenMessenger:M.publicKey,tokenMinter:f.publicKey,localToken:p.publicKey,burnTokenMint:t,messageTransmitterProgram:r,tokenMessengerMinterProgram:e,tokenProgram:k,eventAuthority:P.publicKey,eventRentPayer:i,messageSentEventData:c}).instruction()}const D=6400n;function w(r){return(r-BigInt(1))/D*D+BigInt(1)}function K(r,e,t){const a=e.toString();return m("used_nonces",t,[a,w(r).toString()]).publicKey}async function E(r,e,t,a,i,s){const o=n.Buffer.from(n.CircleBridge.serialize(a)),u=n.Buffer.from(n.hex.decode(i)),c=new n.PublicKey(t),l=new n.PublicKey(a.payload.burnToken.toUint8Array()),d=new n.SolanaAddress(a.payload.mintRecipient).unwrap(),f=s?new n.PublicKey(s):d,p=a.sourceDomain.toString(),M=m("message_transmitter",r),S=m("token_messenger",e),h=m("token_minter",e),P=m("local_token",e,[c]),N=m("remote_token_messenger",e,[p]),_=m("token_pair",e,[p,l]),U=m("custody",e,[c]),L=m("message_transmitter_authority",r,[e]).publicKey,W=K(a.nonce,a.sourceDomain,r),z=m("__event_authority",r),F=m("__event_authority",e),g=[];g.push({isSigner:!1,isWritable:!1,pubkey:S.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:N.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:h.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:P.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:_.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:d}),g.push({isSigner:!1,isWritable:!0,pubkey:U.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:k}),g.push({isSigner:!1,isWritable:!1,pubkey:F.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:e});const x=A(r);return x.methods.receiveMessage({message:o,attestation:u}).accounts({payer:f,caller:f,authorityPda:L,messageTransmitter:M.publicKey,usedNonces:W,receiver:e,systemProgram:n.SystemProgram.programId,eventAuthority:z.publicKey,program:x.programId}).remainingAccounts(g).transaction()}class b{network;chain;connection;contracts;tokenMessenger;messageTransmitter;constructor(e,t,a,i){if(this.network=e,this.chain=t,this.connection=a,this.contracts=i,e==="Devnet")throw new Error("CircleBridge not supported on Devnet");const s=i.cctp?.messageTransmitter;if(!s)throw new Error(`Circle Messenger Transmitter contract for domain ${t} not found`);this.messageTransmitter=R(new n.PublicKey(s),this.connection);const o=i.cctp?.tokenMessenger;if(!o)throw new Error(`Circle Token Messenger contract for domain ${t} not found`);this.tokenMessenger=C(new n.PublicKey(o),this.connection)}static async fromRpc(e,t){const[a,i]=await B.SolanaPlatform.chainFromRpc(e),s=t[i];if(s.network!==a)throw new Error(`Network mismatch: ${s.network} != ${a}`);return new b(a,i,e,s.contracts)}async*redeem(e,t,a){const i=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=new n.SolanaAddress(t.payload.mintRecipient).unwrap();if(!await this.connection.getAccountInfo(o)){const d=new n.Transaction().add(X(s,o,s,i));d.feePayer=s,yield this.createUnsignedTx({transaction:d},"CircleBridge.CreateATA")}const c=await E(this.messageTransmitter.programId,this.tokenMessenger.programId,i,t,a,s),l=new n.Transaction;l.feePayer=s,l.add(c),yield this.createUnsignedTx({transaction:l},"CircleBridge.Redeem")}async*transfer(e,t,a){const i=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=q(i,s),u=n.circleChainId.get(this.network,t.chain),c=t.address.toUniversalAddress(),l=n.Keypair.generate(),d=await O(this.messageTransmitter.programId,this.tokenMessenger.programId,i,u,s,o,c,a,l.publicKey),f=new n.Transaction;f.feePayer=s,f.add(d),yield this.createUnsignedTx({transaction:f,signers:[l]},"CircleBridge.Transfer")}async isTransferCompleted(e){const t=K(e.nonce,e.sourceDomain,this.messageTransmitter.programId),a=w(e.nonce),{usedNonces:i}=await this.messageTransmitter.account.usedNonces.fetch(t),s=Number(e.nonce-a),o=i[Math.floor(s/64)];if(!o)throw new Error("Invalid nonce byte index");const u=s%64,c=new n.BN((BigInt(1)<<BigInt(u)).toString());return!o.and(c).isZero()}async parseTransactionDetails(e){const t=await this.connection.getTransaction(e);if(!t||!t.meta)throw new Error("Transaction not found");const a=t.transaction.message.getAccountKeys();if(a.length<2)throw new Error("No message account found");const i=a.get(1),s=await this.connection.getAccountInfo(i);if(!s)throw new Error("No account data found");const o=new Uint8Array(s.data).slice(44),[u,c]=n.CircleBridge.deserialize(o),{payload:l}=u,d=l.messageSender,f=l.mintRecipient,p=n.toCircleChain(this.network,u.sourceDomain),M=n.toCircleChain(this.network,u.destinationDomain),S={chain:p,address:l.burnToken};return{from:{chain:p,address:d},to:{chain:M,address:f},token:S,amount:l.amount,message:u,id:{hash:c}}}createUnsignedTx(e,t,a=!1){return new B.SolanaUnsignedTransaction(e,this.network,this.chain,t,a)}}const J={version:"0.1.0",name:"token_messenger_minter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"tokenMessengerMinterProgramData",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"addRemoteTokenMessenger",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddRemoteTokenMessengerParams"}}]},{name:"removeRemoteTokenMessenger",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveRemoteTokenMessengerParams"}}]},{name:"depositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnParams"}}],returns:"u64"},{name:"depositForBurnWithCaller",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnWithCallerParams"}}],returns:"u64"},{name:"replaceDepositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceDepositForBurnParams"}}],returns:"u64"},{name:"handleReceiveMessage",accounts:[{name:"authorityPda",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"tokenPair",isMut:!1,isSigner:!1},{name:"recipientTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"HandleReceiveMessageParams"}}]},{name:"setTokenController",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenControllerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"setMaxBurnAmountPerMessage",accounts:[{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxBurnAmountPerMessageParams"}}]},{name:"addLocalToken",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"localTokenMint",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddLocalTokenParams"}}]},{name:"removeLocalToken",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveLocalTokenParams"}}]},{name:"linkTokenPair",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"LinkTokenPairParams"}}]},{name:"unlinkTokenPair",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UninkTokenPairParams"}}]},{name:"burnTokenCustody",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!1,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenMint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"BurnTokenCustodyParams"}}]}],accounts:[{name:"tokenMessenger",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"},{name:"authorityBump",type:"u8"}]}},{name:"remoteTokenMessenger",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"tokenMinter",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"bump",type:"u8"}]}},{name:"tokenPair",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"},{name:"localToken",type:"publicKey"},{name:"bump",type:"u8"}]}},{name:"localToken",type:{kind:"struct",fields:[{name:"custody",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"burnLimitPerMessage",type:"u64"},{name:"messagesSent",type:"u64"},{name:"messagesReceived",type:"u64"},{name:"amountSent",type:"u128"},{name:"amountReceived",type:"u128"},{name:"bump",type:"u8"},{name:"custodyBump",type:"u8"}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"AddRemoteTokenMessengerParams",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"DepositForBurnWithCallerParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"},{name:"destinationCaller",type:"publicKey"}]}},{name:"DepositForBurnParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"}]}},{name:"RemoveRemoteTokenMessengerParams",type:{kind:"struct",fields:[]}},{name:"ReplaceDepositForBurnParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"},{name:"newMintRecipient",type:"publicKey"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"AddLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"BurnTokenCustodyParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"}]}},{name:"LinkTokenPairParams",type:{kind:"struct",fields:[{name:"localToken",type:"publicKey"},{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"RemoveLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"SetMaxBurnAmountPerMessageParams",type:{kind:"struct",fields:[{name:"burnLimitPerMessage",type:"u64"}]}},{name:"SetTokenControllerParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"}]}},{name:"UninkTokenPairParams",type:{kind:"struct",fields:[]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"TokenMinterError",type:{kind:"enum",variants:[{name:"InvalidAuthority"},{name:"InvalidTokenMinterState"},{name:"ProgramPaused"},{name:"InvalidTokenPairState"},{name:"InvalidLocalTokenState"},{name:"InvalidPauser"},{name:"InvalidTokenController"},{name:"BurnAmountExceeded"},{name:"InvalidAmount"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"DepositForBurn",fields:[{name:"nonce",type:"u64",index:!1},{name:"burnToken",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"depositor",type:"publicKey",index:!1},{name:"mintRecipient",type:"publicKey",index:!1},{name:"destinationDomain",type:"u32",index:!1},{name:"destinationTokenMessenger",type:"publicKey",index:!1},{name:"destinationCaller",type:"publicKey",index:!1}]},{name:"MintAndWithdraw",fields:[{name:"mintRecipient",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"mintToken",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerAdded",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerRemoved",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"SetTokenController",fields:[{name:"tokenController",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"SetBurnLimitPerMessage",fields:[{name:"token",type:"publicKey",index:!1},{name:"burnLimitPerMessage",type:"u64",index:!1}]},{name:"LocalTokenAdded",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"LocalTokenRemoved",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"TokenPairLinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"TokenPairUnlinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]},{name:"TokenCustodyBurned",fields:[{name:"custodyTokenAccount",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"InvalidTokenMessengerState",msg:"Invalid token messenger state"},{code:6002,name:"InvalidTokenMessenger",msg:"Invalid token messenger"},{code:6003,name:"InvalidOwner",msg:"Invalid owner"},{code:6004,name:"MalformedMessage",msg:"Malformed message"},{code:6005,name:"InvalidMessageBodyVersion",msg:"Invalid message body version"},{code:6006,name:"InvalidAmount",msg:"Invalid amount"},{code:6007,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6008,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6009,name:"InvalidMintRecipient",msg:"Invalid mint recipient"},{code:6010,name:"InvalidSender",msg:"Invalid sender"},{code:6011,name:"InvalidTokenPair",msg:"Invalid token pair"},{code:6012,name:"InvalidTokenMint",msg:"Invalid token mint"}]},Q={version:"0.1.0",name:"message_transmitter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageTransmitterProgramData",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"updateAttesterManager",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdateAttesterManagerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"setMaxMessageBodySize",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxMessageBodySizeParams"}}]},{name:"enableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"EnableAttesterParams"}}]},{name:"disableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DisableAttesterParams"}}]},{name:"setSignatureThreshold",accounts:[{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetSignatureThresholdParams"}}]},{name:"sendMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageParams"}}],returns:"u64"},{name:"sendMessageWithCaller",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageWithCallerParams"}}],returns:"u64"},{name:"replaceMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceMessageParams"}}],returns:"u64"},{name:"receiveMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"caller",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!1,isSigner:!1},{name:"usedNonces",isMut:!0,isSigner:!1},{name:"receiver",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReceiveMessageParams"}}]},{name:"reclaimEventAccount",accounts:[{name:"payee",isMut:!0,isSigner:!0,docs:["rent SOL receiver, should match original rent payer"]},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!1}],args:[{name:"params",type:{defined:"ReclaimEventAccountParams"}}]},{name:"getNoncePda",accounts:[{name:"messageTransmitter",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"GetNoncePDAParams"}}],returns:"publicKey"},{name:"isNonceUsed",accounts:[{name:"usedNonces",isMut:!1,isSigner:!1,docs:["Account will be explicitly loaded to avoid error when it's not initialized"]}],args:[{name:"params",type:{defined:"IsNonceUsedParams"}}],returns:"bool"}],accounts:[{name:"messageSent",type:{kind:"struct",fields:[{name:"rentPayer",type:"publicKey"},{name:"message",type:"bytes"}]}},{name:"messageTransmitter",docs:["Main state of the MessageTransmitter program"],type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"attesterManager",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"localDomain",type:"u32"},{name:"version",type:"u32"},{name:"signatureThreshold",type:"u32"},{name:"enabledAttesters",type:{vec:"publicKey"}},{name:"maxMessageBodySize",type:"u64"},{name:"nextAvailableNonce",type:"u64"}]}},{name:"usedNonces",docs:["UsedNonces account holds an array of bits that indicate which nonces were already used","so they can't be reused to receive new messages. Array starts with the first_nonce and","holds flags for UsedNonces::MAX_NONCES. Nonces are recorded separately for each remote_domain."],type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"firstNonce",type:"u64"},{name:"usedNonces",type:{array:["u64",100]}}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"DisableAttesterParams",type:{kind:"struct",fields:[{name:"attester",type:"publicKey"}]}},{name:"EnableAttesterParams",type:{kind:"struct",fields:[{name:"newAttester",type:"publicKey"}]}},{name:"GetNoncePDAParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"},{name:"sourceDomain",type:"u32"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"localDomain",type:"u32"},{name:"attester",type:"publicKey"},{name:"maxMessageBodySize",type:"u64"},{name:"version",type:"u32"}]}},{name:"IsNonceUsedParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"ReceiveMessageParams",type:{kind:"struct",fields:[{name:"message",type:"bytes"},{name:"attestation",type:"bytes"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"ReclaimEventAccountParams",type:{kind:"struct",fields:[{name:"attestation",type:"bytes"}]}},{name:"ReplaceMessageParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newMessageBody",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"}]}},{name:"SendMessageWithCallerParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"destinationCaller",type:"publicKey"}]}},{name:"SendMessageParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"}]}},{name:"SetMaxMessageBodySizeParams",type:{kind:"struct",fields:[{name:"newMaxMessageBodySize",type:"u64"}]}},{name:"SetSignatureThresholdParams",type:{kind:"struct",fields:[{name:"newSignatureThreshold",type:"u32"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdateAttesterManagerParams",type:{kind:"struct",fields:[{name:"newAttesterManager",type:"publicKey"}]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"MathError",type:{kind:"enum",variants:[{name:"MathOverflow"},{name:"MathUnderflow"},{name:"ErrorInDivision"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"AttesterManagerUpdated",fields:[{name:"previousAttesterManager",type:"publicKey",index:!1},{name:"newAttesterManager",type:"publicKey",index:!1}]},{name:"MessageReceived",fields:[{name:"caller",type:"publicKey",index:!1},{name:"sourceDomain",type:"u32",index:!1},{name:"nonce",type:"u64",index:!1},{name:"sender",type:"publicKey",index:!1},{name:"messageBody",type:"bytes",index:!1}]},{name:"SignatureThresholdUpdated",fields:[{name:"oldSignatureThreshold",type:"u32",index:!1},{name:"newSignatureThreshold",type:"u32",index:!1}]},{name:"AttesterEnabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"AttesterDisabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"MaxMessageBodySizeUpdated",fields:[{name:"newMaxMessageBodySize",type:"u64",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"ProgramPaused",msg:"Instruction is not allowed at this time"},{code:6002,name:"InvalidMessageTransmitterState",msg:"Invalid message transmitter state"},{code:6003,name:"InvalidSignatureThreshold",msg:"Invalid signature threshold"},{code:6004,name:"SignatureThresholdAlreadySet",msg:"Signature threshold already set"},{code:6005,name:"InvalidOwner",msg:"Invalid owner"},{code:6006,name:"InvalidPauser",msg:"Invalid pauser"},{code:6007,name:"InvalidAttesterManager",msg:"Invalid attester manager"},{code:6008,name:"InvalidAttester",msg:"Invalid attester"},{code:6009,name:"AttesterAlreadyEnabled",msg:"Attester already enabled"},{code:6010,name:"TooFewEnabledAttesters",msg:"Too few enabled attesters"},{code:6011,name:"SignatureThresholdTooLow",msg:"Signature threshold is too low"},{code:6012,name:"AttesterAlreadyDisabled",msg:"Attester already disabled"},{code:6013,name:"MessageBodyLimitExceeded",msg:"Message body exceeds max size"},{code:6014,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6015,name:"InvalidRecipient",msg:"Invalid message recipient"},{code:6016,name:"SenderNotPermitted",msg:"Sender is not permitted"},{code:6017,name:"InvalidSourceDomain",msg:"Invalid source domain"},{code:6018,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6019,name:"InvalidMessageVersion",msg:"Invalid message version"},{code:6020,name:"InvalidUsedNoncesAccount",msg:"Invalid used nonces account"},{code:6021,name:"InvalidRecipientProgram",msg:"Invalid recipient program"},{code:6022,name:"InvalidNonce",msg:"Invalid nonce"},{code:6023,name:"NonceAlreadyUsed",msg:"Nonce already used"},{code:6024,name:"MessageTooShort",msg:"Message is too short"},{code:6025,name:"MalformedMessage",msg:"Malformed message"},{code:6026,name:"InvalidSignatureOrderOrDupe",msg:"Invalid signature order or dupe"},{code:6027,name:"InvalidAttesterSignature",msg:"Invalid attester signature"},{code:6028,name:"InvalidAttestationLength",msg:"Invalid attestation length"},{code:6029,name:"InvalidSignatureRecoveryId",msg:"Invalid signature recovery ID"},{code:6030,name:"InvalidSignatureSValue",msg:"Invalid signature S value"},{code:6031,name:"InvalidMessageHash",msg:"Invalid message hash"}]};n.registerProtocol(n._platform$1,"CircleBridge",b);const I={TokenMessengerIdl:J,MessageTransmitterIdl:Q};exports.SolanaCircleBridge=b;exports.calculateFirstNonce=w;exports.createDepositForBurnInstruction=O;exports.createMessageTransmitterProgramInterface=A;exports.createReadOnlyMessageTransmitterProgramInterface=R;exports.createReadOnlyTokenMessengerProgramInterface=C;exports.createReceiveMessageInstruction=E;exports.createTokenMessengerProgramInterface=v;exports.findProgramAddress=m;exports.idl=I;exports.nonceAccount=K;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./web3-BKaP497Y.js"),y=require("./index-B7HBnPLP.js"),B=require("./unsignedTransaction-DL3WyIkF.js"),k=new n.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new n.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const T=new n.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new n.PublicKey("So11111111111111111111111111111111111111112");new n.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class V extends Error{constructor(e){super(e)}}class H extends V{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const G=n.LayoutExports.struct([n.LayoutExports.u32("mintAuthorityOption"),n.publicKey("mintAuthority"),n.u64("supply"),n.LayoutExports.u8("decimals"),n.bool("isInitialized"),n.LayoutExports.u32("freezeAuthorityOption"),n.publicKey("freezeAuthority")]);G.span;function q(r,e,t=!1,a=k,i=T){if(!t&&!n.PublicKey.isOnCurve(e.toBuffer()))throw new H;const[s]=n.PublicKey.findProgramAddressSync([e.toBuffer(),a.toBuffer(),r.toBuffer()],i);return s}function X(r,e,t,a,i=k,s=T){return $(r,e,t,a,n.Buffer.alloc(0),i,s)}function $(r,e,t,a,i,s=k,o=T){const u=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:n.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new n.TransactionInstruction({keys:u,programId:o,data:i})}function v(r,e){return new y.Program(I.TokenMessengerIdl,new n.PublicKey(r),e===void 0?{connection:null}:e)}function C(r,e){return v(r,y.createReadOnlyProvider(e))}function A(r,e){return new y.Program(I.MessageTransmitterIdl,new n.PublicKey(r),e===void 0?{connection:null}:e)}function R(r,e){return A(r,y.createReadOnlyProvider(e))}const m=(r,e,t)=>{const a=[n.Buffer.from(y.index.bytes.utf8.encode(r))];if(t)for(const s of t)typeof s=="string"?a.push(n.Buffer.from(y.index.bytes.utf8.encode(s))):Array.isArray(s)?a.push(n.Buffer.from(s)):n.Buffer.isBuffer(s)?a.push(s):a.push(s.toBuffer());const i=n.PublicKey.findProgramAddressSync(a,e);return{publicKey:i[0],bump:i[1]}};function O(r,e,t,a,i,s,o,u,c){const l=m("message_transmitter",r),d=m("token_messenger",e),f=m("token_minter",e),p=m("local_token",e,[t]),M=m("remote_token_messenger",e,[a.toString()]),S=m("sender_authority",e),h=v(e),P=m("__event_authority",e);return h.methods.depositForBurn({amount:new n.BN(u.toString()),destinationDomain:a,mintRecipient:new n.PublicKey(o.toUint8Array())}).accounts({owner:i,senderAuthorityPda:S.publicKey,burnTokenAccount:s,messageTransmitter:l.publicKey,tokenMessenger:d.publicKey,remoteTokenMessenger:M.publicKey,tokenMinter:f.publicKey,localToken:p.publicKey,burnTokenMint:t,messageTransmitterProgram:r,tokenMessengerMinterProgram:e,tokenProgram:k,eventAuthority:P.publicKey,eventRentPayer:i,messageSentEventData:c}).instruction()}const D=6400n;function w(r){return(r-BigInt(1))/D*D+BigInt(1)}function K(r,e,t){const a=e.toString();return m("used_nonces",t,[a,w(r).toString()]).publicKey}async function E(r,e,t,a,i,s){const o=n.Buffer.from(n.CircleBridge.serialize(a)),u=n.Buffer.from(n.hex.decode(i)),c=new n.PublicKey(t),l=new n.PublicKey(a.payload.burnToken.toUint8Array()),d=new n.SolanaAddress(a.payload.mintRecipient).unwrap(),f=s?new n.PublicKey(s):d,p=a.sourceDomain.toString(),M=m("message_transmitter",r),S=m("token_messenger",e),h=m("token_minter",e),P=m("local_token",e,[c]),N=m("remote_token_messenger",e,[p]),_=m("token_pair",e,[p,l]),U=m("custody",e,[c]),L=m("message_transmitter_authority",r,[e]).publicKey,W=K(a.nonce,a.sourceDomain,r),z=m("__event_authority",r),F=m("__event_authority",e),g=[];g.push({isSigner:!1,isWritable:!1,pubkey:S.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:N.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:h.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:P.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:_.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:d}),g.push({isSigner:!1,isWritable:!0,pubkey:U.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:k}),g.push({isSigner:!1,isWritable:!1,pubkey:F.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:e});const x=A(r);return x.methods.receiveMessage({message:o,attestation:u}).accounts({payer:f,caller:f,authorityPda:L,messageTransmitter:M.publicKey,usedNonces:W,receiver:e,systemProgram:n.SystemProgram.programId,eventAuthority:z.publicKey,program:x.programId}).remainingAccounts(g).transaction()}class b{network;chain;connection;contracts;tokenMessenger;messageTransmitter;constructor(e,t,a,i){if(this.network=e,this.chain=t,this.connection=a,this.contracts=i,e==="Devnet")throw new Error("CircleBridge not supported on Devnet");const s=i.cctp?.messageTransmitter;if(!s)throw new Error(`Circle Messenger Transmitter contract for domain ${t} not found`);this.messageTransmitter=R(new n.PublicKey(s),this.connection);const o=i.cctp?.tokenMessenger;if(!o)throw new Error(`Circle Token Messenger contract for domain ${t} not found`);this.tokenMessenger=C(new n.PublicKey(o),this.connection)}static async fromRpc(e,t){const[a,i]=await B.SolanaPlatform.chainFromRpc(e),s=t[i];if(s.network!==a)throw new Error(`Network mismatch: ${s.network} != ${a}`);return new b(a,i,e,s.contracts)}async*redeem(e,t,a){const i=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=new n.SolanaAddress(t.payload.mintRecipient).unwrap();if(!await this.connection.getAccountInfo(o)){const d=new n.Transaction().add(X(s,o,s,i));d.feePayer=s,yield this.createUnsignedTx({transaction:d},"CircleBridge.CreateATA")}const c=await E(this.messageTransmitter.programId,this.tokenMessenger.programId,i,t,a,s),l=new n.Transaction;l.feePayer=s,l.add(c),yield this.createUnsignedTx({transaction:l},"CircleBridge.Redeem")}async*transfer(e,t,a){const i=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=q(i,s),u=n.circleChainId.get(this.network,t.chain),c=t.address.toUniversalAddress(),l=n.Keypair.generate(),d=await O(this.messageTransmitter.programId,this.tokenMessenger.programId,i,u,s,o,c,a,l.publicKey),f=new n.Transaction;f.feePayer=s,f.add(d),yield this.createUnsignedTx({transaction:f,signers:[l]},"CircleBridge.Transfer")}async isTransferCompleted(e){const t=K(e.nonce,e.sourceDomain,this.messageTransmitter.programId),a=w(e.nonce),{usedNonces:i}=await this.messageTransmitter.account.usedNonces.fetch(t),s=Number(e.nonce-a),o=i[Math.floor(s/64)];if(!o)throw new Error("Invalid nonce byte index");const u=s%64,c=new n.BN((BigInt(1)<<BigInt(u)).toString());return!o.and(c).isZero()}async parseTransactionDetails(e){const t=await this.connection.getTransaction(e);if(!t||!t.meta)throw new Error("Transaction not found");const a=t.transaction.message.getAccountKeys();if(a.length<2)throw new Error("No message account found");const i=a.get(1),s=await this.connection.getAccountInfo(i);if(!s)throw new Error("No account data found");const o=new Uint8Array(s.data).slice(44),[u,c]=n.CircleBridge.deserialize(o),{payload:l}=u,d=l.messageSender,f=l.mintRecipient,p=n.toCircleChain(this.network,u.sourceDomain),M=n.toCircleChain(this.network,u.destinationDomain),S={chain:p,address:l.burnToken};return{from:{chain:p,address:d},to:{chain:M,address:f},token:S,amount:l.amount,message:u,id:{hash:c}}}createUnsignedTx(e,t,a=!1){return new B.SolanaUnsignedTransaction(e,this.network,this.chain,t,a)}}const J={version:"0.1.0",name:"token_messenger_minter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"tokenMessengerMinterProgramData",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"addRemoteTokenMessenger",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddRemoteTokenMessengerParams"}}]},{name:"removeRemoteTokenMessenger",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveRemoteTokenMessengerParams"}}]},{name:"depositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnParams"}}],returns:"u64"},{name:"depositForBurnWithCaller",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnWithCallerParams"}}],returns:"u64"},{name:"replaceDepositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceDepositForBurnParams"}}],returns:"u64"},{name:"handleReceiveMessage",accounts:[{name:"authorityPda",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"tokenPair",isMut:!1,isSigner:!1},{name:"recipientTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"HandleReceiveMessageParams"}}]},{name:"setTokenController",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenControllerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"setMaxBurnAmountPerMessage",accounts:[{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxBurnAmountPerMessageParams"}}]},{name:"addLocalToken",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"localTokenMint",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddLocalTokenParams"}}]},{name:"removeLocalToken",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveLocalTokenParams"}}]},{name:"linkTokenPair",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"LinkTokenPairParams"}}]},{name:"unlinkTokenPair",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UninkTokenPairParams"}}]},{name:"burnTokenCustody",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!1,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenMint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"BurnTokenCustodyParams"}}]}],accounts:[{name:"tokenMessenger",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"},{name:"authorityBump",type:"u8"}]}},{name:"remoteTokenMessenger",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"tokenMinter",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"bump",type:"u8"}]}},{name:"tokenPair",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"},{name:"localToken",type:"publicKey"},{name:"bump",type:"u8"}]}},{name:"localToken",type:{kind:"struct",fields:[{name:"custody",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"burnLimitPerMessage",type:"u64"},{name:"messagesSent",type:"u64"},{name:"messagesReceived",type:"u64"},{name:"amountSent",type:"u128"},{name:"amountReceived",type:"u128"},{name:"bump",type:"u8"},{name:"custodyBump",type:"u8"}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"AddRemoteTokenMessengerParams",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"DepositForBurnWithCallerParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"},{name:"destinationCaller",type:"publicKey"}]}},{name:"DepositForBurnParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"}]}},{name:"RemoveRemoteTokenMessengerParams",type:{kind:"struct",fields:[]}},{name:"ReplaceDepositForBurnParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"},{name:"newMintRecipient",type:"publicKey"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"AddLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"BurnTokenCustodyParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"}]}},{name:"LinkTokenPairParams",type:{kind:"struct",fields:[{name:"localToken",type:"publicKey"},{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"RemoveLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"SetMaxBurnAmountPerMessageParams",type:{kind:"struct",fields:[{name:"burnLimitPerMessage",type:"u64"}]}},{name:"SetTokenControllerParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"}]}},{name:"UninkTokenPairParams",type:{kind:"struct",fields:[]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"TokenMinterError",type:{kind:"enum",variants:[{name:"InvalidAuthority"},{name:"InvalidTokenMinterState"},{name:"ProgramPaused"},{name:"InvalidTokenPairState"},{name:"InvalidLocalTokenState"},{name:"InvalidPauser"},{name:"InvalidTokenController"},{name:"BurnAmountExceeded"},{name:"InvalidAmount"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"DepositForBurn",fields:[{name:"nonce",type:"u64",index:!1},{name:"burnToken",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"depositor",type:"publicKey",index:!1},{name:"mintRecipient",type:"publicKey",index:!1},{name:"destinationDomain",type:"u32",index:!1},{name:"destinationTokenMessenger",type:"publicKey",index:!1},{name:"destinationCaller",type:"publicKey",index:!1}]},{name:"MintAndWithdraw",fields:[{name:"mintRecipient",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"mintToken",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerAdded",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerRemoved",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"SetTokenController",fields:[{name:"tokenController",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"SetBurnLimitPerMessage",fields:[{name:"token",type:"publicKey",index:!1},{name:"burnLimitPerMessage",type:"u64",index:!1}]},{name:"LocalTokenAdded",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"LocalTokenRemoved",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"TokenPairLinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"TokenPairUnlinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]},{name:"TokenCustodyBurned",fields:[{name:"custodyTokenAccount",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"InvalidTokenMessengerState",msg:"Invalid token messenger state"},{code:6002,name:"InvalidTokenMessenger",msg:"Invalid token messenger"},{code:6003,name:"InvalidOwner",msg:"Invalid owner"},{code:6004,name:"MalformedMessage",msg:"Malformed message"},{code:6005,name:"InvalidMessageBodyVersion",msg:"Invalid message body version"},{code:6006,name:"InvalidAmount",msg:"Invalid amount"},{code:6007,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6008,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6009,name:"InvalidMintRecipient",msg:"Invalid mint recipient"},{code:6010,name:"InvalidSender",msg:"Invalid sender"},{code:6011,name:"InvalidTokenPair",msg:"Invalid token pair"},{code:6012,name:"InvalidTokenMint",msg:"Invalid token mint"}]},Q={version:"0.1.0",name:"message_transmitter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageTransmitterProgramData",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"updateAttesterManager",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdateAttesterManagerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"setMaxMessageBodySize",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxMessageBodySizeParams"}}]},{name:"enableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"EnableAttesterParams"}}]},{name:"disableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DisableAttesterParams"}}]},{name:"setSignatureThreshold",accounts:[{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetSignatureThresholdParams"}}]},{name:"sendMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageParams"}}],returns:"u64"},{name:"sendMessageWithCaller",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageWithCallerParams"}}],returns:"u64"},{name:"replaceMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceMessageParams"}}],returns:"u64"},{name:"receiveMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"caller",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!1,isSigner:!1},{name:"usedNonces",isMut:!0,isSigner:!1},{name:"receiver",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReceiveMessageParams"}}]},{name:"reclaimEventAccount",accounts:[{name:"payee",isMut:!0,isSigner:!0,docs:["rent SOL receiver, should match original rent payer"]},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!1}],args:[{name:"params",type:{defined:"ReclaimEventAccountParams"}}]},{name:"getNoncePda",accounts:[{name:"messageTransmitter",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"GetNoncePDAParams"}}],returns:"publicKey"},{name:"isNonceUsed",accounts:[{name:"usedNonces",isMut:!1,isSigner:!1,docs:["Account will be explicitly loaded to avoid error when it's not initialized"]}],args:[{name:"params",type:{defined:"IsNonceUsedParams"}}],returns:"bool"}],accounts:[{name:"messageSent",type:{kind:"struct",fields:[{name:"rentPayer",type:"publicKey"},{name:"message",type:"bytes"}]}},{name:"messageTransmitter",docs:["Main state of the MessageTransmitter program"],type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"attesterManager",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"localDomain",type:"u32"},{name:"version",type:"u32"},{name:"signatureThreshold",type:"u32"},{name:"enabledAttesters",type:{vec:"publicKey"}},{name:"maxMessageBodySize",type:"u64"},{name:"nextAvailableNonce",type:"u64"}]}},{name:"usedNonces",docs:["UsedNonces account holds an array of bits that indicate which nonces were already used","so they can't be reused to receive new messages. Array starts with the first_nonce and","holds flags for UsedNonces::MAX_NONCES. Nonces are recorded separately for each remote_domain."],type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"firstNonce",type:"u64"},{name:"usedNonces",type:{array:["u64",100]}}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"DisableAttesterParams",type:{kind:"struct",fields:[{name:"attester",type:"publicKey"}]}},{name:"EnableAttesterParams",type:{kind:"struct",fields:[{name:"newAttester",type:"publicKey"}]}},{name:"GetNoncePDAParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"},{name:"sourceDomain",type:"u32"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"localDomain",type:"u32"},{name:"attester",type:"publicKey"},{name:"maxMessageBodySize",type:"u64"},{name:"version",type:"u32"}]}},{name:"IsNonceUsedParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"ReceiveMessageParams",type:{kind:"struct",fields:[{name:"message",type:"bytes"},{name:"attestation",type:"bytes"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"ReclaimEventAccountParams",type:{kind:"struct",fields:[{name:"attestation",type:"bytes"}]}},{name:"ReplaceMessageParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newMessageBody",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"}]}},{name:"SendMessageWithCallerParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"destinationCaller",type:"publicKey"}]}},{name:"SendMessageParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"}]}},{name:"SetMaxMessageBodySizeParams",type:{kind:"struct",fields:[{name:"newMaxMessageBodySize",type:"u64"}]}},{name:"SetSignatureThresholdParams",type:{kind:"struct",fields:[{name:"newSignatureThreshold",type:"u32"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdateAttesterManagerParams",type:{kind:"struct",fields:[{name:"newAttesterManager",type:"publicKey"}]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"MathError",type:{kind:"enum",variants:[{name:"MathOverflow"},{name:"MathUnderflow"},{name:"ErrorInDivision"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"AttesterManagerUpdated",fields:[{name:"previousAttesterManager",type:"publicKey",index:!1},{name:"newAttesterManager",type:"publicKey",index:!1}]},{name:"MessageReceived",fields:[{name:"caller",type:"publicKey",index:!1},{name:"sourceDomain",type:"u32",index:!1},{name:"nonce",type:"u64",index:!1},{name:"sender",type:"publicKey",index:!1},{name:"messageBody",type:"bytes",index:!1}]},{name:"SignatureThresholdUpdated",fields:[{name:"oldSignatureThreshold",type:"u32",index:!1},{name:"newSignatureThreshold",type:"u32",index:!1}]},{name:"AttesterEnabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"AttesterDisabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"MaxMessageBodySizeUpdated",fields:[{name:"newMaxMessageBodySize",type:"u64",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"ProgramPaused",msg:"Instruction is not allowed at this time"},{code:6002,name:"InvalidMessageTransmitterState",msg:"Invalid message transmitter state"},{code:6003,name:"InvalidSignatureThreshold",msg:"Invalid signature threshold"},{code:6004,name:"SignatureThresholdAlreadySet",msg:"Signature threshold already set"},{code:6005,name:"InvalidOwner",msg:"Invalid owner"},{code:6006,name:"InvalidPauser",msg:"Invalid pauser"},{code:6007,name:"InvalidAttesterManager",msg:"Invalid attester manager"},{code:6008,name:"InvalidAttester",msg:"Invalid attester"},{code:6009,name:"AttesterAlreadyEnabled",msg:"Attester already enabled"},{code:6010,name:"TooFewEnabledAttesters",msg:"Too few enabled attesters"},{code:6011,name:"SignatureThresholdTooLow",msg:"Signature threshold is too low"},{code:6012,name:"AttesterAlreadyDisabled",msg:"Attester already disabled"},{code:6013,name:"MessageBodyLimitExceeded",msg:"Message body exceeds max size"},{code:6014,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6015,name:"InvalidRecipient",msg:"Invalid message recipient"},{code:6016,name:"SenderNotPermitted",msg:"Sender is not permitted"},{code:6017,name:"InvalidSourceDomain",msg:"Invalid source domain"},{code:6018,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6019,name:"InvalidMessageVersion",msg:"Invalid message version"},{code:6020,name:"InvalidUsedNoncesAccount",msg:"Invalid used nonces account"},{code:6021,name:"InvalidRecipientProgram",msg:"Invalid recipient program"},{code:6022,name:"InvalidNonce",msg:"Invalid nonce"},{code:6023,name:"NonceAlreadyUsed",msg:"Nonce already used"},{code:6024,name:"MessageTooShort",msg:"Message is too short"},{code:6025,name:"MalformedMessage",msg:"Malformed message"},{code:6026,name:"InvalidSignatureOrderOrDupe",msg:"Invalid signature order or dupe"},{code:6027,name:"InvalidAttesterSignature",msg:"Invalid attester signature"},{code:6028,name:"InvalidAttestationLength",msg:"Invalid attestation length"},{code:6029,name:"InvalidSignatureRecoveryId",msg:"Invalid signature recovery ID"},{code:6030,name:"InvalidSignatureSValue",msg:"Invalid signature S value"},{code:6031,name:"InvalidMessageHash",msg:"Invalid message hash"}]};n.registerProtocol(n._platform$1,"CircleBridge",b);const I={TokenMessengerIdl:J,MessageTransmitterIdl:Q};exports.SolanaCircleBridge=b;exports.calculateFirstNonce=w;exports.createDepositForBurnInstruction=O;exports.createMessageTransmitterProgramInterface=A;exports.createReadOnlyMessageTransmitterProgramInterface=R;exports.createReadOnlyTokenMessengerProgramInterface=C;exports.createReceiveMessageInstruction=E;exports.createTokenMessengerProgramInterface=v;exports.findProgramAddress=m;exports.idl=I;exports.nonceAccount=K;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as m, b as u } from "./platform-
|
|
2
|
-
import { ai as b, d as T, b8 as I, bs as h, q as k, dL as f, aH as v } from "./web3-
|
|
1
|
+
import { T as m, b as u } from "./platform-C5gJAqtZ.mjs";
|
|
2
|
+
import { ai as b, d as T, b8 as I, bs as h, q as k, dL as f, aH as v } from "./web3-BifDBsFp.mjs";
|
|
3
3
|
import { S as C } from "./unsignedTransaction-YrtWU1ft.mjs";
|
|
4
4
|
const S = [
|
|
5
5
|
[
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ac as Z, aa as Lr, dV as Tr, ad as Cr, g as Dn, P as X, J as Or, S as Bn, M as Rr, bx as Vt, b9 as Un, co as yt, dW as be, I as Y, bz as Ye, N as Nn, aP as Mn } from "./web3-
|
|
1
|
+
import { ac as Z, aa as Lr, dV as Tr, ad as Cr, g as Dn, P as X, J as Or, S as Bn, M as Rr, bx as Vt, b9 as Un, co as yt, dW as be, I as Y, bz as Ye, N as Nn, aP as Mn } from "./web3-BifDBsFp.mjs";
|
|
2
2
|
function Mo(r) {
|
|
3
3
|
if (r !== void 0)
|
|
4
4
|
return { connection: r };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { T as h, m as w, _ as T, aB as o, az as l, aE as s, aG as p, aF as m, aH as g, aI as y } from "./web3-
|
|
2
|
-
import { EvmWormholeCore as f } from "./index-
|
|
3
|
-
import { C as u } from "./contract-
|
|
4
|
-
import { E as c } from "./platform-
|
|
1
|
+
import { T as h, m as w, _ as T, aB as o, az as l, aE as s, aG as p, aF as m, aH as g, aI as y } from "./web3-BifDBsFp.mjs";
|
|
2
|
+
import { EvmWormholeCore as f } from "./index-Bp4ojxz6.mjs";
|
|
3
|
+
import { C as u } from "./contract-KYuIk_vR.mjs";
|
|
4
|
+
import { E as c } from "./platform-DtB8gGMl.mjs";
|
|
5
5
|
import { E as b } from "./unsignedTransaction-Efb4L-cb.mjs";
|
|
6
6
|
class i {
|
|
7
7
|
network;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./web3-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./web3-BKaP497Y.js"),d=require("./index-BZZZ8OeS.js"),h=require("./contract-CTycrpaK.js"),o=require("./platform-qdbxkhTI.js"),w=require("./unsignedTransaction-Bv76DnOj.js");class s{network;chain;provider;contracts;chainId;core;gatewayAddress;gateway;tbtcTokenAddr;constructor(e,t,n,a){if(this.network=e,this.chain=t,this.provider=n,this.contracts=a,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");const i=r.TBTCBridge.getNativeTbtcToken(this.chain);if(!i)throw new Error("Native tbtc token not found");this.chainId=r.networkChainToNativeChainId.get(e,t),this.core=new d.EvmWormholeCore(e,t,n,a),this.gatewayAddress=this.contracts.tbtc,this.gateway=new h.Contract(this.gatewayAddress,["function sendTbtc(uint256 amount, uint16 recipientChain, bytes32 recipient, uint256 arbiterFee, uint32 nonce) payable returns (uint64)","function receiveTbtc(bytes calldata encodedVm)"],n),this.tbtcTokenAddr=r.canonicalAddress(i)}static async fromRpc(e,t){const[n,a]=await o.EvmPlatform.chainFromRpc(e),i=t[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new s(n,a,e,i.contracts)}async*transfer(e,t,n){const a=new r.EvmAddress(e).toString(),i=await this.gateway.sendTbtc.populateTransaction(n,r.toChainId(t.chain),t.address.toUniversalAddress().toUint8Array(),0n,0n);i.value=await this.core.getMessageFee(),yield*this.approve(a,n,this.gatewayAddress),yield this.createUnsignedTransaction(r.addFrom(i,a),"TBTCBridge.Send")}async*redeem(e,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");const n=new r.EvmAddress(e).toString(),a=await this.gateway.receiveTbtc.populateTransaction(r.serialize$1(t));yield this.createUnsignedTransaction(r.addFrom(a,n),"TBTCBridge.Redeem")}async*approve(e,t,n){const a=o.EvmPlatform.getTokenImplementation(this.provider,this.tbtcTokenAddr);if(await a.allowance(e,n)<t){const c=await a.approve.populateTransaction(n,t);yield this.createUnsignedTransaction(r.addFrom(c,e),"TBTC.Approve")}}createUnsignedTransaction(e,t){return new w.EvmUnsignedTransaction(r.addChainId(e,this.chainId),this.network,this.chain,t,!1)}}r.registerProtocol(r._platform,"TBTCBridge",s);exports.EvmTBTCBridge=s;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { E as l, C as m } from "./platform-
|
|
2
|
-
import { I as T, C as g } from "./contract-
|
|
3
|
-
import { m as h, aB as c, aE as y, aG as v, dQ as M, q as S, aF as w, aH as I, aI as x } from "./web3-
|
|
4
|
-
import { c as C } from "./create-
|
|
1
|
+
import { E as l, C as m } from "./platform-DtB8gGMl.mjs";
|
|
2
|
+
import { I as T, C as g } from "./contract-KYuIk_vR.mjs";
|
|
3
|
+
import { m as h, aB as c, aE as y, aG as v, dQ as M, q as S, aF as w, aH as I, aI as x } from "./web3-BifDBsFp.mjs";
|
|
4
|
+
import { c as C } from "./create-BvzkkBPW.mjs";
|
|
5
5
|
import { E as A } from "./unsignedTransaction-Efb4L-cb.mjs";
|
|
6
6
|
class r {
|
|
7
7
|
network;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const t=require("./web3-
|
|
1
|
+
"use strict";const t=require("./web3-BKaP497Y.js");function I(n,e,o,s){t.ahash(n);const a=t.checkOpts$1({dkLen:32,asyncTick:10},s),{c:d,dkLen:i,asyncTick:r}=a;if(t.anumber(d),t.anumber(i),t.anumber(r),d<1)throw new Error("iterations (c) should be >= 1");const f=t.kdfInputToBytes(e),u=t.kdfInputToBytes(o),l=new Uint8Array(i),p=t.hmac.create(n,f),c=p._cloneInto().update(u);return{c:d,dkLen:i,asyncTick:r,DK:l,PRF:p,PRFSalt:c}}function T(n,e,o,s,a){return n.destroy(),e.destroy(),s&&s.destroy(),t.clean(a),o}function L(n,e,o,s){const{c:a,dkLen:d,DK:i,PRF:r,PRFSalt:f}=I(n,e,o,s);let u;const l=new Uint8Array(4),p=t.createView$1(l),c=new Uint8Array(r.outputLen);for(let w=1,y=0;y<d;w++,y+=r.outputLen){const m=i.subarray(y,y+r.outputLen);p.setInt32(0,w,!1),(u=f._cloneInto(u)).update(l).digestInto(c),m.set(c.subarray(0,m.length));for(let b=1;b<a;b++){r._cloneInto(u).update(c).digestInto(c);for(let k=0;k<m.length;k++)m[k]^=c[k]}}return T(r,f,i,u,c)}/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */function h(n){if(typeof n!="string")throw new TypeError("invalid mnemonic type: "+typeof n);return n.normalize("NFKD")}function g(n){const e=h(n),o=e.split(" ");if(![12,15,18,21,24].includes(o.length))throw new Error("Invalid mnemonic");return{nfkd:e,words:o}}const S=n=>h("mnemonic"+n);function F(n,e=""){return L(t.sha512$1,g(n).nfkd,S(e),{c:2048,dkLen:64})}exports.mnemonicToSeedSync=F;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as f, A as c } from "./unsignedTransaction-
|
|
2
|
-
import { c as h } from "./unsignedTransaction-
|
|
3
|
-
import { P as s, L as t, ar as o, aq as O, as as p } from "./web3-
|
|
1
|
+
import { T as f, A as c } from "./unsignedTransaction-CVE7GUdC.mjs";
|
|
2
|
+
import { c as h } from "./unsignedTransaction-CVE7GUdC.mjs";
|
|
3
|
+
import { P as s, L as t, ar as o, aq as O, as as p } from "./web3-BifDBsFp.mjs";
|
|
4
4
|
class A extends Error {
|
|
5
5
|
constructor(r) {
|
|
6
6
|
super(r);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("./lit-element-CwBgQkCS.js"),s=require("./class-map-XAAEsuml.js"),d=require("./core-
|
|
1
|
+
"use strict";const c=require("./lit-element-CwBgQkCS.js"),s=require("./class-map-XAAEsuml.js"),d=require("./core-COM78LTW.js"),p={getSpacingStyles(t,e){if(Array.isArray(t))return t[e]?`var(--wui-spacing-${t[e]})`:void 0;if(typeof t=="string")return`var(--wui-spacing-${t})`},getFormattedDate(t){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t)},getHostName(t){try{return new URL(t).hostname}catch{return""}},getTruncateString({string:t,charsStart:e,charsEnd:r,truncate:o}){return t.length<=e+r?t:o==="end"?`${t.substring(0,e)}...`:o==="start"?`...${t.substring(t.length-r)}`:`${t.substring(0,Math.floor(e))}...${t.substring(t.length-Math.floor(r))}`},generateAvatarColors(t){const r=t.toLowerCase().replace(/^0x/iu,"").replace(/[^a-f0-9]/gu,"").substring(0,6).padEnd(6,"0"),o=this.hexToRgb(r),n=getComputedStyle(document.documentElement).getPropertyValue("--w3m-border-radius-master"),a=100-3*Number(n?.replace("px","")),l=`${a}% ${a}% at 65% 40%`,v=[];for(let m=0;m<5;m+=1){const C=this.tintColor(o,.15*m);v.push(`rgb(${C[0]}, ${C[1]}, ${C[2]})`)}return`
|
|
2
2
|
--local-color-1: ${v[0]};
|
|
3
3
|
--local-color-2: ${v[1]};
|
|
4
4
|
--local-color-3: ${v[2]};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./chunk-KJH4KKG6-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./chunk-KJH4KKG6-DNlN4p21.js"),a=require("./web3-BKaP497Y.js"),v=require("./platform-C6QB7aIN.js"),k=require("./unsignedTransaction-BXJ9Cpni.js"),M=[["Mainnet",{depositForBurn:"0xa11ceb0b0700000a0701000802080e031614042a04052e30075e870108e5014000000001000201030004000001050701000100060b0001070304010801020805060108010309080900010002010205060c030e05050208000b010108020108020105010b0101090003060c0b01010900030108000004060c08000e0501030e66756e6769626c655f6173736574066f626a656374167072696d6172795f66756e6769626c655f73746f72650f746f6b656e5f6d657373656e6765720d46756e6769626c654173736574064f626a656374084d6574616461746111616464726573735f746f5f6f626a656374087769746864726177106465706f7369745f666f725f6275726e00000000000000000000000000000000000000000000000000000000000000019bce6734f7b63e835108e3bd8c36743d4709fe435f44791918801d0989640a9d0000010f0b0438000c060a000b060b0138010c050b000b050b020b0311020102",handleReceiveMessage:"0xa11ceb0b0700000a0601000402040403080c051416072a53087d40000001010002000000030203000101040304000103060c0a020a020003060c060a02060a020108000101136d6573736167655f7472616e736d69747465720f746f6b656e5f6d657373656e67657207526563656970740f726563656976655f6d6573736167651668616e646c655f726563656976655f6d657373616765177e17751820e4b4371873ca8c30279be63bdea63b88ed0f2239c2eea10f17729bce6734f7b63e835108e3bd8c36743d4709fe435f44791918801d0989640a9d000001070b000e010e02110011010102"}],["Testnet",{depositForBurn:"0xa11ceb0b0700000a0701000802080e031614042a04052e30075e870108e5014000000001000201030004000001050701000100060b0001070304010801020805060108010309080900010002010205060c030e05050208000b010108020108020105010b0101090003060c0b01010900030108000004060c08000e0501030e66756e6769626c655f6173736574066f626a656374167072696d6172795f66756e6769626c655f73746f72650f746f6b656e5f6d657373656e6765720d46756e6769626c654173736574064f626a656374084d6574616461746111616464726573735f746f5f6f626a656374087769746864726177106465706f7369745f666f725f6275726e00000000000000000000000000000000000000000000000000000000000000015f9b937419dda90aa06c1836b7847f65bbbe3f1217567758dc2488be31a477b90000010f0b0438000c060a000b060b0138010c050b000b050b020b0311020102",handleReceiveMessage:"0xa11ceb0b0700000a0601000402040403080c051416072a53087d40000001010002000000030203000101040304000103060c0a020a020003060c060a02060a020108000101136d6573736167655f7472616e736d69747465720f746f6b656e5f6d657373656e67657207526563656970740f726563656976655f6d6573736167651668616e646c655f726563656976655f6d657373616765081e86cebf457a0c6004f35bd648a2794698f52e0dde09a48619dcd3d4cc23d95f9b937419dda90aa06c1836b7847f65bbbe3f1217567758dc2488be31a477b9000001070b000e010e02110011010102"}]],p=a.constMap(M,[0,1]);class b{network;chain;provider;contracts;usdcId;tokenMessengerId;messageTransmitterId;moveScripts;constructor(t,n,r,e){if(this.network=t,this.chain=n,this.provider=r,this.contracts=e,t==="Devnet")throw new Error("CircleBridge not supported on Devnet");const s=a.usdcContract.get(this.network,this.chain);if(!s)throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);if(!e.cctp?.tokenMessenger)throw new Error(`Circle Token Messenger contract for domain ${n} not found`);if(!e.cctp?.messageTransmitter)throw new Error(`Circle Message Transmitter contract for domain ${n} not found`);if(!p.has(t))throw new Error("No Aptos CCTP move scripts found");this.usdcId=s,this.tokenMessengerId=e.cctp?.tokenMessenger,this.messageTransmitterId=e.cctp.messageTransmitter,this.moveScripts=p.get(t)}async*transfer(t,n,r){const e=new c.y(a.circleChainId.get(this.network,n.chain)),s=c.l.from(this.usdcId),i=c.l.from(n.address.toUniversalAddress().toUint8Array()),o=[new c.m$1(r),e,i,s],h={bytecode:this.moveScripts.depositForBurn,functionArguments:o};yield this.createUnsignedTx(h,"Aptos.CircleBridge.Transfer")}async isTransferCompleted(t){const n=new c.y(t.sourceDomain).bcsToBytes(),r=new c.m$1(t.nonce).bcsToBytes(),e=a.keccak_256(new Uint8Array([...n,45,...r])),s=a.hex.encode(e);return(await this.provider.view({payload:{function:`${this.messageTransmitterId}::message_transmitter::is_nonce_used`,functionArguments:[s]}}))[0]}async*redeem(t,n,r){const e=[c.t$1.U8(a.CircleBridge.serialize(n)),c.t$1.U8(a.hex.decode(r))],s={bytecode:this.moveScripts.handleReceiveMessage,functionArguments:e};yield this.createUnsignedTx(s,"Aptos.CircleBridge.Redeem")}async parseTransactionDetails(t){let e,s;for(let f=0;f<5;f++)try{const m=await this.provider.getTransactionByHash({transactionHash:t}),g=this.messageTransmitterId.replace(/^0x0+/,"0x");if(s=m.events?.find(u=>u.type===`${g}::message_transmitter::MessageSent`),s)break;e=new Error(`MessageSent event not found in transaction ${t}`),f<4&&await new Promise(u=>setTimeout(u,1e3))}catch(m){e=m,f<4&&await new Promise(g=>setTimeout(g,1e3))}if(!s)throw e||new Error("No MessageSent event found after 5 attempts");const i=a.hex.decode(s.data.message),[o,h]=a.CircleBridge.deserialize(i),{payload:d}=o,w=d.messageSender,T=d.mintRecipient,l=a.toCircleChain(this.network,o.sourceDomain),y=a.toCircleChain(this.network,o.destinationDomain),C={chain:l,address:d.burnToken};return{from:{chain:l,address:w},to:{chain:y,address:T},token:C,amount:d.amount,message:o,id:{hash:h}}}static async fromRpc(t,n){const[r,e]=await v.AptosPlatform.chainFromRpc(t),s=n[e];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new b(r,e,t,s.contracts)}createUnsignedTx(t,n,r=!1){return new k.AptosUnsignedTransaction(t,this.network,this.chain,n,r)}}a.registerProtocol("Aptos","CircleBridge",b);exports.AptosCircleBridge=b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./web3-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./web3-BKaP497Y.js"),c=require("./platform-C6QB7aIN.js"),d=require("./create-CGZYy2vu.js");class a{network;chain;connection;contracts;chainId;coreBridge;constructor(e,n,t,o){this.network=e,this.chain=n,this.connection=t,this.contracts=o,this.chainId=s.toChainId(n);const r=o.coreBridge;if(!r)throw new Error(`CoreBridge contract Address for chain ${n} not found`);this.coreBridge=r}getGuardianSet(e){throw new Error("Method not implemented.")}getGuardianSetIndex(){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,n){const[t,o]=await c.AptosPlatform.chainFromRpc(e),r=n[o];if(r.network!==t)throw new Error(`Network mismatch: ${r.network} !== ${t}`);return new a(t,o,e,r.contracts)}async*publishMessage(e,n){throw new Error("Method not implemented.")}async*verifyMessage(e,n){throw new Error("Not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(t=>({chain:t.emitterChain,emitter:t.emitterAddress,sequence:t.sequence}))}async parseMessages(e){const n=await this.connection.getTransactionByHash({transactionHash:e});if(n.type!=="user_transaction")throw new Error(`${e} is not a user_transaction`);const t=n.events.filter(o=>o.type.endsWith("WormholeMessage"));if(!t||t.length===0)throw new Error(`WormholeMessage not found for ${e}`);return t.map(o=>{const r=o.data,i=new s.UniversalAddress(BigInt(r.sender).toString(16).padStart(64,"0"));return d.createVAA("Uint8Array",{guardianSet:0,emitterChain:this.chain,emitterAddress:i,sequence:BigInt(r.sequence),timestamp:Number(r.timestamp),consistencyLevel:r.consistency_level,nonce:Number(r.nonce),signatures:[],payload:s.hex.decode(r.payload)})})}}s.registerProtocol("Aptos","WormholeCore",a);exports.AptosWormholeCore=a;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { az as a, aR as i, aH as c } from "./web3-
|
|
2
|
-
import { b as d } from "./platform-
|
|
3
|
-
import { c as h } from "./create-
|
|
1
|
+
import { az as a, aR as i, aH as c } from "./web3-BifDBsFp.mjs";
|
|
2
|
+
import { b as d } from "./platform-C5gJAqtZ.mjs";
|
|
3
|
+
import { c as h } from "./create-BvzkkBPW.mjs";
|
|
4
4
|
class o {
|
|
5
5
|
network;
|
|
6
6
|
chain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./web3-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./web3-BKaP497Y.js"),i=require("./address-Bc-5yO4D.js"),p=require("./chunk-KJH4KKG6-DNlN4p21.js"),y=require("./platform-C6QB7aIN.js"),g=require("./unsignedTransaction-BXJ9Cpni.js"),f=[{name:"tokenBridgeAddress",...r.universalAddressItem},{name:"chain",...r.chainItem()},{name:"domainSeparator",binary:"bytes",custom:r.bytes.encode(i.APTOS_SEPARATOR),omit:!0},{name:"tokenId",...r.universalAddressItem},{name:"domainSeparator",binary:"bytes",custom:new Uint8Array([255]),omit:!0}],w=l=>r.serialize(f,l);class d{network;chain;connection;contracts;chainId;tokenBridgeAddress;constructor(e,t,s,n){this.network=e,this.chain=t,this.connection=s,this.contracts=n,this.chainId=r.toChainId(t);const a=n.tokenBridge;if(!a)throw new Error(`TokenBridge contract Address for chain ${t} not found`);this.tokenBridgeAddress=a}static async fromRpc(e,t){const[s,n]=await y.AptosPlatform.chainFromRpc(e),a=t[n];if(a.network!==s)throw new Error("Network mismatch "+a.network+" !== "+s);return new d(s,n,e,a.contracts)}async isWrappedAsset(e){try{return await this.getOriginalAsset(e),!0}catch{return!1}}async getOriginalAsset(e){const t=e.toString().split(i.APTOS_SEPARATOR);let s=null;try{s=await this.connection.getAccountResource({accountAddress:t[0],resourceType:`${this.tokenBridgeAddress}::state::OriginInfo`})}catch(o){throw o instanceof p.T&&o.data?.error_code==="resource_not_found"?r.ErrNotWrapped(e.toString()):o}if(!s)throw r.ErrNotWrapped(e.toString());const n=r.toChain(parseInt(s.token_chain.number)),a=new r.UniversalAddress(s.token_address.external_address);return{chain:n,address:a}}async getTokenUniversalAddress(e){return new r.UniversalAddress(r.hex.encode(r.sha3_256(e.toString()),!0))}async getTokenNativeAddress(e,t){const s=e===this.chain?await this.getTypeFromExternalAddress(t.toString()):await this.getAssetFullyQualifiedType({chain:e,address:t});if(!s)throw new Error("Invalid asset address.");return new i.AptosAddress(s)}async hasWrappedAsset(e){try{return await this.getWrappedAsset(e),!0}catch{}return!1}async getWrappedAsset(e){if(r.isNative(e.address))throw new Error("native asset cannot be a wrapped asset");const t=await this.getAssetFullyQualifiedType(e);if(!t)throw new Error("Invalid asset address.");return await this.connection.getAccountResource({accountAddress:i.coalesceModuleAddress(t),resourceType:`${this.tokenBridgeAddress}::state::OriginInfo`}),r.toNative(this.chain,t)}async isTransferCompleted(e){const s=(await this.connection.getAccountResource({accountAddress:this.tokenBridgeAddress,resourceType:`${this.tokenBridgeAddress}::state::State`})).consumed_vaas.elems.handle;try{return await this.connection.getTableItem({handle:s,data:{key_type:"vector<u8>",value_type:"u8",key:`0x${r.Buffer.from(r.keccak_256(e.hash)).toString("hex")}`}}),!0}catch{return!1}}async getWrappedNative(){return r.toNative(this.chain,i.APTOS_COIN)}async*createAttestation(e,t){const s={chain:this.chain,address:new i.AptosAddress(e)},n=await this.getAssetFullyQualifiedType(s);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::attest_token::attest_token_entry`,typeArguments:[n],functionArguments:[]},"Aptos.AttestToken")}async*submitAttestation(e,t){yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin_type`,typeArguments:[],functionArguments:[r.serialize$1(e)]},"Aptos.CreateWrappedCoinType");const s=await this.getAssetFullyQualifiedType(e.payload.token);if(!s)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::wrapped::create_wrapped_coin`,typeArguments:[s],functionArguments:[r.serialize$1(e)]},"Aptos.CreateWrappedCoin")}async*transfer(e,t,s,n,a){const o=0n,c=0n,h=r.isNative(s)?i.APTOS_COIN:s.toString(),u=t.address.toUniversalAddress().toUint8Array(),A=r.toChainId(t.chain);a?yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_with_payload_entry`,typeArguments:[h],functionArguments:[n,A,u,c,a]},"Aptos.TransferTokensWithPayload"):yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::transfer_tokens::transfer_tokens_entry`,typeArguments:[h],functionArguments:[n,A,u,o,c]},"Aptos.TransferTokens")}async*redeem(e,t,s=!0){const n=t.payload.token.chain===this.chain?await this.getTypeFromExternalAddress(t.payload.token.address.toString()):await this.getAssetFullyQualifiedType(t.payload.token);if(!n)throw new Error("Invalid asset address.");yield this.createUnsignedTx({function:`${this.tokenBridgeAddress}::complete_transfer::submit_vaa_and_register_entry`,typeArguments:[n],functionArguments:[r.serialize$1(t)]},"Aptos.CompleteTransfer")}async getAssetFullyQualifiedType(e){return e.chain===this.chain?i.isValidAptosType(e.address.toString())?e.address.toString():null:`${d.getForeignAssetAddress(this.chain,this.tokenBridgeAddress,e)}::coin::T`}async getTypeFromExternalAddress(e){try{const t=await this.connection.getAccountResource({accountAddress:this.tokenBridgeAddress,resourceType:`${this.tokenBridgeAddress}::state::State`}),{handle:s}=t.native_infos,n=await this.connection.getTableItem({handle:s,data:{key_type:`${this.tokenBridgeAddress}::token_hash::TokenHash`,value_type:"0x1::type_info::TypeInfo",key:{hash:e}}});return n?[n.account_address,String.fromCharCode(...r.hex.decode(n.module_name)),String.fromCharCode(...r.hex.decode(n.struct_name))].join(i.APTOS_SEPARATOR):null}catch{return null}}static getForeignAssetAddress(e,t,s){if(r.isNative(s.address))throw new Error("Invalid token address");const n=w({chain:s.chain,tokenBridgeAddress:new i.AptosAddress(t).toUniversalAddress(),tokenId:s.address.toUniversalAddress()});return r.hex.encode(r.sha3_256(n),!0)}createUnsignedTx(e,t,s=!1){return new g.AptosUnsignedTransaction(e,this.network,this.chain,t,s)}}r.registerProtocol("Aptos","TokenBridge",d);exports.AptosTokenBridge=d;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as T, v as O, B as F, x as C, D as S, a6 as G, Z as y, bc as _, bd as m, b as I, _ as w, W as p, u as g, z as M, t as N, aW as x, be as B, bf as E, bg as L, aT as v, f as Q, bh as U, aU as W, a7 as V, a8 as $, aS as H, bi as j, a1 as X, R as Z, bj as J, bk as K, a0 as Y, bl as q } from "./web3-
|
|
2
|
-
import { A as tt, a as et, C as nt, R as at, b as ot, T as it } from "./address-
|
|
1
|
+
import { e as T, v as O, B as F, x as C, D as S, a6 as G, Z as y, bc as _, bd as m, b as I, _ as w, W as p, u as g, z as M, t as N, aW as x, be as B, bf as E, bg as L, aT as v, f as Q, bh as U, aU as W, a7 as V, a8 as $, aS as H, bi as j, a1 as X, R as Z, bj as J, bk as K, a0 as Y, bl as q } from "./web3-BifDBsFp.mjs";
|
|
2
|
+
import { A as tt, a as et, C as nt, R as at, b as ot, T as it } from "./address-BX2fIOro.mjs";
|
|
3
3
|
async function D(l, t, e, a = 120 * 1e3, n = console.log) {
|
|
4
4
|
const o = Date.now();
|
|
5
5
|
n("Checking transfer state...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const i=require("./web3-C1wK6wIV.js"),g=require("./index-Dq7WWqFe.js"),l=require("./account-D0Q4K1CI.js"),Q=require("./unsignedTransaction-CiPKh85X.js"),Ee=require("./create-CfgTxAS-.js"),R=new i.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");function ee(r){return l.deriveAddress([new i.PublicKey(r).toBuffer()],R)}class be extends Error{constructor(e){super(e),this.name="IdlError"}}function O(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>w(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?w(r,s.type):w(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return w(r,e.type.value)}}function w(r,e){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+w(r,e.option);if("coption"in e)return 4+w(r,e.coption);if("defined"in e){const t=r.types?.filter(s=>s.name===e.defined)??[];if(t.length!==1)throw new be(`Type not found: ${JSON.stringify(e)}`);let n=t[0];return O(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return w(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function K(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Me(r){return r.charAt(0).toUpperCase()+r.slice(1)}const te=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...i.universalAddressItem},{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",...i.universalAddressItem},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function ne(r){return i.deserialize$1(te,r)}function E(r,e,t,n){const s=typeof e=="string"?i.Buffer.from(e,"hex"):i.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=i.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),l.deriveAddress([s,(()=>{const o=i.Buffer.alloc(2);return o.writeUInt16BE(t),o})(),a],r)}async function re(r,e,t,n,s,a){return r.getAccountInfo(E(e,t,n,s),a).then(o=>!!l.getAccountData(o)[0])}function y(r){return l.deriveAddress([i.Buffer.from("Bridge")],r)}async function se(r,e,t){return r.getAccountInfo(y(e),t).then(n=>v.deserialize(l.getAccountData(n)))}class T{guardianSetExpirationTime;fee;constructor(e,t){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 T(t,n)}}class v{guardianSetIndex;lastLamports;config;constructor(e,t,n){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=T.deserialize(e.subarray(12));return new v(t,n,s)}}function U(r,e){return l.deriveAddress([i.Buffer.from("Sequence"),new i.PublicKey(r).toBytes()],e)}async function ie(r,e,t,n){return r.getAccountInfo(U(e,t),n).then(s=>k.deserialize(l.getAccountData(s)))}class k{sequence;bump;emitterType;constructor(e,t,n){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 k(s,t,n)}value(){return this.sequence}}function z(r){return l.deriveAddress([i.Buffer.from("emitter")],r)}function Y(r,e){const t=z(r);return{emitter:t,sequence:U(t,e)}}async function ae(r,e,t,n){return ie(r,z(e),t,n)}function b(r){return l.deriveAddress([i.Buffer.from("fee_collector")],r)}const X=65,L=20;function Ie(r,e,t){return new i.TransactionInstruction({keys:[],programId:i.Secp256k1Program.programId,data:xe.serialize(r,e,t)})}class xe{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,o=1+s*a,c=X+L,u=o+s*c,f=32,d=i.Buffer.alloc(u+f);d.writeUInt8(s,0),d.write(n.toString("hex"),u,"hex");for(let m=0;m<s;++m){const S=e.at(m);if(S?.length!=X)throw Error(`signatures[${m}].length != 65`);const x=t.at(m);if(x?.length!=L)throw Error(`keys[${m}].length != 20`);const P=o+c*m,B=P+65;d.writeUInt16LE(P,1+m*a),d.writeUInt8(0,3+m*a),d.writeUInt16LE(B,4+m*a),d.writeUInt8(0,6+m*a),d.writeUInt16LE(u,7+m*a),d.writeUInt16LE(f,9+m*a),d.writeUInt8(0,10+m*a),d.write(S.toString("hex"),P,"hex"),d.write(x.toString("hex"),B,"hex")}return d}}function A(r,e){return l.deriveAddress([i.Buffer.from("GuardianSet"),(()=>{const t=i.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function N(r,e,t,n){return r.getAccountInfo(A(e,t),n).then(s=>q.deserialize(l.getAccountData(s)))}class q{index;keys;creationTime;expirationTime;constructor(e,t,n,s){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*L,a=e.readUInt32LE(s),o=e.readUInt32LE(4+s),c=[];for(let u=0;u<n;++u){const f=8+u*L;c.push(e.subarray(f,f+L))}return new q(t,c,a,o)}}function h(r,e){return l.deriveAddress([i.Buffer.from("PostedVAA"),e],r)}async function Pe(r,e,t){return r.getAccountInfo(new i.PublicKey(e),t).then(n=>V.deserialize(l.getAccountData(n)))}class V{signatures;hash;guardianSetIndex;constructor(e,t,n){this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(c=>c!=0),s=4+t,a=e.subarray(s,s+32),o=e.readUInt32LE(s+32);return new V(n,a,o)}}function G(r){return l.deriveAddress([i.Buffer.from("upgrade")],r)}function $(r,e,t){return i.SystemProgram.transfer({fromPubkey:new i.PublicKey(e),toPubkey:b(r),lamports:t})}class Be{idl;constructor(e){this.idl=e}async encode(e,t){throw new Error(`Invalid account name: ${e}`)}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){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 O(this.idl,e)??0}}class Ke{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class M{static fieldLayout(e,t){const n=e.name!==void 0?K(e.name):void 0;switch(e.type){case"bool":return g.distExports.bool(n);case"u8":return g.distExports.u8(n);case"i8":return g.distExports.i8(n);case"u16":return g.distExports.u16(n);case"i16":return g.distExports.i16(n);case"u32":return g.distExports.u32(n);case"i32":return g.distExports.i32(n);case"f32":return g.distExports.f32(n);case"u64":return g.distExports.u64(n);case"i64":return g.distExports.i64(n);case"f64":return g.distExports.f64(n);case"u128":return g.distExports.u128(n);case"i128":return g.distExports.i128(n);case"u256":return g.distExports.u256(n);case"i256":return g.distExports.i256(n);case"bytes":return g.distExports.vecU8(n);case"string":return g.distExports.str(n);case"publicKey":return g.distExports.publicKey(n);default:{if("vec"in e.type)return g.distExports.vec(M.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return g.distExports.option(M.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],o=M.fieldLayout({name:void 0,type:s},t);return g.distExports.array(o,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class W{ixLayout;constructor(e){this.ixLayout=W.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(c=>M.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const o=K(s.name);return[o,g.distExports.struct(a,o)]}).concat(e.instructions.map(s=>{let a=s.args.map(c=>M.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const o=K(s.name);return[o,g.distExports.struct(a,o)]}));return new Map(n)}encode(e,t){const n=i.Buffer.alloc(1e3),s=K(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const o=a.encode(t,n),c=n.slice(0,o);return Le(_[Me(s)],c)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?i.Buffer.from(e,"hex"):i.b58.decode(e));let n=i.Buffer.from(e.slice(0,1)).readInt8(),s=i.Buffer.from(e.slice(1)),a=K(_[n]??"");return this.ixLayout.get(a)?{data:this.ixLayout.get(a)?.decode(s),name:a}:null}}var _;(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"})(_||(_={}));function Le(r,e){const t=i.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 Ue{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 Ce{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 _e{instruction;accounts;state;events;types;constructor(e){this.instruction=new W(e),this.accounts=new Be(e),this.state=new Ue(e),this.events=new Ke(e),this.types=new Ce(e)}}const j={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 oe(r,e){return new g.Program(j,new i.PublicKey(r),e===void 0?{connection:null}:e,ue())}function p(r,e){return oe(r,g.createReadOnlyProvider(e))}function ue(){return new _e(j)}function Te(r,e,t,n){const s=p(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:ce(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function ce(r,e,t){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),systemProgram:i.SystemProgram.programId}}function ve(r,e,t,n,s){const a=p(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:de(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function de(r,e,t,n){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(n.hash)),claim:E(r,n.emitterAddress.toString(),i.toChainId(n.emitterChain),n.sequence),feeCollector:b(r),recipient:new i.PublicKey(t),rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function ke(r,e,t,n){const s=p(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:ge(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function ge(r,e,t){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),guardianSetOld:A(r,t.guardianSet),guardianSetNew:A(r,t.guardianSet+1),systemProgram:i.SystemProgram.programId}}function ze(r,e,t,n){const s=p(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:fe(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function fe(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),upgradeAuthority:G(r),spill:new i.PublicKey(n===void 0?e:n),implementation:new i.SolanaAddress(s).unwrap(),programData:ee(r),wormholeProgram:new i.PublicKey(r),rent:i.SYSVAR_RENT_PUBKEY,clock:i.SYSVAR_CLOCK_PUBKEY,bpfLoaderUpgradeable:R,systemProgram:i.SystemProgram.programId}}function qe(r,e,t,n,s,a){const o=p(e,r).methods.initialize(n,new i.BN(s.toString()),[...a.map(c=>[...new Uint8Array(c)])]);return o._ixFn(...o._args,{accounts:me(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function me(r,e){return{bridge:y(r),guardianSet:A(r,0),feeCollector:b(r),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function le(r,e,t,n,s,a,o){const c=p(e,r).methods.postMessage(a,i.Buffer.from(s),o);return c._ixFn(...c._args,{accounts:D(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function D(r,e,t,n){let s;return n?{emitter:n,sequence:s}=Y(n,r):(n=e,s=U(n,r)),{bridge:y(r),message:new i.PublicKey(t),emitter:new i.PublicKey(n),sequence:s,payer:new i.PublicKey(e),feeCollector:b(r),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function ye(r,e,t,n,s){const a=p(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,i.toChainId(n.emitterChain),[...n.emitterAddress.toUint8Array()],new i.BN(n.sequence.toString()),n.consistencyLevel,i.Buffer.from(i.serializePayload(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:pe(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function pe(r,e,t,n){return{guardianSet:A(r,n.guardianSet),bridge:y(r),signatureSet:new i.PublicKey(t),vaa:h(r,i.Buffer.from(n.hash)),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}const Ve=19;async function he(r,e,t,n,s,a){const o=n.guardianSet,c=await N(r,e,o,a),u=n.signatures,f=c.keys,d=7,m=[];for(let S=0;S<Math.ceil(u.length/d);++S){const x=S*d,P=Math.min(u.length,(S+1)*d),B=new Array(Ve).fill(-1),H=[],J=[];for(let C=0;C<P-x;++C){const F=u.at(C+x);H.push(i.Buffer.from(F.signature.encode())),J.push(f.at(F.guardianIndex)),B[F.guardianIndex]=C}m.push(Ie(H,J,i.Buffer.from(n.hash))),m.push(De(r,e,t,n,s,B))}return m}function De(r,e,t,n,s,a){const o=p(e,r).methods.verifySignatures(a);return o._ixFn(...o._args,{accounts:Se(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t,n){return{payer:new i.PublicKey(e),guardianSet:A(r,n.guardianSet),signatureSet:new i.PublicKey(t),instructions:i.SYSVAR_INSTRUCTIONS_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function we(r,e){const{emitter:t,sequence:n}=Y(r,e);return{wormholeBridge:y(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:b(e)}}function Ae(r,e,t,n){const s=D(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 Fe=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:T,BridgeData:v,GuardianSetData:q,SequenceTracker:k,SignatureSetData:V,coder:ue,createBridgeFeeTransferInstruction:$,createInitializeInstruction:qe,createPostMessageInstruction:le,createPostVaaInstruction:ye,createReadOnlyWormholeProgramInterface:p,createSetFeesInstruction:Te,createTransferFeesInstruction:ve,createUpgradeContractInstruction:ze,createUpgradeGuardianSetInstruction:ke,createVerifySignaturesInstructions:he,createWormholeProgramInterface:oe,deriveClaimKey:E,deriveEmitterSequenceKey:U,deriveFeeCollectorKey:b,deriveGuardianSetKey:A,derivePostedVaaKey:h,deriveUpgradeAuthorityKey:G,deriveWormholeBridgeDataKey:y,deriveWormholeEmitterKey:z,getClaim:re,getEmitterKeys:Y,getGuardianSet:N,getInitializeAccounts:me,getPostMessageAccounts:D,getPostMessageCpiAccounts:Ae,getPostVaaAccounts:pe,getProgramSequenceTracker:ae,getSequenceTracker:ie,getSetFeesAccounts:ce,getSignatureSetData:Pe,getTransferFeesAccounts:de,getUpgradeContractAccounts:fe,getUpgradeGuardianSetAccounts:ge,getVerifySignatureAccounts:Se,getWormholeBridgeData:se,getWormholeDerivedAccounts:we},Symbol.toStringTag,{value:"Module"})),Z="Program log: Sequence: ";class I{network;chain;connection;contracts;chainId;coreBridge;address;bridgeData;constructor(e,t,n,s){this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=i.toChainId(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=p(a,n)}async getGuardianSet(e){const t=await N(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 Q.SolanaPlatform.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new I(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await se(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=i.Keypair.generate(),o=new i.SolanaAddress(e).unwrap(),c=le(this.connection,this.coreBridge.programId,o,a.publicKey,t,n,s),u=await this.getMessageFee(),f=$(this.coreBridge.programId,o,u),d=new i.Transaction;d.feePayer=o,d.add(f,c),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=h(this.coreBridge.programId,i.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new i.SolanaAddress(e).unwrap(),o=i.Keypair.generate(),c=await he(this.connection,this.coreBridge.programId,a,t,o.publicKey);for(let f=0;f<c.length;f+=2){const d=new i.Transaction().add(...c.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[o]},"Core.VerifySignature",!0)}const u=new i.Transaction().add(ye(this.connection,this.coreBridge.programId,a,t,o.publicKey));u.feePayer=a,yield this.createUnsignedTx({transaction:u},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const a=s.staticAccountKeys;if(a.filter(u=>u.toString()===e).length===0)return[];const o=n?.logMessages?.filter(u=>u.startsWith(Z))?.[0]?.replace(Z,"");if(!o)return[];const c=[];for(const u of n?.innerInstructions){const f=u.instructions;c.push(...f.filter(d=>d.programIdIndex in a&&a[d.programIdIndex].toString()===e))}return c.length<1?[]:a.length<3?[]:c.map(u=>[new i.SolanaAddress(a[u.accounts[2]]).toUniversalAddress(),BigInt(o)]).filter(u=>u!==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){const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,o=n.innerInstructions?.flatMap(u=>u.instructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString())).map(u=>({programIdIndex:u.programIdIndex,accountKeyIndexes:u.accounts})),c=s.compiledInstructions.filter(u=>a.toString()===e.get(u.programIdIndex).toString());return[...o,...c]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!t?.data)throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:o,sequence:c,nonce:u,payload:f}=ne(new Uint8Array(t?.data));return Ee.createVAA("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:i.toChain(a),timestamp:n,emitterAddress:s,consistencyLevel:o,sequence:c,nonce:u,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 o=I.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(o.length>0){const[c,u]=o[0];return[{chain:this.chain,emitter:c,sequence:u}]}}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 o=>{const c=n.get(o.accountKeyIndexes[1]),u=await this.parsePostMessageAccount(c);return{chain:u.emitterChain,emitter:u.emitterAddress,sequence:u.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 o=>{const c=n.get(o.accountKeyIndexes[1]);return await this.parsePostMessageAccount(c)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Q.SolanaUnsignedTransaction(e,this.network,this.chain,t,n)}}i.registerProtocol(i._platform$1,"WormholeCore",I);const Re=Object.freeze(Object.defineProperty({__proto__:null,IDL:j,SolanaWormholeCore:I,deserializePostMessage:ne,postMessageLayout:te,utils:Fe},Symbol.toStringTag,{value:"Module"}));exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID=R;exports.SolanaWormholeCore=I;exports.accountSize=O;exports.createBridgeFeeTransferInstruction=$;exports.deriveClaimKey=E;exports.deriveEmitterSequenceKey=U;exports.deriveFeeCollectorKey=b;exports.derivePostedVaaKey=h;exports.deriveProgramDataAddress=ee;exports.deriveUpgradeAuthorityKey=G;exports.deriveWormholeBridgeDataKey=y;exports.deriveWormholeEmitterKey=z;exports.getClaim=re;exports.getPostMessageAccounts=D;exports.getPostMessageCpiAccounts=Ae;exports.getProgramSequenceTracker=ae;exports.getWormholeDerivedAccounts=we;exports.index=Re;
|
|
1
|
+
"use strict";const i=require("./web3-BKaP497Y.js"),g=require("./index-B7HBnPLP.js"),l=require("./account-24z6tDMM.js"),Q=require("./unsignedTransaction-DL3WyIkF.js"),Ee=require("./create-CGZYy2vu.js"),R=new i.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");function ee(r){return l.deriveAddress([new i.PublicKey(r).toBuffer()],R)}class be extends Error{constructor(e){super(e),this.name="IdlError"}}function O(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>w(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?w(r,s.type):w(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return w(r,e.type.value)}}function w(r,e){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+w(r,e.option);if("coption"in e)return 4+w(r,e.coption);if("defined"in e){const t=r.types?.filter(s=>s.name===e.defined)??[];if(t.length!==1)throw new be(`Type not found: ${JSON.stringify(e)}`);let n=t[0];return O(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return w(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function K(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Me(r){return r.charAt(0).toUpperCase()+r.slice(1)}const te=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...i.universalAddressItem},{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",...i.universalAddressItem},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function ne(r){return i.deserialize$1(te,r)}function E(r,e,t,n){const s=typeof e=="string"?i.Buffer.from(e,"hex"):i.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=i.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),l.deriveAddress([s,(()=>{const o=i.Buffer.alloc(2);return o.writeUInt16BE(t),o})(),a],r)}async function re(r,e,t,n,s,a){return r.getAccountInfo(E(e,t,n,s),a).then(o=>!!l.getAccountData(o)[0])}function y(r){return l.deriveAddress([i.Buffer.from("Bridge")],r)}async function se(r,e,t){return r.getAccountInfo(y(e),t).then(n=>v.deserialize(l.getAccountData(n)))}class T{guardianSetExpirationTime;fee;constructor(e,t){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 T(t,n)}}class v{guardianSetIndex;lastLamports;config;constructor(e,t,n){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=T.deserialize(e.subarray(12));return new v(t,n,s)}}function U(r,e){return l.deriveAddress([i.Buffer.from("Sequence"),new i.PublicKey(r).toBytes()],e)}async function ie(r,e,t,n){return r.getAccountInfo(U(e,t),n).then(s=>k.deserialize(l.getAccountData(s)))}class k{sequence;bump;emitterType;constructor(e,t,n){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 k(s,t,n)}value(){return this.sequence}}function z(r){return l.deriveAddress([i.Buffer.from("emitter")],r)}function Y(r,e){const t=z(r);return{emitter:t,sequence:U(t,e)}}async function ae(r,e,t,n){return ie(r,z(e),t,n)}function b(r){return l.deriveAddress([i.Buffer.from("fee_collector")],r)}const X=65,L=20;function Ie(r,e,t){return new i.TransactionInstruction({keys:[],programId:i.Secp256k1Program.programId,data:xe.serialize(r,e,t)})}class xe{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,o=1+s*a,c=X+L,u=o+s*c,f=32,d=i.Buffer.alloc(u+f);d.writeUInt8(s,0),d.write(n.toString("hex"),u,"hex");for(let m=0;m<s;++m){const S=e.at(m);if(S?.length!=X)throw Error(`signatures[${m}].length != 65`);const x=t.at(m);if(x?.length!=L)throw Error(`keys[${m}].length != 20`);const P=o+c*m,B=P+65;d.writeUInt16LE(P,1+m*a),d.writeUInt8(0,3+m*a),d.writeUInt16LE(B,4+m*a),d.writeUInt8(0,6+m*a),d.writeUInt16LE(u,7+m*a),d.writeUInt16LE(f,9+m*a),d.writeUInt8(0,10+m*a),d.write(S.toString("hex"),P,"hex"),d.write(x.toString("hex"),B,"hex")}return d}}function A(r,e){return l.deriveAddress([i.Buffer.from("GuardianSet"),(()=>{const t=i.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function N(r,e,t,n){return r.getAccountInfo(A(e,t),n).then(s=>q.deserialize(l.getAccountData(s)))}class q{index;keys;creationTime;expirationTime;constructor(e,t,n,s){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*L,a=e.readUInt32LE(s),o=e.readUInt32LE(4+s),c=[];for(let u=0;u<n;++u){const f=8+u*L;c.push(e.subarray(f,f+L))}return new q(t,c,a,o)}}function h(r,e){return l.deriveAddress([i.Buffer.from("PostedVAA"),e],r)}async function Pe(r,e,t){return r.getAccountInfo(new i.PublicKey(e),t).then(n=>V.deserialize(l.getAccountData(n)))}class V{signatures;hash;guardianSetIndex;constructor(e,t,n){this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(c=>c!=0),s=4+t,a=e.subarray(s,s+32),o=e.readUInt32LE(s+32);return new V(n,a,o)}}function G(r){return l.deriveAddress([i.Buffer.from("upgrade")],r)}function $(r,e,t){return i.SystemProgram.transfer({fromPubkey:new i.PublicKey(e),toPubkey:b(r),lamports:t})}class Be{idl;constructor(e){this.idl=e}async encode(e,t){throw new Error(`Invalid account name: ${e}`)}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){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 O(this.idl,e)??0}}class Ke{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class M{static fieldLayout(e,t){const n=e.name!==void 0?K(e.name):void 0;switch(e.type){case"bool":return g.distExports.bool(n);case"u8":return g.distExports.u8(n);case"i8":return g.distExports.i8(n);case"u16":return g.distExports.u16(n);case"i16":return g.distExports.i16(n);case"u32":return g.distExports.u32(n);case"i32":return g.distExports.i32(n);case"f32":return g.distExports.f32(n);case"u64":return g.distExports.u64(n);case"i64":return g.distExports.i64(n);case"f64":return g.distExports.f64(n);case"u128":return g.distExports.u128(n);case"i128":return g.distExports.i128(n);case"u256":return g.distExports.u256(n);case"i256":return g.distExports.i256(n);case"bytes":return g.distExports.vecU8(n);case"string":return g.distExports.str(n);case"publicKey":return g.distExports.publicKey(n);default:{if("vec"in e.type)return g.distExports.vec(M.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return g.distExports.option(M.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],o=M.fieldLayout({name:void 0,type:s},t);return g.distExports.array(o,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class W{ixLayout;constructor(e){this.ixLayout=W.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(c=>M.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const o=K(s.name);return[o,g.distExports.struct(a,o)]}).concat(e.instructions.map(s=>{let a=s.args.map(c=>M.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const o=K(s.name);return[o,g.distExports.struct(a,o)]}));return new Map(n)}encode(e,t){const n=i.Buffer.alloc(1e3),s=K(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const o=a.encode(t,n),c=n.slice(0,o);return Le(_[Me(s)],c)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?i.Buffer.from(e,"hex"):i.b58.decode(e));let n=i.Buffer.from(e.slice(0,1)).readInt8(),s=i.Buffer.from(e.slice(1)),a=K(_[n]??"");return this.ixLayout.get(a)?{data:this.ixLayout.get(a)?.decode(s),name:a}:null}}var _;(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"})(_||(_={}));function Le(r,e){const t=i.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 Ue{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 Ce{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 _e{instruction;accounts;state;events;types;constructor(e){this.instruction=new W(e),this.accounts=new Be(e),this.state=new Ue(e),this.events=new Ke(e),this.types=new Ce(e)}}const j={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 oe(r,e){return new g.Program(j,new i.PublicKey(r),e===void 0?{connection:null}:e,ue())}function p(r,e){return oe(r,g.createReadOnlyProvider(e))}function ue(){return new _e(j)}function Te(r,e,t,n){const s=p(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:ce(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function ce(r,e,t){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),systemProgram:i.SystemProgram.programId}}function ve(r,e,t,n,s){const a=p(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:de(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function de(r,e,t,n){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(n.hash)),claim:E(r,n.emitterAddress.toString(),i.toChainId(n.emitterChain),n.sequence),feeCollector:b(r),recipient:new i.PublicKey(t),rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function ke(r,e,t,n){const s=p(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:ge(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function ge(r,e,t){return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),guardianSetOld:A(r,t.guardianSet),guardianSetNew:A(r,t.guardianSet+1),systemProgram:i.SystemProgram.programId}}function ze(r,e,t,n){const s=p(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:fe(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function fe(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new i.PublicKey(e),bridge:y(r),vaa:h(r,i.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),upgradeAuthority:G(r),spill:new i.PublicKey(n===void 0?e:n),implementation:new i.SolanaAddress(s).unwrap(),programData:ee(r),wormholeProgram:new i.PublicKey(r),rent:i.SYSVAR_RENT_PUBKEY,clock:i.SYSVAR_CLOCK_PUBKEY,bpfLoaderUpgradeable:R,systemProgram:i.SystemProgram.programId}}function qe(r,e,t,n,s,a){const o=p(e,r).methods.initialize(n,new i.BN(s.toString()),[...a.map(c=>[...new Uint8Array(c)])]);return o._ixFn(...o._args,{accounts:me(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function me(r,e){return{bridge:y(r),guardianSet:A(r,0),feeCollector:b(r),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function le(r,e,t,n,s,a,o){const c=p(e,r).methods.postMessage(a,i.Buffer.from(s),o);return c._ixFn(...c._args,{accounts:D(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function D(r,e,t,n){let s;return n?{emitter:n,sequence:s}=Y(n,r):(n=e,s=U(n,r)),{bridge:y(r),message:new i.PublicKey(t),emitter:new i.PublicKey(n),sequence:s,payer:new i.PublicKey(e),feeCollector:b(r),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function ye(r,e,t,n,s){const a=p(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,i.toChainId(n.emitterChain),[...n.emitterAddress.toUint8Array()],new i.BN(n.sequence.toString()),n.consistencyLevel,i.Buffer.from(i.serializePayload(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:pe(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function pe(r,e,t,n){return{guardianSet:A(r,n.guardianSet),bridge:y(r),signatureSet:new i.PublicKey(t),vaa:h(r,i.Buffer.from(n.hash)),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}const Ve=19;async function he(r,e,t,n,s,a){const o=n.guardianSet,c=await N(r,e,o,a),u=n.signatures,f=c.keys,d=7,m=[];for(let S=0;S<Math.ceil(u.length/d);++S){const x=S*d,P=Math.min(u.length,(S+1)*d),B=new Array(Ve).fill(-1),H=[],J=[];for(let C=0;C<P-x;++C){const F=u.at(C+x);H.push(i.Buffer.from(F.signature.encode())),J.push(f.at(F.guardianIndex)),B[F.guardianIndex]=C}m.push(Ie(H,J,i.Buffer.from(n.hash))),m.push(De(r,e,t,n,s,B))}return m}function De(r,e,t,n,s,a){const o=p(e,r).methods.verifySignatures(a);return o._ixFn(...o._args,{accounts:Se(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t,n){return{payer:new i.PublicKey(e),guardianSet:A(r,n.guardianSet),signatureSet:new i.PublicKey(t),instructions:i.SYSVAR_INSTRUCTIONS_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function we(r,e){const{emitter:t,sequence:n}=Y(r,e);return{wormholeBridge:y(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:b(e)}}function Ae(r,e,t,n){const s=D(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 Fe=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:T,BridgeData:v,GuardianSetData:q,SequenceTracker:k,SignatureSetData:V,coder:ue,createBridgeFeeTransferInstruction:$,createInitializeInstruction:qe,createPostMessageInstruction:le,createPostVaaInstruction:ye,createReadOnlyWormholeProgramInterface:p,createSetFeesInstruction:Te,createTransferFeesInstruction:ve,createUpgradeContractInstruction:ze,createUpgradeGuardianSetInstruction:ke,createVerifySignaturesInstructions:he,createWormholeProgramInterface:oe,deriveClaimKey:E,deriveEmitterSequenceKey:U,deriveFeeCollectorKey:b,deriveGuardianSetKey:A,derivePostedVaaKey:h,deriveUpgradeAuthorityKey:G,deriveWormholeBridgeDataKey:y,deriveWormholeEmitterKey:z,getClaim:re,getEmitterKeys:Y,getGuardianSet:N,getInitializeAccounts:me,getPostMessageAccounts:D,getPostMessageCpiAccounts:Ae,getPostVaaAccounts:pe,getProgramSequenceTracker:ae,getSequenceTracker:ie,getSetFeesAccounts:ce,getSignatureSetData:Pe,getTransferFeesAccounts:de,getUpgradeContractAccounts:fe,getUpgradeGuardianSetAccounts:ge,getVerifySignatureAccounts:Se,getWormholeBridgeData:se,getWormholeDerivedAccounts:we},Symbol.toStringTag,{value:"Module"})),Z="Program log: Sequence: ";class I{network;chain;connection;contracts;chainId;coreBridge;address;bridgeData;constructor(e,t,n,s){this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=i.toChainId(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=p(a,n)}async getGuardianSet(e){const t=await N(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 Q.SolanaPlatform.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new I(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await se(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=i.Keypair.generate(),o=new i.SolanaAddress(e).unwrap(),c=le(this.connection,this.coreBridge.programId,o,a.publicKey,t,n,s),u=await this.getMessageFee(),f=$(this.coreBridge.programId,o,u),d=new i.Transaction;d.feePayer=o,d.add(f,c),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=h(this.coreBridge.programId,i.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new i.SolanaAddress(e).unwrap(),o=i.Keypair.generate(),c=await he(this.connection,this.coreBridge.programId,a,t,o.publicKey);for(let f=0;f<c.length;f+=2){const d=new i.Transaction().add(...c.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[o]},"Core.VerifySignature",!0)}const u=new i.Transaction().add(ye(this.connection,this.coreBridge.programId,a,t,o.publicKey));u.feePayer=a,yield this.createUnsignedTx({transaction:u},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const a=s.staticAccountKeys;if(a.filter(u=>u.toString()===e).length===0)return[];const o=n?.logMessages?.filter(u=>u.startsWith(Z))?.[0]?.replace(Z,"");if(!o)return[];const c=[];for(const u of n?.innerInstructions){const f=u.instructions;c.push(...f.filter(d=>d.programIdIndex in a&&a[d.programIdIndex].toString()===e))}return c.length<1?[]:a.length<3?[]:c.map(u=>[new i.SolanaAddress(a[u.accounts[2]]).toUniversalAddress(),BigInt(o)]).filter(u=>u!==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){const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,o=n.innerInstructions?.flatMap(u=>u.instructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString())).map(u=>({programIdIndex:u.programIdIndex,accountKeyIndexes:u.accounts})),c=s.compiledInstructions.filter(u=>a.toString()===e.get(u.programIdIndex).toString());return[...o,...c]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!t?.data)throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:o,sequence:c,nonce:u,payload:f}=ne(new Uint8Array(t?.data));return Ee.createVAA("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:i.toChain(a),timestamp:n,emitterAddress:s,consistencyLevel:o,sequence:c,nonce:u,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 o=I.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(o.length>0){const[c,u]=o[0];return[{chain:this.chain,emitter:c,sequence:u}]}}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 o=>{const c=n.get(o.accountKeyIndexes[1]),u=await this.parsePostMessageAccount(c);return{chain:u.emitterChain,emitter:u.emitterAddress,sequence:u.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 o=>{const c=n.get(o.accountKeyIndexes[1]);return await this.parsePostMessageAccount(c)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Q.SolanaUnsignedTransaction(e,this.network,this.chain,t,n)}}i.registerProtocol(i._platform$1,"WormholeCore",I);const Re=Object.freeze(Object.defineProperty({__proto__:null,IDL:j,SolanaWormholeCore:I,deserializePostMessage:ne,postMessageLayout:te,utils:Fe},Symbol.toStringTag,{value:"Module"}));exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID=R;exports.SolanaWormholeCore=I;exports.accountSize=O;exports.createBridgeFeeTransferInstruction=$;exports.deriveClaimKey=E;exports.deriveEmitterSequenceKey=U;exports.deriveFeeCollectorKey=b;exports.derivePostedVaaKey=h;exports.deriveProgramDataAddress=ee;exports.deriveUpgradeAuthorityKey=G;exports.deriveWormholeBridgeDataKey=y;exports.deriveWormholeEmitterKey=z;exports.getClaim=re;exports.getPostMessageAccounts=D;exports.getPostMessageCpiAccounts=Ae;exports.getProgramSequenceTracker=ae;exports.getWormholeDerivedAccounts=we;exports.index=Re;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("./lit-element-CwBgQkCS.js"),s=require("./class-map-XAAEsuml.js"),d=require("./solana-
|
|
1
|
+
"use strict";const c=require("./lit-element-CwBgQkCS.js"),s=require("./class-map-XAAEsuml.js"),d=require("./solana-CtBdJ6Wt.js"),p={getSpacingStyles(t,e){if(Array.isArray(t))return t[e]?`var(--wui-spacing-${t[e]})`:void 0;if(typeof t=="string")return`var(--wui-spacing-${t})`},getFormattedDate(t){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t)},getHostName(t){try{return new URL(t).hostname}catch{return""}},getTruncateString({string:t,charsStart:e,charsEnd:r,truncate:o}){return t.length<=e+r?t:o==="end"?`${t.substring(0,e)}...`:o==="start"?`...${t.substring(t.length-r)}`:`${t.substring(0,Math.floor(e))}...${t.substring(t.length-Math.floor(r))}`},generateAvatarColors(t){const r=t.toLowerCase().replace(/^0x/iu,"").replace(/[^a-f0-9]/gu,"").substring(0,6).padEnd(6,"0"),o=this.hexToRgb(r),n=getComputedStyle(document.documentElement).getPropertyValue("--w3m-border-radius-master"),a=100-3*Number(n?.replace("px","")),l=`${a}% ${a}% at 65% 40%`,v=[];for(let m=0;m<5;m+=1){const C=this.tintColor(o,.15*m);v.push(`rgb(${C[0]}, ${C[1]}, ${C[2]})`)}return`
|
|
2
2
|
--local-color-1: ${v[0]};
|
|
3
3
|
--local-color-2: ${v[1]};
|
|
4
4
|
--local-color-3: ${v[2]};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { P as o, L as h, ar as I, aq as J, as as Z, ac as y, S as C, N as j, b9 as O, bs as E, q as Y, aO as b, d as x, aP as T, b8 as ee, K as ne, dL as D, aH as se, aQ as ae } from "./web3-
|
|
2
|
-
import { P as N, c as _, i as B } from "./index-
|
|
3
|
-
import { S as te, a as ie } from "./unsignedTransaction-
|
|
1
|
+
import { P as o, L as h, ar as I, aq as J, as as Z, ac as y, S as C, N as j, b9 as O, bs as E, q as Y, aO as b, d as x, aP as T, b8 as ee, K as ne, dL as D, aH as se, aQ as ae } from "./web3-BifDBsFp.mjs";
|
|
2
|
+
import { P as N, c as _, i as B } from "./index-BlWksu-f.mjs";
|
|
3
|
+
import { S as te, a as ie } from "./unsignedTransaction-CVE7GUdC.mjs";
|
|
4
4
|
const k = new o("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
5
5
|
new o("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");
|
|
6
6
|
const A = new o("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
|