@wormhole-foundation/wormhole-connect 3.0.1-beta.6-development → 3.0.1-beta.7-development
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{evm-CP2QogPh.js → evm-Daw1hnd1.js} +1 -1
- package/dist/assets/{tokens-p0GcG7JT.js → tokens-CD1l6Xjr.js} +13 -13
- package/dist/main.js +81 -81
- package/dist/src/AppRouter.d.ts.map +1 -1
- package/dist/src/components/AssetBadge.d.ts.map +1 -1
- package/dist/src/components/ConfigurablePageHeader.d.ts +4 -0
- package/dist/src/components/ConfigurablePageHeader.d.ts.map +1 -0
- package/dist/src/components/SampleApp/index.d.ts.map +1 -1
- package/dist/src/components/v3/AlertBanner.d.ts +14 -0
- package/dist/src/components/v3/AlertBanner.d.ts.map +1 -0
- package/dist/src/components/v3/Button.d.ts +22 -0
- package/dist/src/components/v3/Button.d.ts.map +1 -0
- package/dist/src/config/ui.d.ts +1 -1
- package/dist/src/config/ui.d.ts.map +1 -1
- package/dist/src/hooks/useAmountValidation.d.ts +2 -2
- package/dist/src/hooks/useAmountValidation.d.ts.map +1 -1
- package/dist/src/icons/Clock.d.ts +5 -0
- package/dist/src/icons/Clock.d.ts.map +1 -0
- package/dist/src/icons/SwapVertical.d.ts +5 -0
- package/dist/src/icons/SwapVertical.d.ts.map +1 -0
- package/dist/src/icons/TokenIcons.d.ts +1 -1
- package/dist/src/icons/TokenIcons.d.ts.map +1 -1
- package/dist/src/theme.d.ts +10 -3
- package/dist/src/theme.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AmountInput/index.d.ts +21 -0
- package/dist/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AmountValidationError.d.ts +11 -0
- package/dist/src/views/v3/Bridge/AmountValidationError.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/ChainList.d.ts +16 -0
- package/dist/src/views/v3/Bridge/AssetPicker/ChainList.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/PickerBottomSheet.d.ts +31 -0
- package/dist/src/views/v3/Bridge/AssetPicker/PickerBottomSheet.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts +32 -0
- package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/SearchInput.d.ts +11 -0
- package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/SearchInput.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts +20 -0
- package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts +16 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenList.d.ts +24 -0
- package/dist/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts +32 -0
- package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/GasSlider/index.d.ts +11 -0
- package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RouteBadge.d.ts +9 -0
- package/dist/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +26 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts +20 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts +25 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts +17 -0
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/index.d.ts +13 -0
- package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/SwapInputs/index.d.ts +5 -0
- package/dist/src/views/v3/Bridge/SwapInputs/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts +8 -0
- package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts +10 -0
- package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/Sidebar.d.ts +11 -0
- package/dist/src/views/v3/Bridge/WalletConnector/Sidebar.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/WalletConnector/index.d.ts +11 -0
- package/dist/src/views/v3/Bridge/WalletConnector/index.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/index.d.ts +5 -0
- package/dist/src/views/v3/Bridge/index.d.ts.map +1 -0
- package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts +4 -0
- package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -0
- package/dist/src/views/v3/Redeem/index.d.ts +5 -0
- package/dist/src/views/v3/Redeem/index.d.ts.map +1 -0
- package/dist/src/views/v3/TxHistory/Item/index.d.ts +8 -0
- package/dist/src/views/v3/TxHistory/Item/index.d.ts.map +1 -0
- package/dist/src/views/v3/TxHistory/Widget/Item.d.ts +9 -0
- package/dist/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -0
- package/dist/src/views/v3/TxHistory/Widget/index.d.ts +6 -0
- package/dist/src/views/v3/TxHistory/Widget/index.d.ts.map +1 -0
- package/dist/src/views/v3/TxHistory/index.d.ts +4 -0
- package/dist/src/views/v3/TxHistory/index.d.ts.map +1 -0
- package/lib/{account-DtI49BC9.mjs → account-BXlWsVcD.mjs} +1 -1
- package/lib/{account-BNVdeY3i.js → account-D3Whnyky.js} +1 -1
- package/lib/address-B2sdpJNe.js +1 -0
- package/lib/{address-DHjpQ41W.js → address-CFAt6HNS.js} +1 -1
- package/lib/{address-C4qO2bMD.mjs → address-CZArADcj.mjs} +1 -1
- package/lib/{address-BJhcbdG9.mjs → address-DPWm1fbw.mjs} +212 -205
- package/lib/{address-XxuWo72f.js → address-DpQlJQKV.js} +7 -7
- package/lib/{address-QpeLv2yn.mjs → address-YYxpimx3.mjs} +277 -276
- package/lib/{aptos-BPPwy9CZ.js → aptos-BQFrxLpU.js} +1 -1
- package/lib/{aptos-b3ytowip.js → aptos-C6eC7BKq.js} +2 -2
- package/lib/{aptos-C8FBg3S2.mjs → aptos-DNhNK-_f.mjs} +7 -7
- package/lib/{aptos-ButqYPXo.mjs → aptos-YbewU4Io.mjs} +3 -3
- package/lib/{basic-YNjcoRfK.js → basic-BH3rU0o2.js} +1 -1
- package/lib/{basic-BDC-Dz2c.mjs → basic-CVEIWCYi.mjs} +2 -2
- package/lib/{basic-B5VNsnap.mjs → basic-D3Mgm4Qb.mjs} +2 -2
- package/lib/{basic-BR_WJgiZ.js → basic-kfvhCLeC.js} +1 -1
- package/lib/{blake2b-5ZGBTE8v.mjs → blake2b-BFJ9US29.mjs} +7 -7
- package/lib/{blake2b-BJ4wVK7V.js → blake2b-aUiblHhG.js} +1 -1
- package/lib/{browser-ponyfill-C53najnL.js → browser-ponyfill-BeX4lPJd.js} +1 -1
- package/lib/{browser-ponyfill-CuZzL5JS.mjs → browser-ponyfill-Cn2t1qf7.mjs} +1 -1
- package/lib/{chain-B7MIR9_r.mjs → chain-D5okRkwk.mjs} +1 -1
- package/lib/{chain-CSpjwyBt.js → chain-Dme8n2tA.js} +1 -1
- package/lib/{chunk-KJH4KKG6-qC3BvugF.mjs → chunk-KJH4KKG6-DTOJZuhY.mjs} +144 -144
- package/lib/{chunk-KJH4KKG6-B9iq51o1.js → chunk-KJH4KKG6-HfCF1Kt-.js} +1 -1
- package/lib/{constants-DWhraRof.mjs → constants-BHQAYN6w.mjs} +3 -3
- package/lib/{constants-BA7a60_u.js → constants-BsKTcZQ3.js} +1 -1
- package/lib/{contract-D4Vzf62E.mjs → contract-CjL0DzEO.mjs} +39 -39
- package/lib/{contract-CQnkFb54.js → contract-DPL0fm8A.js} +1 -1
- package/lib/{core-DY8-r2Jo.mjs → core-C67jLszg.mjs} +7 -7
- package/lib/{core-DzA-Itto.js → core-DmZlgGHj.js} +3 -3
- package/lib/{create-CtvZoy0X.mjs → create-BlfwwO0_.mjs} +3 -3
- package/lib/{create-DCJBhyHG.js → create-CovWyutZ.js} +1 -1
- package/lib/{evm-BvQ1H4_y.js → evm-BWTWGvAv.js} +2 -2
- package/lib/{evm-Dn0xYGMV.mjs → evm-BohuNM6V.mjs} +9 -9
- package/lib/{evm-CrfP3Qfk.js → evm-CqywsvEZ.js} +2 -2
- package/lib/{evm-BfefVZFh.mjs → evm-M0ImOGaN.mjs} +7 -7
- package/lib/executor.js +1 -1
- package/lib/executor.mjs +46 -46
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/{index-CnCmR4Uj.js → index-2CmAUr-U.js} +1 -1
- package/lib/{index-DF2WGKez.js → index-85b_tiAE.js} +1 -1
- package/lib/{index-Ct88Toxl.mjs → index-95FB4Qgc.mjs} +3 -3
- package/lib/{index-lN-puZih.js → index-B7ho7Pb6.js} +1 -1
- package/lib/{index-DbPhljz1.mjs → index-BAUIp5vX.mjs} +15 -15
- package/lib/{index-DQp_O8iB.mjs → index-BCZtiDee.mjs} +4 -4
- package/lib/{index-BiS8vv7E.mjs → index-BGq4wC4S.mjs} +1 -1
- package/lib/{index-CBHIr2qc.mjs → index-BQuPDPUZ.mjs} +14 -14
- package/lib/{index-C1NzL1cw.mjs → index-BSj3tfTR.mjs} +3 -3
- package/lib/{index-CbVRI3aO.mjs → index-BV1jWLbR.mjs} +40 -40
- package/lib/{index-CXwf1C77.mjs → index-BXk8QNCQ.mjs} +6 -6
- package/lib/{index-DwX86vgy.mjs → index-BcAk5RDV.mjs} +31 -31
- package/lib/{index-BarjntIo.mjs → index-BgOkhLJ5.mjs} +4 -4
- package/lib/{index-BjbPJ-9w.js → index-BkPAiliF.js} +1 -1
- package/lib/{index-DLilRB-O.js → index-Bn-q9qez.js} +1 -1
- package/lib/{index-3pNz5RJC.js → index-Bt7K1A1Q.js} +1 -1
- package/lib/{index-BrjiGZLN.mjs → index-C-NwpT7M.mjs} +4 -4
- package/lib/{index-B2oGf_0Z.js → index-C7dcnZ_Y.js} +1 -1
- package/lib/{index-BuxGl_Bi.js → index-C9Mdci2_.js} +1 -1
- package/lib/index-CBBfcDND.js +335 -0
- package/lib/{index-BGsoGuxr.js → index-CGjibiRn.js} +1 -1
- package/lib/{index-Yra08X_i.js → index-CJ_ewe88.js} +1 -1
- package/lib/{index-CS1x3lLl.mjs → index-CMyIX4q3.mjs} +1 -1
- package/lib/{index-C6plXYir.mjs → index-CPq5TByt.mjs} +31052 -27169
- package/lib/{index-Czoo2lwG.mjs → index-Cd2G9Q0O.mjs} +2 -2
- package/lib/{index-iXUxUBar.js → index-D8YqkJyN.js} +1 -1
- package/lib/{index-BG9uNreI.js → index-DMtTF3lo.js} +1 -1
- package/lib/{index-DrcGXX5n.mjs → index-DRZtHRGC.mjs} +5 -5
- package/lib/{index-BZsgCHbh.js → index-DSFtUxH1.js} +1 -1
- package/lib/{index-B9Jj-myq.mjs → index-DYspQsyV.mjs} +4 -4
- package/lib/{index-BPdR4VSR.mjs → index-Difh_8Uq.mjs} +35 -35
- package/lib/{index-D2-kSqKC.mjs → index-Dl11esS0.mjs} +12 -12
- package/lib/{index-Dg1FDsF7.js → index-DlZQ535U.js} +1 -1
- package/lib/{index-DPZNqrkJ.mjs → index-DnaDROoD.mjs} +3 -3
- package/lib/{index-C6deIq6M.js → index-DocFg1hF.js} +1 -1
- package/lib/{index-BHv9flJb.js → index-DpEQBLtA.js} +1 -1
- package/lib/{index-OjOZm9KZ.mjs → index-DpSdWR-Q.mjs} +19 -19
- package/lib/{index-DCIXsPdt.js → index-DzxRHhWq.js} +1 -1
- package/lib/{index-BYNs7o4U.js → index-LMdITOCB.js} +1 -1
- package/lib/{index-C3JpIduu.js → index-cT-KFIxA.js} +1 -1
- package/lib/{index-TWJ3iDnH.js → index-k6e49slq.js} +1 -1
- package/lib/{index-t4mLpVUg.mjs → index-uuu1viWa.mjs} +1 -1
- package/lib/{index.es-CGmlPDhv.js → index.es-BYFwv7lT.js} +1 -1
- package/lib/{index.es-Cv23C4D_.mjs → index.es-BhhigIOQ.mjs} +3 -3
- package/lib/{index.es-C-nP3Wu4.mjs → index.es-DGqzeimm.mjs} +5 -5
- package/lib/{index.es-DOcp1QIZ.js → index.es-Fc3_m80E.js} +3 -3
- package/lib/index.js +1 -1
- package/lib/index.mjs +2 -2
- package/lib/mayan.js +9 -2
- package/lib/mayan.mjs +21900 -18117
- package/lib/{mint-DDRe5tvc.js → mint-C2AsTCD2.js} +1 -1
- package/lib/{mint-CwWYApOB.mjs → mint-CLB7p3ZL.mjs} +2 -2
- package/lib/ntt.js +1 -1
- package/lib/ntt.mjs +2370 -2323
- package/lib/{platform-Cdz3d-G9.js → platform-Cl1b31bn.js} +1 -1
- package/lib/{platform-C2My6P6V.js → platform-DV62YjSS.js} +1 -1
- package/lib/{platform-CkZe-n0U.js → platform-Dw5tN12f.js} +1 -1
- package/lib/{platform-B0QvkHbE.mjs → platform-bCY3DvqI.mjs} +14 -14
- package/lib/{platform-lg76WojY.mjs → platform-mkzPOtcO.mjs} +42 -21
- package/lib/{platform-IW8iV_CA.mjs → platform-pX0KL6zm.mjs} +6 -6
- package/lib/{provider-jsonrpc-Bd_Ha8XL.js → provider-jsonrpc-B0bAKP-a.js} +1 -1
- package/lib/{provider-jsonrpc-BXNY8lbA.mjs → provider-jsonrpc-DwKu1fjn.mjs} +120 -120
- package/lib/{secp256k1-BaYwfoJI.js → secp256k1-1EcPGQYM.js} +1 -1
- package/lib/{secp256k1-etdIygIN.mjs → secp256k1-6Zr6y_zm.mjs} +1 -1
- package/lib/{secp256k1-D3q9LbdQ.js → secp256k1-7IiVcfA7.js} +1 -1
- package/lib/{secp256k1-luy_3ZLQ.mjs → secp256k1-BeZAjIBs.mjs} +1 -1
- package/lib/{secp256k1-Cplgnjin.mjs → secp256k1-DXI-6Erh.mjs} +1 -1
- package/lib/{secp256k1-CuaGNRQC.js → secp256k1-Y38qxq0y.js} +1 -1
- package/lib/{signer-DKbAIeFy.mjs → signer-CzGPDOMI.mjs} +20 -20
- package/lib/{signer-BrSuBAB7.js → signer-D6-3r3Sp.js} +1 -1
- package/lib/{solana-BnirZbTQ.js → solana-Da7iWCux.js} +4 -4
- package/lib/solana-mjJtTggS.js +1 -0
- package/lib/{solana-DR8_Oms-.mjs → solana-os3Osxo6.mjs} +10 -10
- package/lib/solana-vo_l-zLm.mjs +18 -0
- package/lib/{solanaEmbed.esm-fUPiKqY3.mjs → solanaEmbed.esm-BBnVqCsz.mjs} +2 -2
- package/lib/{solanaEmbed.esm-BKWwcEou.js → solanaEmbed.esm-RhVD6vLR.js} +1 -1
- package/lib/src/AppRouter.d.ts.map +1 -1
- package/lib/src/components/AssetBadge.d.ts.map +1 -1
- package/lib/src/components/ConfigurablePageHeader.d.ts +4 -0
- package/lib/src/components/ConfigurablePageHeader.d.ts.map +1 -0
- package/lib/src/components/SampleApp/index.d.ts.map +1 -1
- package/lib/src/components/v3/AlertBanner.d.ts +14 -0
- package/lib/src/components/v3/AlertBanner.d.ts.map +1 -0
- package/lib/src/components/v3/Button.d.ts +22 -0
- package/lib/src/components/v3/Button.d.ts.map +1 -0
- package/lib/src/config/ui.d.ts +1 -1
- package/lib/src/config/ui.d.ts.map +1 -1
- package/lib/src/hooks/useAmountValidation.d.ts +2 -2
- package/lib/src/hooks/useAmountValidation.d.ts.map +1 -1
- package/lib/src/icons/Clock.d.ts +5 -0
- package/lib/src/icons/Clock.d.ts.map +1 -0
- package/lib/src/icons/SwapVertical.d.ts +5 -0
- package/lib/src/icons/SwapVertical.d.ts.map +1 -0
- package/lib/src/icons/TokenIcons.d.ts +1 -1
- package/lib/src/icons/TokenIcons.d.ts.map +1 -1
- package/lib/src/theme.d.ts +10 -3
- package/lib/src/theme.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AmountInput/index.d.ts +21 -0
- package/lib/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AmountValidationError.d.ts +11 -0
- package/lib/src/views/v3/Bridge/AmountValidationError.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/ChainList.d.ts +16 -0
- package/lib/src/views/v3/Bridge/AssetPicker/ChainList.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/PickerBottomSheet.d.ts +31 -0
- package/lib/src/views/v3/Bridge/AssetPicker/PickerBottomSheet.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts +32 -0
- package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/SearchInput.d.ts +11 -0
- package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/SearchInput.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts +20 -0
- package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts +16 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenList.d.ts +24 -0
- package/lib/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts +32 -0
- package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/GasSlider/index.d.ts +11 -0
- package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RouteBadge.d.ts +9 -0
- package/lib/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +26 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts +20 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts +25 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts +17 -0
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/index.d.ts +13 -0
- package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/SwapInputs/index.d.ts +5 -0
- package/lib/src/views/v3/Bridge/SwapInputs/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts +8 -0
- package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts +10 -0
- package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/Sidebar.d.ts +11 -0
- package/lib/src/views/v3/Bridge/WalletConnector/Sidebar.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/WalletConnector/index.d.ts +11 -0
- package/lib/src/views/v3/Bridge/WalletConnector/index.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/index.d.ts +5 -0
- package/lib/src/views/v3/Bridge/index.d.ts.map +1 -0
- package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts +4 -0
- package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -0
- package/lib/src/views/v3/Redeem/index.d.ts +5 -0
- package/lib/src/views/v3/Redeem/index.d.ts.map +1 -0
- package/lib/src/views/v3/TxHistory/Item/index.d.ts +8 -0
- package/lib/src/views/v3/TxHistory/Item/index.d.ts.map +1 -0
- package/lib/src/views/v3/TxHistory/Widget/Item.d.ts +9 -0
- package/lib/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -0
- package/lib/src/views/v3/TxHistory/Widget/index.d.ts +6 -0
- package/lib/src/views/v3/TxHistory/Widget/index.d.ts.map +1 -0
- package/lib/src/views/v3/TxHistory/index.d.ts +4 -0
- package/lib/src/views/v3/TxHistory/index.d.ts.map +1 -0
- package/lib/{sui-BTGAAvA9.js → sui-BCWT_MP3.js} +1 -1
- package/lib/{sui-BBqJwRM0.mjs → sui-CFKprzku.mjs} +3 -3
- package/lib/{sui-DTftSE5y.js → sui-CO5gTC2j.js} +1 -1
- package/lib/{sui-DAYuRjfB.mjs → sui-rzSF8U-3.mjs} +33 -33
- package/lib/{tokens-tq3iPasz.js → tokens-D2BbVV4x.js} +1 -1
- package/lib/{tokens-Bdu7ORRI.mjs → tokens-D74pLzp3.mjs} +3 -3
- package/lib/{units-Brhe0Yro.mjs → units-BGcsq4mJ.mjs} +24 -24
- package/lib/{units-CMwYFpwc.js → units-CFxZtEkH.js} +1 -1
- package/lib/{unsignedTransaction-Brbbx5Uc.mjs → unsignedTransaction-BHbKxuLa.mjs} +14 -14
- package/lib/{unsignedTransaction-q5Fk1S0o.js → unsignedTransaction-D14ic9We.js} +1 -1
- package/lib/{w3m-modal-BfRfCY9F.js → w3m-modal-253PNp3t.js} +1 -1
- package/lib/{w3m-modal-CtPzALaO.mjs → w3m-modal-BXoUHiVS.mjs} +2 -2
- package/lib/{w3m-modal-BhCXAHBR.js → w3m-modal-Dr98fjep.js} +1 -1
- package/lib/{w3m-modal-Dbhbe_NS.mjs → w3m-modal-vJ0TMybJ.mjs} +2 -2
- package/lib/{web3-Atnj-SZ3.mjs → web3-C7dEQmtr.mjs} +6 -6
- package/lib/{web3-DinKgkT9.js → web3-Co7tl8ed.js} +1 -1
- package/package.json +32 -33
- package/lib/address-BWzhA9di.js +0 -1
- package/lib/index-BjP-grbs.js +0 -299
- package/lib/solana-D_QkC8QG.mjs +0 -18
- package/lib/solana-pu7cIYt0.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var Y = Object.defineProperty;
|
|
2
2
|
var Z = (n, f, e) => f in n ? Y(n, f, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[f] = e;
|
|
3
3
|
var d = (n, f, e) => Z(n, typeof f != "symbol" ? f + "" : f, e);
|
|
4
|
-
import "./index-
|
|
5
|
-
import { EvmWormholeCore as f0 } from "./index-
|
|
6
|
-
import {
|
|
7
|
-
import { E as v, C as S } from "./platform-
|
|
8
|
-
import { a as s0, l as i0, d as r0, I as $, C as E } from "./contract-
|
|
4
|
+
import "./index-Dl11esS0.mjs";
|
|
5
|
+
import { EvmWormholeCore as f0 } from "./index-DYspQsyV.mjs";
|
|
6
|
+
import { bC as y, bu as e0, bA as L, bt as p, K as a0, a5 as C, c7 as t0, cb as b0, y as H, b5 as D, ay as I, bl as F, k as U, aB as u, D as q, aa as n0, dl as N, aC as j, aw as d0, x as c0, aE as V, aF as K } from "./address-YYxpimx3.mjs";
|
|
7
|
+
import { E as v, C as S } from "./platform-bCY3DvqI.mjs";
|
|
8
|
+
import { a as s0, l as i0, d as r0, I as $, C as E } from "./contract-CjL0DzEO.mjs";
|
|
9
9
|
import { E as G } from "./unsignedTransaction-C0V0UbsS.mjs";
|
|
10
10
|
const p0 = new RegExp("^bytes([0-9]+)$"), y0 = new RegExp("^(u?int)([0-9]*)$"), o0 = new RegExp("^(.*)\\[([0-9]*)\\]$");
|
|
11
11
|
function J(n, f, e) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("./lit-element-Bij_rEQt.js"),s=require("./class-map-B81xg_Eo.js"),d=require("./core-
|
|
1
|
+
"use strict";const c=require("./lit-element-Bij_rEQt.js"),s=require("./class-map-B81xg_Eo.js"),d=require("./core-DmZlgGHj.js"),p={getSpacingStyles(t,e){if(Array.isArray(t))return t[e]?`var(--wui-spacing-${t[e]})`:void 0;if(typeof t=="string")return`var(--wui-spacing-${t})`},getFormattedDate(t){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t)},getHostName(t){try{return new URL(t).hostname}catch{return""}},getTruncateString({string:t,charsStart:e,charsEnd:r,truncate:o}){return t.length<=e+r?t:o==="end"?`${t.substring(0,e)}...`:o==="start"?`...${t.substring(t.length-r)}`:`${t.substring(0,Math.floor(e))}...${t.substring(t.length-Math.floor(r))}`},generateAvatarColors(t){const r=t.toLowerCase().replace(/^0x/iu,"").replace(/[^a-f0-9]/gu,"").substring(0,6).padEnd(6,"0"),o=this.hexToRgb(r),n=getComputedStyle(document.documentElement).getPropertyValue("--w3m-border-radius-master"),a=100-3*Number(n==null?void 0:n.replace("px","")),l=`${a}% ${a}% at 65% 40%`,v=[];for(let m=0;m<5;m+=1){const C=this.tintColor(o,.15*m);v.push(`rgb(${C[0]}, ${C[1]}, ${C[2]})`)}return`
|
|
2
2
|
--local-color-1: ${v[0]};
|
|
3
3
|
--local-color-2: ${v[1]};
|
|
4
4
|
--local-color-3: ${v[2]};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var m = Object.defineProperty;
|
|
2
2
|
var T = (c, e, t) => e in c ? m(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t;
|
|
3
3
|
var a = (c, e, t) => T(c, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { E as g, C as h } from "./platform-
|
|
5
|
-
import { I as v, C as M } from "./contract-
|
|
6
|
-
import { y as S, ay as r, aB as u, aD as w,
|
|
7
|
-
import { c as F } from "./create-
|
|
4
|
+
import { E as g, C as h } from "./platform-bCY3DvqI.mjs";
|
|
5
|
+
import { I as v, C as M } from "./contract-CjL0DzEO.mjs";
|
|
6
|
+
import { y as S, ay as r, aB as u, aD as w, dr as x, k as I, aC as C, aE as A, aF as G } from "./address-YYxpimx3.mjs";
|
|
7
|
+
import { c as F } from "./create-BlfwwO0_.mjs";
|
|
8
8
|
import { E as U } from "./unsignedTransaction-C0V0UbsS.mjs";
|
|
9
9
|
class y {
|
|
10
10
|
constructor(e, t, b, f) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var oe = Object.defineProperty;
|
|
2
2
|
var se = (m, t, e) => t in m ? oe(m, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : m[t] = e;
|
|
3
3
|
var h = (m, t, e) => se(m, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
-
import {
|
|
5
|
-
import { i as V, o as ge, q as X, r as S, S as
|
|
6
|
-
import "./index-
|
|
7
|
-
import { y as we,
|
|
4
|
+
import { A as F, B as N, C as $, w as I, D as b, T as B, v as O, E as ae, F as ie, G as R, S as M, H as Q, I as ce, J as x, K as de, L as le } from "./platform-mkzPOtcO.mjs";
|
|
5
|
+
import { i as V, o as ge, q as X, r as S, S as C, u as ue, k as fe, v as pe, w as he, p as q } from "./address-CZArADcj.mjs";
|
|
6
|
+
import "./index-C-NwpT7M.mjs";
|
|
7
|
+
import { y as we, dm as D, U as H, ac as ye, aw as j, m as v, o as me, t as G, av as ke, aD as W, l as be, k as U, f as Ie, h as L, aE as Z } from "./address-YYxpimx3.mjs";
|
|
8
8
|
import { S as ee } from "./unsignedTransaction-BD81leu1.mjs";
|
|
9
9
|
const Y = async (m, t, e) => {
|
|
10
10
|
var d, r, n;
|
|
@@ -162,7 +162,7 @@ class z {
|
|
|
162
162
|
const i = await P(this.provider, this.tokenBridgeObjectId, e.toUint8Array(), j(t));
|
|
163
163
|
if (!i)
|
|
164
164
|
throw new Error(`Token ${e.toString()} not found in token registry`);
|
|
165
|
-
return new
|
|
165
|
+
return new C(i);
|
|
166
166
|
}
|
|
167
167
|
async hasWrappedAsset(t) {
|
|
168
168
|
try {
|
|
@@ -209,7 +209,7 @@ class z {
|
|
|
209
209
|
const e = 0n, o = t.toString(), a = await this.provider.getCoinMetadata({ coinType: o });
|
|
210
210
|
if (a === null || a.id === null)
|
|
211
211
|
throw new Error(`Coin metadata ID for type ${o} not found`);
|
|
212
|
-
const [d, r] = await this.getPackageIds(), n = new
|
|
212
|
+
const [d, r] = await this.getPackageIds(), n = new B(), [l] = n.splitCoins(n.gas, [n.pure.u64(e)]), [s] = n.moveCall({
|
|
213
213
|
target: `${r}::attest_token::attest_token`,
|
|
214
214
|
arguments: [n.object(this.tokenBridgeObjectId), n.object(a.id), n.pure.u32(0)],
|
|
215
215
|
typeArguments: [o]
|
|
@@ -220,7 +220,7 @@ class z {
|
|
|
220
220
|
n.object(this.coreBridgeObjectId),
|
|
221
221
|
l,
|
|
222
222
|
s,
|
|
223
|
-
n.object(
|
|
223
|
+
n.object(O)
|
|
224
224
|
]
|
|
225
225
|
}), yield this.createUnsignedTx(n, "Sui.TokenBridge.CreateAttestation");
|
|
226
226
|
}
|
|
@@ -230,12 +230,12 @@ class z {
|
|
|
230
230
|
let l = "", s = "", u = "", f = "", w = "", y = !1;
|
|
231
231
|
for (; !y; ) {
|
|
232
232
|
await new Promise((p) => setTimeout(p, 500));
|
|
233
|
-
const
|
|
233
|
+
const _ = await this.provider.queryTransactionBlocks({
|
|
234
234
|
filter: { FromAddress: a },
|
|
235
235
|
options: { showObjectChanges: !0 },
|
|
236
236
|
limit: 3
|
|
237
237
|
});
|
|
238
|
-
for (const p of
|
|
238
|
+
for (const p of _.data)
|
|
239
239
|
if ("objectChanges" in p) {
|
|
240
240
|
for (const g of p.objectChanges)
|
|
241
241
|
ie(g) && g.packageId !== void 0 ? l = g.packageId : R(g) && g.objectType.includes("WrappedAssetSetup") ? (s = g.objectId, w = g.objectType.split(", ")[1].replace(">", "")) : R(g) && g.objectType.includes("UpgradeCap") ? u = g.objectId : R(g) && g.objectType.includes("CoinMetadata") && (f = g.objectId);
|
|
@@ -246,12 +246,12 @@ class z {
|
|
|
246
246
|
l = "", s = "", u = "", f = "";
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
const k = ue(l), c = new
|
|
249
|
+
const k = ue(l), c = new B(), [A] = c.moveCall({
|
|
250
250
|
target: `${i}::vaa::parse_and_verify`,
|
|
251
251
|
arguments: [
|
|
252
252
|
c.object(this.coreBridgeObjectId),
|
|
253
253
|
c.pure.vector("u8", W(t)),
|
|
254
|
-
c.object(
|
|
254
|
+
c.object(O)
|
|
255
255
|
]
|
|
256
256
|
}), [E] = c.moveCall({
|
|
257
257
|
target: `${o}::vaa::verify_only_once`,
|
|
@@ -273,14 +273,14 @@ class z {
|
|
|
273
273
|
const d = 0n, r = 0n, l = t.toString(), s = (v(i) ? M : i).toString(), u = await I.getCoins(this.provider, t, s), [f, ...w] = u.filter((p) => Q(p.coinType, s));
|
|
274
274
|
if (f === void 0)
|
|
275
275
|
throw new Error(`Coins array doesn't contain any coins of type ${s}`);
|
|
276
|
-
const [y, k] = await this.getPackageIds(), c = new
|
|
276
|
+
const [y, k] = await this.getPackageIds(), c = new B(), [A] = (() => {
|
|
277
277
|
if (s === M)
|
|
278
278
|
return c.splitCoins(c.gas, [c.pure.u64(o)]);
|
|
279
279
|
{
|
|
280
280
|
const p = c.object(f.coinObjectId);
|
|
281
281
|
return w.length && c.mergeCoins(p, w.map((g) => c.object(g.coinObjectId))), c.splitCoins(p, [c.pure.u64(o)]);
|
|
282
282
|
}
|
|
283
|
-
})(), [E] = c.splitCoins(c.gas, [c.pure.u64(d)]), [
|
|
283
|
+
})(), [E] = c.splitCoins(c.gas, [c.pure.u64(d)]), [_] = c.moveCall({
|
|
284
284
|
target: `${k}::state::verified_asset`,
|
|
285
285
|
arguments: [c.object(this.tokenBridgeObjectId)],
|
|
286
286
|
typeArguments: [s]
|
|
@@ -290,9 +290,9 @@ class z {
|
|
|
290
290
|
throw new Error("senderAddress is required for transfer with payload");
|
|
291
291
|
let p = !1;
|
|
292
292
|
const g = await (async () => {
|
|
293
|
-
const
|
|
294
|
-
if (
|
|
295
|
-
return c.object(
|
|
293
|
+
const K = await ce(this.provider, y, l);
|
|
294
|
+
if (K !== null)
|
|
295
|
+
return c.object(K);
|
|
296
296
|
{
|
|
297
297
|
const [ne] = c.moveCall({
|
|
298
298
|
target: `${y}::emitter::new`,
|
|
@@ -304,7 +304,7 @@ class z {
|
|
|
304
304
|
target: `${k}::transfer_tokens_with_payload::prepare_transfer`,
|
|
305
305
|
arguments: [
|
|
306
306
|
g,
|
|
307
|
-
|
|
307
|
+
_,
|
|
308
308
|
A,
|
|
309
309
|
c.pure.u16(j(e.chain)),
|
|
310
310
|
c.pure.vector("u8", e.address.toUint8Array()),
|
|
@@ -329,14 +329,14 @@ class z {
|
|
|
329
329
|
c.object(this.coreBridgeObjectId),
|
|
330
330
|
E,
|
|
331
331
|
re,
|
|
332
|
-
c.object(
|
|
332
|
+
c.object(O)
|
|
333
333
|
]
|
|
334
334
|
}), p && c.transferObjects([g], c.pure.address(l)), yield this.createUnsignedTx(c, "Sui.TokenBridge.TransferWithPayload");
|
|
335
335
|
} else {
|
|
336
336
|
const [p, g] = c.moveCall({
|
|
337
337
|
target: `${k}::transfer_tokens::prepare_transfer`,
|
|
338
338
|
arguments: [
|
|
339
|
-
|
|
339
|
+
_,
|
|
340
340
|
A,
|
|
341
341
|
c.pure.u16(j(e.chain)),
|
|
342
342
|
c.pure.vector("u8", e.address.toUint8Array()),
|
|
@@ -361,7 +361,7 @@ class z {
|
|
|
361
361
|
c.object(this.coreBridgeObjectId),
|
|
362
362
|
E,
|
|
363
363
|
T,
|
|
364
|
-
c.object(
|
|
364
|
+
c.object(O)
|
|
365
365
|
]
|
|
366
366
|
}), yield this.createUnsignedTx(c, "Sui.TokenBridge.Transfer");
|
|
367
367
|
}
|
|
@@ -370,12 +370,12 @@ class z {
|
|
|
370
370
|
const o = await P(this.provider, this.tokenBridgeObjectId, e.payload.token.address.toUint8Array(), j(e.payload.token.chain));
|
|
371
371
|
if (!o)
|
|
372
372
|
throw new Error("Unable to fetch token coinType");
|
|
373
|
-
const [a, d] = await this.getPackageIds(), r = new
|
|
373
|
+
const [a, d] = await this.getPackageIds(), r = new B(), [n] = r.moveCall({
|
|
374
374
|
target: `${a}::vaa::parse_and_verify`,
|
|
375
375
|
arguments: [
|
|
376
376
|
r.object(this.coreBridgeObjectId),
|
|
377
377
|
r.pure.vector("u8", W(e)),
|
|
378
|
-
r.object(
|
|
378
|
+
r.object(O)
|
|
379
379
|
]
|
|
380
380
|
}), [l] = r.moveCall({
|
|
381
381
|
target: `${d}::vaa::verify_only_once`,
|
|
@@ -444,14 +444,14 @@ class J {
|
|
|
444
444
|
return new J(i, o, t, a.contracts);
|
|
445
445
|
}
|
|
446
446
|
async *transfer(t, e, i, o, a) {
|
|
447
|
-
const r = new
|
|
447
|
+
const r = new C(v(i) ? I.nativeTokenId(this.network, this.chain).address : i).getCoinType(), { coreBridge: n, tokenBridge: l } = await this.getPackageIds(), s = new B(), u = BigInt(0), [f] = s.splitCoins(s.gas, [s.pure.u64(u)]), [w] = await (async () => {
|
|
448
448
|
if (v(i))
|
|
449
449
|
return s.splitCoins(s.gas, [s.pure.u64(o)]);
|
|
450
450
|
{
|
|
451
|
-
const E = await I.getCoins(this.connection, t, r), [
|
|
452
|
-
if (
|
|
451
|
+
const E = await I.getCoins(this.connection, t, r), [_, ...p] = E.filter((T) => T.coinType === r);
|
|
452
|
+
if (_ === void 0)
|
|
453
453
|
throw new Error(`Coins array doesn't contain any coins of type ${r}`);
|
|
454
|
-
const g = s.object(
|
|
454
|
+
const g = s.object(_.coinObjectId);
|
|
455
455
|
return p.length && s.mergeCoins(g, p.map((T) => s.object(T.coinObjectId))), s.splitCoins(g, [s.pure.u64(o)]);
|
|
456
456
|
}
|
|
457
457
|
})(), [y] = s.moveCall({
|
|
@@ -481,7 +481,7 @@ class J {
|
|
|
481
481
|
s.object(this.coreBridgeObjectId),
|
|
482
482
|
f,
|
|
483
483
|
A,
|
|
484
|
-
s.object(
|
|
484
|
+
s.object(O)
|
|
485
485
|
]
|
|
486
486
|
}), yield this.createUnsignedTx(s, "AutomaticTokenBridge.transfer");
|
|
487
487
|
}
|
|
@@ -489,12 +489,12 @@ class J {
|
|
|
489
489
|
const { coreBridge: i, tokenBridge: o } = await this.getPackageIds(), { address: a, chain: d } = e.payload.token, r = await P(this.connection, this.tokenBridgeObjectId, a.toUniversalAddress().toUint8Array(), j(d));
|
|
490
490
|
if (!r)
|
|
491
491
|
throw new Error("Unable to fetch token coinType");
|
|
492
|
-
const n = new
|
|
492
|
+
const n = new B(), [l] = n.moveCall({
|
|
493
493
|
target: `${i}::vaa::parse_and_verify`,
|
|
494
494
|
arguments: [
|
|
495
495
|
n.object(this.coreBridgeObjectId),
|
|
496
496
|
n.pure.vector("u8", W(e)),
|
|
497
|
-
n.object(
|
|
497
|
+
n.object(O)
|
|
498
498
|
]
|
|
499
499
|
}), [s] = n.moveCall({
|
|
500
500
|
target: `${o}::vaa::verify_only_once`,
|
|
@@ -540,7 +540,7 @@ class J {
|
|
|
540
540
|
const i = (v(t) ? I.nativeTokenId(this.network, this.chain) : t).toString(), o = await this.connection.getCoinMetadata({ coinType: i });
|
|
541
541
|
if (!o)
|
|
542
542
|
throw new Error("metadata is null");
|
|
543
|
-
const a = await this.getPackageId(), d = new
|
|
543
|
+
const a = await this.getPackageId(), d = new B();
|
|
544
544
|
d.moveCall({
|
|
545
545
|
// Calculates the max number of tokens the recipient can convert to native
|
|
546
546
|
// Sui. The max amount of native assets the contract will swap with the
|
|
@@ -562,7 +562,7 @@ class J {
|
|
|
562
562
|
const o = (v(t) ? I.nativeTokenId(this.network, this.chain) : t).toString(), a = await this.connection.getCoinMetadata({ coinType: o });
|
|
563
563
|
if (!a)
|
|
564
564
|
throw new Error("metadata is null");
|
|
565
|
-
const d = await this.getPackageId(), r = new
|
|
565
|
+
const d = await this.getPackageId(), r = new B();
|
|
566
566
|
r.moveCall({
|
|
567
567
|
// Calculates the amount of native Sui that the recipient will receive
|
|
568
568
|
// for swapping the `to_native_amount` of tokens.
|
|
@@ -588,11 +588,11 @@ class J {
|
|
|
588
588
|
parentId: e
|
|
589
589
|
})).data.map((a) => {
|
|
590
590
|
const { address: d, module: r, name: n } = pe(a.objectType);
|
|
591
|
-
return new
|
|
591
|
+
return new C([d, r, n].join(he));
|
|
592
592
|
});
|
|
593
593
|
}
|
|
594
594
|
async isRegisteredToken(t) {
|
|
595
|
-
const e = new
|
|
595
|
+
const e = new C(v(t) ? I.nativeTokenId(this.network, this.chain).address : t).unwrap();
|
|
596
596
|
try {
|
|
597
597
|
return await this.getTokenInfo(e) !== null;
|
|
598
598
|
} catch (i) {
|
|
@@ -602,7 +602,7 @@ class J {
|
|
|
602
602
|
}
|
|
603
603
|
async getTokenInfo(t) {
|
|
604
604
|
var n;
|
|
605
|
-
const e = await this.getFields(), o = new
|
|
605
|
+
const e = await this.getFields(), o = new C(e.registered_tokens.type).getPackageId(), a = e.registered_tokens.fields.id.id, d = new C(t), r = Q(q, d.unwrap()) ? q : d.getCoinType();
|
|
606
606
|
try {
|
|
607
607
|
const l = await this.connection.getDynamicFieldObject({
|
|
608
608
|
parentId: a,
|
|
@@ -634,7 +634,7 @@ class J {
|
|
|
634
634
|
}
|
|
635
635
|
async getPackageId() {
|
|
636
636
|
const t = await this.getFields();
|
|
637
|
-
return new
|
|
637
|
+
return new C(t.registered_tokens.type).getPackageId();
|
|
638
638
|
}
|
|
639
639
|
async getPackageIds() {
|
|
640
640
|
const [t, e] = await Promise.all([
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var n0 = Object.defineProperty;
|
|
2
2
|
var f0 = (s, e, b) => e in s ? n0(s, e, { enumerable: !0, configurable: !0, writable: !0, value: b }) : s[e] = b;
|
|
3
3
|
var d = (s, e, b) => f0(s, typeof e != "symbol" ? e + "" : e, b);
|
|
4
|
-
import { EvmWormholeCore as S } from "./index-
|
|
5
|
-
import { y as F,
|
|
6
|
-
import { E as l, C as e0 } from "./platform-
|
|
7
|
-
import { C as M, I as b0 } from "./contract-
|
|
4
|
+
import { EvmWormholeCore as S } from "./index-DYspQsyV.mjs";
|
|
5
|
+
import { y as F, dm as j, aw as T, ac as d0, U as c0, ay as c, m as h, bQ as i0, av as s0, aD as k, dn as K, dp as x, aB as p, t as X, aC as U, dq as r0, au as Y, aV as p0, aU as y0, az as o0, aE as D, aF as _ } from "./address-YYxpimx3.mjs";
|
|
6
|
+
import { E as l, C as e0 } from "./platform-bCY3DvqI.mjs";
|
|
7
|
+
import { C as M, I as b0 } from "./contract-CjL0DzEO.mjs";
|
|
8
8
|
import { E as P } from "./unsignedTransaction-C0V0UbsS.mjs";
|
|
9
|
-
import { Z as u0 } from "./provider-jsonrpc-
|
|
9
|
+
import { Z as u0 } from "./provider-jsonrpc-DwKu1fjn.mjs";
|
|
10
10
|
const a0 = {
|
|
11
11
|
Mainnet: {
|
|
12
12
|
Arbitrum: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
@@ -273,7 +273,7 @@ const l0 = [
|
|
|
273
273
|
"function transferTokensWithRelay(address tokenBridgeRelayer, address token, uint256 amount, uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions, tuple(uint16 dbps, address payee) feeArgs) payable returns (uint64)",
|
|
274
274
|
"function wrapAndTransferEthWithRelay(address tokenBridgeRelayer, uint256 amount, uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions, tuple(uint16 dbps, address payee) feeArgs) payable returns (uint64)"
|
|
275
275
|
];
|
|
276
|
-
class
|
|
276
|
+
class H {
|
|
277
277
|
constructor(e, b, a, t) {
|
|
278
278
|
d(this, "network");
|
|
279
279
|
d(this, "chain");
|
|
@@ -298,13 +298,13 @@ class O {
|
|
|
298
298
|
const [a, t] = await l.chainFromRpc(e), n = b[t];
|
|
299
299
|
if (n.network !== a)
|
|
300
300
|
throw new Error(`Network mismatch: ${n.network} != ${a}`);
|
|
301
|
-
return new
|
|
301
|
+
return new H(a, t, e, n.contracts);
|
|
302
302
|
}
|
|
303
303
|
async *transfer(e, b, a, t, n, f) {
|
|
304
304
|
const i = r0.get(this.network, b.chain);
|
|
305
305
|
if (!i || !i.relayer)
|
|
306
306
|
throw new Error(`Token Bridge Executor Relayer contract for domain ${b.chain} not found`);
|
|
307
|
-
const y = i.relayer, r = new c(e).unwrap(), o = T(b.chain), u = b.address.toUniversalAddress(), { estimatedCost: w, signedQuote: g, relayInstructions: A } = n, m = Y(p0, g),
|
|
307
|
+
const y = i.relayer, r = new c(e).unwrap(), o = T(b.chain), u = b.address.toUniversalAddress(), { estimatedCost: w, signedQuote: g, relayInstructions: A } = n, m = Y(p0, g), O = Y(y0, A), $ = await this.core.getMessageFee(), V = 0, E = o0(b.chain, y), L = E, B = w, z = r;
|
|
308
308
|
let W;
|
|
309
309
|
const Q = f ? {
|
|
310
310
|
dbps: f.feeDbps,
|
|
@@ -314,7 +314,7 @@ class O {
|
|
|
314
314
|
payee: u0
|
|
315
315
|
};
|
|
316
316
|
if (h(a))
|
|
317
|
-
W = await this.relayerWithReferrerContract.getFunction("wrapAndTransferEthWithRelay").populateTransaction(this.relayerAddress, t, o, u.toUint8Array(), V, E.toUint8Array(), L.toUint8Array(), B, z, m,
|
|
317
|
+
W = await this.relayerWithReferrerContract.getFunction("wrapAndTransferEthWithRelay").populateTransaction(this.relayerAddress, t, o, u.toUint8Array(), V, E.toUint8Array(), L.toUint8Array(), B, z, m, O, Q, {
|
|
318
318
|
value: t + $ + B
|
|
319
319
|
});
|
|
320
320
|
else {
|
|
@@ -323,7 +323,7 @@ class O {
|
|
|
323
323
|
const t0 = await Z.approve.populateTransaction(this.relayerWithReferrerAddress, t);
|
|
324
324
|
yield this.createUnsignedTx(t0, "approve");
|
|
325
325
|
}
|
|
326
|
-
W = await this.relayerWithReferrerContract.getFunction("transferTokensWithRelay").populateTransaction(this.relayerAddress, a.toString(), t, o, u.toUint8Array(), V, E.toUint8Array(), L.toUint8Array(), B, z, m,
|
|
326
|
+
W = await this.relayerWithReferrerContract.getFunction("transferTokensWithRelay").populateTransaction(this.relayerAddress, a.toString(), t, o, u.toUint8Array(), V, E.toUint8Array(), L.toUint8Array(), B, z, m, O, Q, {
|
|
327
327
|
value: $ + B
|
|
328
328
|
});
|
|
329
329
|
}
|
|
@@ -2655,10 +2655,10 @@ const C0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
2655
2655
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
2656
2656
|
D(_, "TokenBridge", N);
|
|
2657
2657
|
D(_, "AutomaticTokenBridge", q);
|
|
2658
|
-
D(_, "ExecutorTokenBridge",
|
|
2658
|
+
D(_, "ExecutorTokenBridge", H);
|
|
2659
2659
|
export {
|
|
2660
2660
|
q as EvmAutomaticTokenBridge,
|
|
2661
|
-
|
|
2661
|
+
H as EvmExecutorTokenBridge,
|
|
2662
2662
|
N as EvmTokenBridge,
|
|
2663
2663
|
C0 as ethers_contracts
|
|
2664
2664
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const t=require("./address-
|
|
1
|
+
"use strict";const t=require("./address-DpQlJQKV.js");function b(n,e,o,s){t.ahash(n);const a=t.checkOpts$1({dkLen:32,asyncTick:10},s),{c:d,dkLen:i,asyncTick:r}=a;if(t.anumber(d),t.anumber(i),t.anumber(r),d<1)throw new Error("iterations (c) should be >= 1");const f=t.kdfInputToBytes(e),u=t.kdfInputToBytes(o),l=new Uint8Array(i),p=t.hmac.create(n,f),c=p._cloneInto().update(u);return{c:d,dkLen:i,asyncTick:r,DK:l,PRF:p,PRFSalt:c}}function T(n,e,o,s,a){return n.destroy(),e.destroy(),s&&s.destroy(),t.clean(a),o}function L(n,e,o,s){const{c:a,dkLen:d,DK:i,PRF:r,PRFSalt:f}=b(n,e,o,s);let u;const l=new Uint8Array(4),p=t.createView$1(l),c=new Uint8Array(r.outputLen);for(let w=1,y=0;y<d;w++,y+=r.outputLen){const m=i.subarray(y,y+r.outputLen);p.setInt32(0,w,!1),(u=f._cloneInto(u)).update(l).digestInto(c),m.set(c.subarray(0,m.length));for(let h=1;h<a;h++){r._cloneInto(u).update(c).digestInto(c);for(let k=0;k<m.length;k++)m[k]^=c[k]}}return T(r,f,i,u,c)}/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */function I(n){if(typeof n!="string")throw new TypeError("invalid mnemonic type: "+typeof n);return n.normalize("NFKD")}function g(n){const e=I(n),o=e.split(" ");if(![12,15,18,21,24].includes(o.length))throw new Error("Invalid mnemonic");return{nfkd:e,words:o}}const S=n=>I("mnemonic"+n);function F(n,e=""){return L(t.sha512$1,g(n).nfkd,S(e),{c:2048,dkLen:64})}exports.mnemonicToSeedSync=F;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var A = Object.defineProperty;
|
|
2
2
|
var B = (d, e, s) => e in d ? A(d, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : d[e] = s;
|
|
3
3
|
var o = (d, e, s) => B(d, typeof e != "symbol" ? e + "" : e, s);
|
|
4
|
-
import { y as g, l as p, w, x as u } from "./chunk-KJH4KKG6-
|
|
5
|
-
import { i as S, D as I, b5 as U, av as D, k as f,
|
|
6
|
-
import { A as R } from "./platform-
|
|
4
|
+
import { y as g, l as p, w, x as u } from "./chunk-KJH4KKG6-DTOJZuhY.mjs";
|
|
5
|
+
import { i as S, D as I, b5 as U, av as D, k as f, bl as l, dl as T, aE as E } from "./address-YYxpimx3.mjs";
|
|
6
|
+
import { A as R } from "./platform-pX0KL6zm.mjs";
|
|
7
7
|
import { A as $ } from "./unsignedTransaction-BDOQhqcZ.mjs";
|
|
8
8
|
const N = [
|
|
9
9
|
[
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("./lit-element-Bij_rEQt.js"),s=require("./class-map-B81xg_Eo.js"),d=require("./solana-
|
|
1
|
+
"use strict";const c=require("./lit-element-Bij_rEQt.js"),s=require("./class-map-B81xg_Eo.js"),d=require("./solana-Da7iWCux.js"),p={getSpacingStyles(t,e){if(Array.isArray(t))return t[e]?`var(--wui-spacing-${t[e]})`:void 0;if(typeof t=="string")return`var(--wui-spacing-${t})`},getFormattedDate(t){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t)},getHostName(t){try{return new URL(t).hostname}catch{return""}},getTruncateString({string:t,charsStart:e,charsEnd:r,truncate:o}){return t.length<=e+r?t:o==="end"?`${t.substring(0,e)}...`:o==="start"?`...${t.substring(t.length-r)}`:`${t.substring(0,Math.floor(e))}...${t.substring(t.length-Math.floor(r))}`},generateAvatarColors(t){const r=t.toLowerCase().replace(/^0x/iu,"").replace(/[^a-f0-9]/gu,"").substring(0,6).padEnd(6,"0"),o=this.hexToRgb(r),n=getComputedStyle(document.documentElement).getPropertyValue("--w3m-border-radius-master"),a=100-3*Number(n==null?void 0:n.replace("px","")),l=`${a}% ${a}% at 65% 40%`,v=[];for(let m=0;m<5;m+=1){const C=this.tintColor(o,.15*m);v.push(`rgb(${C[0]}, ${C[1]}, ${C[2]})`)}return`
|
|
2
2
|
--local-color-1: ${v[0]};
|
|
3
3
|
--local-color-2: ${v[1]};
|
|
4
4
|
--local-color-3: ${v[2]};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var w=Object.defineProperty;var T=(o,t,e)=>t in o?w(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var s=(o,t,e)=>T(o,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./address-
|
|
1
|
+
"use strict";var w=Object.defineProperty;var T=(o,t,e)=>t in o?w(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var s=(o,t,e)=>T(o,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./address-DpQlJQKV.js"),l=require("./index-C7dcnZ_Y.js"),g=require("./contract-DPL0fm8A.js"),d=require("./platform-Cl1b31bn.js"),p=require("./unsignedTransaction-B7AZXsTD.js");class c{constructor(t,e,n,a){s(this,"network");s(this,"chain");s(this,"provider");s(this,"contracts");s(this,"chainId");s(this,"core");s(this,"gatewayAddress");s(this,"gateway");s(this,"tbtcTokenAddr");if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");const i=r.TBTCBridge.getNativeTbtcToken(this.chain);if(!i)throw new Error("Native tbtc token not found");this.chainId=r.networkChainToNativeChainId.get(t,e),this.core=new l.EvmWormholeCore(t,e,n,a),this.gatewayAddress=this.contracts.tbtc,this.gateway=new g.Contract(this.gatewayAddress,["function sendTbtc(uint256 amount, uint16 recipientChain, bytes32 recipient, uint256 arbiterFee, uint32 nonce) payable returns (uint64)","function receiveTbtc(bytes calldata encodedVm)"],n),this.tbtcTokenAddr=r.canonicalAddress(i)}static async fromRpc(t,e){const[n,a]=await d.EvmPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new c(n,a,t,i.contracts)}async*transfer(t,e,n){const a=new r.EvmAddress(t).toString(),i=await this.gateway.sendTbtc.populateTransaction(n,r.toChainId(e.chain),e.address.toUniversalAddress().toUint8Array(),0n,0n);i.value=await this.core.getMessageFee(),yield*this.approve(a,n,this.gatewayAddress),yield this.createUnsignedTransaction(r.addFrom(i,a),"TBTCBridge.Send")}async*redeem(t,e){if(e.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");const n=new r.EvmAddress(t).toString(),a=await this.gateway.receiveTbtc.populateTransaction(r.serialize$1(e));yield this.createUnsignedTransaction(r.addFrom(a,n),"TBTCBridge.Redeem")}async*approve(t,e,n){const a=d.EvmPlatform.getTokenImplementation(this.provider,this.tbtcTokenAddr);if(await a.allowance(t,n)<e){const h=await a.approve.populateTransaction(n,e);yield this.createUnsignedTransaction(r.addFrom(h,t),"TBTC.Approve")}}createUnsignedTransaction(t,e){return new p.EvmUnsignedTransaction(r.addChainId(t,this.chainId),this.network,this.chain,e,!1)}}r.registerProtocol(r._platform,"TBTCBridge",c);exports.EvmTBTCBridge=c;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function R(n, t, e,
|
|
3
|
-
|
|
4
|
-
const i =
|
|
5
|
-
if (k(u), k(
|
|
1
|
+
import { cV as g, de as L, df as T, cv as k, dg as I, bU as F, ct as v, cX as P } from "./address-YYxpimx3.mjs";
|
|
2
|
+
function R(n, t, e, s) {
|
|
3
|
+
L(n);
|
|
4
|
+
const i = T({ dkLen: 32, asyncTick: 10 }, s), { c: u, dkLen: c, asyncTick: o } = i;
|
|
5
|
+
if (k(u), k(c), k(o), u < 1)
|
|
6
6
|
throw new Error("iterations (c) should be >= 1");
|
|
7
|
-
const d = I(t), a = I(e), f = new Uint8Array(
|
|
8
|
-
return { c: u, dkLen:
|
|
7
|
+
const d = I(t), a = I(e), f = new Uint8Array(c), l = F.create(n, d), r = l._cloneInto().update(a);
|
|
8
|
+
return { c: u, dkLen: c, asyncTick: o, DK: f, PRF: l, PRFSalt: r };
|
|
9
9
|
}
|
|
10
|
-
function
|
|
11
|
-
return n.destroy(), t.destroy(),
|
|
10
|
+
function S(n, t, e, s, i) {
|
|
11
|
+
return n.destroy(), t.destroy(), s && s.destroy(), v(i), e;
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
const { c: i, dkLen: u, DK:
|
|
13
|
+
function U(n, t, e, s) {
|
|
14
|
+
const { c: i, dkLen: u, DK: c, PRF: o, PRFSalt: d } = R(n, t, e, s);
|
|
15
15
|
let a;
|
|
16
|
-
const f = new Uint8Array(4), l =
|
|
16
|
+
const f = new Uint8Array(4), l = g(f), r = new Uint8Array(o.outputLen);
|
|
17
17
|
for (let w = 1, p = 0; p < u; w++, p += o.outputLen) {
|
|
18
|
-
const m =
|
|
18
|
+
const m = c.subarray(p, p + o.outputLen);
|
|
19
19
|
l.setInt32(0, w, !1), (a = d._cloneInto(a)).update(f).digestInto(r), m.set(r.subarray(0, m.length));
|
|
20
20
|
for (let h = 1; h < i; h++) {
|
|
21
21
|
o._cloneInto(a).update(r).digestInto(r);
|
|
@@ -23,7 +23,7 @@ function A(n, t, e, c) {
|
|
|
23
23
|
m[y] ^= r[y];
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
return
|
|
26
|
+
return S(o, d, c, a, r);
|
|
27
27
|
}
|
|
28
28
|
/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
|
|
29
29
|
function b(n) {
|
|
@@ -31,16 +31,16 @@ function b(n) {
|
|
|
31
31
|
throw new TypeError("invalid mnemonic type: " + typeof n);
|
|
32
32
|
return n.normalize("NFKD");
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function A(n) {
|
|
35
35
|
const t = b(n), e = t.split(" ");
|
|
36
36
|
if (![12, 15, 18, 21, 24].includes(e.length))
|
|
37
37
|
throw new Error("Invalid mnemonic");
|
|
38
38
|
return { nfkd: t, words: e };
|
|
39
39
|
}
|
|
40
|
-
const
|
|
41
|
-
function
|
|
42
|
-
return
|
|
40
|
+
const D = (n) => b("mnemonic" + n);
|
|
41
|
+
function K(n, t = "") {
|
|
42
|
+
return U(P, A(n).nfkd, D(t), { c: 2048, dkLen: 64 });
|
|
43
43
|
}
|
|
44
44
|
export {
|
|
45
|
-
|
|
45
|
+
K as m
|
|
46
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var U=Object.defineProperty;var L=(n,i,t)=>i in n?U(n,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[i]=t;var c=(n,i,t)=>L(n,typeof i!="symbol"?i+"":i,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./address-XxuWo72f.js"),d=require("./index-BGsoGuxr.js"),u=require("./index-BjbPJ-9w.js"),D=require("./index-Yra08X_i.js"),p=require("./web3-DinKgkT9.js"),E=require("./unsignedTransaction-q5Fk1S0o.js"),_={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 W(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("redeemer")],new e.PublicKey(n))[0]}function F(n,i){const t=e.dist.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("msg"),t],new e.PublicKey(n))[0]}function z(n,i){const t=e.dist.Buffer.alloc(2);return t.writeUInt16LE(e.toChainId(i)),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("gateway-info"),t],new e.PublicKey(n))[0]}const b=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function Y(){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("config")],b)[0]}function $(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("minter-info"),n.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 H extends Error{constructor(i){super(i)}}class Z extends H{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const j=e.struct([e.u32("mintAuthorityOption"),p.publicKey("mintAuthority"),p.u64("supply"),e.u8("decimals"),p.bool("isInitialized"),e.u32("freezeAuthorityOption"),p.publicKey("freezeAuthority")]);j.span;async function B(n,i,t=!1,a=A,s=P){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new Z;const[r]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),n.toBuffer()],s);return r}function Q(n,i,t,a,s=A,r=P){return X(n,i,t,a,e.dist.Buffer.alloc(0),s,r)}function X(n,i,t,a,s,r=A,o=P){const g=[{pubkey:n,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:r,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:g,programId:o,data:s})}class y{constructor(i,t,a,s){c(this,"network");c(this,"chain");c(this,"connection");c(this,"contracts");c(this,"gateway");c(this,"tokenBridgeId");c(this,"coreBridgeId");if(this.network=i,this.chain=t,this.connection=a,this.contracts=s,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 D.Program(_,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,s]=await E.SolanaPlatform.chainFromRpc(i),r=t[s];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new y(a,s,i,r.contracts)}async*transfer(i,t,a){const s=new e.SolanaAddress(i).unwrap(),r=W(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:g,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(r),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=F(this.gateway.programId,S),M=d.deriveWormholeBridgeDataKey(this.coreBridgeId),h=d.deriveWormholeEmitterKey(this.tokenBridgeId),T=d.deriveEmitterSequenceKey(h,this.coreBridgeId),x=z(this.gateway.programId,t.chain),v=u.deriveSenderAccountKey(this.gateway.programId),I={amount:new e.bnExports.BN(a.toString()),recipientChain:e.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},N=await B(o,s),q=e.tbtc.get(this.network,t.chain),K={custodian:r,wrappedTbtcToken:g,wrappedTbtcMint:m,tbtcMint:o,senderToken:N,sender:s,tokenBridgeConfig:l,tokenBridgeWrappedAsset:w,tokenBridgeTransferAuthority:f,coreBridgeData:M,coreMessage:k,tokenBridgeCoreEmitter:h,coreEmitterSequence:T,coreFeeCollector:C,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},O=q?await this.gateway.methods.sendTbtcGateway({...I}).accounts({...K,gatewayInfo:x,tokenBridgeSender:v}).instruction():await this.gateway.methods.sendTbtcWrapped({...I,arbiterFee:new e.bnExports.BN(0)}).accounts(K).instruction(),{blockhash:R}=await this.connection.getLatestBlockhash(),G=e.MessageV0.compile({instructions:[O],payerKey:s,recentBlockhash:R}),V=new e.VersionedTransaction(G);yield this.createUnsignedTransaction({transaction:V},"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 s=[],r=new e.SolanaAddress(i).unwrap(),o=t.payload.payload.recipient.toNative(this.chain).unwrap(),g=W(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:w,wrappedTbtcMint:l}=await this.gateway.account.custodian.fetch(g),f=await B(m,o);await this.connection.getAccountInfo(f)||s.push(Q(r,f,o,m));const S=u.deriveWrappedMetaKey(this.tokenBridgeId,l),k=await B(l,o);s.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:r,custodian:g,postedVaa:d.derivePostedVaaKey(this.coreBridgeId,e.dist.Buffer.from(t.hash)),tokenBridgeClaim:d.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),e.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:w,wrappedTbtcMint:l,tbtcMint:m,recipientToken:f,recipient:o,recipientWrappedToken:k,tbtcConfig:Y(),tbtcMinterInfo:$(g),tokenBridgeConfig:u.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:u.deriveEndpointKey(this.tokenBridgeId,e.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(),h=e.MessageV0.compile({instructions:s,payerKey:r,recentBlockhash:M}),T=new e.VersionedTransaction(h);yield this.createUnsignedTransaction({transaction:T},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new E.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}e.registerProtocol(e._platform$1,"TBTCBridge",y);exports.SolanaTBTCBridge=y;
|
|
1
|
+
"use strict";var U=Object.defineProperty;var L=(n,i,t)=>i in n?U(n,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[i]=t;var c=(n,i,t)=>L(n,typeof i!="symbol"?i+"":i,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./address-DpQlJQKV.js"),d=require("./index-CGjibiRn.js"),u=require("./index-BkPAiliF.js"),D=require("./index-CJ_ewe88.js"),p=require("./web3-Co7tl8ed.js"),E=require("./unsignedTransaction-D14ic9We.js"),_={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 W(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("redeemer")],new e.PublicKey(n))[0]}function F(n,i){const t=e.dist.Buffer.alloc(8);return t.writeBigUInt64LE(i),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("msg"),t],new e.PublicKey(n))[0]}function z(n,i){const t=e.dist.Buffer.alloc(2);return t.writeUInt16LE(e.toChainId(i)),e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("gateway-info"),t],new e.PublicKey(n))[0]}const b=new e.PublicKey("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function Y(){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("config")],b)[0]}function $(n){return e.PublicKey.findProgramAddressSync([e.dist.Buffer.from("minter-info"),n.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 H extends Error{constructor(i){super(i)}}class Z extends H{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const j=e.struct([e.u32("mintAuthorityOption"),p.publicKey("mintAuthority"),p.u64("supply"),e.u8("decimals"),p.bool("isInitialized"),e.u32("freezeAuthorityOption"),p.publicKey("freezeAuthority")]);j.span;async function B(n,i,t=!1,a=A,s=P){if(!t&&!e.PublicKey.isOnCurve(i.toBuffer()))throw new Z;const[r]=await e.PublicKey.findProgramAddress([i.toBuffer(),a.toBuffer(),n.toBuffer()],s);return r}function Q(n,i,t,a,s=A,r=P){return X(n,i,t,a,e.dist.Buffer.alloc(0),s,r)}function X(n,i,t,a,s,r=A,o=P){const g=[{pubkey:n,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:r,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:g,programId:o,data:s})}class y{constructor(i,t,a,s){c(this,"network");c(this,"chain");c(this,"connection");c(this,"contracts");c(this,"gateway");c(this,"tokenBridgeId");c(this,"coreBridgeId");if(this.network=i,this.chain=t,this.connection=a,this.contracts=s,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 D.Program(_,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,s]=await E.SolanaPlatform.chainFromRpc(i),r=t[s];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new y(a,s,i,r.contracts)}async*transfer(i,t,a){const s=new e.SolanaAddress(i).unwrap(),r=W(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:g,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(r),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=F(this.gateway.programId,S),M=d.deriveWormholeBridgeDataKey(this.coreBridgeId),h=d.deriveWormholeEmitterKey(this.tokenBridgeId),T=d.deriveEmitterSequenceKey(h,this.coreBridgeId),x=z(this.gateway.programId,t.chain),v=u.deriveSenderAccountKey(this.gateway.programId),I={amount:new e.bnExports.BN(a.toString()),recipientChain:e.toChainId(t.chain),recipient:[...t.address.toUniversalAddress().toUint8Array()],nonce:0},N=await B(o,s),q=e.tbtc.get(this.network,t.chain),K={custodian:r,wrappedTbtcToken:g,wrappedTbtcMint:m,tbtcMint:o,senderToken:N,sender:s,tokenBridgeConfig:l,tokenBridgeWrappedAsset:w,tokenBridgeTransferAuthority:f,coreBridgeData:M,coreMessage:k,tokenBridgeCoreEmitter:h,coreEmitterSequence:T,coreFeeCollector:C,clock:e.SYSVAR_CLOCK_PUBKEY,rent:e.SYSVAR_RENT_PUBKEY,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},O=q?await this.gateway.methods.sendTbtcGateway({...I}).accounts({...K,gatewayInfo:x,tokenBridgeSender:v}).instruction():await this.gateway.methods.sendTbtcWrapped({...I,arbiterFee:new e.bnExports.BN(0)}).accounts(K).instruction(),{blockhash:R}=await this.connection.getLatestBlockhash(),G=e.MessageV0.compile({instructions:[O],payerKey:s,recentBlockhash:R}),V=new e.VersionedTransaction(G);yield this.createUnsignedTransaction({transaction:V},"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 s=[],r=new e.SolanaAddress(i).unwrap(),o=t.payload.payload.recipient.toNative(this.chain).unwrap(),g=W(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:w,wrappedTbtcMint:l}=await this.gateway.account.custodian.fetch(g),f=await B(m,o);await this.connection.getAccountInfo(f)||s.push(Q(r,f,o,m));const S=u.deriveWrappedMetaKey(this.tokenBridgeId,l),k=await B(l,o);s.push(await this.gateway.methods.receiveTbtc([...t.hash]).accounts({payer:r,custodian:g,postedVaa:d.derivePostedVaaKey(this.coreBridgeId,e.dist.Buffer.from(t.hash)),tokenBridgeClaim:d.deriveClaimKey(this.tokenBridgeId,t.emitterAddress.toUint8Array(),e.toChainId(t.emitterChain),t.sequence),wrappedTbtcToken:w,wrappedTbtcMint:l,tbtcMint:m,recipientToken:f,recipient:o,recipientWrappedToken:k,tbtcConfig:Y(),tbtcMinterInfo:$(g),tokenBridgeConfig:u.deriveTokenBridgeConfigKey(this.tokenBridgeId),tokenBridgeRegisteredEmitter:u.deriveEndpointKey(this.tokenBridgeId,e.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(),h=e.MessageV0.compile({instructions:s,payerKey:r,recentBlockhash:M}),T=new e.VersionedTransaction(h);yield this.createUnsignedTransaction({transaction:T},"TBTCBridge.Send")}createUnsignedTransaction(i,t){return new E.SolanaUnsignedTransaction(i,this.network,this.chain,t,!1)}}e.registerProtocol(e._platform$1,"TBTCBridge",y);exports.SolanaTBTCBridge=y;
|