@wormhole-foundation/wormhole-connect 3.0.1-beta.0-development → 3.0.1-beta.2-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/{add-Cy39EVaY.js → add-CA46SOZ1.js} +1 -1
- package/dist/assets/{all-wallets-BG4OMn19.js → all-wallets-B1qnLkOo.js} +1 -1
- package/dist/assets/{app-store-B2VJcnKc.js → app-store-NTpCK9MF.js} +1 -1
- package/dist/assets/{apple-6OWWifFn.js → apple-DRVt4JWr.js} +1 -1
- package/dist/assets/{aptos-gb8snog6.js → aptos-63ExGocu.js} +1 -1
- package/dist/assets/{aptos-BuLH7jck.js → aptos-DkSiRwPH.js} +3 -3
- package/dist/assets/{arrow-bottom-YGKzRes5.js → arrow-bottom-CPth9tFV.js} +1 -1
- package/dist/assets/{arrow-bottom-circle-BH-P4D_L.js → arrow-bottom-circle-BWo9DWoB.js} +1 -1
- package/dist/assets/{arrow-left-DF2t0i5J.js → arrow-left-P6RmBJWT.js} +1 -1
- package/dist/assets/{arrow-right-CP40LqnJ.js → arrow-right-BHHiE7kD.js} +1 -1
- package/dist/assets/{arrow-top-DnKSFz-5.js → arrow-top-D5GRFsZm.js} +1 -1
- package/dist/assets/{bank-BpG6sNAE.js → bank-C2WLfHR8.js} +1 -1
- package/dist/assets/{basic-CLnavz_q.js → basic-BCJkH5GS.js} +1 -1
- package/dist/assets/{blake2b-B2b685Yu.js → blake2b-Bb1VZYtg.js} +1 -1
- package/dist/assets/{browser-BhlgRcS6.js → browser-BPjT1bN5.js} +1 -1
- package/dist/assets/{card-BTep0Fm_.js → card-JaBku5Bf.js} +1 -1
- package/dist/assets/{ccip-By49zU3M.js → ccip-CTrUg8DF.js} +1 -1
- package/dist/assets/{chain-Du7paeNG.js → chain-DF9mIQM9.js} +1 -1
- package/dist/assets/{checkmark-UEyfqUU3.js → checkmark-BQL5JCw2.js} +1 -1
- package/dist/assets/{checkmark-bold-DMLl2gC5.js → checkmark-bold-DP1vE2RN.js} +1 -1
- package/dist/assets/{chevron-bottom-CPv_izmZ.js → chevron-bottom-BV0Au0hP.js} +1 -1
- package/dist/assets/{chevron-left-0a7IeWd5.js → chevron-left-C4v6Iui8.js} +1 -1
- package/dist/assets/{chevron-right-B-0wsh8g.js → chevron-right-CbVMuuvx.js} +1 -1
- package/dist/assets/{chevron-top-BHFncmmu.js → chevron-top-CuIo_USv.js} +1 -1
- package/dist/assets/{chrome-store-BIaI9-ba.js → chrome-store-fbydRQd1.js} +1 -1
- package/dist/assets/{chunk-KJH4KKG6-Po5MChR6.js → chunk-KJH4KKG6-B7DCZZVY.js} +1 -1
- package/dist/assets/{clock-BQdD9J7H.js → clock-D62L3EFP.js} +1 -1
- package/dist/assets/{close-Cjok36co.js → close-BLRqO6Zn.js} +1 -1
- package/dist/assets/{coinPlaceholder-CneTHrCz.js → coinPlaceholder-0tmFvYYj.js} +1 -1
- package/dist/assets/{compass-Dit7B215.js → compass-Ba8-RKca.js} +1 -1
- package/dist/assets/{contract-BhySpM-Z.js → contract-bGGxC9_m.js} +1 -1
- package/dist/assets/{copy-JvNImG5R.js → copy-CWqrh_sD.js} +1 -1
- package/dist/assets/{create-gkOVonha.js → create-CbRd6EbF.js} +1 -1
- package/dist/assets/{cursor-CSwolbdC.js → cursor-DFYzmUAe.js} +1 -1
- package/dist/assets/{cursor-transparent-DQ2bEHaM.js → cursor-transparent-IY3fA7aT.js} +1 -1
- package/dist/assets/{desktop-F3wMUZcL.js → desktop-DLudyYW3.js} +1 -1
- package/dist/assets/{disconnect-vvd6SXmG.js → disconnect-gShcPNrf.js} +1 -1
- package/dist/assets/{discord-mwjbbdll.js → discord-S8T3fJF7.js} +1 -1
- package/dist/assets/{etherscan-ZpIOVA81.js → etherscan-C-ODOYjC.js} +1 -1
- package/dist/assets/{evm-fcQsoqVd.js → evm-D65l_VUA.js} +4 -4
- package/dist/assets/{evm-CWAxZ2a7.js → evm-DwqzhXfk.js} +3 -3
- package/dist/assets/{exclamation-triangle-CrFNsvqc.js → exclamation-triangle-I4hrUAkj.js} +1 -1
- package/dist/assets/{extension-C_zCCj6H.js → extension-C2E94rju.js} +1 -1
- package/dist/assets/{external-link-B0LEq1D3.js → external-link-BE25aYRx.js} +1 -1
- package/dist/assets/{facebook-B_HaXZVY.js → facebook-VHvsuzqv.js} +1 -1
- package/dist/assets/{farcaster-C9d4q5--.js → farcaster-sG7oFC35.js} +1 -1
- package/dist/assets/{filters-Coi2MlO2.js → filters-D9VcvmFo.js} +1 -1
- package/dist/assets/{github-DiDkJ9-4.js → github-BLJyKdzw.js} +1 -1
- package/dist/assets/{google-BHKYD7dA.js → google-C4YbBNSv.js} +1 -1
- package/dist/assets/{help-circle-lf3f_u3Q.js → help-circle-CMmVaOnp.js} +1 -1
- package/dist/assets/{id-BoAkobNw.js → id-g_mC9xVi.js} +1 -1
- package/dist/assets/{image-C9_T15rA.js → image-nAeKstDS.js} +1 -1
- package/dist/assets/{index-BgLBca6k.js → index-BTkoFKAW.js} +1 -1
- package/dist/assets/{index-Bx8vjRmV.js → index-BUtdFAj3.js} +1 -1
- package/dist/assets/index-BZFyhaji.js +1 -0
- package/dist/assets/{index-BpI-Jtyb.js → index-BqLA4xTj.js} +3 -3
- package/dist/assets/{index-BE55BSK7.js → index-C0-WLpMA.js} +1 -1
- package/dist/assets/{index-zEIfo2_n.js → index-CCOXtJ1P.js} +1 -1
- package/dist/assets/{index--d0JCrsI.js → index-CKPf-3Vo.js} +1 -1
- package/dist/assets/{index-DSTd1tRp.js → index-COZ2cSR6.js} +1 -1
- package/dist/assets/{index-BedU_k3i.js → index-CVqQ68io.js} +1 -1
- package/dist/assets/{index-DZ96gAj4.js → index-CVqXQiSE.js} +1 -1
- package/dist/assets/{index-TYicGq2L.js → index-CYFq9U58.js} +1 -1
- package/dist/assets/{index-BYTZG2bF.js → index-C_YTupmk.js} +1 -1
- package/dist/assets/{index-BJYqkXUw.js → index-Cu0b-jgK.js} +1 -1
- package/dist/assets/{index-DB7g9m_R.js → index-DA4wR-ie.js} +1 -1
- package/dist/assets/{index-kF0xEQ0E.js → index-DC3x_AFd.js} +1 -1
- package/dist/assets/{index-DMWfYwZZ.js → index-DKdokzug.js} +1 -1
- package/dist/assets/{index-BZCSByFC.js → index-DusYxt7C.js} +3 -3
- package/dist/assets/{index-BjvqCh5g.js → index-DynC8vQ4.js} +1 -1
- package/dist/assets/{index-Breet2G4.js → index-GmuqTVr0.js} +1 -1
- package/dist/assets/index.es-CWMLsIMc.js +47 -0
- package/dist/assets/index.es-g5_0R3zE.js +15 -0
- package/dist/assets/{info-C0I2HHbp.js → info-P71aU507.js} +1 -1
- package/dist/assets/{info-circle-BJmxBusI.js → info-circle-D8ZhpY4M.js} +1 -1
- package/dist/assets/{lightbulb-Chfw09TV.js → lightbulb-CWL8Hapk.js} +1 -1
- package/dist/assets/{mail-BGqa051c.js → mail-BKdMRnR2.js} +1 -1
- package/dist/assets/{mobile-DkPjbMNa.js → mobile-Bw0EoBkW.js} +1 -1
- package/dist/assets/{more-f7FKhsyw.js → more-BSKGQd1b.js} +1 -1
- package/dist/assets/{network-placeholder-DyyxIB08.js → network-placeholder-B1xqyidN.js} +1 -1
- package/dist/assets/{nftPlaceholder-CfDPimUz.js → nftPlaceholder-CuCsNvkN.js} +1 -1
- package/dist/assets/{off-BvnUT7bh.js → off-BX6zoZuA.js} +1 -1
- package/dist/assets/{play-store-Dl8Di4Xz.js → play-store-CCveEK_B.js} +1 -1
- package/dist/assets/{plus-Dtc5pm0q.js → plus-C02SGp4V.js} +1 -1
- package/dist/assets/{provider-jsonrpc-CG-x8-V6.js → provider-jsonrpc-DTnJKzTS.js} +1 -1
- package/dist/assets/{qr-code-b5m8lMyQ.js → qr-code-DGe_aS_i.js} +1 -1
- package/dist/assets/{recycle-horizontal-DztIZMpd.js → recycle-horizontal-DtRomJbx.js} +1 -1
- package/dist/assets/{refresh-Z55s9i8s.js → refresh-DPABcpes.js} +1 -1
- package/dist/assets/{reown-logo-BVpI-nfV.js → reown-logo-DG2ULLka.js} +1 -1
- package/dist/assets/{search-CjKBf0db.js → search-EURxday_.js} +1 -1
- package/dist/assets/{secp256k1-BHTD1Qmp.js → secp256k1-D-G9AbtW.js} +1 -1
- package/dist/assets/{secp256k1-CCS9UBYD.js → secp256k1-DfnLU_Rr.js} +1 -1
- package/dist/assets/{send-DRsIh8XD.js → send-t6aoH9GB.js} +1 -1
- package/dist/assets/signer-7-tpWjBV.js +2 -0
- package/dist/assets/{solana-D0M1N7L4.js → solana-C-diloCa.js} +18 -18
- package/dist/assets/solana-C6mHMmQi.js +2 -0
- package/dist/assets/solanaEmbed.esm-DhAz8SOB.js +10 -0
- package/dist/assets/{sui-DXdm7DBB.js → sui-DXg2Lhyt.js} +4 -4
- package/dist/assets/{sui-CXoaI0gx.js → sui-Pc10JTxL.js} +2 -2
- package/dist/assets/{swapHorizontal-COY_WODc.js → swapHorizontal-Cd2Bq-oX.js} +1 -1
- package/dist/assets/{swapHorizontalBold-C0JXN9CW.js → swapHorizontalBold-CK6YXqcD.js} +1 -1
- package/dist/assets/{swapHorizontalMedium-DH34hVvb.js → swapHorizontalMedium-BCT4Hlrg.js} +1 -1
- package/dist/assets/{swapHorizontalRoundedBold-Cbu2lR_U.js → swapHorizontalRoundedBold-C-NDd7Fq.js} +1 -1
- package/dist/assets/{swapVertical-CjpRMkF_.js → swapVertical-BfKszPb9.js} +1 -1
- package/dist/assets/{telegram-DxmYoEg_.js → telegram-D5sYoBZp.js} +1 -1
- package/dist/assets/{three-dots-GsCsg39y.js → three-dots-qiTqAG0h.js} +1 -1
- package/dist/assets/{tokens-DNQKjj3l.js → tokens-BjeNFBPV.js} +2 -2
- package/dist/assets/{twitch-LH0w9yHE.js → twitch-1VH6BaUA.js} +1 -1
- package/dist/assets/{twitterIcon-Ci6YQIIR.js → twitterIcon-hIEIDwcz.js} +1 -1
- package/dist/assets/{verify-CLWJXQKG.js → verify-DxvRt34f.js} +1 -1
- package/dist/assets/{verify-filled-Bgbn2dT_.js → verify-filled-RtidYdgS.js} +1 -1
- package/dist/assets/{w3m-modal-BR4v9o5N.js → w3m-modal-DI_ypCY0.js} +1 -1
- package/dist/assets/{wallet-Dy9a13FP.js → wallet-Cb9kcAk9.js} +1 -1
- package/dist/assets/{wallet-placeholder-BlMcAG8z.js → wallet-placeholder-pTFD8Qr_.js} +1 -1
- package/dist/assets/{walletconnect-BmSWYy7N.js → walletconnect-DvJIx5jD.js} +1 -1
- package/dist/assets/{warning-circle-DUSLmVwm.js → warning-circle-CRzNiBlj.js} +1 -1
- package/dist/assets/{x-D-BfG-2C.js → x-Dk-mK5uZ.js} +1 -1
- package/dist/main.js +74 -74
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/wallet/solana.d.ts.map +1 -1
- package/dist/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/dist/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/dist/src/views/v2/TxHistory/Item/index.d.ts.map +1 -1
- package/lib/{add-k3ewuJUG.js → add-DVGSYBJf.js} +1 -1
- package/lib/{add-BPFasfGu.mjs → add-DrLWWjDN.mjs} +1 -1
- package/lib/{all-wallets-la-1zudw.mjs → all-wallets-CjzZMHCA.mjs} +1 -1
- package/lib/{all-wallets-DbhnhSgQ.js → all-wallets-DGVJQYa0.js} +1 -1
- package/lib/{app-store-DwyKNjnW.js → app-store-BABxSxrd.js} +1 -1
- package/lib/{app-store-doruxuZE.mjs → app-store-kpf503GR.mjs} +1 -1
- package/lib/{apple-Ba-W9z_L.mjs → apple-C0AtBJDu.mjs} +1 -1
- package/lib/{apple-f5EysyhV.js → apple-C962M6Ax.js} +1 -1
- package/lib/{aptos-ChgDZ9Bs.mjs → aptos-XxQj_uxF.mjs} +1 -1
- package/lib/{aptos-BYM651I5.js → aptos-uWJCRLoQ.js} +1 -1
- package/lib/{arrow-bottom-CyaXCpbT.js → arrow-bottom-CIZJcZfr.js} +1 -1
- package/lib/{arrow-bottom-CZPkUc3D.mjs → arrow-bottom-D0wK6uMJ.mjs} +1 -1
- package/lib/{arrow-bottom-circle-BOmrxjxV.mjs → arrow-bottom-circle-D5QwftYY.mjs} +1 -1
- package/lib/{arrow-bottom-circle-Kla1lJ0S.js → arrow-bottom-circle-iOl-NxXR.js} +1 -1
- package/lib/{arrow-left-Dqlhv2Qp.mjs → arrow-left-BL0dHjzy.mjs} +1 -1
- package/lib/{arrow-left-DtuOud7o.js → arrow-left-C-RAtnQ2.js} +1 -1
- package/lib/{arrow-right-W0IwU-6h.js → arrow-right-COiq03Wj.js} +1 -1
- package/lib/{arrow-right-glR4LxQL.mjs → arrow-right-DaZMOW_1.mjs} +1 -1
- package/lib/{arrow-top-DDcfmUYc.js → arrow-top-7Srj2XLP.js} +1 -1
- package/lib/{arrow-top-ChZhpBX5.mjs → arrow-top-QPVhK81o.mjs} +1 -1
- package/lib/{bank-2fSYiPNd.js → bank-Bp2l8LtZ.js} +1 -1
- package/lib/{bank-CeAxLFYE.mjs → bank-C5lNHVtL.mjs} +1 -1
- package/lib/{basic-DmAZdELt.mjs → basic-C5W71-rE.mjs} +2 -2
- package/lib/{basic-DATFcjGI.js → basic-DQ6ISwhI.js} +1 -1
- package/lib/{browser-CD59CQ82.mjs → browser-CJhUYmz6.mjs} +1 -1
- package/lib/{browser-DrdHogv9.js → browser-DV0hL_fK.js} +1 -1
- package/lib/{card-CR5E0M8J.mjs → card-DSeabGLV.mjs} +1 -1
- package/lib/{card-DsBOUpCN.js → card-yZLq1X6c.js} +1 -1
- package/lib/{ccip-BFa4y-oy.js → ccip-BCsOYNZd.js} +1 -1
- package/lib/{ccip-bLQYuHSY.mjs → ccip-CFqlillN.mjs} +1 -1
- package/lib/{checkmark-CsX9NZH7.js → checkmark-BW4NeFlB.js} +1 -1
- package/lib/{checkmark-CfNjLqyN.mjs → checkmark-DhgNpDof.mjs} +1 -1
- package/lib/{checkmark-bold-DY9T5oVa.mjs → checkmark-bold-CxJkyUOt.mjs} +1 -1
- package/lib/{checkmark-bold-BJIvwCmJ.js → checkmark-bold-DnEFF9eL.js} +1 -1
- package/lib/{chevron-bottom-BYoFClQQ.mjs → chevron-bottom-Pi9qTSKk.mjs} +1 -1
- package/lib/{chevron-bottom-Ditoq2xa.js → chevron-bottom-Tb5GYU7P.js} +1 -1
- package/lib/{chevron-left-3WnVWUcO.js → chevron-left-BRp6K_BQ.js} +1 -1
- package/lib/{chevron-left-CqVSZU9b.mjs → chevron-left-Cl35pkRv.mjs} +1 -1
- package/lib/{chevron-right-CJBuSXL6.js → chevron-right-D1Ic6C28.js} +1 -1
- package/lib/{chevron-right-X3OiwFgb.mjs → chevron-right-pjH-xKxB.mjs} +1 -1
- package/lib/{chevron-top-sE88QRY5.mjs → chevron-top-DSe-dX8z.mjs} +1 -1
- package/lib/{chevron-top-evdJz5l1.js → chevron-top-SdyRa8IE.js} +1 -1
- package/lib/{chrome-store-BE0d8gm3.js → chrome-store-0qgfQSAS.js} +1 -1
- package/lib/{chrome-store-CrGMC4Ms.mjs → chrome-store-ThoUGIhl.mjs} +1 -1
- package/lib/{clock-BQOPbXNd.js → clock-2HqPHolX.js} +1 -1
- package/lib/{clock-B2hRLLna.mjs → clock-B0sBEXQ5.mjs} +1 -1
- package/lib/{close-DwQUJGX9.js → close-BJQf5USo.js} +1 -1
- package/lib/{close-BAo2qofr.mjs → close-Bznv5frT.mjs} +1 -1
- package/lib/{coinPlaceholder-Cop9iL3O.mjs → coinPlaceholder-1gZoTAqN.mjs} +1 -1
- package/lib/{coinPlaceholder-D4XIXbUt.js → coinPlaceholder-CvvSiYI-.js} +1 -1
- package/lib/{compass-C1qPsOLt.js → compass-BBMA-82e.js} +1 -1
- package/lib/{compass-BirhgtWV.mjs → compass-BE99mJOV.mjs} +1 -1
- package/lib/constants-BDS32jve.js +1 -0
- package/lib/{constants-D9NeMoZZ.mjs → constants-Bp_337ur.mjs} +1 -1
- package/lib/{copy-DTprqw_x.js → copy-B_JboG8P.js} +1 -1
- package/lib/{copy-CEI12w7k.mjs → copy-Cwolsgnk.mjs} +1 -1
- package/lib/{cursor-BWYqc_Iy.mjs → cursor-0EyS6nH4.mjs} +1 -1
- package/lib/{cursor-CJNQd6s1.js → cursor-C2jyr1Tt.js} +1 -1
- package/lib/{cursor-transparent-BgDxhGZb.js → cursor-transparent-BaVE19A2.js} +1 -1
- package/lib/{cursor-transparent-DyUm_Gyl.mjs → cursor-transparent-ZUI7NwAo.mjs} +1 -1
- package/lib/{desktop-Donl6N-w.mjs → desktop-B1U1mc6q.mjs} +1 -1
- package/lib/{desktop-Dhc3ut6w.js → desktop-Dmz61Quh.js} +1 -1
- package/lib/{disconnect-BOkIc2nC.mjs → disconnect-8HUMogEY.mjs} +1 -1
- package/lib/{disconnect-BF1o-_4J.js → disconnect-Bn_0Td6c.js} +1 -1
- package/lib/{discord-Cr_4Cd1g.js → discord-4tBuPwio.js} +1 -1
- package/lib/{discord-3TAxBxMm.mjs → discord-DNMu-4pj.mjs} +1 -1
- package/lib/{etherscan-BdKsG3Bv.js → etherscan-CdfpxSFw.js} +1 -1
- package/lib/{etherscan-crtB48km.mjs → etherscan-DTafkFM9.mjs} +1 -1
- package/lib/{evm-BW-hVkAs.mjs → evm-B5SS0axR.mjs} +3 -3
- package/lib/{evm-BwVzzPhr.js → evm-BZKMUp6E.js} +3 -3
- package/lib/{exclamation-triangle-B8ouyGn5.mjs → exclamation-triangle-BLb5RCv9.mjs} +1 -1
- package/lib/{exclamation-triangle-CDWJ40KD.js → exclamation-triangle-W8wr4W3B.js} +1 -1
- package/lib/{extension-DdSvlDz-.js → extension-B3rp6j3f.js} +1 -1
- package/lib/{extension-CKbWDUFI.mjs → extension-DqXaH5V_.mjs} +1 -1
- package/lib/{external-link-DJvJgYIh.js → external-link-DWSOPcgR.js} +1 -1
- package/lib/{external-link-Ba6hY_g_.mjs → external-link-DupOMQca.mjs} +1 -1
- package/lib/{facebook-CFUYIcny.mjs → facebook-C25qgXgI.mjs} +1 -1
- package/lib/{facebook-A65A2Gkq.js → facebook-gaoSLwmV.js} +1 -1
- package/lib/{farcaster-BVmh2zDV.mjs → farcaster-BKQVbYft.mjs} +1 -1
- package/lib/{farcaster-qZSmV22m.js → farcaster-Dw_KFzSe.js} +1 -1
- package/lib/{filters-Uk-V5NfL.mjs → filters-BRj-u8fO.mjs} +1 -1
- package/lib/{filters-CNDKq3Qc.js → filters-BSv2GVWx.js} +1 -1
- package/lib/{github-CKyZTPiz.mjs → github-B8zYv5B1.mjs} +1 -1
- package/lib/{github-B34wWZJc.js → github-CVSqx81G.js} +1 -1
- package/lib/{google-D5l_b5at.mjs → google-CJy4jhj7.mjs} +1 -1
- package/lib/{google-CuY8LtEi.js → google-DWyFM_-_.js} +1 -1
- package/lib/{help-circle-B8yY3eo0.js → help-circle-BihX0QHp.js} +1 -1
- package/lib/{help-circle-CecVMIZq.mjs → help-circle-D2kyGnMD.mjs} +1 -1
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/{id-DTrVc-vC.mjs → id-BvDoX2i7.mjs} +1 -1
- package/lib/{id-DLcZPuZY.js → id-ZWI-bwNJ.js} +1 -1
- package/lib/{image-DTiFTFsi.mjs → image-BeWwKKKj.mjs} +1 -1
- package/lib/{image-Cwpi7jk6.js → image-CNQTgOF8.js} +1 -1
- package/lib/{index-CXkqbcY-.mjs → index-BXBTU3I5.mjs} +78 -78
- package/lib/{index-DoD0YukX.js → index-D2yjOpeA.js} +2 -2
- package/lib/{index-C8Ud7j_3.mjs → index-Dpl42t-y.mjs} +19180 -19176
- package/lib/index-DwMMfwYI.js +304 -0
- package/lib/{index.es-TJGl70mY.js → index.es-BvsB6Z8q.js} +1 -1
- package/lib/{index.es-DpOAk4i2.js → index.es-C2112Y2b.js} +1 -1
- package/lib/{index.es-CDEST0S7.mjs → index.es-C4KG3MSj.mjs} +1 -1
- package/lib/{index.es-BMIY5pYw.mjs → index.es-Cy_oFTNH.mjs} +3 -3
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/{info-DcQS8IpR.js → info-C73QOiqc.js} +1 -1
- package/lib/{info-t-enQ6Lr.mjs → info-CjKZyXW_.mjs} +1 -1
- package/lib/{info-circle-DT6JQVme.mjs → info-circle-CEpS6rzX.mjs} +1 -1
- package/lib/{info-circle-aXtdOOCE.js → info-circle-DE-EmffO.js} +1 -1
- package/lib/{lightbulb-CtbmuzLN.mjs → lightbulb-BVq3C-EG.mjs} +1 -1
- package/lib/{lightbulb-PXEUZBLD.js → lightbulb-Dm6Hsfd3.js} +1 -1
- package/lib/{mail-BeOHsaxl.mjs → mail-CqUQETIH.mjs} +1 -1
- package/lib/{mail-D9Wkb_fX.js → mail-GRon9tbg.js} +1 -1
- package/lib/{mobile-iCRio9M2.js → mobile-BmGmHmVh.js} +1 -1
- package/lib/{mobile-RJYQQ92x.mjs → mobile-CEbEFp0X.mjs} +1 -1
- package/lib/{more-CjmHuHR3.js → more-CnS-NcGa.js} +1 -1
- package/lib/{more-5fdnBWda.mjs → more-Cs0cmKvd.mjs} +1 -1
- package/lib/{network-placeholder-DfXy-pw6.js → network-placeholder-CjPyqfGa.js} +1 -1
- package/lib/{network-placeholder-xXksUrh5.mjs → network-placeholder-DYuB36S0.mjs} +1 -1
- package/lib/{nftPlaceholder-CsrQCxrs.mjs → nftPlaceholder-COJmgjQo.mjs} +1 -1
- package/lib/{nftPlaceholder-sAiBQkMk.js → nftPlaceholder-CoY2NOAz.js} +1 -1
- package/lib/{off-BqIL7yPu.js → off-B-WmBPpa.js} +1 -1
- package/lib/{off-BwM4HctO.mjs → off-CZo3LYgL.mjs} +1 -1
- package/lib/{play-store-CI-BG6p6.js → play-store-Chciiwp3.js} +1 -1
- package/lib/{play-store-DxNIHRp-.mjs → play-store-Edmxg3AX.mjs} +1 -1
- package/lib/{plus-C6x2EScU.js → plus-C93OSdaz.js} +1 -1
- package/lib/{plus-B7obWHt8.mjs → plus-D2jFkgs1.mjs} +1 -1
- package/lib/{qr-code-3DFC3Q4R.mjs → qr-code-c2tFySK0.mjs} +1 -1
- package/lib/{qr-code-DmjJRj0_.js → qr-code-y78Lk8wE.js} +1 -1
- package/lib/{recycle-horizontal-Bdxajrwe.mjs → recycle-horizontal-CWycpdDF.mjs} +1 -1
- package/lib/{recycle-horizontal-CG5av2fz.js → recycle-horizontal-PXk9BX3j.js} +1 -1
- package/lib/{refresh-Zr5AsEKU.mjs → refresh-C77_db2T.mjs} +1 -1
- package/lib/{refresh-Btbt-_sS.js → refresh-mky0B17c.js} +1 -1
- package/lib/{reown-logo-CR3PdJr3.mjs → reown-logo-0RkEf9EI.mjs} +1 -1
- package/lib/{reown-logo-CfO-XbUR.js → reown-logo-DceXhK36.js} +1 -1
- package/lib/{search-CSdDYgkF.mjs → search-BrMSW1-8.mjs} +1 -1
- package/lib/{search-CTbUM9lC.js → search-CWru3218.js} +1 -1
- package/lib/{secp256k1-BZjEFwP8.js → secp256k1-BU-UfBCB.js} +1 -1
- package/lib/{secp256k1-DWHMs4rw.mjs → secp256k1-C4P0dmMC.mjs} +1 -1
- package/lib/{secp256k1-DPqpw2CY.mjs → secp256k1-CI3_SM8F.mjs} +1 -1
- package/lib/{secp256k1-CnnROfkI.js → secp256k1-Cks0bicH.js} +1 -1
- package/lib/{send-B7xqmURU.js → send-CRyBVD1k.js} +1 -1
- package/lib/{send-DznbeEhx.mjs → send-DFkvxnIh.mjs} +1 -1
- package/lib/{solana-DLlqlTiO.js → solana-BVnMWq13.js} +14 -14
- package/lib/{solana-AxtnvbY3.mjs → solana-L02hbBDE.mjs} +387 -373
- package/lib/{solanaEmbed.esm-CAxFhfEV.js → solanaEmbed.esm-BG5cgKub.js} +1 -1
- package/lib/{solanaEmbed.esm-7UXGCmUk.mjs → solanaEmbed.esm-DSwNdsgx.mjs} +1 -1
- package/lib/src/utils/index.d.ts +1 -1
- package/lib/src/utils/index.d.ts.map +1 -1
- package/lib/src/utils/wallet/solana.d.ts.map +1 -1
- package/lib/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/lib/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/src/views/v2/TxHistory/Item/index.d.ts.map +1 -1
- package/lib/{sui-hvPfY1xD.mjs → sui-CN1tZAOs.mjs} +1 -1
- package/lib/{sui-CBgZojMi.js → sui-Dv1p0XoG.js} +1 -1
- package/lib/{swapHorizontal-CD3pRzO9.js → swapHorizontal-BiCkAPre.js} +1 -1
- package/lib/{swapHorizontal-D794mX-0.mjs → swapHorizontal-Bo_-2U6j.mjs} +1 -1
- package/lib/{swapHorizontalBold-BNqV8D-B.mjs → swapHorizontalBold-BPL2XaSi.mjs} +1 -1
- package/lib/{swapHorizontalBold-DmkD9tJg.js → swapHorizontalBold-CWHbSIEu.js} +1 -1
- package/lib/{swapHorizontalMedium-mBKWLCjs.mjs → swapHorizontalMedium-CTsDFfzR.mjs} +1 -1
- package/lib/{swapHorizontalMedium-BAsprxHr.js → swapHorizontalMedium-D_2Z2Hfq.js} +1 -1
- package/lib/{swapHorizontalRoundedBold-TCs9zHMJ.mjs → swapHorizontalRoundedBold-8b5z2YJ_.mjs} +1 -1
- package/lib/{swapHorizontalRoundedBold-Bxkjq6qT.js → swapHorizontalRoundedBold-CDKFFagj.js} +1 -1
- package/lib/{swapVertical-DhTXBg3D.js → swapVertical-CNBatiM6.js} +1 -1
- package/lib/{swapVertical-l8Luks9S.mjs → swapVertical-UTCgpnIJ.mjs} +1 -1
- package/lib/{telegram-kWkcmqoP.mjs → telegram-CVvlgH_Z.mjs} +1 -1
- package/lib/{telegram-DL0uLP7b.js → telegram-lTj0r5My.js} +1 -1
- package/lib/{three-dots-DWHn78kh.js → three-dots-DQLgK82o.js} +1 -1
- package/lib/{three-dots-DrLoXyiQ.mjs → three-dots-KK4NyvR7.mjs} +1 -1
- package/lib/{tokens-BUz0LqoV.js → tokens-B2pmB4Ph.js} +1 -1
- package/lib/{tokens-CVWDocZl.mjs → tokens-BQHmitaT.mjs} +1 -1
- package/lib/{twitch-I4SDZ--W.mjs → twitch-CO4nmS5o.mjs} +1 -1
- package/lib/{twitch-DhKQH1oi.js → twitch-wV3Yc6kA.js} +1 -1
- package/lib/{twitterIcon-b32a7G08.mjs → twitterIcon-BU99IvD2.mjs} +1 -1
- package/lib/{twitterIcon-jhkqYcKG.js → twitterIcon-pCNPPny7.js} +1 -1
- package/lib/{verify-BHunOaoq.js → verify-B21LHiy7.js} +1 -1
- package/lib/{verify-BILic2OM.mjs → verify-Ci9XMhb8.mjs} +1 -1
- package/lib/{verify-filled-DaZqbtNa.js → verify-filled-DCMcHuAt.js} +1 -1
- package/lib/{verify-filled-DWED2hiA.mjs → verify-filled-LUtqUhbS.mjs} +1 -1
- package/lib/{w3m-modal-Cy1spBe9.mjs → w3m-modal-BJkuxcj8.mjs} +2 -2
- package/lib/{w3m-modal-FbJz8iZj.js → w3m-modal-DJRTg4Aa.js} +1 -1
- package/lib/{wallet-Bt7nP-Xo.js → wallet-BqBebKQF.js} +1 -1
- package/lib/{wallet-BcFzu16M.mjs → wallet-USpq1vKL.mjs} +1 -1
- package/lib/{wallet-placeholder-DgWC2b6z.mjs → wallet-placeholder-CL_evZUb.mjs} +1 -1
- package/lib/{wallet-placeholder-B4QUbZ9F.js → wallet-placeholder-Cf1u-2wB.js} +1 -1
- package/lib/{walletconnect-D0jqiSEY.mjs → walletconnect-3g5k3agX.mjs} +1 -1
- package/lib/{walletconnect-DJotTW4X.js → walletconnect-Da6ZdP8w.js} +1 -1
- package/lib/{warning-circle-Bj9uBvqX.mjs → warning-circle-B3ivLfCN.mjs} +1 -1
- package/lib/{warning-circle-B9it-2WD.js → warning-circle-CvTdOy7u.js} +1 -1
- package/lib/{x-uoxUEJo2.mjs → x-BOwtJrlH.mjs} +1 -1
- package/lib/{x-BLLVBVBO.js → x-DQCRmr2P.js} +1 -1
- package/package.json +1 -1
- package/dist/assets/index-Z3Xir6L3.js +0 -1
- package/dist/assets/index.es-3Tq6bjFW.js +0 -47
- package/dist/assets/index.es-CBqWEk7T.js +0 -15
- package/dist/assets/signer-BRan8q4C.js +0 -2
- package/dist/assets/solana-B3bc0p0T.js +0 -2
- package/dist/assets/solanaEmbed.esm-Mnq6o_qa.js +0 -10
- package/lib/constants-T5Vq_IiF.js +0 -1
- package/lib/index-BLJhpzbW.js +0 -304
|
@@ -1 +1 @@
|
|
|
1
|
-
var Q=Object.defineProperty;var Z=(i,t,e)=>t in i?Q(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var d=(i,t,e)=>Z(i,typeof t!="symbol"?t+"":t,e);import{P as s,f as c,cq as p,ck as J,cl as E,cm as W,cn as X,co as Y,cp as j,T as $,cJ as ee,aQ as K,cL as x,cM as te,cN as N,cO as ie,a as v,V as O,aR as ne}from"../main.js";import{d as se,g as ae,a as re,b as oe,c as ce,S as de,e as ue,f as me}from"./index-BJYqkXUw.js";import{deriveWrappedMetaKey as G,deriveTokenBridgeConfigKey as R,deriveAuthoritySignerKey as ge,deriveSenderAccountKey as fe,deriveMintAuthorityKey as le,deriveEndpointKey as pe}from"./index-Z3Xir6L3.js";import{P as he}from"./index-BpI-Jtyb.js";import{b as ye,e as we}from"./signer-BRan8q4C.js";import{r as Se}from"./chain-Du7paeNG.js";import"./create-gkOVonha.js";const ke={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function L(i){return s.findProgramAddressSync([c.Buffer.from("redeemer")],new s(i))[0]}function Me(i,t){const e=c.Buffer.alloc(8);return e.writeBigUInt64LE(t),s.findProgramAddressSync([c.Buffer.from("msg"),e],new s(i))[0]}function Te(i,t){const e=c.Buffer.alloc(2);return e.writeUInt16LE(p(t)),s.findProgramAddressSync([c.Buffer.from("gateway-info"),e],new s(i))[0]}const T=new s("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function Be(){return s.findProgramAddressSync([c.Buffer.from("config")],T)[0]}function be(i){return s.findProgramAddressSync([c.Buffer.from("minter-info"),i.toBuffer()],T)[0]}const B=new s("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new s("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new s("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new s("So11111111111111111111111111111111111111112");new s("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class Ae extends Error{constructor(t){super(t)}}class Ce extends Ae{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Pe=J([E("mintAuthorityOption"),W("mintAuthority"),X("supply"),Y("decimals"),j("isInitialized"),E("freezeAuthorityOption"),W("freezeAuthority")]);Pe.span;async function M(i,t,e=!1,r=B,n=b){if(!e&&!s.isOnCurve(t.toBuffer()))throw new Ce;const[a]=await s.findProgramAddress([t.toBuffer(),r.toBuffer(),i.toBuffer()],n);return a}function Ie(i,t,e,r,n=B,a=b){return Ee(i,t,e,r,c.Buffer.alloc(0),n,a)}function Ee(i,t,e,r,n,a=B,o=b){const u=[{pubkey:i,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:ee.programId,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1}];return new $({keys:u,programId:o,data:n})}class A{constructor(t,e,r,n){d(this,"network");d(this,"chain");d(this,"connection");d(this,"contracts");d(this,"gateway");d(this,"tokenBridgeId");d(this,"coreBridgeId");if(this.network=t,this.chain=e,this.connection=r,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new he(ke,this.contracts.tbtc,{connection:r}),this.tokenBridgeId=new s(this.contracts.tokenBridge),this.coreBridgeId=new s(this.contracts.coreBridge)}static async fromRpc(t,e){const[r,n]=await ye.chainFromRpc(t),a=e[n];if(a.network!==r)throw new Error(`Network mismatch: ${a.network} != ${r}`);return new A(r,n,t,a.contracts)}async*transfer(t,e,r){const n=new K(t).unwrap(),a=L(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:u,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(a),h=G(this.tokenBridgeId,m),g=R(this.tokenBridgeId),f=ge(this.tokenBridgeId),C=se(this.coreBridgeId),{sequence:y}=await ae(this.connection,this.tokenBridgeId,this.coreBridgeId),w=Me(this.gateway.programId,y),S=re(this.coreBridgeId),l=oe(this.tokenBridgeId),k=ce(l,this.coreBridgeId),U=Te(this.gateway.programId,e.chain),V=fe(this.gateway.programId),P={amount:new x.BN(r.toString()),recipientChain:p(e.chain),recipient:[...e.address.toUniversalAddress().toUint8Array()],nonce:0},q=await M(o,n),D=te.get(this.network,e.chain),I={custodian:a,wrappedTbtcToken:u,wrappedTbtcMint:m,tbtcMint:o,senderToken:q,sender:n,tokenBridgeConfig:g,tokenBridgeWrappedAsset:h,tokenBridgeTransferAuthority:f,coreBridgeData:S,coreMessage:w,tokenBridgeCoreEmitter:l,coreEmitterSequence:k,coreFeeCollector:C,clock:ie,rent:N,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},_=D?await this.gateway.methods.sendTbtcGateway({...P}).accounts({...I,gatewayInfo:U,tokenBridgeSender:V}).instruction():await this.gateway.methods.sendTbtcWrapped({...P,arbiterFee:new x.BN(0)}).accounts(I).instruction(),{blockhash:F}=await this.connection.getLatestBlockhash(),z=v.compile({instructions:[_],payerKey:n,recentBlockhash:F}),H=new O(z);yield this.createUnsignedTransaction({transaction:H},"TBTCBridge.Send")}async*redeem(t,e){if(e.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new de(this.network,this.chain,this.connection,this.contracts).postVaa(t,e);const n=[],a=new K(t).unwrap(),o=e.payload.payload.recipient.toNative(this.chain).unwrap(),u=L(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:h,wrappedTbtcMint:g}=await this.gateway.account.custodian.fetch(u),f=await M(m,o);await this.connection.getAccountInfo(f)||n.push(Ie(a,f,o,m));const y=G(this.tokenBridgeId,g),w=await M(g,o);n.push(await this.gateway.methods.receiveTbtc([...e.hash]).accounts({payer:a,custodian:u,postedVaa:me(this.coreBridgeId,c.Buffer.from(e.hash)),tokenBridgeClaim:ue(this.tokenBridgeId,e.emitterAddress.toUint8Array(),p(e.emitterChain),e.sequence),wrappedTbtcToken:h,wrappedTbtcMint:g,tbtcMint:m,recipientToken:f,recipient:o,recipientWrappedToken:w,tbtcConfig:Be(),tbtcMinterInfo:be(u),tokenBridgeConfig:R(this.tokenBridgeId),tokenBridgeRegisteredEmitter:pe(this.tokenBridgeId,p(e.emitterChain),e.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:le(this.tokenBridgeId),rent:N,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:S}=await this.connection.getLatestBlockhash(),l=v.compile({instructions:n,payerKey:a,recentBlockhash:S}),k=new O(l);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(t,e){return new we(t,this.network,this.chain,e,!1)}}Se(ne,"TBTCBridge",A);export{A as SolanaTBTCBridge};
|
|
1
|
+
var Z=Object.defineProperty;var Q=(i,t,e)=>t in i?Z(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var d=(i,t,e)=>Q(i,typeof t!="symbol"?t+"":t,e);import{P as s,f as c,cr as p,cl as X,cm as E,cn as W,co as Y,cp as j,cq as J,T as $,cK as ee,aR as K,cM as x,cN as te,cO as N,cP as ie,a as v,V as O,aS as ne}from"../main.js";import{d as se,g as ae,a as re,b as oe,c as ce,S as de,e as ue,f as me}from"./index-Cu0b-jgK.js";import{deriveWrappedMetaKey as G,deriveTokenBridgeConfigKey as R,deriveAuthoritySignerKey as ge,deriveSenderAccountKey as fe,deriveMintAuthorityKey as le,deriveEndpointKey as pe}from"./index-BZFyhaji.js";import{P as he}from"./index-BqLA4xTj.js";import{b as ye,e as we}from"./signer-7-tpWjBV.js";import{r as Se}from"./chain-DF9mIQM9.js";import"./create-CbRd6EbF.js";const ke={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function L(i){return s.findProgramAddressSync([c.Buffer.from("redeemer")],new s(i))[0]}function Me(i,t){const e=c.Buffer.alloc(8);return e.writeBigUInt64LE(t),s.findProgramAddressSync([c.Buffer.from("msg"),e],new s(i))[0]}function Te(i,t){const e=c.Buffer.alloc(2);return e.writeUInt16LE(p(t)),s.findProgramAddressSync([c.Buffer.from("gateway-info"),e],new s(i))[0]}const T=new s("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function Be(){return s.findProgramAddressSync([c.Buffer.from("config")],T)[0]}function be(i){return s.findProgramAddressSync([c.Buffer.from("minter-info"),i.toBuffer()],T)[0]}const B=new s("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new s("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new s("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new s("So11111111111111111111111111111111111111112");new s("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class Ae extends Error{constructor(t){super(t)}}class Pe extends Ae{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Ce=X([E("mintAuthorityOption"),W("mintAuthority"),Y("supply"),j("decimals"),J("isInitialized"),E("freezeAuthorityOption"),W("freezeAuthority")]);Ce.span;async function M(i,t,e=!1,r=B,n=b){if(!e&&!s.isOnCurve(t.toBuffer()))throw new Pe;const[a]=await s.findProgramAddress([t.toBuffer(),r.toBuffer(),i.toBuffer()],n);return a}function Ie(i,t,e,r,n=B,a=b){return Ee(i,t,e,r,c.Buffer.alloc(0),n,a)}function Ee(i,t,e,r,n,a=B,o=b){const u=[{pubkey:i,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:ee.programId,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1}];return new $({keys:u,programId:o,data:n})}class A{constructor(t,e,r,n){d(this,"network");d(this,"chain");d(this,"connection");d(this,"contracts");d(this,"gateway");d(this,"tokenBridgeId");d(this,"coreBridgeId");if(this.network=t,this.chain=e,this.connection=r,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new he(ke,this.contracts.tbtc,{connection:r}),this.tokenBridgeId=new s(this.contracts.tokenBridge),this.coreBridgeId=new s(this.contracts.coreBridge)}static async fromRpc(t,e){const[r,n]=await ye.chainFromRpc(t),a=e[n];if(a.network!==r)throw new Error(`Network mismatch: ${a.network} != ${r}`);return new A(r,n,t,a.contracts)}async*transfer(t,e,r){const n=new K(t).unwrap(),a=L(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:u,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(a),h=G(this.tokenBridgeId,m),g=R(this.tokenBridgeId),f=ge(this.tokenBridgeId),P=se(this.coreBridgeId),{sequence:y}=await ae(this.connection,this.tokenBridgeId,this.coreBridgeId),w=Me(this.gateway.programId,y),S=re(this.coreBridgeId),l=oe(this.tokenBridgeId),k=ce(l,this.coreBridgeId),U=Te(this.gateway.programId,e.chain),V=fe(this.gateway.programId),C={amount:new x.BN(r.toString()),recipientChain:p(e.chain),recipient:[...e.address.toUniversalAddress().toUint8Array()],nonce:0},q=await M(o,n),D=te.get(this.network,e.chain),I={custodian:a,wrappedTbtcToken:u,wrappedTbtcMint:m,tbtcMint:o,senderToken:q,sender:n,tokenBridgeConfig:g,tokenBridgeWrappedAsset:h,tokenBridgeTransferAuthority:f,coreBridgeData:S,coreMessage:w,tokenBridgeCoreEmitter:l,coreEmitterSequence:k,coreFeeCollector:P,clock:ie,rent:N,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},_=D?await this.gateway.methods.sendTbtcGateway({...C}).accounts({...I,gatewayInfo:U,tokenBridgeSender:V}).instruction():await this.gateway.methods.sendTbtcWrapped({...C,arbiterFee:new x.BN(0)}).accounts(I).instruction(),{blockhash:F}=await this.connection.getLatestBlockhash(),z=v.compile({instructions:[_],payerKey:n,recentBlockhash:F}),H=new O(z);yield this.createUnsignedTransaction({transaction:H},"TBTCBridge.Send")}async*redeem(t,e){if(e.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new de(this.network,this.chain,this.connection,this.contracts).postVaa(t,e);const n=[],a=new K(t).unwrap(),o=e.payload.payload.recipient.toNative(this.chain).unwrap(),u=L(this.gateway.programId),{tbtcMint:m,wrappedTbtcToken:h,wrappedTbtcMint:g}=await this.gateway.account.custodian.fetch(u),f=await M(m,o);await this.connection.getAccountInfo(f)||n.push(Ie(a,f,o,m));const y=G(this.tokenBridgeId,g),w=await M(g,o);n.push(await this.gateway.methods.receiveTbtc([...e.hash]).accounts({payer:a,custodian:u,postedVaa:me(this.coreBridgeId,c.Buffer.from(e.hash)),tokenBridgeClaim:ue(this.tokenBridgeId,e.emitterAddress.toUint8Array(),p(e.emitterChain),e.sequence),wrappedTbtcToken:h,wrappedTbtcMint:g,tbtcMint:m,recipientToken:f,recipient:o,recipientWrappedToken:w,tbtcConfig:Be(),tbtcMinterInfo:be(u),tokenBridgeConfig:R(this.tokenBridgeId),tokenBridgeRegisteredEmitter:pe(this.tokenBridgeId,p(e.emitterChain),e.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:le(this.tokenBridgeId),rent:N,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:S}=await this.connection.getLatestBlockhash(),l=v.compile({instructions:n,payerKey:a,recentBlockhash:S}),k=new O(l);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(t,e){return new we(t,this.network,this.chain,e,!1)}}Se(ne,"TBTCBridge",A);export{A as SolanaTBTCBridge};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var m=Object.defineProperty;var d=(a,e,t)=>e in a?m(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var s=(a,e,t)=>d(a,typeof e!="symbol"?e+"":e,t);import{
|
|
1
|
+
var m=Object.defineProperty;var d=(a,e,t)=>e in a?m(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var s=(a,e,t)=>d(a,typeof e!="symbol"?e+"":e,t);import{cr as h,cF as p,aZ as w}from"../main.js";import{A as g}from"./aptos-DkSiRwPH.js";import{c as u}from"./create-CbRd6EbF.js";import{r as l}from"./chain-DF9mIQM9.js";import"./chunk-KJH4KKG6-B7DCZZVY.js";import"./index-CVqXQiSE.js";import"./index-VWaDGczM.js";class i{constructor(e,t,r,o){s(this,"network");s(this,"chain");s(this,"connection");s(this,"contracts");s(this,"chainId");s(this,"coreBridge");this.network=e,this.chain=t,this.connection=r,this.contracts=o,this.chainId=h(t);const n=o.coreBridge;if(!n)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.coreBridge=n}getGuardianSet(e){throw new Error("Method not implemented.")}getGuardianSetIndex(){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,t){const[r,o]=await g.chainFromRpc(e),n=t[o];if(n.network!==r)throw new Error(`Network mismatch: ${n.network} !== ${r}`);return new i(r,o,e,n.contracts)}async*publishMessage(e,t){throw new Error("Method not implemented.")}async*verifyMessage(e,t){throw new Error("Not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(r=>({chain:r.emitterChain,emitter:r.emitterAddress,sequence:r.sequence}))}async parseMessages(e){const t=await this.connection.getTransactionByHash({transactionHash:e});if(t.type!=="user_transaction")throw new Error(`${e} is not a user_transaction`);const r=t.events.filter(o=>o.type.endsWith("WormholeMessage"));if(!r||r.length===0)throw new Error(`WormholeMessage not found for ${e}`);return r.map(o=>{const n=o.data,c=new p(BigInt(n.sender).toString(16).padStart(64,"0"));return u("Uint8Array",{guardianSet:0,emitterChain:this.chain,emitterAddress:c,sequence:BigInt(n.sequence),timestamp:Number(n.timestamp),consistencyLevel:n.consistency_level,nonce:Number(n.nonce),signatures:[],payload:w.decode(n.payload)})})}}l("Aptos","WormholeCore",i);export{i as AptosWormholeCore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{bf as L,cd as g,ce as T,c0 as k,cf as h,b9 as F,be as P,bk as R}from"../main.js";function S(n,t,e,s){g(n);const i=T({dkLen:32,asyncTick:10},s),{c:u,dkLen:c,asyncTick:o}=i;if(k(u),k(c),k(o),u<1)throw new Error("iterations (c) should be >= 1");const d=h(t),a=h(e),f=new Uint8Array(c),l=F.create(n,d),r=l._cloneInto().update(a);return{c:u,dkLen:c,asyncTick:o,DK:f,PRF:l,PRFSalt:r}}function v(n,t,e,s,i){return n.destroy(),t.destroy(),s&&s.destroy(),P(i),e}function A(n,t,e,s){const{c:i,dkLen:u,DK:c,PRF:o,PRFSalt:d}=S(n,t,e,s);let a;const f=new Uint8Array(4),l=L(f),r=new Uint8Array(o.outputLen);for(let w=1,p=0;p<u;w++,p+=o.outputLen){const m=c.subarray(p,p+o.outputLen);l.setInt32(0,w,!1),(a=d._cloneInto(a)).update(f).digestInto(r),m.set(r.subarray(0,m.length));for(let b=1;b<i;b++){o._cloneInto(a).update(r).digestInto(r);for(let y=0;y<m.length;y++)m[y]^=r[y]}}return v(o,d,c,a,r)}/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */function I(n){if(typeof n!="string")throw new TypeError("invalid mnemonic type: "+typeof n);return n.normalize("NFKD")}function D(n){const t=I(n),e=t.split(" ");if(![12,15,18,21,24].includes(e.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:e}}const E=n=>I("mnemonic"+n);function U(n,t=""){return A(R,D(n).nfkd,E(t),{c:2048,dkLen:64})}export{U as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var m=Object.defineProperty;var T=(c,e,t)=>e in c?m(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var a=(c,e,t)=>T(c,typeof e!="symbol"?e+"":e,t);import{E as g,C as h}from"./evm-CWAxZ2a7.js";import{I as v,C as M}from"./contract-BhySpM-Z.js";import{r as S}from"./chain-Du7paeNG.js";import{an as w,as as r,ct as u,cv as x,cI as I,aY as C,cx as A,al as G}from"../main.js";import{c as F}from"./create-gkOVonha.js";class U{constructor(e,t,b,n,f=!1){a(this,"transaction");a(this,"network");a(this,"chain");a(this,"description");a(this,"parallelizable");this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=f}}class y{constructor(e,t,b,n){a(this,"network");a(this,"chain");a(this,"provider");a(this,"contracts");a(this,"chainId");a(this,"coreAddress");a(this,"core");a(this,"coreIface");this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=w.get(e,t),this.coreIface=d.createInterface();const f=this.contracts.coreBridge;if(!f)throw new Error("Core bridge address not found");this.coreAddress=f,this.core=d.connect(f,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await g.chainFromRpc(e),f=t[n];if(f.network!==b)throw new Error(`Network mismatch: ${f.network} != ${b}`);return new y(b,n,e,f.contracts)}async*publishMessage(e,t,b,n){const f=new r(e).toString(),s=await this.getMessageFee(),i=await this.core.publishMessage.populateTransaction(b,t,n,{value:s});yield this.createUnsignedTx(u(i,f),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new r(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(x(t));yield this.createUnsignedTx(u(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:f}=b,s=this.coreIface.parseLog({topics:n.slice(),data:f});if(s===null)return;const i=new r(s.args.sender);return{chain:this.chain,emitter:i.toUniversalAddress(),sequence:s.args.sequence}}).filter(I)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:f,data:s}=n,i=this.coreIface.parseLog({topics:f.slice(),data:s});if(i===null)return null;const l=new r(i.args.sender);return F("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:l.toUniversalAddress(),consistencyLevel:Number(i.args.consistencyLevel),sequence:BigInt(i.args.sequence),nonce:Number(i.args.nonce),signatures:[],payload:C.decode(i.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new U(A(e,this.chainId),this.network,this.chain,t,b)}}const p=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],o="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",k=c=>c.length>1;class d extends h{constructor(...e){k(e)?super(...e):super(p,o,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new v(p)}static connect(e,t){return new M(e,p,t)}}a(d,"bytecode",o),a(d,"abi",p);const q=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:d},Symbol.toStringTag,{value:"Module"}));S(G,"WormholeCore",y);const N=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:y,ethers_contracts:q},Symbol.toStringTag,{value:"Module"}));export{y as E,U as a,N as i};
|
|
1
|
+
var m=Object.defineProperty;var T=(c,e,t)=>e in c?m(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var a=(c,e,t)=>T(c,typeof e!="symbol"?e+"":e,t);import{E as g,C as h}from"./evm-DwqzhXfk.js";import{I as v,C as M}from"./contract-bGGxC9_m.js";import{r as S}from"./chain-DF9mIQM9.js";import{ao as w,at as r,cu as u,cw as x,cJ as I,aZ as C,cy as A,am as G}from"../main.js";import{c as F}from"./create-CbRd6EbF.js";class U{constructor(e,t,b,n,f=!1){a(this,"transaction");a(this,"network");a(this,"chain");a(this,"description");a(this,"parallelizable");this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=f}}class y{constructor(e,t,b,n){a(this,"network");a(this,"chain");a(this,"provider");a(this,"contracts");a(this,"chainId");a(this,"coreAddress");a(this,"core");a(this,"coreIface");this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=w.get(e,t),this.coreIface=d.createInterface();const f=this.contracts.coreBridge;if(!f)throw new Error("Core bridge address not found");this.coreAddress=f,this.core=d.connect(f,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await g.chainFromRpc(e),f=t[n];if(f.network!==b)throw new Error(`Network mismatch: ${f.network} != ${b}`);return new y(b,n,e,f.contracts)}async*publishMessage(e,t,b,n){const f=new r(e).toString(),s=await this.getMessageFee(),i=await this.core.publishMessage.populateTransaction(b,t,n,{value:s});yield this.createUnsignedTx(u(i,f),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new r(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(x(t));yield this.createUnsignedTx(u(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:f}=b,s=this.coreIface.parseLog({topics:n.slice(),data:f});if(s===null)return;const i=new r(s.args.sender);return{chain:this.chain,emitter:i.toUniversalAddress(),sequence:s.args.sequence}}).filter(I)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:f,data:s}=n,i=this.coreIface.parseLog({topics:f.slice(),data:s});if(i===null)return null;const l=new r(i.args.sender);return F("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:l.toUniversalAddress(),consistencyLevel:Number(i.args.consistencyLevel),sequence:BigInt(i.args.sequence),nonce:Number(i.args.nonce),signatures:[],payload:C.decode(i.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new U(A(e,this.chainId),this.network,this.chain,t,b)}}const p=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],o="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",k=c=>c.length>1;class d extends h{constructor(...e){k(e)?super(...e):super(p,o,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new v(p)}static connect(e,t){return new M(e,p,t)}}a(d,"bytecode",o),a(d,"abi",p);const q=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:d},Symbol.toStringTag,{value:"Module"}));S(G,"WormholeCore",y);const N=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:y,ethers_contracts:q},Symbol.toStringTag,{value:"Module"}));export{y as E,U as a,N as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _=Object.defineProperty;var z=(p,e,t)=>e in p?_(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var u=(p,e,t)=>z(p,typeof e!="symbol"?e+"":e,t);import{I as D,C as T}from"./contract-
|
|
1
|
+
var _=Object.defineProperty;var z=(p,e,t)=>e in p?_(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var u=(p,e,t)=>z(p,typeof e!="symbol"?e+"":e,t);import{I as D,C as T}from"./contract-bGGxC9_m.js";import{ar as I,aZ as b,cr as S,a4 as B,ap as r,ao as G,at as F,cs as f,ch as h,ct as H,cu as g,cv as M,cw as j,ac as Y,cx as Z,cy as J,am as K}from"../main.js";import{E as X,a as tt}from"./index-CYFq9U58.js";import{EvmTokenBridge as et}from"./index-DA4wR-ie.js";import{E as y}from"./evm-DwqzhXfk.js";import{r as nt}from"./chain-DF9mIQM9.js";import"./create-CbRd6EbF.js";import"./provider-jsonrpc-DTnJKzTS.js";const v=new D(["function start((bytes32,address,address,address,address,address,uint256,uint256,uint256,uint256)) returns (address,uint16,uint64)","function receiveMessageAndSwap(bytes)"]),ot=new D(["function quoteExactInputSingle((address,address,uint256,uint24,uint160)) public view returns (uint256,uint160,uint32,uint256)"]),rt="https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";class st{static async quoteRelayer(e,t,o){var i;if(I(t)||I(o))throw new Error("how did you get here tho?");const n=b.encode(t.toUniversalAddress().toUint8Array(),!1),s=b.encode(o.toUniversalAddress().toUint8Array(),!1),a={targetChain:S(e),sourceToken:n,targetToken:s};try{const c=await B.post(rt,a);return BigInt(c.data.fee)}catch(c){throw B.isAxiosError(c)?new Error(`Error getting relayer fee: ${(i=c.response)==null?void 0:i.statusText}`):c}}}const m=100,x={ETH:[r.tokenId("Arbitrum","native"),r.tokenId("Base","native"),r.tokenId("Ethereum","native"),r.tokenId("Optimism","native")],WETH:[r.tokenId("Arbitrum","0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"),r.tokenId("Avalanche","0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"),r.tokenId("Base","0x4200000000000000000000000000000000000006"),r.tokenId("Bsc","0x2170Ed0880ac9A755fd29B2688956BD959F933F8"),r.tokenId("Ethereum","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"),r.tokenId("Optimism","0x4200000000000000000000000000000000000006"),r.tokenId("Polygon","0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619")],wstETH:[r.tokenId("Arbitrum","0x5979D7b546E38E414F7E9822514be443A4800529"),r.tokenId("Base","0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"),r.tokenId("Ethereum","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"),r.tokenId("Optimism","0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"),r.tokenId("Polygon","0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD")],USDT:[r.tokenId("Arbitrum","0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"),r.tokenId("Avalanche","0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"),r.tokenId("Base","0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"),r.tokenId("Bsc","0x55d398326f99059fF775485246999027B3197955"),r.tokenId("Ethereum","0xdAC17F958D2ee523a2206206994597C13D831ec7"),r.tokenId("Optimism","0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"),r.tokenId("Polygon","0xc2132D05D31c914a87C6611C10748AEb04B58e8F"),r.tokenId("Celo","0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e")]};class A{constructor(e,t,o,n){u(this,"network");u(this,"chain");u(this,"provider");u(this,"contracts");u(this,"chainId");u(this,"core");u(this,"tokenBridge");if(this.network=e,this.chain=t,this.provider=o,this.contracts=n,!n.portico)throw new Error("Unsupported chain, no contract addresses for: "+t);this.core=new X(e,t,o,n),this.tokenBridge=new et(e,t,o,n),this.chainId=G.get(e,t)}static async fromRpc(e,t){const[o,n]=await y.chainFromRpc(e),s=t[n];if(s.network!==o)throw new Error(`Network mismatch: ${s.network} != ${o}`);return new A(o,n,e,s.contracts)}async*transfer(e,t,o,n,s,d,a){const{minAmountStart:i,minAmountFinish:c}=a.swapAmounts;if(i===0n)throw new Error("Invalid min swap amount");if(c===0n)throw new Error("Invalid min swap amount");const w=new F(e).toString(),[k,E]=f(this.network,this.chain,o),[U,P]=f(this.network,t.chain,s),l=h(E),q=h(await this.getTransferrableToken(l)),R=h(t),N=h(P),O=new Date().valueOf()%2**4,$=H.serializeFlagSet({flags:{shouldWrapNative:k,shouldUnwrapNative:U},recipientChain:S(t.chain),bridgeNonce:O,feeTierStart:m,feeTierFinish:m,padding:new Uint8Array(19)}),Q=v.encodeFunctionData("start",[[$,l.toLowerCase(),q,N.toLowerCase(),R,d,n.toString(),i.toString(),c.toString(),a.relayerFee.toString()]]),W=this.getTokenGroup(E.address.toString()),C=this.getPorticoAddress(W);k||(yield*this.approve(l,w,n,C));const L=await this.core.getMessageFee(),V={to:C,data:Q,value:L+(k?n:0n)};yield this.createUnsignedTransaction(g(V,w),"PorticoBridge.Transfer")}async*redeem(e,t){const o=M(t.payload.payload.flagSet.recipientChain),n=t.payload.payload.finalTokenAddress.toNative(o).toString(),s=this.getTokenGroup(n),d=this.getPorticoAddress(s),i=await new T(d,v.fragments,this.provider).getFunction("receiveMessageAndSwap").populateTransaction(j(t)),c=new F(e).toString();yield this.createUnsignedTransaction(g(i,c),"PorticoBridge.Redeem")}async isTransferCompleted(e){return await this.tokenBridge.tokenBridge.isTransferCompleted(Y(e.hash))}async quoteSwap(e,t,o,n){const[,s]=f(this.network,this.chain,e),[,d]=f(this.network,this.chain,t),a=h(s),i=h(d);if(Z(a,i))return n;const c=this.getQuoterAddress(o);return(await new T(c,ot.fragments,this.provider).getFunction("quoteExactInputSingle").staticCall([a,i,n,m,0]))[0]}async quoteRelay(e,t){return await st.quoteRelayer(this.chain,e,t)}async getTransferrableToken(e){const t=r.tokenId(this.chain,e),[,o]=f(this.network,this.chain,t);if(this.chain==="Ethereum")return o;const n=Object.values(x).find(a=>a.find(i=>i.chain===this.chain&&h(i)===h(o)));if(!n)throw new Error(`No token group found for ${e} on ${this.chain}`);const s=n.find(a=>a.chain==="Ethereum");if(!s)throw new Error(`No Ethereum origin token found for ${e} on ${this.chain}`);const d=await this.tokenBridge.getWrappedAsset(s);return r.tokenId(this.chain,d.toString())}supportedTokens(){const e=[];for(const[t,o]of Object.entries(x))for(const n of o)n.chain===this.chain&&e.push({group:t,token:n});return e}getTokenGroup(e){const o=this.supportedTokens().find(n=>h(n.token)===e);if(!o)throw new Error("Token not found");return o.group}async*approve(e,t,o,n){const s=y.getTokenImplementation(this.provider,e);if(await s.allowance(t,n)<o){const a=await s.approve.populateTransaction(n,o);yield this.createUnsignedTransaction(g(a,t),"PorticoBridge.Approve")}}createUnsignedTransaction(e,t){return new tt(J(e,this.chainId),this.network,this.chain,t,!1)}getPorticoAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.porticoPancakeSwap||t.porticoUniswap}getQuoterAddress(e){const t=this.contracts.portico;return e==="USDT"&&t.pancakeSwapQuoterV2||t.uniswapQuoterV2}}nt(K,"PorticoBridge",A);export{A as EvmPorticoBridge};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ue=Object.defineProperty;var Te=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>Te(r,typeof e!="symbol"?e+"":e,t);import{P as m,f as g,cW as ne,cX as Ce,T as ke,cY as _e,cJ as M,aV as Pe,cq as L,cN as U,cO as V,aQ as q,cK as oe,cZ as ve,c_ as ze,K as re,L as j,cu as Ke,aR as qe}from"../main.js";import{d as l,P as Fe,c as Ve}from"./index-BpI-Jtyb.js";import{b as De,e as Oe}from"./signer-BRan8q4C.js";import{c as Ge}from"./create-gkOVonha.js";import{r as Ne}from"./chain-Du7paeNG.js";const se=r=>typeof r=="string"?g.Buffer.from(r):r;function b(r,e){return m.findProgramAddressSync(Array.isArray(r)?r.map(se):[se(r)],new m(e))[0]}function Mt(r,e){return{pubkey:new m(r),isWritable:!0,isSigner:e}}function bt(r,e){return{pubkey:new m(r),isWritable:!1,isSigner:e}}function z(r){if(r===null)throw Error("account info is null");return r.data}const ue=new m("BPFLoaderUpgradeab1e11111111111111111111111");function Re(r){return b([new m(r).toBuffer()],ue)}class $e extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>I(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?I(r,s.type):I(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return I(r,e.type.value)}}function I(r,e){var t;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+I(r,e.option);if("coption"in e)return 4+I(r,e.coption);if("defined"in e){const n=((t=r.types)==null?void 0:t.filter(a=>a.name===e.defined))??[];if(n.length!==1)throw new $e(`Type not found: ${JSON.stringify(e)}`);let s=n[0];return ce(r,s)}if("array"in e){let n=e.array[0],s=e.array[1];return I(r,n)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ye(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ge=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...ne},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...ne},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ce(ge,r)}function T(r,e,t,n){const s=typeof e=="string"?g.Buffer.from(e,"hex"):g.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=g.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),b([s,(()=>{const i=g.Buffer.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function je(r,e,t,n,s,a){return r.getAccountInfo(T(e,t,n,s),a).then(i=>!!z(i)[0])}function S(r){return b([g.Buffer.from("Bridge")],r)}async function fe(r,e,t){return r.getAccountInfo(S(e),t).then(n=>O.deserialize(z(n)))}class D{constructor(e,t){u(this,"guardianSetExpirationTime");u(this,"fee");this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new D(t,n)}}class O{constructor(e,t,n){u(this,"guardianSetIndex");u(this,"lastLamports");u(this,"config");this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=D.deserialize(e.subarray(12));return new O(t,n,s)}}function G(r,e){return b([g.Buffer.from("Sequence"),new m(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(G(e,t),n).then(s=>N.deserialize(z(s)))}class N{constructor(e,t,n){u(this,"sequence");u(this,"bump");u(this,"emitterType");this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new N(s,t,n)}value(){return this.sequence}}function W(r){return b([g.Buffer.from("emitter")],r)}function H(r,e){const t=W(r);return{emitter:t,sequence:G(t,e)}}async function We(r,e,t,n){return me(r,W(e),t,n)}function C(r){return b([g.Buffer.from("fee_collector")],r)}const ae=65,P=20;function He(r,e,t){return new ke({keys:[],programId:_e.programId,data:Je.serialize(r,e,t)})}class Je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,o=ae+P,c=i+s*o,f=32,d=g.Buffer.alloc(c+f);d.writeUInt8(s,0),d.write(n.toString("hex"),c,"hex");for(let p=0;p<s;++p){const y=e.at(p);if((y==null?void 0:y.length)!=ae)throw Error(`signatures[${p}].length != 65`);const h=t.at(p);if((h==null?void 0:h.length)!=P)throw Error(`keys[${p}].length != 20`);const A=i+o*p,k=A+65;d.writeUInt16LE(A,1+p*a),d.writeUInt8(0,3+p*a),d.writeUInt16LE(k,4+p*a),d.writeUInt8(0,6+p*a),d.writeUInt16LE(c,7+p*a),d.writeUInt16LE(f,9+p*a),d.writeUInt8(0,10+p*a),d.write(y.toString("hex"),A,"hex"),d.write(h.toString("hex"),k,"hex")}return d}}function x(r,e){return b([g.Buffer.from("GuardianSet"),(()=>{const t=g.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function J(r,e,t,n){return r.getAccountInfo(x(e,t),n).then(s=>R.deserialize(z(s)))}class R{constructor(e,t,n,s){u(this,"index");u(this,"keys");u(this,"creationTime");u(this,"expirationTime");this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),o=[];for(let c=0;c<n;++c){const f=8+c*P;o.push(e.subarray(f,f+P))}return new R(t,o,a,i)}}function E(r,e){return b([g.Buffer.from("PostedVAA"),e],r)}async function Qe(r,e,t){return r.getAccountInfo(new m(e),t).then(n=>$.deserialize(z(n)))}class ${constructor(e,t,n){u(this,"signatures");u(this,"hash");u(this,"guardianSetIndex");this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(o=>o!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new $(n,a,i)}}function le(r){return b([g.Buffer.from("upgrade")],r)}function pe(r,e,t){return M.transfer({fromPubkey:new m(e),toPubkey:C(r),lamports:t})}class Xe{constructor(e){u(this,"idl");this.idl=e}async encode(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Ze{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class B{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return l.bool(n);case"u8":return l.u8(n);case"i8":return l.i8(n);case"u16":return l.u16(n);case"i16":return l.i16(n);case"u32":return l.u32(n);case"i32":return l.i32(n);case"f32":return l.f32(n);case"u64":return l.u64(n);case"i64":return l.i64(n);case"f64":return l.f64(n);case"u128":return l.u128(n);case"i128":return l.i128(n);case"u256":return l.u256(n);case"i256":return l.i256(n);case"bytes":return l.vecU8(n);case"string":return l.str(n);case"publicKey":return l.publicKey(n);default:{if("vec"in e.type)return l.vec(B.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return l.option(B.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=B.fieldLayout({name:void 0,type:s},t);return l.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class Q{constructor(e){u(this,"ixLayout");this.ixLayout=Q.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}));return new Map(n)}encode(e,t){const n=g.Buffer.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),o=n.slice(0,i);return et(F[Ye(s)],o)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){var o;typeof e=="string"&&(e=t==="hex"?g.Buffer.from(e,"hex"):Pe.decode(e));let n=g.Buffer.from(e.slice(0,1)).readInt8(),s=g.Buffer.from(e.slice(1)),a=_(F[n]??"");return this.ixLayout.get(a)?{data:(o=this.ixLayout.get(a))==null?void 0:o.decode(s),name:a}:null}}var F;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(F||(F={}));function et(r,e){const t=g.Buffer.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class tt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class nt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class rt{constructor(e){u(this,"instruction");u(this,"accounts");u(this,"state");u(this,"events");u(this,"types");this.instruction=new Q(e),this.accounts=new Xe(e),this.state=new tt(e),this.events=new Ze(e),this.types=new nt(e)}}const X={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function ye(r,e){return new Fe(X,new m(r),e===void 0?{connection:null}:e,he())}function w(r,e){return ye(r,Ve(e))}function he(){return new rt(X)}function st(r,e,t,n){const s=w(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:Se(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),systemProgram:M.programId}}function at(r,e,t,n,s){const a=w(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:we(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t,n){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(n.hash)),claim:T(r,n.emitterAddress.toString(),L(n.emitterChain),n.sequence),feeCollector:C(r),recipient:new m(t),rent:U,systemProgram:M.programId}}function it(r,e,t,n){const s=w(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),guardianSetOld:x(r,t.guardianSet),guardianSetNew:x(r,t.guardianSet+1),systemProgram:M.programId}}function ot(r,e,t,n){const s=w(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:be(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),upgradeAuthority:le(r),spill:new m(n===void 0?e:n),implementation:new q(s).unwrap(),programData:Re(r),wormholeProgram:new m(r),rent:U,clock:V,bpfLoaderUpgradeable:ue,systemProgram:M.programId}}function ut(r,e,t,n,s,a){const i=w(e,r).methods.initialize(n,new oe(s.toString()),[...a.map(o=>[...new Uint8Array(o)])]);return i._ixFn(...i._args,{accounts:Ae(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ae(r,e){return{bridge:S(r),guardianSet:x(r,0),feeCollector:C(r),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}function Ie(r,e,t,n,s,a,i){const o=w(e,r).methods.postMessage(a,g.Buffer.from(s),i);return o._ixFn(...o._args,{accounts:Z(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Z(r,e,t,n){let s;return n?{emitter:n,sequence:s}=H(n,r):(n=e,s=G(n,r)),{bridge:S(r),message:new m(t),emitter:new m(n),sequence:s,payer:new m(e),feeCollector:C(r),clock:V,rent:U,systemProgram:M.programId}}function xe(r,e,t,n,s){const a=w(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,L(n.emitterChain),[...n.emitterAddress.toUint8Array()],new oe(n.sequence.toString()),n.consistencyLevel,g.Buffer.from(ve(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:Ee(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ee(r,e,t,n){return{guardianSet:x(r,n.guardianSet),bridge:S(r),signatureSet:new m(t),vaa:E(r,g.Buffer.from(n.hash)),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}const ct=19;async function Be(r,e,t,n,s,a){const i=n.guardianSet,o=await J(r,e,i,a),c=n.signatures,f=o.keys,d=7,p=[];for(let y=0;y<Math.ceil(c.length/d);++y){const h=y*d,A=Math.min(c.length,(y+1)*d),k=new Array(ct).fill(-1),ee=[],te=[];for(let K=0;K<A-h;++K){const Y=c.at(K+h);ee.push(g.Buffer.from(Y.signature.encode())),te.push(f.at(Y.guardianIndex)),k[Y.guardianIndex]=K}p.push(He(ee,te,g.Buffer.from(n.hash))),p.push(gt(r,e,t,n,s,k))}return p}function gt(r,e,t,n,s,a){const i=w(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new m(e),guardianSet:x(r,n.guardianSet),signatureSet:new m(t),instructions:ze,rent:U,systemProgram:M.programId}}function dt(r,e){const{emitter:t,sequence:n}=H(r,e);return{wormholeBridge:S(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:C(e)}}function ft(r,e,t,n){const s=Z(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const mt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:D,BridgeData:O,GuardianSetData:R,SequenceTracker:N,SignatureSetData:$,coder:he,createBridgeFeeTransferInstruction:pe,createInitializeInstruction:ut,createPostMessageInstruction:Ie,createPostVaaInstruction:xe,createReadOnlyWormholeProgramInterface:w,createSetFeesInstruction:st,createTransferFeesInstruction:at,createUpgradeContractInstruction:ot,createUpgradeGuardianSetInstruction:it,createVerifySignaturesInstructions:Be,createWormholeProgramInterface:ye,deriveClaimKey:T,deriveEmitterSequenceKey:G,deriveFeeCollectorKey:C,deriveGuardianSetKey:x,derivePostedVaaKey:E,deriveUpgradeAuthorityKey:le,deriveWormholeBridgeDataKey:S,deriveWormholeEmitterKey:W,getClaim:je,getEmitterKeys:H,getGuardianSet:J,getInitializeAccounts:Ae,getPostMessageAccounts:Z,getPostMessageCpiAccounts:ft,getPostVaaAccounts:Ee,getProgramSequenceTracker:We,getSequenceTracker:me,getSetFeesAccounts:Se,getSignatureSetData:Qe,getTransferFeesAccounts:we,getUpgradeContractAccounts:be,getUpgradeGuardianSetAccounts:Me,getVerifySignatureAccounts:Le,getWormholeBridgeData:fe,getWormholeDerivedAccounts:dt},Symbol.toStringTag,{value:"Module"})),ie="Program log: Sequence: ";class v{constructor(e,t,n,s){u(this,"network");u(this,"chain");u(this,"connection");u(this,"contracts");u(this,"chainId");u(this,"coreBridge");u(this,"address");u(this,"bridgeData");this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=L(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=w(a,n)}async getGuardianSet(e){const t=await J(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await De.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await fe(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=re.generate(),i=new q(e).unwrap(),o=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),c=await this.getMessageFee(),f=pe(this.coreBridge.programId,i,c),d=new j;d.feePayer=i,d.add(f,o),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=E(this.coreBridge.programId,g.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new q(e).unwrap(),i=re.generate(),o=await Be(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<o.length;f+=2){const d=new j().add(...o.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const c=new j().add(xe(this.connection,this.coreBridge.programId,a,t,i.publicKey));c.feePayer=a,yield this.createUnsignedTx({transaction:c},"Core.PostVAA")}static parseSequenceFromLog(e,t){var c,f,d,p;const{meta:n,transaction:{message:s}}=t;if(!((c=n==null?void 0:n.innerInstructions)!=null&&c.length))return[];const a=s.staticAccountKeys;if(a.filter(y=>y.toString()===e).length===0)return[];const i=(p=(d=(f=n==null?void 0:n.logMessages)==null?void 0:f.filter(y=>y.startsWith(ie)))==null?void 0:d[0])==null?void 0:p.replace(ie,"");if(!i)return[];const o=[];for(const y of n==null?void 0:n.innerInstructions){const h=y.instructions;o.push(...h.filter(A=>A.programIdIndex in a&&a[A.programIdIndex].toString()===e))}return o.length<1?[]:a.length<3?[]:o.map(y=>[new q(a[y.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(y=>y!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){var c;const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=(c=n.innerInstructions)==null?void 0:c.flatMap(f=>f.instructions.filter(d=>a.toString()===e.get(d.programIdIndex).toString())).map(f=>({programIdIndex:f.programIdIndex,accountKeyIndexes:f.accounts})),o=s.compiledInstructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString());return[...i,...o]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!(t!=null&&t.data))throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:o,nonce:c,payload:f}=de(new Uint8Array(t==null?void 0:t.data));return Ge("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:Ke(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:o,nonce:c,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[o,c]=i[0];return[{chain:this.chain,emitter:o,sequence:c}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]),c=await this.parsePostMessageAccount(o);return{chain:c.emitterChain,emitter:c.emitterAddress,sequence:c.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(o)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Oe(e,this.network,this.chain,t,n)}}Ne(qe,"WormholeCore",v);const At=Object.freeze(Object.defineProperty({__proto__:null,IDL:X,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ge,utils:mt},Symbol.toStringTag,{value:"Module"}));export{ue as B,v as S,S as a,W as b,G as c,C as d,T as e,E as f,We as g,b as h,z as i,ce as j,bt as k,Z as l,Re as m,Mt as n,le as o,ft as p,dt as q,je as r,pe as s,At as t};
|
|
1
|
+
var Ue=Object.defineProperty;var Te=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>Te(r,typeof e!="symbol"?e+"":e,t);import{P as m,f as g,cX as ne,cY as Ce,T as ke,cZ as _e,cK as M,aW as Pe,cr as L,cO as U,cP as V,aR as q,cL as oe,c_ as ve,c$ as ze,K as re,O as j,cv as Ke,aS as qe}from"../main.js";import{d as l,P as Fe,c as Ve}from"./index-BqLA4xTj.js";import{b as De,e as Oe}from"./signer-7-tpWjBV.js";import{c as Ge}from"./create-CbRd6EbF.js";import{r as Re}from"./chain-DF9mIQM9.js";const se=r=>typeof r=="string"?g.Buffer.from(r):r;function b(r,e){return m.findProgramAddressSync(Array.isArray(r)?r.map(se):[se(r)],new m(e))[0]}function Mt(r,e){return{pubkey:new m(r),isWritable:!0,isSigner:e}}function bt(r,e){return{pubkey:new m(r),isWritable:!1,isSigner:e}}function z(r){if(r===null)throw Error("account info is null");return r.data}const ue=new m("BPFLoaderUpgradeab1e11111111111111111111111");function Ne(r){return b([new m(r).toBuffer()],ue)}class $e extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>I(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?I(r,s.type):I(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return I(r,e.type.value)}}function I(r,e){var t;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+I(r,e.option);if("coption"in e)return 4+I(r,e.coption);if("defined"in e){const n=((t=r.types)==null?void 0:t.filter(a=>a.name===e.defined))??[];if(n.length!==1)throw new $e(`Type not found: ${JSON.stringify(e)}`);let s=n[0];return ce(r,s)}if("array"in e){let n=e.array[0],s=e.array[1];return I(r,n)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ye(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ge=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...ne},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...ne},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ce(ge,r)}function T(r,e,t,n){const s=typeof e=="string"?g.Buffer.from(e,"hex"):g.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=g.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),b([s,(()=>{const i=g.Buffer.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function je(r,e,t,n,s,a){return r.getAccountInfo(T(e,t,n,s),a).then(i=>!!z(i)[0])}function S(r){return b([g.Buffer.from("Bridge")],r)}async function fe(r,e,t){return r.getAccountInfo(S(e),t).then(n=>O.deserialize(z(n)))}class D{constructor(e,t){u(this,"guardianSetExpirationTime");u(this,"fee");this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new D(t,n)}}class O{constructor(e,t,n){u(this,"guardianSetIndex");u(this,"lastLamports");u(this,"config");this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=D.deserialize(e.subarray(12));return new O(t,n,s)}}function G(r,e){return b([g.Buffer.from("Sequence"),new m(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(G(e,t),n).then(s=>R.deserialize(z(s)))}class R{constructor(e,t,n){u(this,"sequence");u(this,"bump");u(this,"emitterType");this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new R(s,t,n)}value(){return this.sequence}}function W(r){return b([g.Buffer.from("emitter")],r)}function H(r,e){const t=W(r);return{emitter:t,sequence:G(t,e)}}async function We(r,e,t,n){return me(r,W(e),t,n)}function C(r){return b([g.Buffer.from("fee_collector")],r)}const ae=65,P=20;function He(r,e,t){return new ke({keys:[],programId:_e.programId,data:Je.serialize(r,e,t)})}class Je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,o=ae+P,c=i+s*o,f=32,d=g.Buffer.alloc(c+f);d.writeUInt8(s,0),d.write(n.toString("hex"),c,"hex");for(let p=0;p<s;++p){const y=e.at(p);if((y==null?void 0:y.length)!=ae)throw Error(`signatures[${p}].length != 65`);const h=t.at(p);if((h==null?void 0:h.length)!=P)throw Error(`keys[${p}].length != 20`);const A=i+o*p,k=A+65;d.writeUInt16LE(A,1+p*a),d.writeUInt8(0,3+p*a),d.writeUInt16LE(k,4+p*a),d.writeUInt8(0,6+p*a),d.writeUInt16LE(c,7+p*a),d.writeUInt16LE(f,9+p*a),d.writeUInt8(0,10+p*a),d.write(y.toString("hex"),A,"hex"),d.write(h.toString("hex"),k,"hex")}return d}}function x(r,e){return b([g.Buffer.from("GuardianSet"),(()=>{const t=g.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function J(r,e,t,n){return r.getAccountInfo(x(e,t),n).then(s=>N.deserialize(z(s)))}class N{constructor(e,t,n,s){u(this,"index");u(this,"keys");u(this,"creationTime");u(this,"expirationTime");this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),o=[];for(let c=0;c<n;++c){const f=8+c*P;o.push(e.subarray(f,f+P))}return new N(t,o,a,i)}}function E(r,e){return b([g.Buffer.from("PostedVAA"),e],r)}async function Xe(r,e,t){return r.getAccountInfo(new m(e),t).then(n=>$.deserialize(z(n)))}class ${constructor(e,t,n){u(this,"signatures");u(this,"hash");u(this,"guardianSetIndex");this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(o=>o!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new $(n,a,i)}}function le(r){return b([g.Buffer.from("upgrade")],r)}function pe(r,e,t){return M.transfer({fromPubkey:new m(e),toPubkey:C(r),lamports:t})}class Ze{constructor(e){u(this,"idl");this.idl=e}async encode(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Qe{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class B{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return l.bool(n);case"u8":return l.u8(n);case"i8":return l.i8(n);case"u16":return l.u16(n);case"i16":return l.i16(n);case"u32":return l.u32(n);case"i32":return l.i32(n);case"f32":return l.f32(n);case"u64":return l.u64(n);case"i64":return l.i64(n);case"f64":return l.f64(n);case"u128":return l.u128(n);case"i128":return l.i128(n);case"u256":return l.u256(n);case"i256":return l.i256(n);case"bytes":return l.vecU8(n);case"string":return l.str(n);case"publicKey":return l.publicKey(n);default:{if("vec"in e.type)return l.vec(B.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return l.option(B.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=B.fieldLayout({name:void 0,type:s},t);return l.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class X{constructor(e){u(this,"ixLayout");this.ixLayout=X.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(o=>B.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,l.struct(a,i)]}));return new Map(n)}encode(e,t){const n=g.Buffer.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),o=n.slice(0,i);return et(F[Ye(s)],o)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){var o;typeof e=="string"&&(e=t==="hex"?g.Buffer.from(e,"hex"):Pe.decode(e));let n=g.Buffer.from(e.slice(0,1)).readInt8(),s=g.Buffer.from(e.slice(1)),a=_(F[n]??"");return this.ixLayout.get(a)?{data:(o=this.ixLayout.get(a))==null?void 0:o.decode(s),name:a}:null}}var F;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(F||(F={}));function et(r,e){const t=g.Buffer.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class tt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class nt{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class rt{constructor(e){u(this,"instruction");u(this,"accounts");u(this,"state");u(this,"events");u(this,"types");this.instruction=new X(e),this.accounts=new Ze(e),this.state=new tt(e),this.events=new Qe(e),this.types=new nt(e)}}const Z={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function ye(r,e){return new Fe(Z,new m(r),e===void 0?{connection:null}:e,he())}function w(r,e){return ye(r,Ve(e))}function he(){return new rt(Z)}function st(r,e,t,n){const s=w(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:Se(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),systemProgram:M.programId}}function at(r,e,t,n,s){const a=w(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:we(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t,n){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(n.hash)),claim:T(r,n.emitterAddress.toString(),L(n.emitterChain),n.sequence),feeCollector:C(r),recipient:new m(t),rent:U,systemProgram:M.programId}}function it(r,e,t,n){const s=w(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t){return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),guardianSetOld:x(r,t.guardianSet),guardianSetNew:x(r,t.guardianSet+1),systemProgram:M.programId}}function ot(r,e,t,n){const s=w(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:be(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new m(e),bridge:S(r),vaa:E(r,g.Buffer.from(t.hash)),claim:T(r,t.emitterAddress.toString(),L(t.emitterChain),t.sequence),upgradeAuthority:le(r),spill:new m(n===void 0?e:n),implementation:new q(s).unwrap(),programData:Ne(r),wormholeProgram:new m(r),rent:U,clock:V,bpfLoaderUpgradeable:ue,systemProgram:M.programId}}function ut(r,e,t,n,s,a){const i=w(e,r).methods.initialize(n,new oe(s.toString()),[...a.map(o=>[...new Uint8Array(o)])]);return i._ixFn(...i._args,{accounts:Ae(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ae(r,e){return{bridge:S(r),guardianSet:x(r,0),feeCollector:C(r),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}function Ie(r,e,t,n,s,a,i){const o=w(e,r).methods.postMessage(a,g.Buffer.from(s),i);return o._ixFn(...o._args,{accounts:Q(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Q(r,e,t,n){let s;return n?{emitter:n,sequence:s}=H(n,r):(n=e,s=G(n,r)),{bridge:S(r),message:new m(t),emitter:new m(n),sequence:s,payer:new m(e),feeCollector:C(r),clock:V,rent:U,systemProgram:M.programId}}function xe(r,e,t,n,s){const a=w(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,L(n.emitterChain),[...n.emitterAddress.toUint8Array()],new oe(n.sequence.toString()),n.consistencyLevel,g.Buffer.from(ve(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:Ee(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Ee(r,e,t,n){return{guardianSet:x(r,n.guardianSet),bridge:S(r),signatureSet:new m(t),vaa:E(r,g.Buffer.from(n.hash)),payer:new m(e),clock:V,rent:U,systemProgram:M.programId}}const ct=19;async function Be(r,e,t,n,s,a){const i=n.guardianSet,o=await J(r,e,i,a),c=n.signatures,f=o.keys,d=7,p=[];for(let y=0;y<Math.ceil(c.length/d);++y){const h=y*d,A=Math.min(c.length,(y+1)*d),k=new Array(ct).fill(-1),ee=[],te=[];for(let K=0;K<A-h;++K){const Y=c.at(K+h);ee.push(g.Buffer.from(Y.signature.encode())),te.push(f.at(Y.guardianIndex)),k[Y.guardianIndex]=K}p.push(He(ee,te,g.Buffer.from(n.hash))),p.push(gt(r,e,t,n,s,k))}return p}function gt(r,e,t,n,s,a){const i=w(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new m(e),guardianSet:x(r,n.guardianSet),signatureSet:new m(t),instructions:ze,rent:U,systemProgram:M.programId}}function dt(r,e){const{emitter:t,sequence:n}=H(r,e);return{wormholeBridge:S(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:C(e)}}function ft(r,e,t,n){const s=Q(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const mt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:D,BridgeData:O,GuardianSetData:N,SequenceTracker:R,SignatureSetData:$,coder:he,createBridgeFeeTransferInstruction:pe,createInitializeInstruction:ut,createPostMessageInstruction:Ie,createPostVaaInstruction:xe,createReadOnlyWormholeProgramInterface:w,createSetFeesInstruction:st,createTransferFeesInstruction:at,createUpgradeContractInstruction:ot,createUpgradeGuardianSetInstruction:it,createVerifySignaturesInstructions:Be,createWormholeProgramInterface:ye,deriveClaimKey:T,deriveEmitterSequenceKey:G,deriveFeeCollectorKey:C,deriveGuardianSetKey:x,derivePostedVaaKey:E,deriveUpgradeAuthorityKey:le,deriveWormholeBridgeDataKey:S,deriveWormholeEmitterKey:W,getClaim:je,getEmitterKeys:H,getGuardianSet:J,getInitializeAccounts:Ae,getPostMessageAccounts:Q,getPostMessageCpiAccounts:ft,getPostVaaAccounts:Ee,getProgramSequenceTracker:We,getSequenceTracker:me,getSetFeesAccounts:Se,getSignatureSetData:Xe,getTransferFeesAccounts:we,getUpgradeContractAccounts:be,getUpgradeGuardianSetAccounts:Me,getVerifySignatureAccounts:Le,getWormholeBridgeData:fe,getWormholeDerivedAccounts:dt},Symbol.toStringTag,{value:"Module"})),ie="Program log: Sequence: ";class v{constructor(e,t,n,s){u(this,"network");u(this,"chain");u(this,"connection");u(this,"contracts");u(this,"chainId");u(this,"coreBridge");u(this,"address");u(this,"bridgeData");this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=L(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=w(a,n)}async getGuardianSet(e){const t=await J(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await De.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await fe(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=re.generate(),i=new q(e).unwrap(),o=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),c=await this.getMessageFee(),f=pe(this.coreBridge.programId,i,c),d=new j;d.feePayer=i,d.add(f,o),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=E(this.coreBridge.programId,g.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new q(e).unwrap(),i=re.generate(),o=await Be(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<o.length;f+=2){const d=new j().add(...o.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const c=new j().add(xe(this.connection,this.coreBridge.programId,a,t,i.publicKey));c.feePayer=a,yield this.createUnsignedTx({transaction:c},"Core.PostVAA")}static parseSequenceFromLog(e,t){var c,f,d,p;const{meta:n,transaction:{message:s}}=t;if(!((c=n==null?void 0:n.innerInstructions)!=null&&c.length))return[];const a=s.staticAccountKeys;if(a.filter(y=>y.toString()===e).length===0)return[];const i=(p=(d=(f=n==null?void 0:n.logMessages)==null?void 0:f.filter(y=>y.startsWith(ie)))==null?void 0:d[0])==null?void 0:p.replace(ie,"");if(!i)return[];const o=[];for(const y of n==null?void 0:n.innerInstructions){const h=y.instructions;o.push(...h.filter(A=>A.programIdIndex in a&&a[A.programIdIndex].toString()===e))}return o.length<1?[]:a.length<3?[]:o.map(y=>[new q(a[y.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(y=>y!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){var c;const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=(c=n.innerInstructions)==null?void 0:c.flatMap(f=>f.instructions.filter(d=>a.toString()===e.get(d.programIdIndex).toString())).map(f=>({programIdIndex:f.programIdIndex,accountKeyIndexes:f.accounts})),o=s.compiledInstructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString());return[...i,...o]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!(t!=null&&t.data))throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:o,nonce:c,payload:f}=de(new Uint8Array(t==null?void 0:t.data));return Ge("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:Ke(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:o,nonce:c,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[o,c]=i[0];return[{chain:this.chain,emitter:o,sequence:c}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]),c=await this.parsePostMessageAccount(o);return{chain:c.emitterChain,emitter:c.emitterAddress,sequence:c.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const o=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(o)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Oe(e,this.network,this.chain,t,n)}}Re(qe,"WormholeCore",v);const At=Object.freeze(Object.defineProperty({__proto__:null,IDL:Z,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ge,utils:mt},Symbol.toStringTag,{value:"Module"}));export{ue as B,v as S,S as a,W as b,G as c,C as d,T as e,E as f,We as g,b as h,z as i,ce as j,bt as k,Q as l,Ne as m,Mt as n,le as o,ft as p,dt as q,je as r,pe as s,At as t};
|