@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
|
@@ -3,12 +3,12 @@ var Ft = (e) => {
|
|
|
3
3
|
};
|
|
4
4
|
var Gt = (e, t, s) => t.has(e) || Ft("Cannot " + s);
|
|
5
5
|
var ut = (e, t, s) => (Gt(e, t, "read from private field"), s ? s.call(e) : t.get(e)), Yt = (e, t, s) => t.has(e) ? Ft("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, s), Ht = (e, t, s, r) => (Gt(e, t, "write to private field"), r ? r.call(e, s) : t.set(e, s), s);
|
|
6
|
-
import { C as ss, W as rs, N as It, c as ns, d as R, f as tt, B as cs, h as os, j as ls, k as at } from "./index-
|
|
7
|
-
import {
|
|
6
|
+
import { C as ss, W as rs, N as It, c as ns, d as R, f as tt, B as cs, h as os, j as ls, k as at } from "./index-CPq5TByt.mjs";
|
|
7
|
+
import { bC as Rt, av as is, bW as ds, E as ps, d as us, z as ms } from "./address-YYxpimx3.mjs";
|
|
8
8
|
import { a as Nt, p as ot, B as j, i as lt, n as S, L as Ea, s as st, S as hs, b as V, f as bs, e as Ms, E as fe, F as J, c as Zt, N as Wt, d as Jt, g as Vt, I as Xt, h as Kt, j as _t, T as qt, k as ye, U as Ca, l as xe, t as C, m as mt, u as ys, o as kt, q as Q, w as xs, r as As, R as ht, v as z, x as Es } from "./http-B666g_cC.mjs";
|
|
9
|
-
import { j as Cs } from "./provider-jsonrpc-
|
|
10
|
-
import { t as gs, C as fs, f as Is } from "./contract-
|
|
11
|
-
import { f as ks, a as ws } from "./units-
|
|
9
|
+
import { j as Cs } from "./provider-jsonrpc-DwKu1fjn.mjs";
|
|
10
|
+
import { t as gs, C as fs, f as Is } from "./contract-CjL0DzEO.mjs";
|
|
11
|
+
import { f as ks, a as ws } from "./units-BGcsq4mJ.mjs";
|
|
12
12
|
var $;
|
|
13
13
|
class Ds extends Cs {
|
|
14
14
|
/**
|
|
@@ -17460,7 +17460,7 @@ class Ot extends rs {
|
|
|
17460
17460
|
return await this.provider.getSigner(this.address);
|
|
17461
17461
|
}
|
|
17462
17462
|
getWalletState() {
|
|
17463
|
-
return this.connector ? tt.
|
|
17463
|
+
return !this.connector && !this.connectorFn ? tt.NotDetected : tt.Loadable;
|
|
17464
17464
|
}
|
|
17465
17465
|
async getBalance(t) {
|
|
17466
17466
|
if (!this.isConnected() || !this.provider)
|
|
@@ -17628,7 +17628,7 @@ function Qt(e) {
|
|
|
17628
17628
|
const A = M.chains.map((w) => w.id);
|
|
17629
17629
|
if (!A.length)
|
|
17630
17630
|
return;
|
|
17631
|
-
const { EthereumProvider: E } = await import("./index.es-
|
|
17631
|
+
const { EthereumProvider: E } = await import("./index.es-DGqzeimm.mjs").then((w) => w.i);
|
|
17632
17632
|
return await E.init({
|
|
17633
17633
|
...e,
|
|
17634
17634
|
disableProviderPing: !0,
|
package/lib/executor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ue=Object.defineProperty;var $e=(r,t,e)=>t in r?Ue(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var d=(r,t,e)=>$e(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./address-XxuWo72f.js"),le=require("./chunk-KJH4KKG6-B9iq51o1.js"),ze=require("./platform-C2My6P6V.js"),M=require("./address-BWzhA9di.js"),Ve=require("./unsignedTransaction-C1YeEl4G.js"),k=require("./platform-Cdz3d-G9.js"),I=require("./contract-CQnkFb54.js"),Ae=require("./unsignedTransaction-B7AZXsTD.js"),x=require("./platform-CkZe-n0U.js"),Re=require("./index-lN-puZih.js"),Ne=require("./address-DHjpQ41W.js"),Oe=require("./unsignedTransaction-DzSLsK-p.js"),_e=require("./index-iXUxUBar.js"),Le=require("./index-Yra08X_i.js"),D=require("./web3-DinKgkT9.js"),he=require("./unsignedTransaction-q5Fk1S0o.js"),Ge=require("./account-BNVdeY3i.js"),qe={binary:"uint",size:1,custom:{to:r=>r>0,from:r=>r?1:0}},We=Object.freeze(Object.defineProperty({__proto__:null,amountItem:s.amountItem,boolItem:qe,chainItem:s.chainItem,circleDomainItem:s.circleDomainItem,circleNonceItem:s.circleNonceItem,dateConversion:s.dateConversion,fixedChainItem:s.fixedChainItem,fixedLengthStringItem:s.fixedLengthStringItem,guardianSetItem:s.guardianSetItem,payloadIdItem:s.payloadIdItem,sequenceItem:s.sequenceItem,signatureItem:s.signatureItem,stringConversion:s.stringConversion,universalAddressItem:s.universalAddressItem},Symbol.toStringTag,{value:"Module"})),j={Testnet:"https://executor-testnet.labsapis.com",Mainnet:"https://executor.labsapis.com"},H={Testnet:{Aptos:"0x14a12d1fd6ef371b70c2113155534ec152ec7f779e281b54866c796c9a4a58d3",Avalanche:"0x2cfEC91B50f657Cc86Ec693542527ac3e03bF742",BaseSepolia:"0x4983C6bD3bB7DA9EECe71cfa7AE4C67CAbf362F0",Sepolia:"0x0F78904c750801391EbBf308181e9d6fc892B0f3",Solana:"CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs"},Mainnet:{Aptos:"0x9f5ad7d5c2d067ca4abb6d8d6aba44c15596b71a1def8eb4596089b527bb2eb1",Arbitrum:"0x55Dd4466BFec29527C54A72fd306efb54e5F7027",Avalanche:"0xd331819478b74d8a7B8EA631118B4a4e50F6EbD1",Base:"0x08FEB1838C3d7F8509DA1EBb9a11a94c1f006cb2",Ethereum:"0xeEFb36c4458dA7798742cf038C5c27E07aB9c51E",Optimism:"0xBC6f9d1CBa49DB365728478cefa02F6743617637",Polygon:"0x007995f2AEcfBC745f20a7AE8D3a02c0EbF46264",Unichain:"0xA7aBDb8f2108901c586543BD5e10E4fA263F4A47",Solana:"CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs"}},Qe={Testnet:{Avalanche:"0x4058F0C3924eDaB19c15597C438968ed49C1a213",BaseSepolia:"0xC400FcC0e92d3406747FBb6f513D3aa8B038fcE9",Sepolia:"0x0F18DD26D0B41fb1eaa9cF34D1Ec6022aA69a8e2"},Mainnet:{Arbitrum:"0x8442d68524217601ed126f6859694E4B0C7c66A1",Avalanche:"0x3952914628650Ca510404872D84DfF10A844C5B5",Base:"0xbd8d42f40a11b37bD1b3770D754f9629F7cd5679",Ethereum:"0x2cCf230467FE7387674BAa657747F0B5485c7fEC",Linea:"0xc48c126468BE919068dE1983F00F65af759a4E87",Optimism:"0xd0a8940b2e743e33b682daec4d52b46713606c9d",Polygon:"0xc8a8e6d760dcbd5d6746e2f66cd2ffa722dd1e59",Unichain:"0xD5D5D640D8b758672Cc7A078734175c4433866d5",Sonic:"0xc39BF082ec91D9bC385F956D24a8D66C0c26223d",Worldchain:"0x789f2b91f7B35D5B890983328340c4600339B354"}},ge={Testnet:{executorId:"0x4000cfe2955d8355b3d3cf186f854fea9f787a457257056926fde1ec977670eb",executorRequestsId:"0x2d9ccf3cce3f7dce408e5455e90b80a8161ad9673d1366c2a5def60ad93657a8"},Mainnet:{executorId:"0xdb0fe8bb1e2b5be628adbea0636063325073e1070ee11e4281457dfd7f158235",executorRequestsId:"0xc030df7a3eed1494fa4b64aa8ab63a79041cf1114f4ff2b7ab5aca1c684a21a7"}},Ke={Testnet:"execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV",Mainnet:"execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV"},je=5001n,He={Testnet:{Aptos:5000n,ArbitrumSepolia:800000n,Avalanche:200000n,BaseSepolia:200000n,Linea:250000n,Sepolia:200000n,Solana:250000n,Sonic:250000n,Sui:8000000n},Mainnet:{Aptos:5000n,Arbitrum:800000n,Avalanche:250000n,Base:250000n,Ethereum:250000n,Linea:250000n,Optimism:250000n,Polygon:250000n,Unichain:250000n,Solana:250000n,Sonic:250000n,Sui:8000000n,Worldchain:250000n}},Xe={Testnet:{ArbitrumSepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Avalanche:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},BaseSepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Linea:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Sepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Sonic:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"}},Mainnet:{Arbitrum:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Avalanche:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Base:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Ethereum:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Linea:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Optimism:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Polygon:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Unichain:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Sonic:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Worldchain:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"}}},ye={Testnet:{Sepolia:0,Avalanche:1,OptimismSepolia:2,ArbitrumSepolia:3,Solana:5,BaseSepolia:6,Polygon:7,Sui:8,Aptos:9,Unichain:10},Mainnet:{Ethereum:0,Avalanche:1,Optimism:2,Arbitrum:3,Solana:5,Base:6,Polygon:7,Sui:8,Aptos:9,Unichain:10}},T=(r,t)=>{var e;return((e=ye[r])==null?void 0:e[t])!==void 0},z={Testnet:{Sepolia:0,Avalanche:1,ArbitrumSepolia:3,BaseSepolia:6,Linea:11,Sonic:13},Mainnet:{Ethereum:0,Avalanche:1,Optimism:2,Arbitrum:3,Base:6,Polygon:7,Unichain:10,Linea:11,Sonic:13,Worldchain:14}},G=(r,t)=>{var e;return((e=z[r])==null?void 0:e[t])!==void 0},U=(r,t)=>{var n;const e=(n=z[r])==null?void 0:n[t];if(e===void 0)throw new Error(`CircleV2 domain not found for network ${r} and chain ${t}`);return e},xe=(r,t)=>{var n;const e=(n=Object.entries(z[r]??{}).find(([,a])=>a===t))==null?void 0:n[0];if(e===void 0)throw new Error(`CircleV2 chain not found for network ${r} and domain ${t}`);return e},V={Testnet:"https://iris-api-sandbox.circle.com/v2",Mainnet:"https://iris-api.circle.com/v2"};var $;(function(r){r[r.CONFIRMED=1e3]="CONFIRMED",r[r.FINALIZED=2e3]="FINALIZED"})($||($={}));const De={Testnet:{ArbitrumSepolia:8e3,BaseSepolia:8e3,Sepolia:2e4,Linea:8e3},Mainnet:{Arbitrum:8e3,Base:8e3,Ethereum:2e4,Linea:8e3,Optimism:8e3,Polygon:8e3,Unichain:8e3,Worldchain:8e3}},Ze=(r,t)=>{var e;return((e=De[r])==null?void 0:e[t])!==void 0};class X{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"usdcId");d(this,"shimContract");var c;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=s.usdcContract.get(this.network,this.chain);if(!i)throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);this.usdcId=i;const o=(c=H[t])==null?void 0:c[e];if(!o)throw new Error(`Shim contract for ${e} not found`);this.shimContract=o}static async fromRpc(t,e){const[n,a]=await ze.AptosPlatform.chainFromRpc(t),i=e[a];if(!i)throw new Error(`No config found for ${a}`);if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new X(n,a,t,i.contracts)}async*transfer(t,e,n){var g,C;const a=new M.AptosAddress(t).unwrap(),i=le.l.from(e.address.toUniversalAddress().toUint8Array()),o=le.l.from(this.usdcId),c=n.remainingAmount+n.referrerFee,u=s.circleChainId.get(this.network,e.chain),m=a,f=new M.AptosAddress(((C=(g=n.referrer)==null?void 0:g.address)==null?void 0:C.toString())??a).unwrap(),l=[c,u,i.toString(),o.toString(),n.estimatedCost,s.toChainId(e.chain),m,n.signedQuote,n.relayInstructions,n.referrerFeeDbps,f],h={function:`${this.shimContract}::cctp_v1_with_executor::deposit_for_burn_entry`,functionArguments:l};yield this.createUnsignedTx(h,"AtposCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new Ve.AptosUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(M._platform,"CCTPExecutor",X);class Z{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"shimContract");var o;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");this.chainId=s.networkChainToNativeChainId.get(t,e);const i=(o=H[t])==null?void 0:o[e];if(!i)throw new Error(`Shim contract for ${e} not found`);this.shimContract=i}static async fromRpc(t,e){const[n,a]=await k.EvmPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new Z(n,a,t,i.contracts)}async*transfer(t,e,n){var g,C;const a=new s.EvmAddress(t).toString(),i=e.address.toUniversalAddress().toUint8Array(),o=n.remainingAmount+n.referrerFee,c=s.usdcContract.get(this.network,this.chain),u=k.EvmPlatform.getTokenImplementation(this.provider,c);if(await u.allowance(a,this.shimContract)<o){const p=await u.approve.populateTransaction(this.shimContract,o);yield this.createUnsignedTx(s.addFrom(p,a),"ERC20.approve of EvmCCTPExecutor",!1)}const f=["function depositForBurn(uint256 amount, uint16 destinationChain, uint32 destinationDomain, bytes32 mintRecipient, address burnToken, (address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 nonce)"],h=await new I.Contract(this.shimContract,f,this.provider).getFunction("depositForBurn").populateTransaction(o,s.toChainId(e.chain),s.circleChainId.get(this.network,e.chain),i,c,{refundAddress:a,signedQuote:n.signedQuote,instructions:n.relayInstructions},{dbps:n.referrerFeeDbps,payee:((C=(g=n.referrer)==null?void 0:g.address)==null?void 0:C.toString())??a});h.value=n.estimatedCost,yield this.createUnsignedTx(s.addFrom(h,a),"EvmCCTPExecutor.depositForBurn")}createUnsignedTx(t,e,n=!1){return new Ae.EvmUnsignedTransaction(s.addChainId(t,this.chainId),this.network,this.chain,e,n)}}const{amountItem:S,circleDomainItem:Ce,universalAddressItem:y}=We,Fe={binary:"uint",size:4,custom:1,omit:!1},Je={binary:"bytes",size:32},we={binary:"uint",size:4},Ye=[{name:"version",...Fe},{name:"burnToken",...y},{name:"mintRecipient",...y},{name:"amount",...S},{name:"messageSender",...y},{name:"maxFee",...S},{name:"feeExecuted",...S},{name:"expirationBlock",...S},{name:"hookData",binary:"bytes"}],ve=[{name:"version",...Fe},{name:"sourceDomain",...Ce},{name:"destinationDomain",...Ce},{name:"nonce",...Je},{name:"sender",...y},{name:"recipient",...y},{name:"destinationCaller",...y},{name:"minFinalityThreshold",...we},{name:"finalityThresholdExecuted",...we},{name:"messageBody",binary:"bytes",layout:Ye}],et=r=>s.deserialize$1(ve,r),tt=r=>s.serialize(ve,r),nt=[{name:"gasLimit",binary:"uint",size:16},{name:"msgValue",binary:"uint",size:16}],rt=[{name:"dropOff",binary:"uint",size:16},{name:"recipient",...s.universalAddressItem}],st=[{name:"request",binary:"switch",idSize:1,idTag:"type",layouts:[[[1,"GasInstruction"],nt],[[2,"GasDropOffInstruction"],rt]]}],Te=[{name:"requests",binary:"array",layout:st}],at={to:r=>new Date(Number(r*1000n)),from:r=>BigInt(r.getTime())/1000n},it=[{name:"quote",binary:"switch",idSize:4,idTag:"prefix",layouts:[[[1162948657,"EQ01"],[{name:"quoterAddress",binary:"bytes",size:20},{name:"payeeAddress",binary:"bytes",size:32},{name:"srcChain",binary:"uint",size:2},{name:"dstChain",binary:"uint",size:2},{name:"expiryTime",binary:"uint",size:8,custom:at},{name:"baseFee",binary:"uint",size:8},{name:"dstGasPrice",binary:"uint",size:8},{name:"srcPrice",binary:"uint",size:8},{name:"dstPrice",binary:"uint",size:8}]]]}],Se=[...it,{name:"signature",binary:"bytes",size:65}];class J{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"shimContract");d(this,"messageTransmitter");d(this,"usdcContract");var u,m,f;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPv2Executor not supported on Devnet");this.chainId=s.networkChainToNativeChainId.get(t,e);const i=(u=Qe[t])==null?void 0:u[e];if(!i)throw new Error(`Shim contract for ${e} not found`);this.shimContract=i;const o=(f=(m=Xe[t])==null?void 0:m[e])==null?void 0:f.messageTransmitterV2;if(!o)throw new Error(`MessageTransmitter contract for ${e} not found`);this.messageTransmitter=o;const c=s.usdcContract.get(t,e);if(!c)throw new Error(`USDC contract for ${e} not found`);this.usdcContract=c}static async fromRpc(t,e){const[n,a]=await k.EvmPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new J(n,a,t,i.contracts)}async*transfer(t,e,n){var C,p;const a=new s.EvmAddress(t).toString(),i=e.address.toUniversalAddress().toUint8Array(),o=n.remainingAmount+n.referrerFee,c=k.EvmPlatform.getTokenImplementation(this.provider,this.usdcContract);if(await c.allowance(a,this.shimContract)<o){const b=await c.approve.populateTransaction(this.shimContract,o);yield this.createUnsignedTx(s.addFrom(b,a),"ERC20.approve of EvmCCTPv2Executor",!1)}const m=["function depositForBurn(uint256 amount, uint16 destinationChain, uint32 destinationDomain, bytes32 mintRecipient, address burnToken, bytes32 destinationCaller, uint256 maxFee, uint32 minFinalityThreshold, (address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 nonce)"],f=new Uint8Array(32),l=new I.Contract(this.shimContract,m,this.provider),h=U(this.network,e.chain),g=await l.getFunction("depositForBurn").populateTransaction(o,s.toChainId(e.chain),h,i,this.usdcContract,f,n.fastTransferMaxFee,n.minFinalityThreshold,{refundAddress:a,signedQuote:n.signedQuote,instructions:n.relayInstructions},{dbps:n.referrerFeeDbps,payee:((p=(C=n.referrer)==null?void 0:C.address)==null?void 0:p.toString())??a});g.value=n.estimatedCost,yield this.createUnsignedTx(s.addFrom(g,a),"EvmCCTPv2Executor.depositForBurn")}async isTransferCompleted(t){return await new I.Contract(this.messageTransmitter,["function usedNonces(bytes32) public view returns (uint256)"],this.provider).getFunction("usedNonces").staticCall(t.nonce)===1n}async*redeem(t,e,n){const a=new s.EvmAddress(t).toString(),o=await new I.Contract(this.messageTransmitter,["function receiveMessage(bytes message, bytes attestation)"],this.provider).getFunction("receiveMessage").populateTransaction(tt(e),s.hex.decode(n));yield this.createUnsignedTx(s.addFrom(o,a),"MessageTransmitterV2.receiveMessage")}async getCurrentBlock(){return BigInt(await this.provider.getBlockNumber())}createUnsignedTx(t,e,n=!1){return new Ae.EvmUnsignedTransaction(s.addChainId(t,this.chainId),this.network,this.chain,e,n)}}s.registerProtocol(s._platform,"CCTPExecutor",Z);s.registerProtocol(s._platform,"CCTPv2Executor",J);class Y{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"usdcId");d(this,"usdcTreasuryId");d(this,"tokenMessengerId");d(this,"tokenMessengerStateId");d(this,"messageTransmitterId");d(this,"messageTransmitterStateId");d(this,"executorId");d(this,"executorRequestsId");var m,f,l,h;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=(g,C)=>{if(!g)throw new Error(C);return g};this.usdcId=i(s.usdcContract.get(this.network,this.chain),`No USDC contract configured for network=${this.network} chain=${this.chain}`);const{tokenMessengerState:o,messageTransmitterState:c,usdcTreasury:u}=Re.suiCircleObjects(t);this.usdcTreasuryId=u,this.tokenMessengerId=i((m=a.cctp)==null?void 0:m.tokenMessenger,`Circle Token Messenger contract for domain ${e} not found`),this.messageTransmitterId=i((f=a.cctp)==null?void 0:f.messageTransmitter,`Circle Message Transmitter contract for domain ${e} not found`),this.tokenMessengerStateId=o,this.messageTransmitterStateId=c,this.executorId=i((l=ge[t])==null?void 0:l.executorId,`Executor contract for ${t} not found`),this.executorRequestsId=i((h=ge[t])==null?void 0:h.executorRequestsId,`Executor requests contract for ${t} not found`)}static async fromRpc(t,e){const[n,a]=await x.SuiPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new Y(n,a,t,i.contracts)}async*transfer(t,e,n){const a=new x.Transaction,i=new Ne.SuiAddress(t).unwrap(),o=s.circleChainId.get(this.network,e.chain),[c,...u]=await x.SuiPlatform.getCoins(this.provider,t,this.usdcId);if(c===void 0)throw new Error("No USDC in wallet");const m=a.object(c.coinObjectId);u.length>0&&a.mergeCoins(m,u.map(w=>a.object(w.coinObjectId)));let f;if(n.referrerFee>0n){const[w,A]=a.splitCoins(m,[n.remainingAmount,n.referrerFee]);f=w,a.transferObjects([A],n.referrer?s.canonicalAddress(n.referrer):i)}else{const[w]=a.splitCoins(m,[n.remainingAmount]);f=w}const[l,h]=a.moveCall({target:`${this.tokenMessengerId}::deposit_for_burn::deposit_for_burn`,arguments:[f,a.pure.u32(o),a.pure.address(e.address.toUniversalAddress().toString()),a.object(this.tokenMessengerStateId),a.object(this.messageTransmitterStateId),a.object("0x403"),a.object(this.usdcTreasuryId)],typeArguments:[this.usdcId]}),[g]=a.moveCall({target:`${this.messageTransmitterId}::message::source_domain`,arguments:[h]}),[C]=a.moveCall({target:`${this.messageTransmitterId}::message::nonce`,arguments:[h]}),[p]=a.moveCall({target:`${this.executorRequestsId}::executor_requests::make_cctp_v1_request`,arguments:[g,C]}),[b]=a.splitCoins(a.gas,[a.pure.u64(n.estimatedCost)]);a.moveCall({target:`${this.executorId}::executor::request_execution`,arguments:[b,a.object(x.SUI_CLOCK_OBJECT_ID),a.pure.u16(s.toChainId(e.chain)),a.pure.address("0x0"),a.pure.address(i),a.pure.vector("u8",n.signedQuote),p,a.pure.vector("u8",n.relayInstructions)]}),yield this.createUnsignedTx(a,"SuiCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new Oe.SuiUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(x._platform,"CCTPExecutor",Y);const R=new s.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new s.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const ee=new s.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new s.PublicKey("So11111111111111111111111111111111111111112");new s.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class ot extends Error{constructor(t){super(t)}}class ct extends ot{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}var q;(function(r){r[r.InitializeMint=0]="InitializeMint",r[r.InitializeAccount=1]="InitializeAccount",r[r.InitializeMultisig=2]="InitializeMultisig",r[r.Transfer=3]="Transfer",r[r.Approve=4]="Approve",r[r.Revoke=5]="Revoke",r[r.SetAuthority=6]="SetAuthority",r[r.MintTo=7]="MintTo",r[r.Burn=8]="Burn",r[r.CloseAccount=9]="CloseAccount",r[r.FreezeAccount=10]="FreezeAccount",r[r.ThawAccount=11]="ThawAccount",r[r.TransferChecked=12]="TransferChecked",r[r.ApproveChecked=13]="ApproveChecked",r[r.MintToChecked=14]="MintToChecked",r[r.BurnChecked=15]="BurnChecked",r[r.InitializeAccount2=16]="InitializeAccount2",r[r.SyncNative=17]="SyncNative",r[r.InitializeAccount3=18]="InitializeAccount3",r[r.InitializeMultisig2=19]="InitializeMultisig2",r[r.InitializeMint2=20]="InitializeMint2",r[r.GetAccountDataSize=21]="GetAccountDataSize",r[r.InitializeImmutableOwner=22]="InitializeImmutableOwner",r[r.AmountToUiAmount=23]="AmountToUiAmount",r[r.UiAmountToAmount=24]="UiAmountToAmount",r[r.InitializeMintCloseAuthority=25]="InitializeMintCloseAuthority",r[r.TransferFeeExtension=26]="TransferFeeExtension",r[r.ConfidentialTransferExtension=27]="ConfidentialTransferExtension",r[r.DefaultAccountStateExtension=28]="DefaultAccountStateExtension",r[r.Reallocate=29]="Reallocate",r[r.MemoTransferExtension=30]="MemoTransferExtension",r[r.CreateNativeMint=31]="CreateNativeMint",r[r.InitializeNonTransferableMint=32]="InitializeNonTransferableMint",r[r.InterestBearingMintExtension=33]="InterestBearingMintExtension",r[r.CpiGuardExtension=34]="CpiGuardExtension",r[r.InitializePermanentDelegate=35]="InitializePermanentDelegate",r[r.TransferHookExtension=36]="TransferHookExtension",r[r.MetadataPointerExtension=39]="MetadataPointerExtension"})(q||(q={}));function dt(r,t,e){if(e.length){r.push({pubkey:t,isSigner:!1,isWritable:!1});for(const n of e)r.push({pubkey:n instanceof s.PublicKey?n:n.publicKey,isSigner:!0,isWritable:!1})}else r.push({pubkey:t,isSigner:!0,isWritable:!1});return r}const ut=s.struct([s.u32("mintAuthorityOption"),D.publicKey("mintAuthority"),D.u64("supply"),s.u8("decimals"),D.bool("isInitialized"),s.u32("freezeAuthorityOption"),D.publicKey("freezeAuthority")]);ut.span;function pe(r,t,e=!1,n=R,a=ee){if(!e&&!s.PublicKey.isOnCurve(t.toBuffer()))throw new ct;const[i]=s.PublicKey.findProgramAddressSync([t.toBuffer(),n.toBuffer(),r.toBuffer()],a);return i}function mt(r,t,e,n,a=R,i=ee){return ft(r,t,e,n,s.dist.Buffer.from([1]),a,i)}function ft(r,t,e,n,a,i=R,o=ee){const c=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:s.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];return new s.TransactionInstruction({keys:c,programId:o,data:a})}const be=s.struct([s.u8("instruction"),D.u64("amount")]);function lt(r,t,e,n,a=[],i=R){const o=dt([{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],e,a),c=s.dist.Buffer.alloc(be.span);return be.encode({instruction:q.Transfer,amount:BigInt(n)},c),new s.TransactionInstruction({keys:o,programId:i,data:c})}const ht={version:"0.1.0",name:"example_cctp_with_executor",instructions:[{name:"relayLastMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"payee",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!1,isSigner:!1},{name:"executorProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"relayLastMessageArgs"}}]}],types:[{name:"relayLastMessageArgs",type:{kind:"struct",fields:[{name:"recipientChain",type:"u16"},{name:"execAmount",type:"u64"},{name:"signedQuoteBytes",type:"bytes"},{name:"relayInstructions",type:"bytes"}]}}]};class te{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"connection");d(this,"contracts");d(this,"tokenMessengerProgramId");d(this,"messageTransmitterProgramId");d(this,"shimProgramId");d(this,"executorProgramId");var o,c,u;if(this.network=t,this.chain=e,this.connection=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=(m,f)=>{if(!m)throw new Error(f);return new s.PublicKey(m)};this.tokenMessengerProgramId=i((o=a.cctp)==null?void 0:o.tokenMessenger,`Circle Token Messenger contract for domain ${e} not found`),this.messageTransmitterProgramId=i((c=a.cctp)==null?void 0:c.messageTransmitter,`Circle Message Transmitter contract for domain ${e} not found`),this.shimProgramId=i((u=H[t])==null?void 0:u[e],`Shim contract for ${e} not found`),this.executorProgramId=i(Ke[t],`Executor contract for ${t} not found`)}static async fromRpc(t,e){const[n,a]=await he.SolanaPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new te(n,a,t,i.contracts)}async*transfer(t,e,n){var p,b;const a=new s.PublicKey(s.usdcContract.get(this.network,this.chain)),i=new s.SolanaAddress(t).unwrap(),o=pe(a,i),c=new s.SolanaAddress(((b=(p=n.referrer)==null?void 0:p.address)==null?void 0:b.toString())??i).unwrap(),u=new s.Transaction;if(u.feePayer=i,n.referrerFee>0n){const w=pe(a,c,!0);await this.connection.getAccountInfo(w)||u.add(mt(i,w,c,a)),u.add(lt(o,w,i,n.referrerFee))}const m=s.circleChainId.get(this.network,e.chain),f=e.address.toUniversalAddress(),l=s.Keypair.generate();u.add(await _e.createDepositForBurnInstruction(this.messageTransmitterProgramId,this.tokenMessengerProgramId,a,m,i,o,f,n.remainingAmount,l.publicKey));const h=new Le.Program(ht,this.shimProgramId,{connection:null}),g=s.deserialize$1(Se,n.signedQuote),C=Ge.deriveAddress("message_transmitter",this.messageTransmitterProgramId);u.add(await h.methods.relayLastMessage({execAmount:new s.BN(n.estimatedCost.toString()),recipientChain:s.toChainId(e.chain),signedQuoteBytes:s.dist.Buffer.from(n.signedQuote),relayInstructions:s.dist.Buffer.from(n.relayInstructions)}).accounts({payer:i,messageTransmitter:C,payee:new s.PublicKey(g.quote.payeeAddress),executorProgram:this.executorProgramId}).instruction()),yield this.createUnsignedTx({transaction:u,signers:[l]},"SvmCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new he.SolanaUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(s._platform$1,"CCTPExecutor",te);var E;(function(r){r.Pending="pending",r.Failed="failed",r.Unsupported="unsupported",r.Submitted="submitted",r.Underpaid="underpaid",r.Aborted="aborted"})(E||(E={}));var Ee;(function(r){r.ERM1="ERM1",r.ERV1="ERV1",r.ERN1="ERN1",r.ERC1="ERC1",r.ERC2="ERC2"})(Ee||(Ee={}));async function gt(r){const t=`${j[r]}/v0/capabilities`;try{return(await s.axios.get(t)).data}catch{throw new Error(`Failed to fetch capabilities for network: ${r}.`)}}async function Ct(r,t,e,n){const a=`${j[r]}/v0/quote`;try{return(await s.axios.post(a,{srcChain:s.toChainId(t),dstChain:s.toChainId(e),relayInstructions:n})).data}catch{throw new Error("Failed to fetch signed quote.")}}async function ne(r,t,e){const n=`${j[r]}/v0/status/tx`;try{return(await s.axios.post(n,{txHash:t,chainId:s.toChainId(e)})).data}catch{throw new Error(`Failed to fetch status for txHash: ${t}.`)}}const wt=65535n;function pt(r,t,e){if(t>wt)throw new Error("dBps exceeds max u16");let n=t,a=r,i=0n;if(t>0){if(e!==void 0&&r>0){const o=s.parse(e.toString(),6),c=s.units(o)/r,u=t<c?t:c;i=r*u/100000n,n=u}else i=r*t/100000n;a=r-i}return{referrerFee:i,remainingAmount:a,referrerFeeDbps:n}}function bt(r){return new Promise(t=>setTimeout(t,r))}async function W(r,t,e=s.DEFAULT_TASK_TIMEOUT){const n=U(t,r.chain);return s.retry(async()=>{var i;const a=`${V[t]}/messages/${n}?transactionHash=${r.txid}`;try{const c=(await s.axios.get(a)).data.messages[0];if(!c)return null;if(c.cctpVersion!==2)throw new Error("CCTPv1 attestation found");return c.status==="pending_confirmations"?null:{message:et(s.hex.decode(c.message)),attestation:c.attestation}}catch(o){if(!o||typeof o=="object"&&(s.axios.isAxiosError(o)&&((i=o.response)==null?void 0:i.status)===404||"status"in o&&o.status===404))return null;throw o}},2e3,e,"CCTPv2:GetMessage")}async function Et(r,t,e){const n=U(r,t),a=U(r,e),i=`${V[r]}/fastBurn/USDC/fees/${n}/${a}`,o=await s.axios.get(i);return BigInt(o.data.minimumFee)}async function At(r,t){const e=s.hex.encode(t.attestation.message.nonce,!0),n=`${V[r]}/reattest/${e}`,a=await s.axios.post(n);if(a.data.error){if(a.data.error.includes("Message is already finalized"))return t.attestation;throw new Error(`Error re-attesting message: ${a.data.error}`)}const i=xe(r,t.attestation.message.sourceDomain);return s.retry(async()=>{const o=await W({txid:t.id,chain:i},r);return!o||o.message.messageBody.expirationBlock!==0n?null:o},2e3,s.DEFAULT_TASK_TIMEOUT,"CCTPv2:Reattest")}async function yt(r){const t=`${V[r]}/fastBurn/USDC/allowance`,e=await s.axios.get(t);return s.units(s.parse(e.data.allowance,6))}function re(r,t,e){const n=s.usdcContract.get(t.network,t.chain);if(!(n&&s.isSameToken(r,s.Wormhole.tokenId(t.chain,n))))return[];const{network:a,chain:i}=e,o=s.usdcContract.get(a,i);return o?[s.Wormhole.chainAddress(i,o)]:[]}let B;async function se(r,t,e,n){var de,ue,me;const{fromChain:a,toChain:i}=r;if(!s.usdcContract.get(a.network,a.chain))throw new Error("Invalid transfer, no USDC contract on source");const c=s.usdcContract.get(i.network,i.chain);if(!c)throw new Error("Invalid transfer, no USDC contract on destination");let u;if(e.referrerFeeDbps>0n&&(u=(ue=(de=e.referrerAddresses)==null?void 0:de[a.network])==null?void 0:ue[a.chain],!u))throw new Error(`Referrer address not configured for ${a.chain}`);const m=u?s.Wormhole.chainAddress(a.chain,u):void 0,{referrerFee:f,remainingAmount:l,referrerFeeDbps:h}=pt(s.units(t.normalizedParams.amount),e.referrerFeeDbps,e.referrerFeeThreshold);if(l<=0n)throw new Error("Amount after fee <= 0");const g=(me=He[i.network])==null?void 0:me[i.chain];if(!g)throw new Error("Gas limit not found");const C=await gt(a.network);if(!C[s.toChainId(a.chain)])throw new Error("Unsupported source chain");const b=C[s.toChainId(i.chain)];if(!b||!b.requestPrefixes.includes(n))throw new Error("Unsupported destination chain");const{recipient:w}=r;let A=!0;if(w&&i.chain==="Solana"){const Me=s.Wormhole.parseAddress("Solana",c),ke=await i.getTokenAccount(w.address,Me),fe=await i.getRpc();A=await fe.getAccountInfo(new s.SolanaAddress(ke.address).unwrap())!==null,!A&&!B&&(B=BigInt(await fe.getMinimumBalanceForRentExemption(165)))}let N=0n;i.chain==="Solana"&&(N+=je,!A&&B&&(N+=B));const O=[];O.push({request:{type:"GasInstruction",gasLimit:g,msgValue:N}});const ie=BigInt(b.gasDropOffLimit),_=t.options.nativeGas&&ie>0n?BigInt(Math.round(t.options.nativeGas*100))*ie/100n:0n;(_>0n||!A)&&O.push({request:{type:"GasDropOffInstruction",dropOff:_,recipient:w?w.address.toUniversalAddress():new s.UniversalAddress(new Uint8Array(32))}});const oe=s.serialize(Te,{requests:O}),L=await Ct(a.network,a.chain,i.chain,s.hex.encode(oe,!0));if(!L.estimatedCost)throw new Error("No estimated cost");const ce=s.hex.decode(L.signedQuote),Ie=s.deserialize$1(Se,ce),Pe=BigInt(L.estimatedCost);return{signedQuote:ce,relayInstructions:oe,estimatedCost:Pe,referrer:m,referrerFee:f,remainingAmount:l,referrerFeeDbps:h,expiryTime:Ie.quote.expiryTime,gasDropOff:_}}async function Be(r,t,e,n){s.deserialize$1(Te,n.details.relayInstructions).requests.forEach(({request:l})=>{if(l.type==="GasDropOffInstruction"&&!l.recipient.equals(e.address.toUniversalAddress()))throw new Error("Gas drop-off recipient does not match")});const i=s.Wormhole.parseAddress(t.chain(),t.address()),o=await xt(e,r);let c;n.protocol==="CCTPExecutor"?c=await(await r.fromChain.getProtocol(n.protocol)).transfer(i,o,n.details):c=await(await r.fromChain.getProtocol(n.protocol)).transfer(i,o,n.details);const u=await s.signSendWait(r.fromChain,c,t);let m=0;return(async()=>{for(;m<20;){try{const[l]=await ne(r.fromChain.network,u.at(-1).txid,r.fromChain.chain);if(l)break}catch{}m++,await bt(2e3)}})(),{from:r.fromChain.chain,to:r.toChain.chain,state:s.TransferState.SourceInitiated,originTxs:u}}async function xt(r,t){if(r.chain!=="Solana")return r;const e=s.usdcContract.get(t.toChain.network,t.toChain.chain);if(!e)throw new Error("No USDC contract found for Solana");const n=s.Wormhole.parseAddress("Solana",e);return t.toChain.getTokenAccount(r.address,n)}function Dt(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends P{}return d(t,"config",r),t}class P extends s.AutomaticRoute{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(e){return[...Object.keys(ye[e]??{})]}static async supportedDestinationTokens(e,n,a){return!T(n.network,n.chain)||!T(a.network,a.chain)?[]:re(e,n,a)}getDefaultOptions(){return{nativeGas:0}}async validate(e,n){var c;const{fromChain:a,toChain:i}=e;return!T(a.network,a.chain)||!T(i.network,i.chain)?{valid:!1,error:new Error("Unsupported source or destination chain"),params:n}:(c=n.options)!=null&&c.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}}async quote(e,n){const{fromChain:a,toChain:i}=e;try{const o=await se(e,n,this.staticConfig,"ERC1"),{remainingAmount:c,estimatedCost:u,gasDropOff:m,expiryTime:f}=o,l=a.chain==="Polygon"?2e3*200:s.estimateFinalityTime(a.chain)+1e3,[h,g]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(c,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(u,h)},destinationNativeGas:s.fromBaseUnits(m,g),eta:l,expires:f,details:o}}catch(o){return{success:!1,error:new Error(o instanceof Error?o.message:`${o}`)}}}async initiate(e,n,a,i){if(!a.details)throw new Error("Missing quote details");return await Be(e,n,i,{protocol:"CCTPExecutor",details:a.details})}async*track(e,n){if(s.isCompleted(e)||s.isFailed(e))return e;let a=n||60*60*1e3;for(;a>0;){const i=Date.now();if(s.isSourceInitiated(e)||s.isSourceFinalized(e)||s.isAttested(e))try{const[o]=await ne(this.wh.network,e.originTxs.at(-1).txid,e.from);if(!o)throw new Error("No transaction status found");const c=o==null?void 0:o.status;if((c===E.Failed||c===E.Underpaid||c===E.Unsupported||c===E.Aborted)&&(e={...e,state:s.TransferState.Failed,error:new s.RelayFailedError(`Relay failed with status: ${c}`)}),c===E.Submitted&&(e={...e,state:s.TransferState.DestinationFinalized,attestation:{id:o.id,attestation:{}}}),yield e,s.isCompleted(e)||s.isFailed(e))return e}catch(o){console.error(`Error fetching transaction status: ${o.message||o}`)}await new Promise(o=>setTimeout(o,3e3)),a-=Date.now()-i}return e}}d(P,"NATIVE_GAS_DROPOFF_SUPPORTED",!0),d(P,"config",{referrerFeeDbps:0n}),d(P,"meta",{name:"CCTPExecutorRoute",provider:"Circle CCTP"});class ae extends s.AutomaticRoute{static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(t){return Object.keys(z[t]??{})}getDefaultOptions(){return{nativeGas:0}}async initiate(t,e,n,a){if(!n.details)throw new Error("Missing quote details");return await Be(t,e,a,{protocol:"CCTPv2Executor",details:n.details})}async*track(t,e){if(s.isCompleted(t))return t;let n=e||60*60*1e3;for(;n>0;){const a=Date.now();if(s.isSourceInitiated(t)||s.isSourceFinalized(t)||s.isAttested(t)||s.isFailed(t))try{const i=t.originTxs.at(-1).txid;if(s.isSourceInitiated(t)||s.isSourceFinalized(t)){const o=await W({chain:t.from,txid:i},this.wh.network);o&&(t={...t,state:s.TransferState.Attested,attestation:{id:i,attestation:o}}),yield t}if(s.isAttested(t)){const[o]=await ne(this.wh.network,i,t.from);if(!o)throw new Error("No transaction status found");const c=o==null?void 0:o.status;c===E.Submitted?t={...t,state:s.TransferState.DestinationFinalized}:(c===E.Failed||c===E.Underpaid||c===E.Unsupported||c===E.Aborted)&&(t={...t,state:s.TransferState.Failed,error:new s.RelayFailedError(`Relay failed with status: ${c}`)})}if(s.isFailed(t)){if(!t.attestation)throw new Error("Receipt is missing attestation");const o=t.attestation;await(await this.wh.getChain(t.to).getProtocol("CCTPv2Executor")).isTransferCompleted(o.attestation.message)&&(t={...t,state:s.TransferState.DestinationFinalized,attestation:o})}if(yield t,s.isCompleted(t))return t}catch(i){console.error(`Error fetching transaction status: ${i.message||i}`)}await new Promise(i=>setTimeout(i,3e3)),n-=Date.now()-a}return t}async complete(t,e){if(!s.isAttested(e)&&!s.isFailed(e))throw new Error("Transfer is not attested");if(!e.attestation)throw new Error("No attestation found");const n=this.wh.getChain(e.to),a=await n.getProtocol("CCTPv2Executor");let{attestation:i,message:o}=e.attestation.attestation;const{expirationBlock:c}=o.messageBody,u=await a.getCurrentBlock();if(c!==0n&&c<u){const h=await At(n.network,e.attestation);if(!h)throw new Error("Failed to reattest message");i=h.attestation,o=h.message}const m=s.Wormhole.parseAddress(t.chain(),t.address()),f=a.redeem(m,o,i),l=await s.signSendWait(this.wh.getChain(e.to),f,t);return{...e,state:s.TransferState.DestinationInitiated,attestation:e.attestation,destinationTxs:l}}async resume(t){const e=await W(t,this.wh.network);if(!e)throw new Error("No attestation found");const{message:n}=e,a=xe(this.wh.network,n.destinationDomain);return await(await this.wh.getChain(a).getProtocol("CCTPv2Executor")).isTransferCompleted(n)?{from:t.chain,to:a,state:s.TransferState.DestinationFinalized,originTxs:[t],attestation:{id:t.txid,attestation:e}}:{from:t.chain,to:a,state:s.TransferState.Attested,originTxs:[t],attestation:{id:t.txid,attestation:e}}}}d(ae,"NATIVE_GAS_DROPOFF_SUPPORTED",!0);function Ft(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends Q{}return d(t,"config",r),t}const F=class F extends ae{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static isPathSupported(e,n){return Ze(e.network,e.chain)&&G(n.network,n.chain)}static async supportedDestinationTokens(e,n,a){return this.isPathSupported(n,a)?re(e,n,a):[]}async validate(e,n){var i;return F.isPathSupported(e.fromChain,e.toChain)?(i=n.options)!=null&&i.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}:{valid:!1,error:new Error("Can only transfer from a Circle V2 fast chain to a Circle V2 chain"),params:n}}async quote(e,n){var o;const{fromChain:a,toChain:i}=e;try{const c=await se(e,n,this.staticConfig,"ERC2"),{remainingAmount:u,estimatedCost:m,gasDropOff:f,expiryTime:l}=c;if(await yt(a.network)<=u)return{success:!1,error:new Error("Insufficient allowance for fast transfer")};const g=await Et(a.network,a.chain,i.chain),C=(u*g+10000n-1n)/10000n,p=u-C;if(p<=0n)return{success:!1,error:new Error("Amount after fast transfer fee <= 0")};const b=(o=De[a.network])==null?void 0:o[a.chain],[w,A]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(p,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(m,w)},destinationNativeGas:s.fromBaseUnits(f,A),eta:b,expires:l,details:{...c,minFinalityThreshold:$.CONFIRMED,fastTransferMaxFee:C}}}catch(c){return{success:!1,error:new Error(c instanceof Error?c.message:`${c}`)}}}};d(F,"config",{referrerFeeDbps:0n}),d(F,"meta",{name:"CCTPv2FastExecutorRoute",provider:"Circle CCTP"});let Q=F;function vt(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends K{}return d(t,"config",r),t}const v=class v extends ae{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static isPathSupported(e,n){return G(e.network,e.chain)&&G(n.network,n.chain)&&e.chain!=="Linea"}static async supportedDestinationTokens(e,n,a){return this.isPathSupported(n,a)?re(e,n,a):[]}async validate(e,n){var i;return v.isPathSupported(e.fromChain,e.toChain)?(i=n.options)!=null&&i.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}:{valid:!1,error:new Error("Can only transfer between Circle V2 chains"),params:n}}async quote(e,n){const{fromChain:a,toChain:i}=e;try{const o=await se(e,n,this.staticConfig,"ERC2"),{remainingAmount:c,estimatedCost:u,gasDropOff:m,expiryTime:f}=o,l=a.chain==="Polygon"?2e3*200:s.estimateFinalityTime(a.chain)+1e3,[h,g]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(c,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(u,h)},destinationNativeGas:s.fromBaseUnits(m,g),eta:l,expires:f,details:{...o,minFinalityThreshold:$.FINALIZED,fastTransferMaxFee:0n}}}catch(o){return{success:!1,error:new Error(o instanceof Error?o.message:`${o}`)}}}};d(v,"config",{referrerFeeDbps:0n}),d(v,"meta",{name:"CCTPv2StandardExecutorRoute",provider:"Circle CCTP"});let K=v;const{executorTokenBridgeRoute:Tt}=M.routes;exports.cctpExecutorRoute=Dt;exports.cctpV2FastExecutorRoute=Ft;exports.cctpV2StandardExecutorRoute=vt;exports.executorTokenBridgeRoute=Tt;
|
|
1
|
+
"use strict";var Ue=Object.defineProperty;var $e=(r,t,e)=>t in r?Ue(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var d=(r,t,e)=>$e(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./address-DpQlJQKV.js"),le=require("./chunk-KJH4KKG6-HfCF1Kt-.js"),ze=require("./platform-DV62YjSS.js"),M=require("./address-B2sdpJNe.js"),Ve=require("./unsignedTransaction-C1YeEl4G.js"),k=require("./platform-Cl1b31bn.js"),I=require("./contract-DPL0fm8A.js"),Ae=require("./unsignedTransaction-B7AZXsTD.js"),x=require("./platform-Dw5tN12f.js"),Re=require("./index-B7ho7Pb6.js"),Ne=require("./address-CFAt6HNS.js"),Oe=require("./unsignedTransaction-DzSLsK-p.js"),_e=require("./index-D8YqkJyN.js"),Le=require("./index-CJ_ewe88.js"),D=require("./web3-Co7tl8ed.js"),he=require("./unsignedTransaction-D14ic9We.js"),Ge=require("./account-D3Whnyky.js"),qe={binary:"uint",size:1,custom:{to:r=>r>0,from:r=>r?1:0}},We=Object.freeze(Object.defineProperty({__proto__:null,amountItem:s.amountItem,boolItem:qe,chainItem:s.chainItem,circleDomainItem:s.circleDomainItem,circleNonceItem:s.circleNonceItem,dateConversion:s.dateConversion,fixedChainItem:s.fixedChainItem,fixedLengthStringItem:s.fixedLengthStringItem,guardianSetItem:s.guardianSetItem,payloadIdItem:s.payloadIdItem,sequenceItem:s.sequenceItem,signatureItem:s.signatureItem,stringConversion:s.stringConversion,universalAddressItem:s.universalAddressItem},Symbol.toStringTag,{value:"Module"})),j={Testnet:"https://executor-testnet.labsapis.com",Mainnet:"https://executor.labsapis.com"},H={Testnet:{Aptos:"0x14a12d1fd6ef371b70c2113155534ec152ec7f779e281b54866c796c9a4a58d3",Avalanche:"0x2cfEC91B50f657Cc86Ec693542527ac3e03bF742",BaseSepolia:"0x4983C6bD3bB7DA9EECe71cfa7AE4C67CAbf362F0",Sepolia:"0x0F78904c750801391EbBf308181e9d6fc892B0f3",Solana:"CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs"},Mainnet:{Aptos:"0x9f5ad7d5c2d067ca4abb6d8d6aba44c15596b71a1def8eb4596089b527bb2eb1",Arbitrum:"0x55Dd4466BFec29527C54A72fd306efb54e5F7027",Avalanche:"0xd331819478b74d8a7B8EA631118B4a4e50F6EbD1",Base:"0x08FEB1838C3d7F8509DA1EBb9a11a94c1f006cb2",Ethereum:"0xeEFb36c4458dA7798742cf038C5c27E07aB9c51E",Optimism:"0xBC6f9d1CBa49DB365728478cefa02F6743617637",Polygon:"0x007995f2AEcfBC745f20a7AE8D3a02c0EbF46264",Unichain:"0xA7aBDb8f2108901c586543BD5e10E4fA263F4A47",Solana:"CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs"}},Qe={Testnet:{Avalanche:"0x4058F0C3924eDaB19c15597C438968ed49C1a213",BaseSepolia:"0xC400FcC0e92d3406747FBb6f513D3aa8B038fcE9",Sepolia:"0x0F18DD26D0B41fb1eaa9cF34D1Ec6022aA69a8e2"},Mainnet:{Arbitrum:"0x8442d68524217601ed126f6859694E4B0C7c66A1",Avalanche:"0x3952914628650Ca510404872D84DfF10A844C5B5",Base:"0xbd8d42f40a11b37bD1b3770D754f9629F7cd5679",Ethereum:"0x2cCf230467FE7387674BAa657747F0B5485c7fEC",Linea:"0xc48c126468BE919068dE1983F00F65af759a4E87",Optimism:"0xd0a8940b2e743e33b682daec4d52b46713606c9d",Polygon:"0xc8a8e6d760dcbd5d6746e2f66cd2ffa722dd1e59",Unichain:"0xD5D5D640D8b758672Cc7A078734175c4433866d5",Sonic:"0xc39BF082ec91D9bC385F956D24a8D66C0c26223d",Worldchain:"0x789f2b91f7B35D5B890983328340c4600339B354"}},ge={Testnet:{executorId:"0x4000cfe2955d8355b3d3cf186f854fea9f787a457257056926fde1ec977670eb",executorRequestsId:"0x2d9ccf3cce3f7dce408e5455e90b80a8161ad9673d1366c2a5def60ad93657a8"},Mainnet:{executorId:"0xdb0fe8bb1e2b5be628adbea0636063325073e1070ee11e4281457dfd7f158235",executorRequestsId:"0xc030df7a3eed1494fa4b64aa8ab63a79041cf1114f4ff2b7ab5aca1c684a21a7"}},Ke={Testnet:"execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV",Mainnet:"execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV"},je=5001n,He={Testnet:{Aptos:5000n,ArbitrumSepolia:800000n,Avalanche:200000n,BaseSepolia:200000n,Linea:250000n,Sepolia:200000n,Solana:250000n,Sonic:250000n,Sui:8000000n},Mainnet:{Aptos:5000n,Arbitrum:800000n,Avalanche:250000n,Base:250000n,Ethereum:250000n,Linea:250000n,Optimism:250000n,Polygon:250000n,Unichain:250000n,Solana:250000n,Sonic:250000n,Sui:8000000n,Worldchain:250000n}},Xe={Testnet:{ArbitrumSepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Avalanche:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},BaseSepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Linea:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Sepolia:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"},Sonic:{tokenMessengerV2:"0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA",messageTransmitterV2:"0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275"}},Mainnet:{Arbitrum:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Avalanche:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Base:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Ethereum:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Linea:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Optimism:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Polygon:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Unichain:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Sonic:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"},Worldchain:{tokenMessengerV2:"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",messageTransmitterV2:"0x81D40F21F12A8F0E3252Bccb954D722d4c464B64"}}},ye={Testnet:{Sepolia:0,Avalanche:1,OptimismSepolia:2,ArbitrumSepolia:3,Solana:5,BaseSepolia:6,Polygon:7,Sui:8,Aptos:9,Unichain:10},Mainnet:{Ethereum:0,Avalanche:1,Optimism:2,Arbitrum:3,Solana:5,Base:6,Polygon:7,Sui:8,Aptos:9,Unichain:10}},T=(r,t)=>{var e;return((e=ye[r])==null?void 0:e[t])!==void 0},z={Testnet:{Sepolia:0,Avalanche:1,ArbitrumSepolia:3,BaseSepolia:6,Linea:11,Sonic:13},Mainnet:{Ethereum:0,Avalanche:1,Optimism:2,Arbitrum:3,Base:6,Polygon:7,Unichain:10,Linea:11,Sonic:13,Worldchain:14}},G=(r,t)=>{var e;return((e=z[r])==null?void 0:e[t])!==void 0},U=(r,t)=>{var n;const e=(n=z[r])==null?void 0:n[t];if(e===void 0)throw new Error(`CircleV2 domain not found for network ${r} and chain ${t}`);return e},xe=(r,t)=>{var n;const e=(n=Object.entries(z[r]??{}).find(([,a])=>a===t))==null?void 0:n[0];if(e===void 0)throw new Error(`CircleV2 chain not found for network ${r} and domain ${t}`);return e},V={Testnet:"https://iris-api-sandbox.circle.com/v2",Mainnet:"https://iris-api.circle.com/v2"};var $;(function(r){r[r.CONFIRMED=1e3]="CONFIRMED",r[r.FINALIZED=2e3]="FINALIZED"})($||($={}));const De={Testnet:{ArbitrumSepolia:8e3,BaseSepolia:8e3,Sepolia:2e4,Linea:8e3},Mainnet:{Arbitrum:8e3,Base:8e3,Ethereum:2e4,Linea:8e3,Optimism:8e3,Polygon:8e3,Unichain:8e3,Worldchain:8e3}},Ze=(r,t)=>{var e;return((e=De[r])==null?void 0:e[t])!==void 0};class X{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"usdcId");d(this,"shimContract");var c;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=s.usdcContract.get(this.network,this.chain);if(!i)throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);this.usdcId=i;const o=(c=H[t])==null?void 0:c[e];if(!o)throw new Error(`Shim contract for ${e} not found`);this.shimContract=o}static async fromRpc(t,e){const[n,a]=await ze.AptosPlatform.chainFromRpc(t),i=e[a];if(!i)throw new Error(`No config found for ${a}`);if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new X(n,a,t,i.contracts)}async*transfer(t,e,n){var g,C;const a=new M.AptosAddress(t).unwrap(),i=le.l.from(e.address.toUniversalAddress().toUint8Array()),o=le.l.from(this.usdcId),c=n.remainingAmount+n.referrerFee,u=s.circleChainId.get(this.network,e.chain),m=a,f=new M.AptosAddress(((C=(g=n.referrer)==null?void 0:g.address)==null?void 0:C.toString())??a).unwrap(),l=[c,u,i.toString(),o.toString(),n.estimatedCost,s.toChainId(e.chain),m,n.signedQuote,n.relayInstructions,n.referrerFeeDbps,f],h={function:`${this.shimContract}::cctp_v1_with_executor::deposit_for_burn_entry`,functionArguments:l};yield this.createUnsignedTx(h,"AtposCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new Ve.AptosUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(M._platform,"CCTPExecutor",X);class Z{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"shimContract");var o;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");this.chainId=s.networkChainToNativeChainId.get(t,e);const i=(o=H[t])==null?void 0:o[e];if(!i)throw new Error(`Shim contract for ${e} not found`);this.shimContract=i}static async fromRpc(t,e){const[n,a]=await k.EvmPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new Z(n,a,t,i.contracts)}async*transfer(t,e,n){var g,C;const a=new s.EvmAddress(t).toString(),i=e.address.toUniversalAddress().toUint8Array(),o=n.remainingAmount+n.referrerFee,c=s.usdcContract.get(this.network,this.chain),u=k.EvmPlatform.getTokenImplementation(this.provider,c);if(await u.allowance(a,this.shimContract)<o){const p=await u.approve.populateTransaction(this.shimContract,o);yield this.createUnsignedTx(s.addFrom(p,a),"ERC20.approve of EvmCCTPExecutor",!1)}const f=["function depositForBurn(uint256 amount, uint16 destinationChain, uint32 destinationDomain, bytes32 mintRecipient, address burnToken, (address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 nonce)"],h=await new I.Contract(this.shimContract,f,this.provider).getFunction("depositForBurn").populateTransaction(o,s.toChainId(e.chain),s.circleChainId.get(this.network,e.chain),i,c,{refundAddress:a,signedQuote:n.signedQuote,instructions:n.relayInstructions},{dbps:n.referrerFeeDbps,payee:((C=(g=n.referrer)==null?void 0:g.address)==null?void 0:C.toString())??a});h.value=n.estimatedCost,yield this.createUnsignedTx(s.addFrom(h,a),"EvmCCTPExecutor.depositForBurn")}createUnsignedTx(t,e,n=!1){return new Ae.EvmUnsignedTransaction(s.addChainId(t,this.chainId),this.network,this.chain,e,n)}}const{amountItem:S,circleDomainItem:Ce,universalAddressItem:y}=We,Fe={binary:"uint",size:4,custom:1,omit:!1},Je={binary:"bytes",size:32},we={binary:"uint",size:4},Ye=[{name:"version",...Fe},{name:"burnToken",...y},{name:"mintRecipient",...y},{name:"amount",...S},{name:"messageSender",...y},{name:"maxFee",...S},{name:"feeExecuted",...S},{name:"expirationBlock",...S},{name:"hookData",binary:"bytes"}],ve=[{name:"version",...Fe},{name:"sourceDomain",...Ce},{name:"destinationDomain",...Ce},{name:"nonce",...Je},{name:"sender",...y},{name:"recipient",...y},{name:"destinationCaller",...y},{name:"minFinalityThreshold",...we},{name:"finalityThresholdExecuted",...we},{name:"messageBody",binary:"bytes",layout:Ye}],et=r=>s.deserialize$1(ve,r),tt=r=>s.serialize(ve,r),nt=[{name:"gasLimit",binary:"uint",size:16},{name:"msgValue",binary:"uint",size:16}],rt=[{name:"dropOff",binary:"uint",size:16},{name:"recipient",...s.universalAddressItem}],st=[{name:"request",binary:"switch",idSize:1,idTag:"type",layouts:[[[1,"GasInstruction"],nt],[[2,"GasDropOffInstruction"],rt]]}],Te=[{name:"requests",binary:"array",layout:st}],at={to:r=>new Date(Number(r*1000n)),from:r=>BigInt(r.getTime())/1000n},it=[{name:"quote",binary:"switch",idSize:4,idTag:"prefix",layouts:[[[1162948657,"EQ01"],[{name:"quoterAddress",binary:"bytes",size:20},{name:"payeeAddress",binary:"bytes",size:32},{name:"srcChain",binary:"uint",size:2},{name:"dstChain",binary:"uint",size:2},{name:"expiryTime",binary:"uint",size:8,custom:at},{name:"baseFee",binary:"uint",size:8},{name:"dstGasPrice",binary:"uint",size:8},{name:"srcPrice",binary:"uint",size:8},{name:"dstPrice",binary:"uint",size:8}]]]}],Se=[...it,{name:"signature",binary:"bytes",size:65}];class J{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"shimContract");d(this,"messageTransmitter");d(this,"usdcContract");var u,m,f;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPv2Executor not supported on Devnet");this.chainId=s.networkChainToNativeChainId.get(t,e);const i=(u=Qe[t])==null?void 0:u[e];if(!i)throw new Error(`Shim contract for ${e} not found`);this.shimContract=i;const o=(f=(m=Xe[t])==null?void 0:m[e])==null?void 0:f.messageTransmitterV2;if(!o)throw new Error(`MessageTransmitter contract for ${e} not found`);this.messageTransmitter=o;const c=s.usdcContract.get(t,e);if(!c)throw new Error(`USDC contract for ${e} not found`);this.usdcContract=c}static async fromRpc(t,e){const[n,a]=await k.EvmPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new J(n,a,t,i.contracts)}async*transfer(t,e,n){var C,p;const a=new s.EvmAddress(t).toString(),i=e.address.toUniversalAddress().toUint8Array(),o=n.remainingAmount+n.referrerFee,c=k.EvmPlatform.getTokenImplementation(this.provider,this.usdcContract);if(await c.allowance(a,this.shimContract)<o){const b=await c.approve.populateTransaction(this.shimContract,o);yield this.createUnsignedTx(s.addFrom(b,a),"ERC20.approve of EvmCCTPv2Executor",!1)}const m=["function depositForBurn(uint256 amount, uint16 destinationChain, uint32 destinationDomain, bytes32 mintRecipient, address burnToken, bytes32 destinationCaller, uint256 maxFee, uint32 minFinalityThreshold, (address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 nonce)"],f=new Uint8Array(32),l=new I.Contract(this.shimContract,m,this.provider),h=U(this.network,e.chain),g=await l.getFunction("depositForBurn").populateTransaction(o,s.toChainId(e.chain),h,i,this.usdcContract,f,n.fastTransferMaxFee,n.minFinalityThreshold,{refundAddress:a,signedQuote:n.signedQuote,instructions:n.relayInstructions},{dbps:n.referrerFeeDbps,payee:((p=(C=n.referrer)==null?void 0:C.address)==null?void 0:p.toString())??a});g.value=n.estimatedCost,yield this.createUnsignedTx(s.addFrom(g,a),"EvmCCTPv2Executor.depositForBurn")}async isTransferCompleted(t){return await new I.Contract(this.messageTransmitter,["function usedNonces(bytes32) public view returns (uint256)"],this.provider).getFunction("usedNonces").staticCall(t.nonce)===1n}async*redeem(t,e,n){const a=new s.EvmAddress(t).toString(),o=await new I.Contract(this.messageTransmitter,["function receiveMessage(bytes message, bytes attestation)"],this.provider).getFunction("receiveMessage").populateTransaction(tt(e),s.hex.decode(n));yield this.createUnsignedTx(s.addFrom(o,a),"MessageTransmitterV2.receiveMessage")}async getCurrentBlock(){return BigInt(await this.provider.getBlockNumber())}createUnsignedTx(t,e,n=!1){return new Ae.EvmUnsignedTransaction(s.addChainId(t,this.chainId),this.network,this.chain,e,n)}}s.registerProtocol(s._platform,"CCTPExecutor",Z);s.registerProtocol(s._platform,"CCTPv2Executor",J);class Y{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"usdcId");d(this,"usdcTreasuryId");d(this,"tokenMessengerId");d(this,"tokenMessengerStateId");d(this,"messageTransmitterId");d(this,"messageTransmitterStateId");d(this,"executorId");d(this,"executorRequestsId");var m,f,l,h;if(this.network=t,this.chain=e,this.provider=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=(g,C)=>{if(!g)throw new Error(C);return g};this.usdcId=i(s.usdcContract.get(this.network,this.chain),`No USDC contract configured for network=${this.network} chain=${this.chain}`);const{tokenMessengerState:o,messageTransmitterState:c,usdcTreasury:u}=Re.suiCircleObjects(t);this.usdcTreasuryId=u,this.tokenMessengerId=i((m=a.cctp)==null?void 0:m.tokenMessenger,`Circle Token Messenger contract for domain ${e} not found`),this.messageTransmitterId=i((f=a.cctp)==null?void 0:f.messageTransmitter,`Circle Message Transmitter contract for domain ${e} not found`),this.tokenMessengerStateId=o,this.messageTransmitterStateId=c,this.executorId=i((l=ge[t])==null?void 0:l.executorId,`Executor contract for ${t} not found`),this.executorRequestsId=i((h=ge[t])==null?void 0:h.executorRequestsId,`Executor requests contract for ${t} not found`)}static async fromRpc(t,e){const[n,a]=await x.SuiPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new Y(n,a,t,i.contracts)}async*transfer(t,e,n){const a=new x.Transaction,i=new Ne.SuiAddress(t).unwrap(),o=s.circleChainId.get(this.network,e.chain),[c,...u]=await x.SuiPlatform.getCoins(this.provider,t,this.usdcId);if(c===void 0)throw new Error("No USDC in wallet");const m=a.object(c.coinObjectId);u.length>0&&a.mergeCoins(m,u.map(w=>a.object(w.coinObjectId)));let f;if(n.referrerFee>0n){const[w,A]=a.splitCoins(m,[n.remainingAmount,n.referrerFee]);f=w,a.transferObjects([A],n.referrer?s.canonicalAddress(n.referrer):i)}else{const[w]=a.splitCoins(m,[n.remainingAmount]);f=w}const[l,h]=a.moveCall({target:`${this.tokenMessengerId}::deposit_for_burn::deposit_for_burn`,arguments:[f,a.pure.u32(o),a.pure.address(e.address.toUniversalAddress().toString()),a.object(this.tokenMessengerStateId),a.object(this.messageTransmitterStateId),a.object("0x403"),a.object(this.usdcTreasuryId)],typeArguments:[this.usdcId]}),[g]=a.moveCall({target:`${this.messageTransmitterId}::message::source_domain`,arguments:[h]}),[C]=a.moveCall({target:`${this.messageTransmitterId}::message::nonce`,arguments:[h]}),[p]=a.moveCall({target:`${this.executorRequestsId}::executor_requests::make_cctp_v1_request`,arguments:[g,C]}),[b]=a.splitCoins(a.gas,[a.pure.u64(n.estimatedCost)]);a.moveCall({target:`${this.executorId}::executor::request_execution`,arguments:[b,a.object(x.SUI_CLOCK_OBJECT_ID),a.pure.u16(s.toChainId(e.chain)),a.pure.address("0x0"),a.pure.address(i),a.pure.vector("u8",n.signedQuote),p,a.pure.vector("u8",n.relayInstructions)]}),yield this.createUnsignedTx(a,"SuiCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new Oe.SuiUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(x._platform,"CCTPExecutor",Y);const R=new s.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new s.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const ee=new s.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new s.PublicKey("So11111111111111111111111111111111111111112");new s.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class ot extends Error{constructor(t){super(t)}}class ct extends ot{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}var q;(function(r){r[r.InitializeMint=0]="InitializeMint",r[r.InitializeAccount=1]="InitializeAccount",r[r.InitializeMultisig=2]="InitializeMultisig",r[r.Transfer=3]="Transfer",r[r.Approve=4]="Approve",r[r.Revoke=5]="Revoke",r[r.SetAuthority=6]="SetAuthority",r[r.MintTo=7]="MintTo",r[r.Burn=8]="Burn",r[r.CloseAccount=9]="CloseAccount",r[r.FreezeAccount=10]="FreezeAccount",r[r.ThawAccount=11]="ThawAccount",r[r.TransferChecked=12]="TransferChecked",r[r.ApproveChecked=13]="ApproveChecked",r[r.MintToChecked=14]="MintToChecked",r[r.BurnChecked=15]="BurnChecked",r[r.InitializeAccount2=16]="InitializeAccount2",r[r.SyncNative=17]="SyncNative",r[r.InitializeAccount3=18]="InitializeAccount3",r[r.InitializeMultisig2=19]="InitializeMultisig2",r[r.InitializeMint2=20]="InitializeMint2",r[r.GetAccountDataSize=21]="GetAccountDataSize",r[r.InitializeImmutableOwner=22]="InitializeImmutableOwner",r[r.AmountToUiAmount=23]="AmountToUiAmount",r[r.UiAmountToAmount=24]="UiAmountToAmount",r[r.InitializeMintCloseAuthority=25]="InitializeMintCloseAuthority",r[r.TransferFeeExtension=26]="TransferFeeExtension",r[r.ConfidentialTransferExtension=27]="ConfidentialTransferExtension",r[r.DefaultAccountStateExtension=28]="DefaultAccountStateExtension",r[r.Reallocate=29]="Reallocate",r[r.MemoTransferExtension=30]="MemoTransferExtension",r[r.CreateNativeMint=31]="CreateNativeMint",r[r.InitializeNonTransferableMint=32]="InitializeNonTransferableMint",r[r.InterestBearingMintExtension=33]="InterestBearingMintExtension",r[r.CpiGuardExtension=34]="CpiGuardExtension",r[r.InitializePermanentDelegate=35]="InitializePermanentDelegate",r[r.TransferHookExtension=36]="TransferHookExtension",r[r.MetadataPointerExtension=39]="MetadataPointerExtension"})(q||(q={}));function dt(r,t,e){if(e.length){r.push({pubkey:t,isSigner:!1,isWritable:!1});for(const n of e)r.push({pubkey:n instanceof s.PublicKey?n:n.publicKey,isSigner:!0,isWritable:!1})}else r.push({pubkey:t,isSigner:!0,isWritable:!1});return r}const ut=s.struct([s.u32("mintAuthorityOption"),D.publicKey("mintAuthority"),D.u64("supply"),s.u8("decimals"),D.bool("isInitialized"),s.u32("freezeAuthorityOption"),D.publicKey("freezeAuthority")]);ut.span;function pe(r,t,e=!1,n=R,a=ee){if(!e&&!s.PublicKey.isOnCurve(t.toBuffer()))throw new ct;const[i]=s.PublicKey.findProgramAddressSync([t.toBuffer(),n.toBuffer(),r.toBuffer()],a);return i}function mt(r,t,e,n,a=R,i=ee){return ft(r,t,e,n,s.dist.Buffer.from([1]),a,i)}function ft(r,t,e,n,a,i=R,o=ee){const c=[{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:s.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];return new s.TransactionInstruction({keys:c,programId:o,data:a})}const be=s.struct([s.u8("instruction"),D.u64("amount")]);function lt(r,t,e,n,a=[],i=R){const o=dt([{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],e,a),c=s.dist.Buffer.alloc(be.span);return be.encode({instruction:q.Transfer,amount:BigInt(n)},c),new s.TransactionInstruction({keys:o,programId:i,data:c})}const ht={version:"0.1.0",name:"example_cctp_with_executor",instructions:[{name:"relayLastMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"payee",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!1,isSigner:!1},{name:"executorProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"relayLastMessageArgs"}}]}],types:[{name:"relayLastMessageArgs",type:{kind:"struct",fields:[{name:"recipientChain",type:"u16"},{name:"execAmount",type:"u64"},{name:"signedQuoteBytes",type:"bytes"},{name:"relayInstructions",type:"bytes"}]}}]};class te{constructor(t,e,n,a){d(this,"network");d(this,"chain");d(this,"connection");d(this,"contracts");d(this,"tokenMessengerProgramId");d(this,"messageTransmitterProgramId");d(this,"shimProgramId");d(this,"executorProgramId");var o,c,u;if(this.network=t,this.chain=e,this.connection=n,this.contracts=a,t==="Devnet")throw new Error("CCTPExecutor not supported on Devnet");const i=(m,f)=>{if(!m)throw new Error(f);return new s.PublicKey(m)};this.tokenMessengerProgramId=i((o=a.cctp)==null?void 0:o.tokenMessenger,`Circle Token Messenger contract for domain ${e} not found`),this.messageTransmitterProgramId=i((c=a.cctp)==null?void 0:c.messageTransmitter,`Circle Message Transmitter contract for domain ${e} not found`),this.shimProgramId=i((u=H[t])==null?void 0:u[e],`Shim contract for ${e} not found`),this.executorProgramId=i(Ke[t],`Executor contract for ${t} not found`)}static async fromRpc(t,e){const[n,a]=await he.SolanaPlatform.chainFromRpc(t),i=e[a];if(i.network!==n)throw new Error(`Network mismatch: ${i.network} != ${n}`);return new te(n,a,t,i.contracts)}async*transfer(t,e,n){var p,b;const a=new s.PublicKey(s.usdcContract.get(this.network,this.chain)),i=new s.SolanaAddress(t).unwrap(),o=pe(a,i),c=new s.SolanaAddress(((b=(p=n.referrer)==null?void 0:p.address)==null?void 0:b.toString())??i).unwrap(),u=new s.Transaction;if(u.feePayer=i,n.referrerFee>0n){const w=pe(a,c,!0);await this.connection.getAccountInfo(w)||u.add(mt(i,w,c,a)),u.add(lt(o,w,i,n.referrerFee))}const m=s.circleChainId.get(this.network,e.chain),f=e.address.toUniversalAddress(),l=s.Keypair.generate();u.add(await _e.createDepositForBurnInstruction(this.messageTransmitterProgramId,this.tokenMessengerProgramId,a,m,i,o,f,n.remainingAmount,l.publicKey));const h=new Le.Program(ht,this.shimProgramId,{connection:null}),g=s.deserialize$1(Se,n.signedQuote),C=Ge.deriveAddress("message_transmitter",this.messageTransmitterProgramId);u.add(await h.methods.relayLastMessage({execAmount:new s.BN(n.estimatedCost.toString()),recipientChain:s.toChainId(e.chain),signedQuoteBytes:s.dist.Buffer.from(n.signedQuote),relayInstructions:s.dist.Buffer.from(n.relayInstructions)}).accounts({payer:i,messageTransmitter:C,payee:new s.PublicKey(g.quote.payeeAddress),executorProgram:this.executorProgramId}).instruction()),yield this.createUnsignedTx({transaction:u,signers:[l]},"SvmCCTPExecutor.Transfer")}createUnsignedTx(t,e,n=!1){return new he.SolanaUnsignedTransaction(t,this.network,this.chain,e,n)}}s.registerProtocol(s._platform$1,"CCTPExecutor",te);var E;(function(r){r.Pending="pending",r.Failed="failed",r.Unsupported="unsupported",r.Submitted="submitted",r.Underpaid="underpaid",r.Aborted="aborted"})(E||(E={}));var Ee;(function(r){r.ERM1="ERM1",r.ERV1="ERV1",r.ERN1="ERN1",r.ERC1="ERC1",r.ERC2="ERC2"})(Ee||(Ee={}));async function gt(r){const t=`${j[r]}/v0/capabilities`;try{return(await s.axios.get(t)).data}catch{throw new Error(`Failed to fetch capabilities for network: ${r}.`)}}async function Ct(r,t,e,n){const a=`${j[r]}/v0/quote`;try{return(await s.axios.post(a,{srcChain:s.toChainId(t),dstChain:s.toChainId(e),relayInstructions:n})).data}catch{throw new Error("Failed to fetch signed quote.")}}async function ne(r,t,e){const n=`${j[r]}/v0/status/tx`;try{return(await s.axios.post(n,{txHash:t,chainId:s.toChainId(e)})).data}catch{throw new Error(`Failed to fetch status for txHash: ${t}.`)}}const wt=65535n;function pt(r,t,e){if(t>wt)throw new Error("dBps exceeds max u16");let n=t,a=r,i=0n;if(t>0){if(e!==void 0&&r>0){const o=s.parse(e.toString(),6),c=s.units(o)/r,u=t<c?t:c;i=r*u/100000n,n=u}else i=r*t/100000n;a=r-i}return{referrerFee:i,remainingAmount:a,referrerFeeDbps:n}}function bt(r){return new Promise(t=>setTimeout(t,r))}async function W(r,t,e=s.DEFAULT_TASK_TIMEOUT){const n=U(t,r.chain);return s.retry(async()=>{var i;const a=`${V[t]}/messages/${n}?transactionHash=${r.txid}`;try{const c=(await s.axios.get(a)).data.messages[0];if(!c)return null;if(c.cctpVersion!==2)throw new Error("CCTPv1 attestation found");return c.status==="pending_confirmations"?null:{message:et(s.hex.decode(c.message)),attestation:c.attestation}}catch(o){if(!o||typeof o=="object"&&(s.axios.isAxiosError(o)&&((i=o.response)==null?void 0:i.status)===404||"status"in o&&o.status===404))return null;throw o}},2e3,e,"CCTPv2:GetMessage")}async function Et(r,t,e){const n=U(r,t),a=U(r,e),i=`${V[r]}/fastBurn/USDC/fees/${n}/${a}`,o=await s.axios.get(i);return BigInt(o.data.minimumFee)}async function At(r,t){const e=s.hex.encode(t.attestation.message.nonce,!0),n=`${V[r]}/reattest/${e}`,a=await s.axios.post(n);if(a.data.error){if(a.data.error.includes("Message is already finalized"))return t.attestation;throw new Error(`Error re-attesting message: ${a.data.error}`)}const i=xe(r,t.attestation.message.sourceDomain);return s.retry(async()=>{const o=await W({txid:t.id,chain:i},r);return!o||o.message.messageBody.expirationBlock!==0n?null:o},2e3,s.DEFAULT_TASK_TIMEOUT,"CCTPv2:Reattest")}async function yt(r){const t=`${V[r]}/fastBurn/USDC/allowance`,e=await s.axios.get(t);return s.units(s.parse(e.data.allowance,6))}function re(r,t,e){const n=s.usdcContract.get(t.network,t.chain);if(!(n&&s.isSameToken(r,s.Wormhole.tokenId(t.chain,n))))return[];const{network:a,chain:i}=e,o=s.usdcContract.get(a,i);return o?[s.Wormhole.chainAddress(i,o)]:[]}let B;async function se(r,t,e,n){var de,ue,me;const{fromChain:a,toChain:i}=r;if(!s.usdcContract.get(a.network,a.chain))throw new Error("Invalid transfer, no USDC contract on source");const c=s.usdcContract.get(i.network,i.chain);if(!c)throw new Error("Invalid transfer, no USDC contract on destination");let u;if(e.referrerFeeDbps>0n&&(u=(ue=(de=e.referrerAddresses)==null?void 0:de[a.network])==null?void 0:ue[a.chain],!u))throw new Error(`Referrer address not configured for ${a.chain}`);const m=u?s.Wormhole.chainAddress(a.chain,u):void 0,{referrerFee:f,remainingAmount:l,referrerFeeDbps:h}=pt(s.units(t.normalizedParams.amount),e.referrerFeeDbps,e.referrerFeeThreshold);if(l<=0n)throw new Error("Amount after fee <= 0");const g=(me=He[i.network])==null?void 0:me[i.chain];if(!g)throw new Error("Gas limit not found");const C=await gt(a.network);if(!C[s.toChainId(a.chain)])throw new Error("Unsupported source chain");const b=C[s.toChainId(i.chain)];if(!b||!b.requestPrefixes.includes(n))throw new Error("Unsupported destination chain");const{recipient:w}=r;let A=!0;if(w&&i.chain==="Solana"){const Me=s.Wormhole.parseAddress("Solana",c),ke=await i.getTokenAccount(w.address,Me),fe=await i.getRpc();A=await fe.getAccountInfo(new s.SolanaAddress(ke.address).unwrap())!==null,!A&&!B&&(B=BigInt(await fe.getMinimumBalanceForRentExemption(165)))}let N=0n;i.chain==="Solana"&&(N+=je,!A&&B&&(N+=B));const O=[];O.push({request:{type:"GasInstruction",gasLimit:g,msgValue:N}});const ie=BigInt(b.gasDropOffLimit),_=t.options.nativeGas&&ie>0n?BigInt(Math.round(t.options.nativeGas*100))*ie/100n:0n;(_>0n||!A)&&O.push({request:{type:"GasDropOffInstruction",dropOff:_,recipient:w?w.address.toUniversalAddress():new s.UniversalAddress(new Uint8Array(32))}});const oe=s.serialize(Te,{requests:O}),L=await Ct(a.network,a.chain,i.chain,s.hex.encode(oe,!0));if(!L.estimatedCost)throw new Error("No estimated cost");const ce=s.hex.decode(L.signedQuote),Ie=s.deserialize$1(Se,ce),Pe=BigInt(L.estimatedCost);return{signedQuote:ce,relayInstructions:oe,estimatedCost:Pe,referrer:m,referrerFee:f,remainingAmount:l,referrerFeeDbps:h,expiryTime:Ie.quote.expiryTime,gasDropOff:_}}async function Be(r,t,e,n){s.deserialize$1(Te,n.details.relayInstructions).requests.forEach(({request:l})=>{if(l.type==="GasDropOffInstruction"&&!l.recipient.equals(e.address.toUniversalAddress()))throw new Error("Gas drop-off recipient does not match")});const i=s.Wormhole.parseAddress(t.chain(),t.address()),o=await xt(e,r);let c;n.protocol==="CCTPExecutor"?c=await(await r.fromChain.getProtocol(n.protocol)).transfer(i,o,n.details):c=await(await r.fromChain.getProtocol(n.protocol)).transfer(i,o,n.details);const u=await s.signSendWait(r.fromChain,c,t);let m=0;return(async()=>{for(;m<20;){try{const[l]=await ne(r.fromChain.network,u.at(-1).txid,r.fromChain.chain);if(l)break}catch{}m++,await bt(2e3)}})(),{from:r.fromChain.chain,to:r.toChain.chain,state:s.TransferState.SourceInitiated,originTxs:u}}async function xt(r,t){if(r.chain!=="Solana")return r;const e=s.usdcContract.get(t.toChain.network,t.toChain.chain);if(!e)throw new Error("No USDC contract found for Solana");const n=s.Wormhole.parseAddress("Solana",e);return t.toChain.getTokenAccount(r.address,n)}function Dt(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends P{}return d(t,"config",r),t}class P extends s.AutomaticRoute{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(e){return[...Object.keys(ye[e]??{})]}static async supportedDestinationTokens(e,n,a){return!T(n.network,n.chain)||!T(a.network,a.chain)?[]:re(e,n,a)}getDefaultOptions(){return{nativeGas:0}}async validate(e,n){var c;const{fromChain:a,toChain:i}=e;return!T(a.network,a.chain)||!T(i.network,i.chain)?{valid:!1,error:new Error("Unsupported source or destination chain"),params:n}:(c=n.options)!=null&&c.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}}async quote(e,n){const{fromChain:a,toChain:i}=e;try{const o=await se(e,n,this.staticConfig,"ERC1"),{remainingAmount:c,estimatedCost:u,gasDropOff:m,expiryTime:f}=o,l=a.chain==="Polygon"?2e3*200:s.estimateFinalityTime(a.chain)+1e3,[h,g]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(c,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(u,h)},destinationNativeGas:s.fromBaseUnits(m,g),eta:l,expires:f,details:o}}catch(o){return{success:!1,error:new Error(o instanceof Error?o.message:`${o}`)}}}async initiate(e,n,a,i){if(!a.details)throw new Error("Missing quote details");return await Be(e,n,i,{protocol:"CCTPExecutor",details:a.details})}async*track(e,n){if(s.isCompleted(e)||s.isFailed(e))return e;let a=n||60*60*1e3;for(;a>0;){const i=Date.now();if(s.isSourceInitiated(e)||s.isSourceFinalized(e)||s.isAttested(e))try{const[o]=await ne(this.wh.network,e.originTxs.at(-1).txid,e.from);if(!o)throw new Error("No transaction status found");const c=o==null?void 0:o.status;if((c===E.Failed||c===E.Underpaid||c===E.Unsupported||c===E.Aborted)&&(e={...e,state:s.TransferState.Failed,error:new s.RelayFailedError(`Relay failed with status: ${c}`)}),c===E.Submitted&&(e={...e,state:s.TransferState.DestinationFinalized,attestation:{id:o.id,attestation:{}}}),yield e,s.isCompleted(e)||s.isFailed(e))return e}catch(o){console.error(`Error fetching transaction status: ${o.message||o}`)}await new Promise(o=>setTimeout(o,3e3)),a-=Date.now()-i}return e}}d(P,"NATIVE_GAS_DROPOFF_SUPPORTED",!0),d(P,"config",{referrerFeeDbps:0n}),d(P,"meta",{name:"CCTPExecutorRoute",provider:"Circle CCTP"});class ae extends s.AutomaticRoute{static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(t){return Object.keys(z[t]??{})}getDefaultOptions(){return{nativeGas:0}}async initiate(t,e,n,a){if(!n.details)throw new Error("Missing quote details");return await Be(t,e,a,{protocol:"CCTPv2Executor",details:n.details})}async*track(t,e){if(s.isCompleted(t))return t;let n=e||60*60*1e3;for(;n>0;){const a=Date.now();if(s.isSourceInitiated(t)||s.isSourceFinalized(t)||s.isAttested(t)||s.isFailed(t))try{const i=t.originTxs.at(-1).txid;if(s.isSourceInitiated(t)||s.isSourceFinalized(t)){const o=await W({chain:t.from,txid:i},this.wh.network);o&&(t={...t,state:s.TransferState.Attested,attestation:{id:i,attestation:o}}),yield t}if(s.isAttested(t)){const[o]=await ne(this.wh.network,i,t.from);if(!o)throw new Error("No transaction status found");const c=o==null?void 0:o.status;c===E.Submitted?t={...t,state:s.TransferState.DestinationFinalized}:(c===E.Failed||c===E.Underpaid||c===E.Unsupported||c===E.Aborted)&&(t={...t,state:s.TransferState.Failed,error:new s.RelayFailedError(`Relay failed with status: ${c}`)})}if(s.isFailed(t)){if(!t.attestation)throw new Error("Receipt is missing attestation");const o=t.attestation;await(await this.wh.getChain(t.to).getProtocol("CCTPv2Executor")).isTransferCompleted(o.attestation.message)&&(t={...t,state:s.TransferState.DestinationFinalized,attestation:o})}if(yield t,s.isCompleted(t))return t}catch(i){console.error(`Error fetching transaction status: ${i.message||i}`)}await new Promise(i=>setTimeout(i,3e3)),n-=Date.now()-a}return t}async complete(t,e){if(!s.isAttested(e)&&!s.isFailed(e))throw new Error("Transfer is not attested");if(!e.attestation)throw new Error("No attestation found");const n=this.wh.getChain(e.to),a=await n.getProtocol("CCTPv2Executor");let{attestation:i,message:o}=e.attestation.attestation;const{expirationBlock:c}=o.messageBody,u=await a.getCurrentBlock();if(c!==0n&&c<u){const h=await At(n.network,e.attestation);if(!h)throw new Error("Failed to reattest message");i=h.attestation,o=h.message}const m=s.Wormhole.parseAddress(t.chain(),t.address()),f=a.redeem(m,o,i),l=await s.signSendWait(this.wh.getChain(e.to),f,t);return{...e,state:s.TransferState.DestinationInitiated,attestation:e.attestation,destinationTxs:l}}async resume(t){const e=await W(t,this.wh.network);if(!e)throw new Error("No attestation found");const{message:n}=e,a=xe(this.wh.network,n.destinationDomain);return await(await this.wh.getChain(a).getProtocol("CCTPv2Executor")).isTransferCompleted(n)?{from:t.chain,to:a,state:s.TransferState.DestinationFinalized,originTxs:[t],attestation:{id:t.txid,attestation:e}}:{from:t.chain,to:a,state:s.TransferState.Attested,originTxs:[t],attestation:{id:t.txid,attestation:e}}}}d(ae,"NATIVE_GAS_DROPOFF_SUPPORTED",!0);function Ft(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends Q{}return d(t,"config",r),t}const F=class F extends ae{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static isPathSupported(e,n){return Ze(e.network,e.chain)&&G(n.network,n.chain)}static async supportedDestinationTokens(e,n,a){return this.isPathSupported(n,a)?re(e,n,a):[]}async validate(e,n){var i;return F.isPathSupported(e.fromChain,e.toChain)?(i=n.options)!=null&&i.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}:{valid:!1,error:new Error("Can only transfer from a Circle V2 fast chain to a Circle V2 chain"),params:n}}async quote(e,n){var o;const{fromChain:a,toChain:i}=e;try{const c=await se(e,n,this.staticConfig,"ERC2"),{remainingAmount:u,estimatedCost:m,gasDropOff:f,expiryTime:l}=c;if(await yt(a.network)<=u)return{success:!1,error:new Error("Insufficient allowance for fast transfer")};const g=await Et(a.network,a.chain,i.chain),C=(u*g+10000n-1n)/10000n,p=u-C;if(p<=0n)return{success:!1,error:new Error("Amount after fast transfer fee <= 0")};const b=(o=De[a.network])==null?void 0:o[a.chain],[w,A]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(p,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(m,w)},destinationNativeGas:s.fromBaseUnits(f,A),eta:b,expires:l,details:{...c,minFinalityThreshold:$.CONFIRMED,fastTransferMaxFee:C}}}catch(c){return{success:!1,error:new Error(c instanceof Error?c.message:`${c}`)}}}};d(F,"config",{referrerFeeDbps:0n}),d(F,"meta",{name:"CCTPv2FastExecutorRoute",provider:"Circle CCTP"});let Q=F;function vt(r={referrerFeeDbps:0n}){if(r.referrerFeeDbps<0||r.referrerFeeDbps>65535n)throw new Error("Referrer fee must be between 0 and 65535");class t extends K{}return d(t,"config",r),t}const v=class v extends ae{constructor(){super(...arguments);d(this,"staticConfig",this.constructor.config)}static isPathSupported(e,n){return G(e.network,e.chain)&&G(n.network,n.chain)&&e.chain!=="Linea"}static async supportedDestinationTokens(e,n,a){return this.isPathSupported(n,a)?re(e,n,a):[]}async validate(e,n){var i;return v.isPathSupported(e.fromChain,e.toChain)?(i=n.options)!=null&&i.nativeGas&&(n.options.nativeGas<0||n.options.nativeGas>1)?{valid:!1,error:new Error("Invalid native gas percentage"),params:n}:{valid:!0,params:{normalizedParams:{amount:e.parseAmount(n.amount)},options:n.options??this.getDefaultOptions(),...n}}:{valid:!1,error:new Error("Can only transfer between Circle V2 chains"),params:n}}async quote(e,n){const{fromChain:a,toChain:i}=e;try{const o=await se(e,n,this.staticConfig,"ERC2"),{remainingAmount:c,estimatedCost:u,gasDropOff:m,expiryTime:f}=o,l=a.chain==="Polygon"?2e3*200:s.estimateFinalityTime(a.chain)+1e3,[h,g]=await Promise.all([a.getDecimals("native"),i.getDecimals("native")]);return{success:!0,params:n,sourceToken:{token:e.source.id,amount:n.normalizedParams.amount},destinationToken:{token:e.destination.id,amount:s.fromBaseUnits(c,e.destination.decimals)},relayFee:{token:s.nativeTokenId(a.chain),amount:s.fromBaseUnits(u,h)},destinationNativeGas:s.fromBaseUnits(m,g),eta:l,expires:f,details:{...o,minFinalityThreshold:$.FINALIZED,fastTransferMaxFee:0n}}}catch(o){return{success:!1,error:new Error(o instanceof Error?o.message:`${o}`)}}}};d(v,"config",{referrerFeeDbps:0n}),d(v,"meta",{name:"CCTPv2StandardExecutorRoute",provider:"Circle CCTP"});let K=v;const{executorTokenBridgeRoute:Tt}=M.routes;exports.cctpExecutorRoute=Dt;exports.cctpV2FastExecutorRoute=Ft;exports.cctpV2StandardExecutorRoute=vt;exports.executorTokenBridgeRoute=Tt;
|
package/lib/executor.mjs
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
var wt = Object.defineProperty;
|
|
2
2
|
var Ct = (s, t, e) => t in s ? wt(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
|
|
3
3
|
var c = (s, t, e) => Ct(s, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
-
import { aW as bt, as as Et, aX as At, aY as yt, aZ as xt, a_ as Dt, a$ as Ft, b0 as vt, b1 as Bt, b2 as Tt, b3 as St, b4 as Pt, aq as
|
|
5
|
-
import { l as
|
|
6
|
-
import { A as Nt } from "./platform-
|
|
7
|
-
import { d as ke, _ as _t, r as Ot } from "./address-
|
|
8
|
-
import { A as
|
|
9
|
-
import { E as
|
|
10
|
-
import { C as N } from "./contract-
|
|
4
|
+
import { aW as bt, as as Et, aX as At, aY as yt, aZ as xt, a_ as Dt, a$ as Ft, b0 as vt, b1 as Bt, b2 as Tt, b3 as St, b4 as Pt, aq as Le, D as y, b5 as j, aw as x, aE as U, y as Ge, ay as te, aB as S, aC as Qe, au as We, aI as q, k, aF as je, o as It, P as E, a3 as qe, an as Ie, a6 as Ke, d as O, $ as Mt, a4 as Xe, aL as ne, aM as kt, a0 as Ut, b6 as Vt, aN as zt, A as $t, W as B, aT as v, b7 as Ze, F as ue, G as He, b8 as Je, U as Rt, aS as Ye, T as A, ad as et, aQ as tt, u as F, J as me, O as L, V as P, al as se, am as ae, Q as R, R as nt } from "./address-YYxpimx3.mjs";
|
|
5
|
+
import { l as Me } from "./chunk-KJH4KKG6-DTOJZuhY.mjs";
|
|
6
|
+
import { A as Nt } from "./platform-pX0KL6zm.mjs";
|
|
7
|
+
import { d as ke, _ as _t, r as Ot } from "./address-DPWm1fbw.mjs";
|
|
8
|
+
import { A as Lt } from "./unsignedTransaction-BDOQhqcZ.mjs";
|
|
9
|
+
import { E as G } from "./platform-bCY3DvqI.mjs";
|
|
10
|
+
import { C as N } from "./contract-CjL0DzEO.mjs";
|
|
11
11
|
import { E as st } from "./unsignedTransaction-C0V0UbsS.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import { suiCircleObjects as jt } from "./index-
|
|
14
|
-
import { S as qt } from "./address-
|
|
12
|
+
import { w as Ue, T as Gt, v as Qt, _ as Wt } from "./platform-mkzPOtcO.mjs";
|
|
13
|
+
import { suiCircleObjects as jt } from "./index-Cd2G9Q0O.mjs";
|
|
14
|
+
import { S as qt } from "./address-CZArADcj.mjs";
|
|
15
15
|
import { S as Kt } from "./unsignedTransaction-BD81leu1.mjs";
|
|
16
|
-
import { createDepositForBurnInstruction as Xt } from "./index-
|
|
17
|
-
import { P as Zt } from "./index-
|
|
18
|
-
import { p as Ve, u as at, b as Ht } from "./web3-
|
|
19
|
-
import { a as Jt, S as Yt } from "./unsignedTransaction-
|
|
20
|
-
import { d as en } from "./account-
|
|
16
|
+
import { createDepositForBurnInstruction as Xt } from "./index-BQuPDPUZ.mjs";
|
|
17
|
+
import { P as Zt } from "./index-uuu1viWa.mjs";
|
|
18
|
+
import { p as Ve, u as at, b as Ht } from "./web3-C7dEQmtr.mjs";
|
|
19
|
+
import { a as Jt, S as Yt } from "./unsignedTransaction-BHbKxuLa.mjs";
|
|
20
|
+
import { d as en } from "./account-BXlWsVcD.mjs";
|
|
21
21
|
const tn = {
|
|
22
22
|
binary: "uint",
|
|
23
23
|
size: 1,
|
|
@@ -40,7 +40,7 @@ const tn = {
|
|
|
40
40
|
sequenceItem: Tt,
|
|
41
41
|
signatureItem: St,
|
|
42
42
|
stringConversion: Pt,
|
|
43
|
-
universalAddressItem:
|
|
43
|
+
universalAddressItem: Le
|
|
44
44
|
}, Symbol.toStringTag, { value: "Module" })), fe = {
|
|
45
45
|
Testnet: "https://executor-testnet.labsapis.com",
|
|
46
46
|
Mainnet: "https://executor.labsapis.com"
|
|
@@ -313,7 +313,7 @@ class he {
|
|
|
313
313
|
}
|
|
314
314
|
async *transfer(t, e, n) {
|
|
315
315
|
var h, g;
|
|
316
|
-
const a = new ke(t).unwrap(), r =
|
|
316
|
+
const a = new ke(t).unwrap(), r = Me.from(e.address.toUniversalAddress().toUint8Array()), i = Me.from(this.usdcId), o = n.remainingAmount + n.referrerFee, d = j.get(this.network, e.chain), u = a, m = new ke(((g = (h = n.referrer) == null ? void 0 : h.address) == null ? void 0 : g.toString()) ?? a).unwrap(), f = [
|
|
317
317
|
o,
|
|
318
318
|
d,
|
|
319
319
|
r.toString(),
|
|
@@ -332,7 +332,7 @@ class he {
|
|
|
332
332
|
yield this.createUnsignedTx(l, "AtposCCTPExecutor.Transfer");
|
|
333
333
|
}
|
|
334
334
|
createUnsignedTx(t, e, n = !1) {
|
|
335
|
-
return new
|
|
335
|
+
return new Lt(t, this.network, this.chain, e, n);
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
338
|
U(_t, "CCTPExecutor", he);
|
|
@@ -347,21 +347,21 @@ class ge {
|
|
|
347
347
|
var i;
|
|
348
348
|
if (this.network = t, this.chain = e, this.provider = n, this.contracts = a, t === "Devnet")
|
|
349
349
|
throw new Error("CCTPExecutor not supported on Devnet");
|
|
350
|
-
this.chainId =
|
|
350
|
+
this.chainId = Ge.get(t, e);
|
|
351
351
|
const r = (i = le[t]) == null ? void 0 : i[e];
|
|
352
352
|
if (!r)
|
|
353
353
|
throw new Error(`Shim contract for ${e} not found`);
|
|
354
354
|
this.shimContract = r;
|
|
355
355
|
}
|
|
356
356
|
static async fromRpc(t, e) {
|
|
357
|
-
const [n, a] = await
|
|
357
|
+
const [n, a] = await G.chainFromRpc(t), r = e[a];
|
|
358
358
|
if (r.network !== n)
|
|
359
359
|
throw new Error(`Network mismatch: ${r.network} != ${n}`);
|
|
360
360
|
return new ge(n, a, t, r.contracts);
|
|
361
361
|
}
|
|
362
362
|
async *transfer(t, e, n) {
|
|
363
363
|
var h, g;
|
|
364
|
-
const a = new te(t).toString(), r = e.address.toUniversalAddress().toUint8Array(), i = n.remainingAmount + n.referrerFee, o = y.get(this.network, this.chain), d =
|
|
364
|
+
const a = new te(t).toString(), r = e.address.toUniversalAddress().toUint8Array(), i = n.remainingAmount + n.referrerFee, o = y.get(this.network, this.chain), d = G.getTokenImplementation(this.provider, o);
|
|
365
365
|
if (await d.allowance(a, this.shimContract) < i) {
|
|
366
366
|
const w = await d.approve.populateTransaction(this.shimContract, i);
|
|
367
367
|
yield this.createUnsignedTx(S(w, a), "ERC20.approve of EvmCCTPExecutor", !1);
|
|
@@ -419,7 +419,7 @@ const { amountItem: z, circleDomainItem: $e, universalAddressItem: T } = nn, ct
|
|
|
419
419
|
{ name: "msgValue", binary: "uint", size: 16 }
|
|
420
420
|
], gn = [
|
|
421
421
|
{ name: "dropOff", binary: "uint", size: 16 },
|
|
422
|
-
{ name: "recipient", ...
|
|
422
|
+
{ name: "recipient", ...Le }
|
|
423
423
|
], pn = [
|
|
424
424
|
{
|
|
425
425
|
name: "request",
|
|
@@ -493,7 +493,7 @@ class pe {
|
|
|
493
493
|
var d, u, m;
|
|
494
494
|
if (this.network = t, this.chain = e, this.provider = n, this.contracts = a, t === "Devnet")
|
|
495
495
|
throw new Error("CCTPv2Executor not supported on Devnet");
|
|
496
|
-
this.chainId =
|
|
496
|
+
this.chainId = Ge.get(t, e);
|
|
497
497
|
const r = (d = sn[t]) == null ? void 0 : d[e];
|
|
498
498
|
if (!r)
|
|
499
499
|
throw new Error(`Shim contract for ${e} not found`);
|
|
@@ -508,14 +508,14 @@ class pe {
|
|
|
508
508
|
this.usdcContract = o;
|
|
509
509
|
}
|
|
510
510
|
static async fromRpc(t, e) {
|
|
511
|
-
const [n, a] = await
|
|
511
|
+
const [n, a] = await G.chainFromRpc(t), r = e[a];
|
|
512
512
|
if (r.network !== n)
|
|
513
513
|
throw new Error(`Network mismatch: ${r.network} != ${n}`);
|
|
514
514
|
return new pe(n, a, t, r.contracts);
|
|
515
515
|
}
|
|
516
516
|
async *transfer(t, e, n) {
|
|
517
517
|
var g, w;
|
|
518
|
-
const a = new te(t).toString(), r = e.address.toUniversalAddress().toUint8Array(), i = n.remainingAmount + n.referrerFee, o =
|
|
518
|
+
const a = new te(t).toString(), r = e.address.toUniversalAddress().toUint8Array(), i = n.remainingAmount + n.referrerFee, o = G.getTokenImplementation(this.provider, this.usdcContract);
|
|
519
519
|
if (await o.allowance(a, this.shimContract) < i) {
|
|
520
520
|
const C = await o.approve.populateTransaction(this.shimContract, i);
|
|
521
521
|
yield this.createUnsignedTx(S(C, a), "ERC20.approve of EvmCCTPv2Executor", !1);
|
|
@@ -581,7 +581,7 @@ class we {
|
|
|
581
581
|
return new we(n, a, t, r.contracts);
|
|
582
582
|
}
|
|
583
583
|
async *transfer(t, e, n) {
|
|
584
|
-
const a = new
|
|
584
|
+
const a = new Gt(), r = new qt(t).unwrap(), i = j.get(this.network, e.chain), [o, ...d] = await Ue.getCoins(this.provider, t, this.usdcId);
|
|
585
585
|
if (o === void 0)
|
|
586
586
|
throw new Error("No USDC in wallet");
|
|
587
587
|
const u = a.object(o.coinObjectId);
|
|
@@ -592,7 +592,7 @@ class we {
|
|
|
592
592
|
n.remainingAmount,
|
|
593
593
|
n.referrerFee
|
|
594
594
|
]);
|
|
595
|
-
m = p, a.transferObjects([D], n.referrer ?
|
|
595
|
+
m = p, a.transferObjects([D], n.referrer ? It(n.referrer) : r);
|
|
596
596
|
} else {
|
|
597
597
|
const [p] = a.splitCoins(u, [
|
|
598
598
|
n.remainingAmount
|
|
@@ -681,12 +681,12 @@ function An(s, t, e) {
|
|
|
681
681
|
return s;
|
|
682
682
|
}
|
|
683
683
|
const yn = qe([
|
|
684
|
-
|
|
684
|
+
Ie("mintAuthorityOption"),
|
|
685
685
|
Ve("mintAuthority"),
|
|
686
686
|
at("supply"),
|
|
687
687
|
Ke("decimals"),
|
|
688
688
|
Ht("isInitialized"),
|
|
689
|
-
|
|
689
|
+
Ie("freezeAuthorityOption"),
|
|
690
690
|
Ve("freezeAuthority")
|
|
691
691
|
]);
|
|
692
692
|
yn.span;
|
|
@@ -705,7 +705,7 @@ function Dn(s, t, e, n, a, r = Z, i = Ce) {
|
|
|
705
705
|
{ pubkey: t, isSigner: !1, isWritable: !0 },
|
|
706
706
|
{ pubkey: e, isSigner: !1, isWritable: !1 },
|
|
707
707
|
{ pubkey: n, isSigner: !1, isWritable: !1 },
|
|
708
|
-
{ pubkey:
|
|
708
|
+
{ pubkey: Mt.programId, isSigner: !1, isWritable: !1 },
|
|
709
709
|
{ pubkey: r, isSigner: !1, isWritable: !1 }
|
|
710
710
|
];
|
|
711
711
|
return new Xe({
|
|
@@ -902,7 +902,7 @@ function Pn(s, t, e) {
|
|
|
902
902
|
}
|
|
903
903
|
return { referrerFee: r, remainingAmount: a, referrerFeeDbps: n };
|
|
904
904
|
}
|
|
905
|
-
function
|
|
905
|
+
function In(s) {
|
|
906
906
|
return new Promise((t) => setTimeout(t, s));
|
|
907
907
|
}
|
|
908
908
|
async function oe(s, t, e = Ze) {
|
|
@@ -927,7 +927,7 @@ async function oe(s, t, e = Ze) {
|
|
|
927
927
|
}
|
|
928
928
|
}, 2e3, e, "CCTPv2:GetMessage");
|
|
929
929
|
}
|
|
930
|
-
async function
|
|
930
|
+
async function Mn(s, t, e) {
|
|
931
931
|
const n = Q(s, t), a = Q(s, e), r = `${X[s]}/fastBurn/USDC/fees/${n}/${a}`, i = await v.get(r);
|
|
932
932
|
return BigInt(i.data.minimumFee);
|
|
933
933
|
}
|
|
@@ -1042,7 +1042,7 @@ async function ft(s, t, e, n) {
|
|
|
1042
1042
|
break;
|
|
1043
1043
|
} catch {
|
|
1044
1044
|
}
|
|
1045
|
-
u++, await
|
|
1045
|
+
u++, await In(2e3);
|
|
1046
1046
|
}
|
|
1047
1047
|
})(), {
|
|
1048
1048
|
from: s.fromChain.chain,
|
|
@@ -1151,7 +1151,7 @@ class _ extends et {
|
|
|
1151
1151
|
});
|
|
1152
1152
|
}
|
|
1153
1153
|
async *track(e, n) {
|
|
1154
|
-
if (
|
|
1154
|
+
if (L(e) || P(e))
|
|
1155
1155
|
return e;
|
|
1156
1156
|
let a = n || 60 * 60 * 1e3;
|
|
1157
1157
|
for (; a > 0; ) {
|
|
@@ -1173,7 +1173,7 @@ class _ extends et {
|
|
|
1173
1173
|
...e,
|
|
1174
1174
|
state: A.DestinationFinalized,
|
|
1175
1175
|
attestation: { id: i.id, attestation: {} }
|
|
1176
|
-
}), yield e,
|
|
1176
|
+
}), yield e, L(e) || P(e))
|
|
1177
1177
|
return e;
|
|
1178
1178
|
} catch (i) {
|
|
1179
1179
|
console.error(`Error fetching transaction status: ${i.message || i}`);
|
|
@@ -1208,7 +1208,7 @@ class xe extends et {
|
|
|
1208
1208
|
});
|
|
1209
1209
|
}
|
|
1210
1210
|
async *track(t, e) {
|
|
1211
|
-
if (
|
|
1211
|
+
if (L(t))
|
|
1212
1212
|
return t;
|
|
1213
1213
|
let n = e || 60 * 60 * 1e3;
|
|
1214
1214
|
for (; n > 0; ) {
|
|
@@ -1254,7 +1254,7 @@ class xe extends et {
|
|
|
1254
1254
|
attestation: i
|
|
1255
1255
|
});
|
|
1256
1256
|
}
|
|
1257
|
-
if (yield t,
|
|
1257
|
+
if (yield t, L(t))
|
|
1258
1258
|
return t;
|
|
1259
1259
|
} catch (r) {
|
|
1260
1260
|
console.error(`Error fetching transaction status: ${r.message || r}`);
|
|
@@ -1313,7 +1313,7 @@ function ss(s = { referrerFeeDbps: 0n }) {
|
|
|
1313
1313
|
}
|
|
1314
1314
|
return c(t, "config", s), t;
|
|
1315
1315
|
}
|
|
1316
|
-
const
|
|
1316
|
+
const I = class I extends xe {
|
|
1317
1317
|
constructor() {
|
|
1318
1318
|
super(...arguments);
|
|
1319
1319
|
// @ts-ignore
|
|
@@ -1329,7 +1329,7 @@ const M = class M extends xe {
|
|
|
1329
1329
|
}
|
|
1330
1330
|
async validate(e, n) {
|
|
1331
1331
|
var r;
|
|
1332
|
-
return
|
|
1332
|
+
return I.isPathSupported(e.fromChain, e.toChain) ? (r = n.options) != null && r.nativeGas && (n.options.nativeGas < 0 || n.options.nativeGas > 1) ? {
|
|
1333
1333
|
valid: !1,
|
|
1334
1334
|
error: new Error("Invalid native gas percentage"),
|
|
1335
1335
|
params: n
|
|
@@ -1355,7 +1355,7 @@ const M = class M extends xe {
|
|
|
1355
1355
|
success: !1,
|
|
1356
1356
|
error: new Error("Insufficient allowance for fast transfer")
|
|
1357
1357
|
};
|
|
1358
|
-
const h = await
|
|
1358
|
+
const h = await Mn(a.network, a.chain, r.chain), g = (d * h + 10000n - 1n) / 10000n, w = d - g;
|
|
1359
1359
|
if (w <= 0n)
|
|
1360
1360
|
return {
|
|
1361
1361
|
success: !1,
|
|
@@ -1397,11 +1397,11 @@ const M = class M extends xe {
|
|
|
1397
1397
|
}
|
|
1398
1398
|
}
|
|
1399
1399
|
};
|
|
1400
|
-
c(
|
|
1400
|
+
c(I, "config", { referrerFeeDbps: 0n }), c(I, "meta", {
|
|
1401
1401
|
name: "CCTPv2FastExecutorRoute",
|
|
1402
1402
|
provider: "Circle CCTP"
|
|
1403
1403
|
});
|
|
1404
|
-
let ce =
|
|
1404
|
+
let ce = I;
|
|
1405
1405
|
function as(s = { referrerFeeDbps: 0n }) {
|
|
1406
1406
|
if (s.referrerFeeDbps < 0 || s.referrerFeeDbps > 65535n)
|
|
1407
1407
|
throw new Error("Referrer fee must be between 0 and 65535");
|
|
@@ -1409,7 +1409,7 @@ function as(s = { referrerFeeDbps: 0n }) {
|
|
|
1409
1409
|
}
|
|
1410
1410
|
return c(t, "config", s), t;
|
|
1411
1411
|
}
|
|
1412
|
-
const
|
|
1412
|
+
const M = class M extends xe {
|
|
1413
1413
|
constructor() {
|
|
1414
1414
|
super(...arguments);
|
|
1415
1415
|
// @ts-ignore
|
|
@@ -1427,7 +1427,7 @@ const I = class I extends xe {
|
|
|
1427
1427
|
}
|
|
1428
1428
|
async validate(e, n) {
|
|
1429
1429
|
var r;
|
|
1430
|
-
return
|
|
1430
|
+
return M.isPathSupported(e.fromChain, e.toChain) ? (r = n.options) != null && r.nativeGas && (n.options.nativeGas < 0 || n.options.nativeGas > 1) ? {
|
|
1431
1431
|
valid: !1,
|
|
1432
1432
|
error: new Error("Invalid native gas percentage"),
|
|
1433
1433
|
params: n
|
|
@@ -1483,11 +1483,11 @@ const I = class I extends xe {
|
|
|
1483
1483
|
}
|
|
1484
1484
|
}
|
|
1485
1485
|
};
|
|
1486
|
-
c(
|
|
1486
|
+
c(M, "config", { referrerFeeDbps: 0n }), c(M, "meta", {
|
|
1487
1487
|
name: "CCTPv2StandardExecutorRoute",
|
|
1488
1488
|
provider: "Circle CCTP"
|
|
1489
1489
|
});
|
|
1490
|
-
let de =
|
|
1490
|
+
let de = M;
|
|
1491
1491
|
const { executorTokenBridgeRoute: rs } = Ot;
|
|
1492
1492
|
export {
|
|
1493
1493
|
ns as cctpExecutorRoute,
|
package/lib/hosted.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./constants-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./constants-BsKTcZQ3.js");function d(o,e={}){window.__CONNECT_CONFIG=e.config,window.__CONNECT_THEME=e.theme;const n=document.createElement("div");n.id="wormhole-connect";const c=e.version??s.CONNECT_VERSION,i=e.cdnBaseUrl??`https://cdn.jsdelivr.net/npm/@wormhole-foundation/wormhole-connect@${c}`,t=document.createElement("script");t.setAttribute("src",`${i}/dist/main.js`),t.setAttribute("type","module"),o.appendChild(n),o.appendChild(t)}exports.wormholeConnectHosted=d;
|
package/lib/hosted.mjs
CHANGED