@wormhole-foundation/wormhole-connect 4.1.0-beta.1-development → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{aptos-C9pj8h2Q.js → aptos-DgUCX7ng.js} +3 -3
- package/dist/assets/{evm-DCydYqBI.js → evm-B6bqAPTR.js} +4 -4
- package/dist/assets/{evm-CJXv6IQV.js → evm-Ve5nG8Fs.js} +1 -1
- package/dist/assets/{index-LvDsy6wR.js → index-BJokXZAc.js} +1 -1
- package/dist/assets/{index-BqxX-Ey7.js → index-BJv9sngo.js} +1 -1
- package/dist/assets/{index-C9cy4cDs.js → index-BjZMFLjq.js} +1 -1
- package/dist/assets/{index-FJ-n91Op.js → index-BwbPlAQZ.js} +1 -1
- package/dist/assets/{index-Clu5I99l.js → index-Bzg4DNh9.js} +1 -1
- package/dist/assets/{index-ezhfpCvx.js → index-CKXa657f.js} +1 -1
- package/dist/assets/index-CXiuP738.js +1 -0
- package/dist/assets/{index-CNExx9Zb.js → index-CvTvoHH-.js} +1 -1
- package/dist/assets/{index-C25bHdOM.js → index-D1ULRVbZ.js} +1 -1
- package/dist/assets/{index-DpabQJOX.js → index-DlH9IMQl.js} +1 -1
- package/dist/assets/{index-C8u74RER.js → index-Dsb-5apv.js} +1 -1
- package/dist/assets/{index-D9ApKauA.js → index-_YFUWLUM.js} +1 -1
- package/dist/assets/{index-CoIvdDsX.js → index-jg26xdEi.js} +1 -1
- package/dist/assets/{provider-jsonrpc-DuMpLBV0.js → provider-jsonrpc-DNgUKjG6.js} +1 -1
- package/dist/assets/{solana-DWuIx6gK.js → solana-D4RepnSA.js} +2 -2
- package/dist/assets/{sui-BcTGBE_4.js → sui-Du5h-f8S.js} +3 -3
- package/dist/main.mjs +185 -140
- package/dist/src/components/ConfigurablePageHeader.d.ts +1 -1
- package/dist/src/components/ConfigurablePageHeader.d.ts.map +1 -1
- package/dist/src/components/Header.d.ts +1 -0
- package/dist/src/components/Header.d.ts.map +1 -1
- package/dist/src/components/PageHeader.d.ts +1 -3
- package/dist/src/components/PageHeader.d.ts.map +1 -1
- package/dist/src/components/SampleApp/index.d.ts.map +1 -1
- package/dist/src/components/v3/BackButton.d.ts +6 -0
- package/dist/src/components/v3/BackButton.d.ts.map +1 -0
- package/dist/src/components/v3/FormContent.d.ts +5 -0
- package/dist/src/components/v3/FormContent.d.ts.map +1 -0
- package/dist/src/config/constants.d.ts.map +1 -1
- package/dist/src/config/events.d.ts +2 -1
- package/dist/src/config/events.d.ts.map +1 -1
- package/dist/src/config/mainnet/chains.d.ts.map +1 -1
- package/dist/src/config/mainnet/rpcs.d.ts.map +1 -1
- package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
- package/dist/src/config/mainnet/wrappedTokens.d.ts +6 -0
- package/dist/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +6 -11
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/config/ui.d.ts +9 -0
- package/dist/src/config/ui.d.ts.map +1 -1
- package/dist/src/consts/wallet.d.ts.map +1 -1
- package/dist/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
- package/dist/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
- package/dist/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
- package/dist/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistory.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
- package/dist/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
- package/dist/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
- package/dist/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
- package/dist/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
- package/dist/src/icons/PoweredBy.d.ts.map +1 -1
- package/dist/src/icons/TokenIcons.d.ts.map +1 -1
- package/dist/src/icons/Tokens/AUSD.d.ts +4 -0
- package/dist/src/icons/Tokens/AUSD.d.ts.map +1 -0
- package/dist/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
- package/dist/src/routes/mayan/utils.d.ts.map +1 -1
- package/dist/src/routes/monad/consts.d.ts +1 -0
- package/dist/src/routes/monad/consts.d.ts.map +1 -1
- package/dist/src/routes/monad/monad.test.d.ts +1 -0
- package/dist/src/routes/monad/monad.test.d.ts.map +1 -0
- package/dist/src/routes/monad/utils.d.ts.map +1 -1
- package/dist/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
- package/dist/src/telemetry/types.d.ts +5 -2
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/theme.d.ts +4 -3
- package/dist/src/theme.d.ts.map +1 -1
- package/dist/src/utils/errors.d.ts +1 -0
- package/dist/src/utils/errors.d.ts.map +1 -1
- package/dist/src/utils/fees.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/sdkv2.d.ts.map +1 -1
- package/dist/src/utils/wallet/index.d.ts +1 -0
- package/dist/src/utils/wallet/index.d.ts.map +1 -1
- package/dist/src/views/Terms.d.ts.map +1 -1
- package/dist/src/views/TxSearch.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/index.d.ts +2 -1
- package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
- package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
- package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/index.d.ts.map +1 -1
- package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/dist/src/views/v3/Redeem/index.d.ts.map +1 -1
- package/dist/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
- package/dist/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
- package/lib/{account-cIQhxn1E.js → account-K005OXgL.js} +1 -1
- package/lib/{account-BVl6Reot.mjs → account-TXlxMyv4.mjs} +2 -2
- package/lib/{address-rVHWlcKQ.mjs → address-CX0E32ut.mjs} +1 -1
- package/lib/{address-W9jn6Qdk.js → address-DqbIfKOu.js} +1 -1
- package/lib/{aptos-DWDR5o78.js → aptos-BnjZOhUE.js} +1 -1
- package/lib/{aptos-CNHYHK9c.js → aptos-CnswqE-C.js} +2 -2
- package/lib/{aptos-D1WFzBMy.mjs → aptos-DRfXJ8Ba.mjs} +7 -7
- package/lib/{aptos-B84P9rJZ.mjs → aptos-fTiHvXXE.mjs} +5 -5
- package/lib/{associatedTokenAccount-C4vEEbG5.js → associatedTokenAccount-CeqdaO2m.js} +1 -1
- package/lib/{associatedTokenAccount-DF6phO3l.mjs → associatedTokenAccount-Dsm4Hq32.mjs} +3 -3
- package/lib/{basic-BERCwt2M.mjs → basic-BqusrmRE.mjs} +3 -3
- package/lib/{basic-NhXxxbR1.js → basic-BrW22Cj9.js} +1 -1
- package/lib/{basic-CukRIaOD.mjs → basic-CK5Bsf0B.mjs} +3 -3
- package/lib/{basic-DJXXfABO.js → basic-ChOmeQQk.js} +1 -1
- package/lib/{chunk-KJH4KKG6-Brt4fyqz.mjs → chunk-KJH4KKG6-BfVMUPsB.mjs} +3 -3
- package/lib/{chunk-KJH4KKG6-BbF5W1_N.js → chunk-KJH4KKG6-CJx-rDa6.js} +1 -1
- package/lib/constants-C1w_RyOP.js +1 -0
- package/lib/{constants-VaoVbllu.mjs → constants-DcDpDarO.mjs} +6 -5
- package/lib/{core-BCZrVb_s.mjs → core-DQ-6Q1F1.mjs} +6 -6
- package/lib/{core-BE6SS7Ye.js → core-FA2gBc-s.js} +3 -3
- package/lib/{create-CChLkbGc.mjs → create-C5dhTMHL.mjs} +1 -1
- package/lib/{create-4w0DrcRO.js → create-bA3Gyivs.js} +1 -1
- package/lib/{evm-CmmnpcFD.mjs → evm-BJ4Lx-r9.mjs} +5 -5
- package/lib/{evm--K7mr7Kr.js → evm-BTgO_HRP.js} +2 -2
- package/lib/{evm-DKaWm7eC.mjs → evm-C-vXMfGr.mjs} +7 -7
- package/lib/{evm-C5BixKBn.js → evm-qxndAh3z.js} +1 -1
- package/lib/executor.js +1 -1
- package/lib/executor.mjs +13 -15
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/hypercore-D7kZiwbe.js +4 -0
- package/lib/{hypercore-birmbh9T.mjs → hypercore-DKqayfki.mjs} +4858 -3107
- package/lib/{index-qL4D-cpk.js → index-1T4sIL8n.js} +1 -1
- package/lib/{index-Ap7250Gf.mjs → index-39tU5Y5t.mjs} +6 -6
- package/lib/{index-BUbUhbMe.js → index-3Zg1AdoI.js} +1 -1
- package/lib/{index-D7gCsil9.js → index-6m7yero0.js} +1 -1
- package/lib/{index-CH0iw38J.mjs → index-B1URQBlH.mjs} +3 -3
- package/lib/{index-C5I7QiZ7.mjs → index-B6Ppg6EZ.mjs} +3 -3
- package/lib/{index-CED5jdrg.js → index-B7b8sctd.js} +1 -1
- package/lib/{index-xvG6cxNx.js → index-BEIFBxtP.js} +1 -1
- package/lib/{index-zIzzPp6D.mjs → index-BHpJUZne.mjs} +3 -3
- package/lib/{index-BTcij9Np.js → index-BJ0xVutl.js} +1 -1
- package/lib/{index-C61IKE_V.mjs → index-BSIPYyeZ.mjs} +2 -2
- package/lib/{index-EbSw7SbC.js → index-BTjUHY0e.js} +1 -1
- package/lib/{index-C8YhpD9T.mjs → index-BVciucyT.mjs} +4 -4
- package/lib/{index-BuHdMHLz.mjs → index-Ba1zbu3Q.mjs} +2 -2
- package/lib/{index-BU35GfG0.mjs → index-Bdtj4LUz.mjs} +2 -2
- package/lib/{index-Bs28m4ya.js → index-BfzaCmg7.js} +1 -1
- package/lib/{index-CN7M4gwf.mjs → index-BviSNDV7.mjs} +5 -5
- package/lib/{index-BRFbmsc_.js → index-C-F8_8dY.js} +1 -1
- package/lib/{index-Cys9e11O.js → index-C-SMuVS3.js} +1 -1
- package/lib/{index-pYTU7pQK.mjs → index-C6MalNd5.mjs} +4 -3
- package/lib/{index-Cg1Xo1eZ.js → index-C85u3Gj5.js} +1 -1
- package/lib/{index-Da9rvmCc.js → index-Cb0UWLGI.js} +1 -1
- package/lib/{index-HrZv1SyT.js → index-Cb_8WAm1.js} +8 -8
- package/lib/{index-DHnmtpvA.mjs → index-CcbY14s5.mjs} +4 -4
- package/lib/{index-CR1itkLl.mjs → index-CgqBQ88K.mjs} +3248 -3055
- package/lib/{index-Txz5xwr6.mjs → index-CowAVUcg.mjs} +1 -1
- package/lib/{index-BKgliEPZ.mjs → index-CrWTw0Se.mjs} +2 -2
- package/lib/{index-B_JJ50Y-.mjs → index-D-HUNEka.mjs} +4 -4
- package/lib/{index-BhMcIAHt.js → index-DJ2w1fz1.js} +1 -1
- package/lib/{index-BN_2mA2n.mjs → index-DcFL403C.mjs} +1 -1
- package/lib/{index-CO4ZoIAU.mjs → index-DjmVBSGQ.mjs} +4 -4
- package/lib/{index-Co3mm7UN.mjs → index-DrJE8udd.mjs} +1 -1
- package/lib/{index-fTUcaKb4.js → index-DuhYwr0t.js} +1 -1
- package/lib/{index-BQ0lWQfT.mjs → index-DwEx1Hn-.mjs} +2 -2
- package/lib/{index-DBofyYkS.js → index-DziujHu1.js} +1 -1
- package/lib/{index-Dou5sFku.js → index-JWbF-m3e.js} +1 -1
- package/lib/index-Oxm0y6-t.js +1 -0
- package/lib/{index-D1odbjeH.mjs → index-VnJcNK62.mjs} +3 -3
- package/lib/{index-DVxmRy4C.js → index-WrXSs0ic.js} +1 -1
- package/lib/{index-Cw0jWBks.js → index-XjDX4fWv.js} +1 -1
- package/lib/{index-CsdD1TNi.js → index-aMKUba1k.js} +1 -1
- package/lib/{index-DSnylejH.mjs → index-dufPAW5T.mjs} +292 -269
- package/lib/{index-lZY5fTXF.js → index-lAqXlt-a.js} +1 -1
- package/lib/{index-N4FkpEh9.mjs → index-mNO1mk2F.mjs} +4 -4
- package/lib/{index-BScgBddV.mjs → index-o1SAPXm_.mjs} +3 -3
- package/lib/{index-DNZ-Pkpm.mjs → index-rxQSA9t0.mjs} +6 -6
- package/lib/{index-DALvn9lg.js → index-v7w8krM0.js} +1 -1
- package/lib/{index-japympio.js → index-wadjmD_G.js} +1 -1
- package/lib/{index.es-DmmqAOLD.js → index.es-B9kBDkCQ.js} +3 -3
- package/lib/{index.es-Dg6IFrL4.js → index.es-BZRO-bNH.js} +1 -1
- package/lib/{index.es-B0fk_42a.mjs → index.es-CF3YY88z.mjs} +4 -4
- package/lib/{index.es-CDqFguL5.mjs → index.es-CaAL5X4E.mjs} +4 -4
- package/lib/index.js +78 -33
- package/lib/index.mjs +9158 -8833
- package/lib/{keypair-DWucLGoA.js → keypair-DCgXFOw5.js} +1 -1
- package/lib/{keypair-CP7syX9B.mjs → keypair-vpG2fl-q.mjs} +3 -3
- package/lib/lifi.js +1 -1
- package/lib/lifi.mjs +75 -76
- package/lib/mayan.js +2 -2
- package/lib/mayan.mjs +11 -10
- package/lib/{mint-CoNdQTGM.mjs → mint-BPrKG-Zc.mjs} +3 -3
- package/lib/{mint-CxQ6P5lT.js → mint-DW-XgF68.js} +1 -1
- package/lib/monad.js +1 -1
- package/lib/monad.mjs +91 -58
- package/lib/multiToken-B9BoSxdr.js +1 -0
- package/lib/{multiToken-Bm-K5dRJ.mjs → multiToken-DMllgxzT.mjs} +4 -3
- package/lib/ntt.js +2 -2
- package/lib/ntt.mjs +77 -86
- package/lib/{platform-Cil_UtAQ.mjs → platform-CSpAb386.mjs} +2788 -2748
- package/lib/{platform-BMKYxqvv.js → platform-Csj1Outc.js} +1 -1
- package/lib/platform-DCcL7jHP.js +11 -0
- package/lib/{platform-vRQufc6j.mjs → platform-YzJZdSCf.mjs} +3 -3
- package/lib/{secp256k1-LTcmQEQ5.mjs → secp256k1-1o6o1kFy.mjs} +1 -1
- package/lib/{secp256k1-DzRCmd6a.mjs → secp256k1-BjlnTj1_.mjs} +1 -1
- package/lib/{secp256k1-CglUNI04.js → secp256k1-CeYT4ndf.js} +1 -1
- package/lib/{secp256k1-DROP2Lhv.mjs → secp256k1-Cw_BiEuN.mjs} +1 -1
- package/lib/{secp256k1-BkoM1Jum.js → secp256k1-D5cKS6q_.js} +1 -1
- package/lib/{secp256k1-CcVQkYNr.js → secp256k1-_QlJc7sK.js} +1 -1
- package/lib/{signer-0hWrZ5BZ.mjs → signer-D2GRgRrw.mjs} +2 -2
- package/lib/{signer-DyqulDUM.js → signer-gjSiV5v3.js} +1 -1
- package/lib/solana-DfW5T_64.mjs +18 -0
- package/lib/{solana-C4k_Yg7w.js → solana-DvHFhri3.js} +4 -4
- package/lib/solana-Edd9tIkX.js +1 -0
- package/lib/{solana-D1LVIhGd.mjs → solana-TgPr9kpk.mjs} +10 -10
- package/lib/{solanaEmbed.esm-AvWQUA9e.mjs → solanaEmbed.esm-Bh1-aAL4.mjs} +4 -4
- package/lib/{solanaEmbed.esm--Ac-IlRA.js → solanaEmbed.esm-C8TjRcIV.js} +1 -1
- package/lib/{solidity-CbDkqHjE.js → solidity-BW7c8rFv.js} +1 -1
- package/lib/{solidity-Dk_mvceo.mjs → solidity-D9gSgFcp.mjs} +1 -1
- package/lib/src/components/ConfigurablePageHeader.d.ts +1 -1
- package/lib/src/components/ConfigurablePageHeader.d.ts.map +1 -1
- package/lib/src/components/Header.d.ts +1 -0
- package/lib/src/components/Header.d.ts.map +1 -1
- package/lib/src/components/PageHeader.d.ts +1 -3
- package/lib/src/components/PageHeader.d.ts.map +1 -1
- package/lib/src/components/SampleApp/index.d.ts.map +1 -1
- package/lib/src/components/v3/BackButton.d.ts +6 -0
- package/lib/src/components/v3/BackButton.d.ts.map +1 -0
- package/lib/src/components/v3/FormContent.d.ts +5 -0
- package/lib/src/components/v3/FormContent.d.ts.map +1 -0
- package/lib/src/config/constants.d.ts.map +1 -1
- package/lib/src/config/events.d.ts +2 -1
- package/lib/src/config/events.d.ts.map +1 -1
- package/lib/src/config/mainnet/chains.d.ts.map +1 -1
- package/lib/src/config/mainnet/rpcs.d.ts.map +1 -1
- package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
- package/lib/src/config/mainnet/wrappedTokens.d.ts +6 -0
- package/lib/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
- package/lib/src/config/types.d.ts +6 -11
- package/lib/src/config/types.d.ts.map +1 -1
- package/lib/src/config/ui.d.ts +9 -0
- package/lib/src/config/ui.d.ts.map +1 -1
- package/lib/src/consts/wallet.d.ts.map +1 -1
- package/lib/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
- package/lib/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
- package/lib/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
- package/lib/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistory.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
- package/lib/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
- package/lib/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
- package/lib/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
- package/lib/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
- package/lib/src/icons/PoweredBy.d.ts.map +1 -1
- package/lib/src/icons/TokenIcons.d.ts.map +1 -1
- package/lib/src/icons/Tokens/AUSD.d.ts +4 -0
- package/lib/src/icons/Tokens/AUSD.d.ts.map +1 -0
- package/lib/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
- package/lib/src/routes/mayan/utils.d.ts.map +1 -1
- package/lib/src/routes/monad/consts.d.ts +1 -0
- package/lib/src/routes/monad/consts.d.ts.map +1 -1
- package/lib/src/routes/monad/monad.test.d.ts +1 -0
- package/lib/src/routes/monad/monad.test.d.ts.map +1 -0
- package/lib/src/routes/monad/utils.d.ts.map +1 -1
- package/lib/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
- package/lib/src/telemetry/types.d.ts +5 -2
- package/lib/src/telemetry/types.d.ts.map +1 -1
- package/lib/src/theme.d.ts +4 -3
- package/lib/src/theme.d.ts.map +1 -1
- package/lib/src/utils/errors.d.ts +1 -0
- package/lib/src/utils/errors.d.ts.map +1 -1
- package/lib/src/utils/fees.d.ts.map +1 -1
- package/lib/src/utils/index.d.ts.map +1 -1
- package/lib/src/utils/sdkv2.d.ts.map +1 -1
- package/lib/src/utils/wallet/index.d.ts +1 -0
- package/lib/src/utils/wallet/index.d.ts.map +1 -1
- package/lib/src/views/Terms.d.ts.map +1 -1
- package/lib/src/views/TxSearch.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/index.d.ts +2 -1
- package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
- package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
- package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/index.d.ts.map +1 -1
- package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/src/views/v3/Redeem/index.d.ts.map +1 -1
- package/lib/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
- package/lib/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
- package/lib/{sui-LiXjD27c.js → sui-BtyZE8YC.js} +1 -1
- package/lib/{sui-BPAb7kcs.mjs → sui-CoWRa3vr.mjs} +4 -4
- package/lib/{sui-CgmDTkXK.js → sui-DwFrGd2Y.js} +1 -1
- package/lib/{sui-cpCvd7RC.mjs → sui-QP4AZGNc.mjs} +6 -6
- package/lib/{tokenHelpers-CbE0g9BP.js → tokenHelpers-CeTyb4rG.js} +1 -1
- package/lib/{tokenHelpers-DvWQs1tu.mjs → tokenHelpers-VYjmKUxj.mjs} +1 -1
- package/lib/{tokens-BJDttoCp.mjs → tokens-D6uJqrsR.mjs} +3 -3
- package/lib/{tokens-CvZuVW-g.js → tokens-mXZqt-qL.js} +1 -1
- package/lib/types-CgveSjsw.js +1 -0
- package/lib/{types-iFgwQ7vG.mjs → types-Dxx2g1wS.mjs} +170 -168
- package/lib/{unsignedTransaction-DCDxTFq8.mjs → unsignedTransaction-D2Ja0SuN.mjs} +2 -2
- package/lib/{unsignedTransaction-DA4tlY5u.js → unsignedTransaction-qRBv5Cnd.js} +2 -2
- package/lib/{utils-DMf7wRGI.js → utils-BEljbqMf.js} +1 -1
- package/lib/{utils-BSxsyW2c.mjs → utils-mBHX3Jpu.mjs} +4 -4
- package/lib/{w3m-modal-DM5Pf8SH.mjs → w3m-modal-BEe8ji9_.mjs} +2 -2
- package/lib/{w3m-modal-CtQ0TPA4.mjs → w3m-modal-D3eqrCT1.mjs} +2 -2
- package/lib/{w3m-modal-k23UDiov.js → w3m-modal-Duc13ei7.js} +1 -1
- package/lib/{w3m-modal-ByamyZny.js → w3m-modal-f_sUVzPx.js} +1 -1
- package/lib/{wallet-CMTEE6Oa.mjs → wallet-Cyosy4Hc.mjs} +1 -1
- package/lib/{wallet-BMli0fbu.js → wallet-a0_jwP8j.js} +1 -1
- package/lib/{web3-CUwFm9Lx.mjs → web3-CdErAVj5.mjs} +2 -2
- package/lib/{web3-DdUeM7iQ.js → web3-x1WCGDiy.js} +1 -1
- package/package.json +49 -47
- package/dist/assets/index-_UMHESh0.js +0 -1
- package/dist/src/components/Button.d.ts +0 -13
- package/dist/src/components/Button.d.ts.map +0 -1
- package/dist/src/icons/Down.d.ts +0 -5
- package/dist/src/icons/Down.d.ts.map +0 -1
- package/lib/constants-B9TBfA4z.js +0 -1
- package/lib/hypercore-4R7JGmbr.js +0 -4
- package/lib/index-C8eqQ_7p.js +0 -1
- package/lib/multiToken-YoNvxjur.js +0 -1
- package/lib/platform-CCG_jgOO.js +0 -11
- package/lib/solana-DKFJvqX8.mjs +0 -18
- package/lib/solana-Dmje_Si8.js +0 -1
- package/lib/src/components/Button.d.ts +0 -13
- package/lib/src/components/Button.d.ts.map +0 -1
- package/lib/src/icons/Down.d.ts +0 -5
- package/lib/src/icons/Down.d.ts.map +0 -1
- package/lib/types-CjNs2oB0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const c=require("./platform-CCG_jgOO.js"),a=require("./unsignedTransaction-DA4tlY5u.js"),f=require("./index-lZY5fTXF.js"),y=require("./account-cIQhxn1E.js"),Ee=require("./create-4w0DrcRO.js"),O=new a.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");function ee(r){return y.deriveAddress([new a.PublicKey(r).toBuffer()],O)}class be extends Error{constructor(e){super(e),this.name="IdlError"}}function Y(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>A(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?A(r,s.type):A(r,s)).reduce((s,i)=>s+i,0):0);return Math.max(...t)+1}case"alias":return A(r,e.type.value)}}function A(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+A(r,e.option);if("coption"in e)return 4+A(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 Y(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return A(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function L(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",...c.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",...c.universalAddressItem},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function ne(r){return c.deserialize$1(te,r)}function b(r,e,t,n){const s=typeof e=="string"?c.Buffer.from(e,"hex"):c.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const i=c.Buffer.alloc(8);return i.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),y.deriveAddress([s,(()=>{const o=c.Buffer.alloc(2);return o.writeUInt16BE(t),o})(),i],r)}async function re(r,e,t,n,s,i){return r.getAccountInfo(b(e,t,n,s),i).then(o=>!!y.getAccountData(o)[0])}function p(r){return y.deriveAddress([c.Buffer.from("Bridge")],r)}async function se(r,e,t){return r.getAccountInfo(p(e),t).then(n=>k.deserialize(y.getAccountData(n)))}class v{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 v(t,n)}}class k{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=v.deserialize(e.subarray(12));return new k(t,n,s)}}function C(r,e){return y.deriveAddress([c.Buffer.from("Sequence"),new a.PublicKey(r).toBytes()],e)}async function ie(r,e,t,n){return r.getAccountInfo(C(e,t),n).then(s=>z.deserialize(y.getAccountData(s)))}class z{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 z(s,t,n)}value(){return this.sequence}}function q(r){return y.deriveAddress([c.Buffer.from("emitter")],r)}function N(r,e){const t=q(r);return{emitter:t,sequence:C(t,e)}}async function ae(r,e,t,n){return ie(r,q(e),t,n)}function M(r){return y.deriveAddress([c.Buffer.from("fee_collector")],r)}const X=65,U=20;function Ie(r,e,t){return new a.TransactionInstruction({keys:[],programId:a.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,i=11,o=1+s*i,d=X+U,u=o+s*d,m=32,g=c.Buffer.alloc(u+m);g.writeUInt8(s,0),g.write(n.toString("hex"),u,"hex");for(let l=0;l<s;++l){const w=e.at(l);if(w?.length!=X)throw Error(`signatures[${l}].length != 65`);const P=t.at(l);if(P?.length!=U)throw Error(`keys[${l}].length != 20`);const B=o+d*l,K=B+65;g.writeUInt16LE(B,1+l*i),g.writeUInt8(0,3+l*i),g.writeUInt16LE(K,4+l*i),g.writeUInt8(0,6+l*i),g.writeUInt16LE(u,7+l*i),g.writeUInt16LE(m,9+l*i),g.writeUInt8(0,10+l*i),g.write(w.toString("hex"),B,"hex"),g.write(P.toString("hex"),K,"hex")}return g}}function E(r,e){return y.deriveAddress([c.Buffer.from("GuardianSet"),(()=>{const t=c.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function G(r,e,t,n){return r.getAccountInfo(E(e,t),n).then(s=>V.deserialize(y.getAccountData(s)))}class V{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*U,i=e.readUInt32LE(s),o=e.readUInt32LE(4+s),d=[];for(let u=0;u<n;++u){const m=8+u*U;d.push(e.subarray(m,m+U))}return new V(t,d,i,o)}}function S(r,e){return y.deriveAddress([c.Buffer.from("PostedVAA"),e],r)}async function Pe(r,e,t){return r.getAccountInfo(new a.PublicKey(e),t).then(n=>D.deserialize(y.getAccountData(n)))}class D{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(d=>d!=0),s=4+t,i=e.subarray(s,s+32),o=e.readUInt32LE(s+32);return new D(n,i,o)}}function $(r){return y.deriveAddress([c.Buffer.from("upgrade")],r)}function W(r,e,t){return a.SystemProgram.transfer({fromPubkey:new a.PublicKey(e),toPubkey:M(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 Y(this.idl,e)??0}}class Ke{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class I{static fieldLayout(e,t){const n=e.name!==void 0?L(e.name):void 0;switch(e.type){case"bool":return f.distExports.bool(n);case"u8":return f.distExports.u8(n);case"i8":return f.distExports.i8(n);case"u16":return f.distExports.u16(n);case"i16":return f.distExports.i16(n);case"u32":return f.distExports.u32(n);case"i32":return f.distExports.i32(n);case"f32":return f.distExports.f32(n);case"u64":return f.distExports.u64(n);case"i64":return f.distExports.i64(n);case"f64":return f.distExports.f64(n);case"u128":return f.distExports.u128(n);case"i128":return f.distExports.i128(n);case"u256":return f.distExports.u256(n);case"i256":return f.distExports.i256(n);case"bytes":return f.distExports.vecU8(n);case"string":return f.distExports.str(n);case"publicKey":return f.distExports.publicKey(n);default:{if("vec"in e.type)return f.distExports.vec(I.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return f.distExports.option(I.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],i=e.type.array[1],o=I.fieldLayout({name:void 0,type:s},t);return f.distExports.array(o,i,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class j{ixLayout;constructor(e){this.ixLayout=j.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let i=s.args.map(d=>I.fieldLayout(d,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,f.distExports.struct(i,o)]}).concat(e.instructions.map(s=>{let i=s.args.map(d=>I.fieldLayout(d,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,f.distExports.struct(i,o)]}));return new Map(n)}encode(e,t){const n=c.Buffer.alloc(1e3),s=L(e),i=this.ixLayout.get(s);if(!i)throw new Error(`Unknown method: ${s}`);const o=i.encode(t,n),d=n.slice(0,o);return Le(T[Me(s)],d)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?c.Buffer.from(e,"hex"):c.b58.decode(e));let n=c.Buffer.from(e.slice(0,1)).readInt8(),s=c.Buffer.from(e.slice(1)),i=L(T[n]??"");return this.ixLayout.get(i)?{data:this.ixLayout.get(i)?.decode(s),name:i}:null}}var T;(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"})(T||(T={}));function Le(r,e){const t=c.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 j(e),this.accounts=new Be(e),this.state=new Ue(e),this.events=new Ke(e),this.types=new Ce(e)}}const H={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 f.Program(H,new a.PublicKey(r),e===void 0?{connection:null}:e,ue())}function h(r,e){return oe(r,f.createReadOnlyProvider(e))}function ue(){return new _e(H)}function Te(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),systemProgram:a.SystemProgram.programId}}function ve(r,e,t,n,s){const i=h(e,r).methods.transferFees();return i._ixFn(...i._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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(n.hash)),claim:b(r,n.emitterAddress.toString(),c.toChainId(n.emitterChain),n.sequence),feeCollector:M(r),recipient:new a.PublicKey(t),rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function ke(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),guardianSetOld:E(r,t.guardianSet),guardianSetNew:E(r,t.guardianSet+1),systemProgram:a.SystemProgram.programId}}function ze(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),upgradeAuthority:$(r),spill:new a.PublicKey(n===void 0?e:n),implementation:new a.SolanaAddress(s).unwrap(),programData:ee(r),wormholeProgram:new a.PublicKey(r),rent:a.SYSVAR_RENT_PUBKEY,clock:a.SYSVAR_CLOCK_PUBKEY,bpfLoaderUpgradeable:O,systemProgram:a.SystemProgram.programId}}function qe(r,e,t,n,s,i){const o=h(e,r).methods.initialize(n,new a.BN(s.toString()),[...i.map(d=>[...new Uint8Array(d)])]);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:p(r),guardianSet:E(r,0),feeCollector:M(r),payer:new a.PublicKey(e),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function le(r,e,t,n,s,i,o){const d=h(e,r).methods.postMessage(i,c.Buffer.from(s),o);return d._ixFn(...d._args,{accounts:F(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function F(r,e,t,n){let s;return n?{emitter:n,sequence:s}=N(n,r):(n=e,s=C(n,r)),{bridge:p(r),message:new a.PublicKey(t),emitter:new a.PublicKey(n),sequence:s,payer:new a.PublicKey(e),feeCollector:M(r),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function ye(r,e,t,n,s){const i=h(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,c.toChainId(n.emitterChain),[...n.emitterAddress.toUint8Array()],new a.BN(n.sequence.toString()),n.consistencyLevel,c.Buffer.from(c.serializePayload(n.payloadLiteral,n.payload)));return i._ixFn(...i._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:E(r,n.guardianSet),bridge:p(r),signatureSet:new a.PublicKey(t),vaa:S(r,c.Buffer.from(n.hash)),payer:new a.PublicKey(e),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}const Ve=19;async function he(r,e,t,n,s,i){const o=n.guardianSet,d=await G(r,e,o,i),u=n.signatures,m=d.keys,g=7,l=[];for(let w=0;w<Math.ceil(u.length/g);++w){const P=w*g,B=Math.min(u.length,(w+1)*g),K=new Array(Ve).fill(-1),J=[],Q=[];for(let _=0;_<B-P;++_){const R=u.at(_+P);J.push(c.Buffer.from(R.signature.encode())),Q.push(m.at(R.guardianIndex)),K[R.guardianIndex]=_}l.push(Ie(J,Q,c.Buffer.from(n.hash))),l.push(De(r,e,t,n,s,K))}return l}function De(r,e,t,n,s,i){const o=h(e,r).methods.verifySignatures(i);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 a.PublicKey(e),guardianSet:E(r,n.guardianSet),signatureSet:new a.PublicKey(t),instructions:a.SYSVAR_INSTRUCTIONS_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function we(r,e){const{emitter:t,sequence:n}=N(r,e);return{wormholeBridge:p(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:M(e)}}function Ae(r,e,t,n){const s=F(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:v,BridgeData:k,GuardianSetData:V,SequenceTracker:z,SignatureSetData:D,coder:ue,createBridgeFeeTransferInstruction:W,createInitializeInstruction:qe,createPostMessageInstruction:le,createPostVaaInstruction:ye,createReadOnlyWormholeProgramInterface:h,createSetFeesInstruction:Te,createTransferFeesInstruction:ve,createUpgradeContractInstruction:ze,createUpgradeGuardianSetInstruction:ke,createVerifySignaturesInstructions:he,createWormholeProgramInterface:oe,deriveClaimKey:b,deriveEmitterSequenceKey:C,deriveFeeCollectorKey:M,deriveGuardianSetKey:E,derivePostedVaaKey:S,deriveUpgradeAuthorityKey:$,deriveWormholeBridgeDataKey:p,deriveWormholeEmitterKey:q,getClaim:re,getEmitterKeys:N,getGuardianSet:G,getInitializeAccounts:me,getPostMessageAccounts:F,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 x{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=c.toChainId(t);const i=s.coreBridge;if(!i)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=i,this.coreBridge=h(i,n)}async getGuardianSet(e){const t=await G(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 a.SolanaPlatform.chainFromRpc(e),i=t[s];if(i.network!==n)throw new Error(`Network mismatch for chain ${s}: ${i.network} != ${n}`);return new x(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 i=a.Keypair.generate(),o=new a.SolanaAddress(e).unwrap(),d=le(this.connection,this.coreBridge.programId,o,i.publicKey,t,n,s),u=await this.getMessageFee(),m=W(this.coreBridge.programId,o,u),g=new a.Transaction$1;g.feePayer=o,g.add(m,d),yield this.createUnsignedTx({transaction:g,signers:[i]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=S(this.coreBridge.programId,c.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const i=new a.SolanaAddress(e).unwrap(),o=a.Keypair.generate(),d=await he(this.connection,this.coreBridge.programId,i,t,o.publicKey);for(let m=0;m<d.length;m+=2){const g=new a.Transaction$1().add(...d.slice(m,m+2));g.feePayer=i,yield this.createUnsignedTx({transaction:g,signers:[o]},"Core.VerifySignature",!0)}const u=new a.Transaction$1().add(ye(this.connection,this.coreBridge.programId,i,t,o.publicKey));u.feePayer=i,yield this.createUnsignedTx({transaction:u},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const i=s.staticAccountKeys;if(i.filter(u=>u.toString()===e).length===0)return[];const o=n?.logMessages?.filter(u=>u.startsWith(Z))?.[0]?.replace(Z,"");if(!o)return[];const d=[];for(const u of n?.innerInstructions){const m=u.instructions;d.push(...m.filter(g=>g.programIdIndex in i&&i[g.programIdIndex].toString()===e))}return d.length<1?[]:i.length<3?[]:d.map(u=>[new a.SolanaAddress(i[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 i=await this.connection.getAddressLookupTable(s.accountKey);if(!i||!i.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return i.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,i=this.coreBridge.programId,o=n.innerInstructions?.flatMap(u=>u.instructions.filter(m=>i.toString()===e.get(m.programIdIndex).toString())).map(u=>({programIdIndex:u.programIdIndex,accountKeyIndexes:u.accounts})),d=s.compiledInstructions.filter(u=>i.toString()===e.get(u.programIdIndex).toString());return[...o,...d]}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:i,consistencyLevel:o,sequence:d,nonce:u,payload:m}=ne(new Uint8Array(t?.data));return Ee.createVAA("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:c.toChain(i),timestamp:n,emitterAddress:s,consistencyLevel:o,sequence:d,nonce:u,payload:m,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=x.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(o.length>0){const[d,u]=o[0];return[{chain:this.chain,emitter:d,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 i=s.map(async o=>{const d=n.get(o.accountKeyIndexes[1]),u=await this.parsePostMessageAccount(d);return{chain:u.emitterChain,emitter:u.emitterAddress,sequence:u.sequence}});return await Promise.all(i)}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 i=s.map(async o=>{const d=n.get(o.accountKeyIndexes[1]);return await this.parsePostMessageAccount(d)});return await Promise.all(i)}createUnsignedTx(e,t,n=!1){return new a.SolanaUnsignedTransaction(e,this.network,this.chain,t,n)}}c.registerProtocol(a._platform,"WormholeCore",x);const Re=Object.freeze(Object.defineProperty({__proto__:null,IDL:H,SolanaWormholeCore:x,deserializePostMessage:ne,postMessageLayout:te,utils:Fe},Symbol.toStringTag,{value:"Module"}));exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID=O;exports.SolanaWormholeCore=x;exports.accountSize=Y;exports.createBridgeFeeTransferInstruction=W;exports.deriveClaimKey=b;exports.deriveEmitterSequenceKey=C;exports.deriveFeeCollectorKey=M;exports.derivePostedVaaKey=S;exports.deriveProgramDataAddress=ee;exports.deriveUpgradeAuthorityKey=$;exports.deriveWormholeBridgeDataKey=p;exports.deriveWormholeEmitterKey=q;exports.getClaim=re;exports.getPostMessageAccounts=F;exports.getPostMessageCpiAccounts=Ae;exports.getProgramSequenceTracker=ae;exports.getWormholeDerivedAccounts=we;exports.index=Re;
|
|
1
|
+
"use strict";const c=require("./platform-DCcL7jHP.js"),a=require("./unsignedTransaction-qRBv5Cnd.js"),f=require("./index-lAqXlt-a.js"),y=require("./account-K005OXgL.js"),Ee=require("./create-bA3Gyivs.js"),O=new a.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");function ee(r){return y.deriveAddress([new a.PublicKey(r).toBuffer()],O)}class be extends Error{constructor(e){super(e),this.name="IdlError"}}function Y(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>A(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?A(r,s.type):A(r,s)).reduce((s,i)=>s+i,0):0);return Math.max(...t)+1}case"alias":return A(r,e.type.value)}}function A(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+A(r,e.option);if("coption"in e)return 4+A(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 Y(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return A(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function L(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",...c.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",...c.universalAddressItem},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function ne(r){return c.deserialize$1(te,r)}function b(r,e,t,n){const s=typeof e=="string"?c.Buffer.from(e,"hex"):c.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const i=c.Buffer.alloc(8);return i.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),y.deriveAddress([s,(()=>{const o=c.Buffer.alloc(2);return o.writeUInt16BE(t),o})(),i],r)}async function re(r,e,t,n,s,i){return r.getAccountInfo(b(e,t,n,s),i).then(o=>!!y.getAccountData(o)[0])}function p(r){return y.deriveAddress([c.Buffer.from("Bridge")],r)}async function se(r,e,t){return r.getAccountInfo(p(e),t).then(n=>k.deserialize(y.getAccountData(n)))}class v{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 v(t,n)}}class k{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=v.deserialize(e.subarray(12));return new k(t,n,s)}}function C(r,e){return y.deriveAddress([c.Buffer.from("Sequence"),new a.PublicKey(r).toBytes()],e)}async function ie(r,e,t,n){return r.getAccountInfo(C(e,t),n).then(s=>z.deserialize(y.getAccountData(s)))}class z{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 z(s,t,n)}value(){return this.sequence}}function q(r){return y.deriveAddress([c.Buffer.from("emitter")],r)}function N(r,e){const t=q(r);return{emitter:t,sequence:C(t,e)}}async function ae(r,e,t,n){return ie(r,q(e),t,n)}function M(r){return y.deriveAddress([c.Buffer.from("fee_collector")],r)}const X=65,U=20;function Ie(r,e,t){return new a.TransactionInstruction({keys:[],programId:a.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,i=11,o=1+s*i,d=X+U,u=o+s*d,m=32,g=c.Buffer.alloc(u+m);g.writeUInt8(s,0),g.write(n.toString("hex"),u,"hex");for(let l=0;l<s;++l){const w=e.at(l);if(w?.length!=X)throw Error(`signatures[${l}].length != 65`);const P=t.at(l);if(P?.length!=U)throw Error(`keys[${l}].length != 20`);const B=o+d*l,K=B+65;g.writeUInt16LE(B,1+l*i),g.writeUInt8(0,3+l*i),g.writeUInt16LE(K,4+l*i),g.writeUInt8(0,6+l*i),g.writeUInt16LE(u,7+l*i),g.writeUInt16LE(m,9+l*i),g.writeUInt8(0,10+l*i),g.write(w.toString("hex"),B,"hex"),g.write(P.toString("hex"),K,"hex")}return g}}function E(r,e){return y.deriveAddress([c.Buffer.from("GuardianSet"),(()=>{const t=c.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function G(r,e,t,n){return r.getAccountInfo(E(e,t),n).then(s=>V.deserialize(y.getAccountData(s)))}class V{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*U,i=e.readUInt32LE(s),o=e.readUInt32LE(4+s),d=[];for(let u=0;u<n;++u){const m=8+u*U;d.push(e.subarray(m,m+U))}return new V(t,d,i,o)}}function S(r,e){return y.deriveAddress([c.Buffer.from("PostedVAA"),e],r)}async function Pe(r,e,t){return r.getAccountInfo(new a.PublicKey(e),t).then(n=>D.deserialize(y.getAccountData(n)))}class D{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(d=>d!=0),s=4+t,i=e.subarray(s,s+32),o=e.readUInt32LE(s+32);return new D(n,i,o)}}function $(r){return y.deriveAddress([c.Buffer.from("upgrade")],r)}function W(r,e,t){return a.SystemProgram.transfer({fromPubkey:new a.PublicKey(e),toPubkey:M(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 Y(this.idl,e)??0}}class Ke{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class I{static fieldLayout(e,t){const n=e.name!==void 0?L(e.name):void 0;switch(e.type){case"bool":return f.distExports.bool(n);case"u8":return f.distExports.u8(n);case"i8":return f.distExports.i8(n);case"u16":return f.distExports.u16(n);case"i16":return f.distExports.i16(n);case"u32":return f.distExports.u32(n);case"i32":return f.distExports.i32(n);case"f32":return f.distExports.f32(n);case"u64":return f.distExports.u64(n);case"i64":return f.distExports.i64(n);case"f64":return f.distExports.f64(n);case"u128":return f.distExports.u128(n);case"i128":return f.distExports.i128(n);case"u256":return f.distExports.u256(n);case"i256":return f.distExports.i256(n);case"bytes":return f.distExports.vecU8(n);case"string":return f.distExports.str(n);case"publicKey":return f.distExports.publicKey(n);default:{if("vec"in e.type)return f.distExports.vec(I.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return f.distExports.option(I.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],i=e.type.array[1],o=I.fieldLayout({name:void 0,type:s},t);return f.distExports.array(o,i,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class j{ixLayout;constructor(e){this.ixLayout=j.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let i=s.args.map(d=>I.fieldLayout(d,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,f.distExports.struct(i,o)]}).concat(e.instructions.map(s=>{let i=s.args.map(d=>I.fieldLayout(d,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,f.distExports.struct(i,o)]}));return new Map(n)}encode(e,t){const n=c.Buffer.alloc(1e3),s=L(e),i=this.ixLayout.get(s);if(!i)throw new Error(`Unknown method: ${s}`);const o=i.encode(t,n),d=n.slice(0,o);return Le(T[Me(s)],d)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?c.Buffer.from(e,"hex"):c.b58.decode(e));let n=c.Buffer.from(e.slice(0,1)).readInt8(),s=c.Buffer.from(e.slice(1)),i=L(T[n]??"");return this.ixLayout.get(i)?{data:this.ixLayout.get(i)?.decode(s),name:i}:null}}var T;(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"})(T||(T={}));function Le(r,e){const t=c.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 j(e),this.accounts=new Be(e),this.state=new Ue(e),this.events=new Ke(e),this.types=new Ce(e)}}const H={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 f.Program(H,new a.PublicKey(r),e===void 0?{connection:null}:e,ue())}function h(r,e){return oe(r,f.createReadOnlyProvider(e))}function ue(){return new _e(H)}function Te(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),systemProgram:a.SystemProgram.programId}}function ve(r,e,t,n,s){const i=h(e,r).methods.transferFees();return i._ixFn(...i._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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(n.hash)),claim:b(r,n.emitterAddress.toString(),c.toChainId(n.emitterChain),n.sequence),feeCollector:M(r),recipient:new a.PublicKey(t),rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function ke(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),guardianSetOld:E(r,t.guardianSet),guardianSetNew:E(r,t.guardianSet+1),systemProgram:a.SystemProgram.programId}}function ze(r,e,t,n){const s=h(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 a.PublicKey(e),bridge:p(r),vaa:S(r,c.Buffer.from(t.hash)),claim:b(r,t.emitterAddress.toString(),c.toChainId(t.emitterChain),t.sequence),upgradeAuthority:$(r),spill:new a.PublicKey(n===void 0?e:n),implementation:new a.SolanaAddress(s).unwrap(),programData:ee(r),wormholeProgram:new a.PublicKey(r),rent:a.SYSVAR_RENT_PUBKEY,clock:a.SYSVAR_CLOCK_PUBKEY,bpfLoaderUpgradeable:O,systemProgram:a.SystemProgram.programId}}function qe(r,e,t,n,s,i){const o=h(e,r).methods.initialize(n,new a.BN(s.toString()),[...i.map(d=>[...new Uint8Array(d)])]);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:p(r),guardianSet:E(r,0),feeCollector:M(r),payer:new a.PublicKey(e),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function le(r,e,t,n,s,i,o){const d=h(e,r).methods.postMessage(i,c.Buffer.from(s),o);return d._ixFn(...d._args,{accounts:F(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function F(r,e,t,n){let s;return n?{emitter:n,sequence:s}=N(n,r):(n=e,s=C(n,r)),{bridge:p(r),message:new a.PublicKey(t),emitter:new a.PublicKey(n),sequence:s,payer:new a.PublicKey(e),feeCollector:M(r),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function ye(r,e,t,n,s){const i=h(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,c.toChainId(n.emitterChain),[...n.emitterAddress.toUint8Array()],new a.BN(n.sequence.toString()),n.consistencyLevel,c.Buffer.from(c.serializePayload(n.payloadLiteral,n.payload)));return i._ixFn(...i._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:E(r,n.guardianSet),bridge:p(r),signatureSet:new a.PublicKey(t),vaa:S(r,c.Buffer.from(n.hash)),payer:new a.PublicKey(e),clock:a.SYSVAR_CLOCK_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}const Ve=19;async function he(r,e,t,n,s,i){const o=n.guardianSet,d=await G(r,e,o,i),u=n.signatures,m=d.keys,g=7,l=[];for(let w=0;w<Math.ceil(u.length/g);++w){const P=w*g,B=Math.min(u.length,(w+1)*g),K=new Array(Ve).fill(-1),J=[],Q=[];for(let _=0;_<B-P;++_){const R=u.at(_+P);J.push(c.Buffer.from(R.signature.encode())),Q.push(m.at(R.guardianIndex)),K[R.guardianIndex]=_}l.push(Ie(J,Q,c.Buffer.from(n.hash))),l.push(De(r,e,t,n,s,K))}return l}function De(r,e,t,n,s,i){const o=h(e,r).methods.verifySignatures(i);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 a.PublicKey(e),guardianSet:E(r,n.guardianSet),signatureSet:new a.PublicKey(t),instructions:a.SYSVAR_INSTRUCTIONS_PUBKEY,rent:a.SYSVAR_RENT_PUBKEY,systemProgram:a.SystemProgram.programId}}function we(r,e){const{emitter:t,sequence:n}=N(r,e);return{wormholeBridge:p(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:M(e)}}function Ae(r,e,t,n){const s=F(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:v,BridgeData:k,GuardianSetData:V,SequenceTracker:z,SignatureSetData:D,coder:ue,createBridgeFeeTransferInstruction:W,createInitializeInstruction:qe,createPostMessageInstruction:le,createPostVaaInstruction:ye,createReadOnlyWormholeProgramInterface:h,createSetFeesInstruction:Te,createTransferFeesInstruction:ve,createUpgradeContractInstruction:ze,createUpgradeGuardianSetInstruction:ke,createVerifySignaturesInstructions:he,createWormholeProgramInterface:oe,deriveClaimKey:b,deriveEmitterSequenceKey:C,deriveFeeCollectorKey:M,deriveGuardianSetKey:E,derivePostedVaaKey:S,deriveUpgradeAuthorityKey:$,deriveWormholeBridgeDataKey:p,deriveWormholeEmitterKey:q,getClaim:re,getEmitterKeys:N,getGuardianSet:G,getInitializeAccounts:me,getPostMessageAccounts:F,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 x{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=c.toChainId(t);const i=s.coreBridge;if(!i)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=i,this.coreBridge=h(i,n)}async getGuardianSet(e){const t=await G(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 a.SolanaPlatform.chainFromRpc(e),i=t[s];if(i.network!==n)throw new Error(`Network mismatch for chain ${s}: ${i.network} != ${n}`);return new x(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 i=a.Keypair.generate(),o=new a.SolanaAddress(e).unwrap(),d=le(this.connection,this.coreBridge.programId,o,i.publicKey,t,n,s),u=await this.getMessageFee(),m=W(this.coreBridge.programId,o,u),g=new a.Transaction$1;g.feePayer=o,g.add(m,d),yield this.createUnsignedTx({transaction:g,signers:[i]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=S(this.coreBridge.programId,c.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const i=new a.SolanaAddress(e).unwrap(),o=a.Keypair.generate(),d=await he(this.connection,this.coreBridge.programId,i,t,o.publicKey);for(let m=0;m<d.length;m+=2){const g=new a.Transaction$1().add(...d.slice(m,m+2));g.feePayer=i,yield this.createUnsignedTx({transaction:g,signers:[o]},"Core.VerifySignature",!0)}const u=new a.Transaction$1().add(ye(this.connection,this.coreBridge.programId,i,t,o.publicKey));u.feePayer=i,yield this.createUnsignedTx({transaction:u},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const i=s.staticAccountKeys;if(i.filter(u=>u.toString()===e).length===0)return[];const o=n?.logMessages?.filter(u=>u.startsWith(Z))?.[0]?.replace(Z,"");if(!o)return[];const d=[];for(const u of n?.innerInstructions){const m=u.instructions;d.push(...m.filter(g=>g.programIdIndex in i&&i[g.programIdIndex].toString()===e))}return d.length<1?[]:i.length<3?[]:d.map(u=>[new a.SolanaAddress(i[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 i=await this.connection.getAddressLookupTable(s.accountKey);if(!i||!i.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return i.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,i=this.coreBridge.programId,o=n.innerInstructions?.flatMap(u=>u.instructions.filter(m=>i.toString()===e.get(m.programIdIndex).toString())).map(u=>({programIdIndex:u.programIdIndex,accountKeyIndexes:u.accounts})),d=s.compiledInstructions.filter(u=>i.toString()===e.get(u.programIdIndex).toString());return[...o,...d]}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:i,consistencyLevel:o,sequence:d,nonce:u,payload:m}=ne(new Uint8Array(t?.data));return Ee.createVAA("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:c.toChain(i),timestamp:n,emitterAddress:s,consistencyLevel:o,sequence:d,nonce:u,payload:m,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=x.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(o.length>0){const[d,u]=o[0];return[{chain:this.chain,emitter:d,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 i=s.map(async o=>{const d=n.get(o.accountKeyIndexes[1]),u=await this.parsePostMessageAccount(d);return{chain:u.emitterChain,emitter:u.emitterAddress,sequence:u.sequence}});return await Promise.all(i)}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 i=s.map(async o=>{const d=n.get(o.accountKeyIndexes[1]);return await this.parsePostMessageAccount(d)});return await Promise.all(i)}createUnsignedTx(e,t,n=!1){return new a.SolanaUnsignedTransaction(e,this.network,this.chain,t,n)}}c.registerProtocol(a._platform,"WormholeCore",x);const Re=Object.freeze(Object.defineProperty({__proto__:null,IDL:H,SolanaWormholeCore:x,deserializePostMessage:ne,postMessageLayout:te,utils:Fe},Symbol.toStringTag,{value:"Module"}));exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID=O;exports.SolanaWormholeCore=x;exports.accountSize=Y;exports.createBridgeFeeTransferInstruction=W;exports.deriveClaimKey=b;exports.deriveEmitterSequenceKey=C;exports.deriveFeeCollectorKey=M;exports.derivePostedVaaKey=S;exports.deriveProgramDataAddress=ee;exports.deriveUpgradeAuthorityKey=$;exports.deriveWormholeBridgeDataKey=p;exports.deriveWormholeEmitterKey=q;exports.getClaim=re;exports.getPostMessageAccounts=F;exports.getPostMessageCpiAccounts=Ae;exports.getProgramSequenceTracker=ae;exports.getWormholeDerivedAccounts=we;exports.index=Re;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./unsignedTransaction-DA4tlY5u.js"),M=require("./index-lZY5fTXF.js"),u=require("./platform-CCG_jgOO.js"),h=require("./web3-DdUeM7iQ.js"),b=new a.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new a.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const A=new a.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new a.PublicKey("So11111111111111111111111111111111111111112");new a.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class H extends Error{constructor(e){super(e)}}class q extends H{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const G=a.LayoutExports.struct([a.LayoutExports.u32("mintAuthorityOption"),h.publicKey("mintAuthority"),h.u64("supply"),a.LayoutExports.u8("decimals"),h.bool("isInitialized"),a.LayoutExports.u32("freezeAuthorityOption"),h.publicKey("freezeAuthority")]);G.span;function $(r,e,t=!1,s=b,i=A){if(!t&&!a.PublicKey.isOnCurve(e.toBuffer()))throw new q;const[n]=a.PublicKey.findProgramAddressSync([e.toBuffer(),s.toBuffer(),r.toBuffer()],i);return n}function X(r,e,t,s,i=b,n=A){return J(r,e,t,s,u.Buffer.alloc(0),i,n)}function J(r,e,t,s,i,n=b,o=A){const l=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1}];return new a.TransactionInstruction({keys:l,programId:o,data:i})}function w(r,e){return new M.Program(B.TokenMessengerIdl,new a.PublicKey(r),e===void 0?{connection:null}:e)}function R(r,e){return w(r,M.createReadOnlyProvider(e))}function K(r,e){return new M.Program(B.MessageTransmitterIdl,new a.PublicKey(r),e===void 0?{connection:null}:e)}function O(r,e){return K(r,M.createReadOnlyProvider(e))}const m=(r,e,t)=>{const s=[u.Buffer.from(M.index.bytes.utf8.encode(r))];if(t)for(const n of t)typeof n=="string"?s.push(u.Buffer.from(M.index.bytes.utf8.encode(n))):Array.isArray(n)?s.push(u.Buffer.from(n)):u.Buffer.isBuffer(n)?s.push(n):s.push(n.toBuffer());const i=a.PublicKey.findProgramAddressSync(s,e);return{publicKey:i[0],bump:i[1]}};function E(r,e,t,s,i,n,o,l,d){const c=m("message_transmitter",r),g=m("token_messenger",e),p=m("token_minter",e),y=m("local_token",e,[t]),S=m("remote_token_messenger",e,[s.toString()]),k=m("sender_authority",e),T=w(e),v=m("__event_authority",e);return T.methods.depositForBurn({amount:new a.BN(l.toString()),destinationDomain:s,mintRecipient:new a.PublicKey(o.toUint8Array())}).accounts({owner:i,senderAuthorityPda:k.publicKey,burnTokenAccount:n,messageTransmitter:c.publicKey,tokenMessenger:g.publicKey,remoteTokenMessenger:S.publicKey,tokenMinter:p.publicKey,localToken:y.publicKey,burnTokenMint:t,messageTransmitterProgram:r,tokenMessengerMinterProgram:e,tokenProgram:b,eventAuthority:v.publicKey,eventRentPayer:i,messageSentEventData:d}).instruction()}const C=6400n;function I(r){return(r-BigInt(1))/C*C+BigInt(1)}function x(r,e,t){const s=e.toString();return m("used_nonces",t,[s,I(r).toString()]).publicKey}async function N(r,e,t,s,i,n){const o=u.Buffer.from(u.CircleBridge.serialize(s)),l=u.Buffer.from(u.hex.decode(i)),d=new a.PublicKey(t),c=new a.PublicKey(s.payload.burnToken.toUint8Array()),g=new a.SolanaAddress(s.payload.mintRecipient).unwrap(),p=n?new a.PublicKey(n):g,y=s.sourceDomain.toString(),S=m("message_transmitter",r),k=m("token_messenger",e),T=m("token_minter",e),v=m("local_token",e,[d]),_=m("remote_token_messenger",e,[y]),U=m("token_pair",e,[y,c]),L=m("custody",e,[d]),W=m("message_transmitter_authority",r,[e]).publicKey,z=x(s.nonce,s.sourceDomain,r),F=m("__event_authority",r),V=m("__event_authority",e),f=[];f.push({isSigner:!1,isWritable:!1,pubkey:k.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:_.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:T.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:v.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:U.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:g}),f.push({isSigner:!1,isWritable:!0,pubkey:L.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:b}),f.push({isSigner:!1,isWritable:!1,pubkey:V.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:e});const D=K(r);return D.methods.receiveMessage({message:o,attestation:l}).accounts({payer:p,caller:p,authorityPda:W,messageTransmitter:S.publicKey,usedNonces:z,receiver:e,systemProgram:a.SystemProgram.programId,eventAuthority:F.publicKey,program:D.programId}).remainingAccounts(f).transaction()}class P{network;chain;connection;contracts;tokenMessenger;messageTransmitter;constructor(e,t,s,i){if(this.network=e,this.chain=t,this.connection=s,this.contracts=i,e==="Devnet")throw new Error("CircleBridge not supported on Devnet");const n=i.cctp?.messageTransmitter;if(!n)throw new Error(`Circle Messenger Transmitter contract for domain ${t} not found`);this.messageTransmitter=O(new a.PublicKey(n),this.connection);const o=i.cctp?.tokenMessenger;if(!o)throw new Error(`Circle Token Messenger contract for domain ${t} not found`);this.tokenMessenger=R(new a.PublicKey(o),this.connection)}static async fromRpc(e,t){const[s,i]=await a.SolanaPlatform.chainFromRpc(e),n=t[i];if(n.network!==s)throw new Error(`Network mismatch: ${n.network} != ${s}`);return new P(s,i,e,n.contracts)}async*redeem(e,t,s){const i=new a.PublicKey(u.usdcContract.get(this.network,this.chain)),n=new a.SolanaAddress(e).unwrap(),o=new a.SolanaAddress(t.payload.mintRecipient).unwrap();if(!await this.connection.getAccountInfo(o)){const g=new a.Transaction$1().add(X(n,o,n,i));g.feePayer=n,yield this.createUnsignedTx({transaction:g},"CircleBridge.CreateATA")}const d=await N(this.messageTransmitter.programId,this.tokenMessenger.programId,i,t,s,n),c=new a.Transaction$1;c.feePayer=n,c.add(d),yield this.createUnsignedTx({transaction:c},"CircleBridge.Redeem")}async*transfer(e,t,s){const i=new a.PublicKey(u.usdcContract.get(this.network,this.chain)),n=new a.SolanaAddress(e).unwrap(),o=$(i,n),l=u.circleChainId.get(this.network,t.chain),d=t.address.toUniversalAddress(),c=a.Keypair.generate(),g=await E(this.messageTransmitter.programId,this.tokenMessenger.programId,i,l,n,o,d,s,c.publicKey),p=new a.Transaction$1;p.feePayer=n,p.add(g),yield this.createUnsignedTx({transaction:p,signers:[c]},"CircleBridge.Transfer")}async isTransferCompleted(e){const t=x(e.nonce,e.sourceDomain,this.messageTransmitter.programId),s=I(e.nonce),{usedNonces:i}=await this.messageTransmitter.account.usedNonces.fetch(t),n=Number(e.nonce-s),o=i[Math.floor(n/64)];if(!o)throw new Error("Invalid nonce byte index");const l=n%64,d=new a.BN((BigInt(1)<<BigInt(l)).toString());return!o.and(d).isZero()}async parseTransactionDetails(e){const t=await this.connection.getTransaction(e);if(!t||!t.meta)throw new Error("Transaction not found");const s=t.transaction.message.getAccountKeys();if(s.length<2)throw new Error("No message account found");const i=s.get(1),n=await this.connection.getAccountInfo(i);if(!n)throw new Error("No account data found");const o=new Uint8Array(n.data).slice(44),[l,d]=u.CircleBridge.deserialize(o),{payload:c}=l,g=c.messageSender,p=c.mintRecipient,y=u.toCircleChain(this.network,l.sourceDomain),S=u.toCircleChain(this.network,l.destinationDomain),k={chain:y,address:c.burnToken};return{from:{chain:y,address:g},to:{chain:S,address:p},token:k,amount:c.amount,message:l,id:{hash:d}}}createUnsignedTx(e,t,s=!1){return new a.SolanaUnsignedTransaction(e,this.network,this.chain,t,s)}}const Q={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"}]},Z={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"}]};u.registerProtocol(a._platform,"CircleBridge",P);const B={TokenMessengerIdl:Q,MessageTransmitterIdl:Z};exports.SolanaCircleBridge=P;exports.calculateFirstNonce=I;exports.createDepositForBurnInstruction=E;exports.createMessageTransmitterProgramInterface=K;exports.createReadOnlyMessageTransmitterProgramInterface=O;exports.createReadOnlyTokenMessengerProgramInterface=R;exports.createReceiveMessageInstruction=N;exports.createTokenMessengerProgramInterface=w;exports.findProgramAddress=m;exports.idl=B;exports.nonceAccount=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./unsignedTransaction-qRBv5Cnd.js"),M=require("./index-lAqXlt-a.js"),u=require("./platform-DCcL7jHP.js"),h=require("./web3-x1WCGDiy.js"),b=new a.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new a.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const A=new a.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new a.PublicKey("So11111111111111111111111111111111111111112");new a.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class H extends Error{constructor(e){super(e)}}class q extends H{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const G=a.LayoutExports.struct([a.LayoutExports.u32("mintAuthorityOption"),h.publicKey("mintAuthority"),h.u64("supply"),a.LayoutExports.u8("decimals"),h.bool("isInitialized"),a.LayoutExports.u32("freezeAuthorityOption"),h.publicKey("freezeAuthority")]);G.span;function $(r,e,t=!1,s=b,i=A){if(!t&&!a.PublicKey.isOnCurve(e.toBuffer()))throw new q;const[n]=a.PublicKey.findProgramAddressSync([e.toBuffer(),s.toBuffer(),r.toBuffer()],i);return n}function X(r,e,t,s,i=b,n=A){return J(r,e,t,s,u.Buffer.alloc(0),i,n)}function J(r,e,t,s,i,n=b,o=A){const l=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1}];return new a.TransactionInstruction({keys:l,programId:o,data:i})}function w(r,e){return new M.Program(B.TokenMessengerIdl,new a.PublicKey(r),e===void 0?{connection:null}:e)}function R(r,e){return w(r,M.createReadOnlyProvider(e))}function K(r,e){return new M.Program(B.MessageTransmitterIdl,new a.PublicKey(r),e===void 0?{connection:null}:e)}function O(r,e){return K(r,M.createReadOnlyProvider(e))}const m=(r,e,t)=>{const s=[u.Buffer.from(M.index.bytes.utf8.encode(r))];if(t)for(const n of t)typeof n=="string"?s.push(u.Buffer.from(M.index.bytes.utf8.encode(n))):Array.isArray(n)?s.push(u.Buffer.from(n)):u.Buffer.isBuffer(n)?s.push(n):s.push(n.toBuffer());const i=a.PublicKey.findProgramAddressSync(s,e);return{publicKey:i[0],bump:i[1]}};function E(r,e,t,s,i,n,o,l,d){const c=m("message_transmitter",r),g=m("token_messenger",e),p=m("token_minter",e),y=m("local_token",e,[t]),S=m("remote_token_messenger",e,[s.toString()]),k=m("sender_authority",e),T=w(e),v=m("__event_authority",e);return T.methods.depositForBurn({amount:new a.BN(l.toString()),destinationDomain:s,mintRecipient:new a.PublicKey(o.toUint8Array())}).accounts({owner:i,senderAuthorityPda:k.publicKey,burnTokenAccount:n,messageTransmitter:c.publicKey,tokenMessenger:g.publicKey,remoteTokenMessenger:S.publicKey,tokenMinter:p.publicKey,localToken:y.publicKey,burnTokenMint:t,messageTransmitterProgram:r,tokenMessengerMinterProgram:e,tokenProgram:b,eventAuthority:v.publicKey,eventRentPayer:i,messageSentEventData:d}).instruction()}const C=6400n;function I(r){return(r-BigInt(1))/C*C+BigInt(1)}function x(r,e,t){const s=e.toString();return m("used_nonces",t,[s,I(r).toString()]).publicKey}async function N(r,e,t,s,i,n){const o=u.Buffer.from(u.CircleBridge.serialize(s)),l=u.Buffer.from(u.hex.decode(i)),d=new a.PublicKey(t),c=new a.PublicKey(s.payload.burnToken.toUint8Array()),g=new a.SolanaAddress(s.payload.mintRecipient).unwrap(),p=n?new a.PublicKey(n):g,y=s.sourceDomain.toString(),S=m("message_transmitter",r),k=m("token_messenger",e),T=m("token_minter",e),v=m("local_token",e,[d]),_=m("remote_token_messenger",e,[y]),U=m("token_pair",e,[y,c]),L=m("custody",e,[d]),W=m("message_transmitter_authority",r,[e]).publicKey,z=x(s.nonce,s.sourceDomain,r),F=m("__event_authority",r),V=m("__event_authority",e),f=[];f.push({isSigner:!1,isWritable:!1,pubkey:k.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:_.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:T.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:v.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:U.publicKey}),f.push({isSigner:!1,isWritable:!0,pubkey:g}),f.push({isSigner:!1,isWritable:!0,pubkey:L.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:b}),f.push({isSigner:!1,isWritable:!1,pubkey:V.publicKey}),f.push({isSigner:!1,isWritable:!1,pubkey:e});const D=K(r);return D.methods.receiveMessage({message:o,attestation:l}).accounts({payer:p,caller:p,authorityPda:W,messageTransmitter:S.publicKey,usedNonces:z,receiver:e,systemProgram:a.SystemProgram.programId,eventAuthority:F.publicKey,program:D.programId}).remainingAccounts(f).transaction()}class P{network;chain;connection;contracts;tokenMessenger;messageTransmitter;constructor(e,t,s,i){if(this.network=e,this.chain=t,this.connection=s,this.contracts=i,e==="Devnet")throw new Error("CircleBridge not supported on Devnet");const n=i.cctp?.messageTransmitter;if(!n)throw new Error(`Circle Messenger Transmitter contract for domain ${t} not found`);this.messageTransmitter=O(new a.PublicKey(n),this.connection);const o=i.cctp?.tokenMessenger;if(!o)throw new Error(`Circle Token Messenger contract for domain ${t} not found`);this.tokenMessenger=R(new a.PublicKey(o),this.connection)}static async fromRpc(e,t){const[s,i]=await a.SolanaPlatform.chainFromRpc(e),n=t[i];if(n.network!==s)throw new Error(`Network mismatch: ${n.network} != ${s}`);return new P(s,i,e,n.contracts)}async*redeem(e,t,s){const i=new a.PublicKey(u.usdcContract.get(this.network,this.chain)),n=new a.SolanaAddress(e).unwrap(),o=new a.SolanaAddress(t.payload.mintRecipient).unwrap();if(!await this.connection.getAccountInfo(o)){const g=new a.Transaction$1().add(X(n,o,n,i));g.feePayer=n,yield this.createUnsignedTx({transaction:g},"CircleBridge.CreateATA")}const d=await N(this.messageTransmitter.programId,this.tokenMessenger.programId,i,t,s,n),c=new a.Transaction$1;c.feePayer=n,c.add(d),yield this.createUnsignedTx({transaction:c},"CircleBridge.Redeem")}async*transfer(e,t,s){const i=new a.PublicKey(u.usdcContract.get(this.network,this.chain)),n=new a.SolanaAddress(e).unwrap(),o=$(i,n),l=u.circleChainId.get(this.network,t.chain),d=t.address.toUniversalAddress(),c=a.Keypair.generate(),g=await E(this.messageTransmitter.programId,this.tokenMessenger.programId,i,l,n,o,d,s,c.publicKey),p=new a.Transaction$1;p.feePayer=n,p.add(g),yield this.createUnsignedTx({transaction:p,signers:[c]},"CircleBridge.Transfer")}async isTransferCompleted(e){const t=x(e.nonce,e.sourceDomain,this.messageTransmitter.programId),s=I(e.nonce),{usedNonces:i}=await this.messageTransmitter.account.usedNonces.fetch(t),n=Number(e.nonce-s),o=i[Math.floor(n/64)];if(!o)throw new Error("Invalid nonce byte index");const l=n%64,d=new a.BN((BigInt(1)<<BigInt(l)).toString());return!o.and(d).isZero()}async parseTransactionDetails(e){const t=await this.connection.getTransaction(e);if(!t||!t.meta)throw new Error("Transaction not found");const s=t.transaction.message.getAccountKeys();if(s.length<2)throw new Error("No message account found");const i=s.get(1),n=await this.connection.getAccountInfo(i);if(!n)throw new Error("No account data found");const o=new Uint8Array(n.data).slice(44),[l,d]=u.CircleBridge.deserialize(o),{payload:c}=l,g=c.messageSender,p=c.mintRecipient,y=u.toCircleChain(this.network,l.sourceDomain),S=u.toCircleChain(this.network,l.destinationDomain),k={chain:y,address:c.burnToken};return{from:{chain:y,address:g},to:{chain:S,address:p},token:k,amount:c.amount,message:l,id:{hash:d}}}createUnsignedTx(e,t,s=!1){return new a.SolanaUnsignedTransaction(e,this.network,this.chain,t,s)}}const Q={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"}]},Z={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"}]};u.registerProtocol(a._platform,"CircleBridge",P);const B={TokenMessengerIdl:Q,MessageTransmitterIdl:Z};exports.SolanaCircleBridge=P;exports.calculateFirstNonce=I;exports.createDepositForBurnInstruction=E;exports.createMessageTransmitterProgramInterface=K;exports.createReadOnlyMessageTransmitterProgramInterface=O;exports.createReadOnlyTokenMessengerProgramInterface=R;exports.createReceiveMessageInstruction=N;exports.createTokenMessengerProgramInterface=w;exports.findProgramAddress=m;exports.idl=B;exports.nonceAccount=x;
|