@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,4 +1,4 @@
|
|
|
1
|
-
"use strict";const a=require("./unsignedTransaction-
|
|
1
|
+
"use strict";const a=require("./unsignedTransaction-qRBv5Cnd.js"),m=require("./index-Cb_8WAm1.js"),C=require("./signer-gjSiV5v3.js"),N=require("./platform-DCcL7jHP.js");function E(e){return e.includes("rpcpool.com")?"triton":e.includes("helius-rpc.com")?"helius":e.includes("rpc.ankr.com")?"ankr":"unknown"}async function B(e,t,l,u){const n=u.transaction.transaction,d=i=>i.programId.toString()!=="ComputeBudget111111111111111111111111111111";if(a.isVersionedTransaction(n)){const i=(await Promise.all(n.message.addressTableLookups.map(c=>e.getAddressLookupTable(c.accountKey)))).map(c=>c.value).filter(c=>c!==null),r=a.TransactionMessage.decompile(n.message,{addressLookupTableAccounts:i});r.recentBlockhash=t,n.message.recentBlockhash=t,r.instructions=r.instructions.filter(d),n.message=r.compileToV0Message(i),r.instructions.push(...await L(e,n)),n.message=r.compileToV0Message(i),n.sign(u.transaction.signers??[])}else n.recentBlockhash=t,n.lastValidBlockHeight=l,n.instructions=n.instructions.filter(d),n.add(...await L(e,n)),u.transaction.signers&&n.partialSign(...u.transaction.signers);return n}async function L(e,t,l="confirmed"){let u=2e5,n=0;const d=a.ComputeBudgetProgram.setComputeUnitLimit({units:3e5});let i;if(a.isVersionedTransaction(t)){const s=(await Promise.all(t.message.addressTableLookups.map(g=>e.getAddressLookupTable(g.accountKey)))).map(g=>g.value).filter(g=>g!==null),o=a.TransactionMessage.decompile(t.message,{addressLookupTableAccounts:s});o.instructions=[...o.instructions,d],i=new a.VersionedTransaction(o.compileToV0Message(s)),i.signatures=[...t.signatures]}else{const s=new a.Transaction$1;s.recentBlockhash=t.recentBlockhash,s.feePayer=t.feePayer,s.instructions=[...t.instructions,d],s.signatures=[...t.signatures],i=s}e:for(;;){if(a.isVersionedTransaction(i)&&!i.message.recentBlockhash){const{blockhash:o}=await e.getLatestBlockhash(l);i.message.recentBlockhash=o}const s=await(a.isVersionedTransaction(i)?e.simulateTransaction(i,{commitment:l,replaceRecentBlockhash:!0}):e.simulateTransaction(i));if(s.value.err){if(I(s.value)){if(n<5){n++,await m.sleep(1e3);continue e}}else if(n<3){n++,await m.sleep(1e3);continue e}throw new Error(`Simulation failed: ${JSON.stringify(s.value.err)}
|
|
2
2
|
Logs:
|
|
3
3
|
${(s.value.logs||[]).join(`
|
|
4
4
|
`)}`)}else{s.value.unitsConsumed&&(u=s.value.unitsConsumed);break}}const r=Math.floor(u*1.2),c=[];c.push(a.ComputeBudgetProgram.setComputeUnitLimit({units:r}));const y=m.config.transactionSettings?.Solana?.priorityFee||{},{percentile:p=.9,percentileMultiple:f=1,min:S=1e5,max:h=1e8}=y,P=async s=>{if(s==="triton")try{return{fee:await C.determinePriorityFeeTritonOne(e,t,p,f,S,h),methodUsed:"triton"}}catch(o){console.warn("Failed to determine priority fee using Triton RPC:",o)}try{return{fee:await C.determinePriorityFee(e,t,p,f,S,h),methodUsed:"default"}}catch(o){return console.warn("Failed to determine priority fee using Triton RPC:",o),{fee:S,methodUsed:"minimum"}}},A=E(e.rpcEndpoint),{fee:T,methodUsed:k}=await P(A),w=T/1e6/a.LAMPORTS_PER_SOL*r;return console.table({"RPC Provider":A,"Method used":k,"Percentile used":p,"Multiple used":f,"Compute budget":r,"Priority fee":T,"Max fee in SOL":w}),c.push(a.ComputeBudgetProgram.setComputeUnitPrice({microLamports:T})),c}function I(e){const t={};if(e.err==="BlockhashNotFound"&&(t.BlockhashNotFound="Blockhash not found during simulation. Trying again."),e.logs)for(const l of e.logs)l.includes("SlippageToleranceExceeded")&&(t.SlippageToleranceExceeded="Slippage failure during simulation. Trying again."),l.includes("RequireGteViolated")&&(t.RequireGteViolated="Swap instruction failure during simulation. Trying again.");return m.isEmptyObject(t)?!1:(console.table(t),!0)}function _(e){return N.chainToPlatform.has(e)&&N.chainToPlatform.get(e)==="Solana"}const v="solana:signAndSendTransaction",M="solana:signIn",O="solana:signMessage",F="solana:signTransaction",V="standard:connect",x="standard:disconnect",b="standard:events",H="solana:mainnet",R="solana:devnet",U="solana:testnet",D="solana:localnet";exports.SOLANA_DEVNET_CHAIN=R;exports.SOLANA_LOCALNET_CHAIN=D;exports.SOLANA_MAINNET_CHAIN=H;exports.SOLANA_TESTNET_CHAIN=U;exports.SolanaSignAndSendTransaction=v;exports.SolanaSignIn=M;exports.SolanaSignMessage=O;exports.SolanaSignTransaction=F;exports.StandardConnect=V;exports.StandardDisconnect=x;exports.StandardEvents=b;exports.isSvmChain=_;exports.setPriorityFeeInstructions=B;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./platform-CCG_jgOO.js"),d=require("./index-DALvn9lg.js"),u=require("./index-DVxmRy4C.js"),e=require("./unsignedTransaction-DA4tlY5u.js"),G=require("./index-lZY5fTXF.js"),h=require("./web3-DdUeM7iQ.js"),V={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function K(r){return e.PublicKey.findProgramAddressSync([o.Buffer.from("redeemer")],new e.PublicKey(r))[0]}function U(r,i){const t=o.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([o.Buffer.from("msg"),t],new e.PublicKey(r))[0]}function D(r,i){const t=o.Buffer.alloc(2);return t.writeUInt16LE(o.toChainId(i)),e.PublicKey.findProgramAddressSync([o.Buffer.from("gateway-info"),t],new e.PublicKey(r))[0]}const b=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function _(){return e.PublicKey.findProgramAddressSync([o.Buffer.from("config")],b)[0]}function F(r){return e.PublicKey.findProgramAddressSync([o.Buffer.from("minter-info"),r.toBuffer()],b)[0]}const A=new e.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new e.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const P=new e.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new e.PublicKey("So11111111111111111111111111111111111111112");new e.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class z extends Error{constructor(i){super(i)}}class Y extends z{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const H=e.LayoutExports.struct([e.LayoutExports.u32("mintAuthorityOption"),h.publicKey("mintAuthority"),h.u64("supply"),e.LayoutExports.u8("decimals"),h.bool("isInitialized"),e.LayoutExports.u32("freezeAuthorityOption"),h.publicKey("freezeAuthority")]);H.span;async function B(r,i,t=!1,a=A,n=P){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new Y;const[s]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),r.toBuffer()],n);return s}function Z(r,i,t,a,n=A,s=P){return j(r,i,t,a,o.Buffer.alloc(0),n,s)}function j(r,i,t,a,n,s=A,c=P){const g=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:g,programId:c,data:n})}class y{network;chain;connection;contracts;gateway;tokenBridgeId;coreBridgeId;constructor(i,t,a,n){if(this.network=i,this.chain=t,this.connection=a,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new G.Program(V,this.contracts.tbtc,{connection:a}),this.tokenBridgeId=new e.PublicKey(this.contracts.tokenBridge),this.coreBridgeId=new e.PublicKey(this.contracts.coreBridge)}static async fromRpc(i,t){const[a,n]=await e.SolanaPlatform.chainFromRpc(i),s=t[n];if(s.network!==a)throw new Error(`Network mismatch: ${s.network} != ${a}`);return new y(a,n,i,s.contracts)}async*transfer(i,t,a){const n=new e.SolanaAddress(i).unwrap(),s=K(this.gateway.programId),{tbtcMint:c,wrappedTbtcToken:g,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(s),w=u.deriveWrappedMetaKey(this.tokenBridgeId,m),l=u.deriveTokenBridgeConfigKey(this.tokenBridgeId),f=u.deriveAuthoritySignerKey(this.tokenBridgeId),C=d.deriveFeeCollectorKey(this.coreBridgeId),{sequence:S}=await d.getProgramSequenceTracker(this.connection,this.tokenBridgeId,this.coreBridgeId),k=U(this.gateway.programId,S),M=d.deriveWormholeBridgeDataKey(this.coreBridgeId),p=d.deriveWormholeEmitterKey(this.tokenBridgeId),T=d.deriveEmitterSequenceKey(p,this.coreBridgeId),x=D(this.gateway.programId,t.chain),W=u.deriveSenderAccountKey(this.gateway.programId),I={amount:new e.bnExports.BN(a.toString()),recipientChain:o.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},v=await B(c,n),N=o.tbtc.get(this.network,t.chain),E={custodian:s,wrappedTbtcToken:g,wrappedTbtcMint:m,tbtcMint:c,senderToken:v,sender:n,tokenBridgeConfig:l,tokenBridgeWrappedAsset:w,tokenBridgeTransferAuthority:f,coreBridgeData:M,coreMessage:k,tokenBridgeCoreEmitter:p,coreEmitterSequence:T,coreFeeCollector:C,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},q=N?await this.gateway.methods.sendTbtcGateway({...I}).accounts({...E,gatewayInfo:x,tokenBridgeSender:W}).instruction():await this.gateway.methods.sendTbtcWrapped({...I,arbiterFee:new e.bnExports.BN(0)}).accounts(E).instruction(),{blockhash:L}=await this.connection.getLatestBlockhash(),O=e.MessageV0.compile({instructions:[q],payerKey:n,recentBlockhash:L}),R=new e.VersionedTransaction(O);yield this.createUnsignedTransaction({transaction:R},"TBTCBridge.Send")}async*redeem(i,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new d.SolanaWormholeCore(this.network,this.chain,this.connection,this.contracts).postVaa(i,t);const n=[],s=new e.SolanaAddress(i).unwrap(),c=t.payload.payload.recipient.toNative(this.chain).unwrap(),g=K(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:w,wrappedTbtcMint:l}=await this.gateway.account.custodian.fetch(g),f=await B(m,c);await this.connection.getAccountInfo(f)||n.push(Z(s,f,c,m));const S=u.deriveWrappedMetaKey(this.tokenBridgeId,l),k=await B(l,c);n.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:s,custodian:g,postedVaa:d.derivePostedVaaKey(this.coreBridgeId,o.Buffer.from(t.hash)),tokenBridgeClaim:d.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),o.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:w,wrappedTbtcMint:l,tbtcMint:m,recipientToken:f,recipient:c,recipientWrappedToken:k,tbtcConfig:_(),tbtcMinterInfo:F(g),tokenBridgeConfig:u.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:u.deriveEndpointKey(this.tokenBridgeId,o.toChainId(t.emitterChain),t.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:S,tokenBridgeMintAuthority:u.deriveMintAuthorityKey(this.tokenBridgeId),rent:e.SYSVAR_RENT_PUBKEY,tbtcProgram:b,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:M}=await this.connection.getLatestBlockhash(),p=e.MessageV0.compile({instructions:n,payerKey:s,recentBlockhash:M}),T=new e.VersionedTransaction(p);yield this.createUnsignedTransaction({transaction:T},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new e.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}o.registerProtocol(e._platform,"TBTCBridge",y);exports.SolanaTBTCBridge=y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./platform-DCcL7jHP.js"),d=require("./index-v7w8krM0.js"),u=require("./index-WrXSs0ic.js"),e=require("./unsignedTransaction-qRBv5Cnd.js"),G=require("./index-lAqXlt-a.js"),h=require("./web3-x1WCGDiy.js"),V={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function K(r){return e.PublicKey.findProgramAddressSync([o.Buffer.from("redeemer")],new e.PublicKey(r))[0]}function U(r,i){const t=o.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([o.Buffer.from("msg"),t],new e.PublicKey(r))[0]}function D(r,i){const t=o.Buffer.alloc(2);return t.writeUInt16LE(o.toChainId(i)),e.PublicKey.findProgramAddressSync([o.Buffer.from("gateway-info"),t],new e.PublicKey(r))[0]}const b=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function _(){return e.PublicKey.findProgramAddressSync([o.Buffer.from("config")],b)[0]}function F(r){return e.PublicKey.findProgramAddressSync([o.Buffer.from("minter-info"),r.toBuffer()],b)[0]}const A=new e.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new e.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const P=new e.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new e.PublicKey("So11111111111111111111111111111111111111112");new e.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class z extends Error{constructor(i){super(i)}}class Y extends z{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const H=e.LayoutExports.struct([e.LayoutExports.u32("mintAuthorityOption"),h.publicKey("mintAuthority"),h.u64("supply"),e.LayoutExports.u8("decimals"),h.bool("isInitialized"),e.LayoutExports.u32("freezeAuthorityOption"),h.publicKey("freezeAuthority")]);H.span;async function B(r,i,t=!1,a=A,n=P){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new Y;const[s]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),r.toBuffer()],n);return s}function Z(r,i,t,a,n=A,s=P){return j(r,i,t,a,o.Buffer.alloc(0),n,s)}function j(r,i,t,a,n,s=A,c=P){const g=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:g,programId:c,data:n})}class y{network;chain;connection;contracts;gateway;tokenBridgeId;coreBridgeId;constructor(i,t,a,n){if(this.network=i,this.chain=t,this.connection=a,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new G.Program(V,this.contracts.tbtc,{connection:a}),this.tokenBridgeId=new e.PublicKey(this.contracts.tokenBridge),this.coreBridgeId=new e.PublicKey(this.contracts.coreBridge)}static async fromRpc(i,t){const[a,n]=await e.SolanaPlatform.chainFromRpc(i),s=t[n];if(s.network!==a)throw new Error(`Network mismatch: ${s.network} != ${a}`);return new y(a,n,i,s.contracts)}async*transfer(i,t,a){const n=new e.SolanaAddress(i).unwrap(),s=K(this.gateway.programId),{tbtcMint:c,wrappedTbtcToken:g,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(s),w=u.deriveWrappedMetaKey(this.tokenBridgeId,m),l=u.deriveTokenBridgeConfigKey(this.tokenBridgeId),f=u.deriveAuthoritySignerKey(this.tokenBridgeId),C=d.deriveFeeCollectorKey(this.coreBridgeId),{sequence:S}=await d.getProgramSequenceTracker(this.connection,this.tokenBridgeId,this.coreBridgeId),k=U(this.gateway.programId,S),M=d.deriveWormholeBridgeDataKey(this.coreBridgeId),p=d.deriveWormholeEmitterKey(this.tokenBridgeId),T=d.deriveEmitterSequenceKey(p,this.coreBridgeId),x=D(this.gateway.programId,t.chain),W=u.deriveSenderAccountKey(this.gateway.programId),I={amount:new e.bnExports.BN(a.toString()),recipientChain:o.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},v=await B(c,n),N=o.tbtc.get(this.network,t.chain),E={custodian:s,wrappedTbtcToken:g,wrappedTbtcMint:m,tbtcMint:c,senderToken:v,sender:n,tokenBridgeConfig:l,tokenBridgeWrappedAsset:w,tokenBridgeTransferAuthority:f,coreBridgeData:M,coreMessage:k,tokenBridgeCoreEmitter:p,coreEmitterSequence:T,coreFeeCollector:C,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},q=N?await this.gateway.methods.sendTbtcGateway({...I}).accounts({...E,gatewayInfo:x,tokenBridgeSender:W}).instruction():await this.gateway.methods.sendTbtcWrapped({...I,arbiterFee:new e.bnExports.BN(0)}).accounts(E).instruction(),{blockhash:L}=await this.connection.getLatestBlockhash(),O=e.MessageV0.compile({instructions:[q],payerKey:n,recentBlockhash:L}),R=new e.VersionedTransaction(O);yield this.createUnsignedTransaction({transaction:R},"TBTCBridge.Send")}async*redeem(i,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new d.SolanaWormholeCore(this.network,this.chain,this.connection,this.contracts).postVaa(i,t);const n=[],s=new e.SolanaAddress(i).unwrap(),c=t.payload.payload.recipient.toNative(this.chain).unwrap(),g=K(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:w,wrappedTbtcMint:l}=await this.gateway.account.custodian.fetch(g),f=await B(m,c);await this.connection.getAccountInfo(f)||n.push(Z(s,f,c,m));const S=u.deriveWrappedMetaKey(this.tokenBridgeId,l),k=await B(l,c);n.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:s,custodian:g,postedVaa:d.derivePostedVaaKey(this.coreBridgeId,o.Buffer.from(t.hash)),tokenBridgeClaim:d.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),o.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:w,wrappedTbtcMint:l,tbtcMint:m,recipientToken:f,recipient:c,recipientWrappedToken:k,tbtcConfig:_(),tbtcMinterInfo:F(g),tokenBridgeConfig:u.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:u.deriveEndpointKey(this.tokenBridgeId,o.toChainId(t.emitterChain),t.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:S,tokenBridgeMintAuthority:u.deriveMintAuthorityKey(this.tokenBridgeId),rent:e.SYSVAR_RENT_PUBKEY,tbtcProgram:b,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:M}=await this.connection.getLatestBlockhash(),p=e.MessageV0.compile({instructions:n,payerKey:s,recentBlockhash:M}),T=new e.VersionedTransaction(p);yield this.createUnsignedTransaction({transaction:T},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new e.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}o.registerProtocol(e._platform,"TBTCBridge",y);exports.SolanaTBTCBridge=y;
|