@wormhole-foundation/wormhole-connect 3.0.2-beta.0-development → 3.0.2-beta.1-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/README.md +1 -1
- package/dist/assets/{basic-ChNCp6rI.js → basic-PUjrTVXb.js} +1 -1
- package/dist/assets/{evm-DSirgd5b.js → evm-CO5UWnAY.js} +2 -2
- package/dist/assets/{index-L-lC4rqb.js → index-1lzfHdT2.js} +1 -1
- package/dist/assets/{index-CHfaLf5J.js → index-DBVZDYF7.js} +1 -1
- package/dist/assets/index-DKlPX3ZI.js +1 -0
- package/dist/assets/{index-BtCrMDAu.js → index-Ddk7n7Ti.js} +1 -1
- package/dist/assets/{index-HhyysXFu.js → index-DyUmO4PR.js} +1 -1
- package/dist/assets/{index-BiwA3Bbq.js → index-MMzKxP1N.js} +1 -1
- package/dist/assets/{secp256k1-Cd7rIav0.js → secp256k1-0LtSM2L1.js} +1 -1
- package/dist/assets/{secp256k1-BQBOR8e3.js → secp256k1-DwTU3j1N.js} +1 -1
- package/dist/assets/{solana-DcwLWeKT.js → solana-DlGdMBSL.js} +4 -4
- package/dist/assets/{w3m-modal-DdptuLHe.js → w3m-modal-DD9Jgepz.js} +1 -1
- package/dist/main.js +72 -70
- package/dist/src/AppRouter.d.ts.map +1 -1
- package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
- package/dist/src/config/testnet/tokens.d.ts.map +1 -1
- package/dist/src/config/tokens.d.ts +1 -1
- package/dist/src/config/tokens.d.ts.map +1 -1
- package/dist/src/exports/index.d.ts +2 -2
- package/dist/src/exports/index.d.ts.map +1 -1
- package/dist/src/hooks/useFetchQuotes.d.ts.map +1 -1
- package/dist/src/icons/Chains/PLUME.d.ts.map +1 -1
- package/dist/src/icons/PoweredBy.d.ts.map +1 -1
- package/dist/src/icons/Routing.d.ts +5 -0
- package/dist/src/icons/Routing.d.ts.map +1 -0
- package/dist/src/icons/Tokens/PLUME.d.ts.map +1 -1
- package/dist/src/store/transferInput.d.ts +1 -1
- package/dist/src/store/transferInput.d.ts.map +1 -1
- package/dist/src/utils/coingecko.d.ts.map +1 -1
- package/dist/src/utils/formatNumber.d.ts +23 -0
- package/dist/src/utils/formatNumber.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +3 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/routes.d.ts +12 -0
- package/dist/src/utils/routes.d.ts.map +1 -0
- package/dist/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/dist/src/views/v2/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
- package/dist/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/dist/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/Eta.d.ts +6 -0
- package/dist/src/views/v3/Bridge/Routes/Eta.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +7 -6
- package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/RoutesLink.d.ts +7 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesLink.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts +2 -1
- package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/RoutesLoader.d.ts +4 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesLoader.d.ts.map +1 -0
- package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts +6 -5
- package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts +1 -0
- package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/account-Br8E7RB6.js +1 -0
- package/lib/{account-BTK2b2Fv.mjs → account-CVa_3S2g.mjs} +1 -1
- package/lib/{address-8wLqn60W.mjs → address-BApwdEpr.mjs} +96 -96
- package/lib/address-BwQqFkyh.js +1 -0
- package/lib/address-C2pxq9b2.js +1 -0
- package/lib/{address-n0gAFMrZ.mjs → address-f6joE_ig.mjs} +12 -12
- package/lib/aptos-CMRGggVs.js +2 -0
- package/lib/{aptos-CK-j196x.js → aptos-CTKQNmlP.js} +1 -1
- package/lib/{aptos-B-DJQlwt.mjs → aptos-CfFbx7uf.mjs} +9 -9
- package/lib/{aptos-Bwcz9wZX.mjs → aptos-fozuppXh.mjs} +3 -3
- package/lib/{basic-DHWVLmCq.mjs → basic-BA2aRJJn.mjs} +2 -2
- package/lib/{basic-B5ZFelC_.js → basic-DUWaF2I0.js} +1 -1
- package/lib/{basic-E2M-9h1u.js → basic-DeiUayOA.js} +1 -1
- package/lib/{basic-Pour9Ggp.mjs → basic-DoC8u7J8.mjs} +2 -2
- package/lib/{blake2b-C5HyObld.mjs → blake2b-BGxWUAjG.mjs} +23 -23
- package/lib/blake2b-Fj1aPKgL.js +1 -0
- package/lib/{browser-ponyfill-jK8MKVVg.mjs → browser-ponyfill-D5AN8ZPp.mjs} +1 -1
- package/lib/browser-ponyfill-Dn6gsMYK.js +2 -0
- package/lib/{chain-Bm6u6eUF.mjs → chain-DAw2I5H8.mjs} +1 -1
- package/lib/chain-DnPXlO8g.js +1 -0
- package/lib/chunk-KJH4KKG6-BjF7YUcU.js +470 -0
- package/lib/{chunk-KJH4KKG6-DJsu-Y-X.mjs → chunk-KJH4KKG6-DmVjhXO7.mjs} +144 -144
- package/lib/{constants-Cf2YMjNo.js → constants-BtNs_2F4.js} +1 -1
- package/lib/{constants-B7AbX6qr.mjs → constants-Dcc2nVaW.mjs} +3 -3
- package/lib/contract-BEHYQLvJ.js +1 -0
- package/lib/{contract-llnN6ki0.mjs → contract-BkMAZomO.mjs} +123 -123
- package/lib/{core-CF5c7Vev.mjs → core-BHV42Qa0.mjs} +25 -26
- package/lib/core-CV23yxnG.js +889 -0
- package/lib/create-CHcGblj6.js +1 -0
- package/lib/{create-Dm87_0zG.mjs → create-CKLtL7hr.mjs} +1 -1
- package/lib/{evm-BYIGg8e4.mjs → evm-Bf7qbM19.mjs} +42 -42
- package/lib/{evm-B2hUWkt7.js → evm-ClWkquRx.js} +2 -2
- package/lib/{evm-fvvpk-li.mjs → evm-DhMoy8cH.mjs} +6 -6
- package/lib/{evm-DFNbMHoa.js → evm-tXmzU9Xp.js} +2 -2
- package/lib/executor.js +1 -1
- package/lib/executor.mjs +145 -138
- package/lib/hosted.js +1 -1
- package/lib/hosted.mjs +1 -1
- package/lib/{index-Cwo5AKUC.mjs → index-1rCCpdwd.mjs} +5 -5
- package/lib/{index-DBCa3k0j.mjs → index-3HvzWPL7.mjs} +9 -9
- package/lib/{index-MOwE6ses.mjs → index-B7ztYPhr.mjs} +21 -22
- package/lib/index-BM-0SeYB.js +1 -0
- package/lib/{index-DiQ8Ytrt.mjs → index-BTnpftLz.mjs} +1 -1
- package/lib/{index-BiCMaXJS.js → index-BWQMi6Rj.js} +1 -1
- package/lib/index-BbgKw2pu.js +1 -0
- package/lib/index-BblcpkoK.js +1 -0
- package/lib/index-Bfblsmud.js +1 -0
- package/lib/{index-C_0yAOSX.mjs → index-BfkFXEnG.mjs} +25082 -24072
- package/lib/{index-fi1sh8vr.mjs → index-BijBPDRn.mjs} +2 -2
- package/lib/index-BoquY9R2.js +337 -0
- package/lib/index-C2NtsO9Q.js +1 -0
- package/lib/{index-CNuk-XLX.mjs → index-C4JmrizV.mjs} +4 -4
- package/lib/index-C8TtXpOf.js +1 -0
- package/lib/index-CB8kOyIP.js +1 -0
- package/lib/index-CInVjUCW.js +1 -0
- package/lib/{index-BF11RebI.mjs → index-CLTklDbp.mjs} +1 -1
- package/lib/index-CQvgeH_r.js +1 -0
- package/lib/{index-DzYjoSJp.mjs → index-CUnOYRFQ.mjs} +23 -24
- package/lib/{index-DGh9LzN1.mjs → index-CWe_BTdo.mjs} +31 -31
- package/lib/{index-2Bz1Np4K.mjs → index-CZ91lJ9M.mjs} +5 -5
- package/lib/{index-Dgy1FO7C.js → index-CgyVnj6U.js} +1 -1
- package/lib/{index-BzJcFdt_.mjs → index-Clr2JjoJ.mjs} +44 -44
- package/lib/index-CnnCCv6Q.js +1 -0
- package/lib/{index-CJnRWlFf.mjs → index-CwxGLNEk.mjs} +48 -49
- package/lib/index-D7BLfz05.js +1 -0
- package/lib/index-DM7C-wvQ.js +3 -0
- package/lib/{index-DhIh3xiW.mjs → index-DNy_sNGr.mjs} +8 -8
- package/lib/{index-BZaRg0yd.mjs → index-DVcaDWmz.mjs} +1 -1
- package/lib/{index-CsAigASU.mjs → index-DWOP9OBp.mjs} +17 -17
- package/lib/{index-CTLz8Fz0.mjs → index-Dda5qc2t.mjs} +13 -14
- package/lib/{index-CLBXF_zH.mjs → index-DeaiBvpG.mjs} +16 -16
- package/lib/index-HOuGP-7b.js +1 -0
- package/lib/{index-Dt2uNp-N.mjs → index-KZve3tYJ.mjs} +4 -4
- package/lib/{index-CJDBidKv.mjs → index-SIyXqCAN.mjs} +41 -41
- package/lib/index-WhVYPMUr.js +1 -0
- package/lib/index-hmjT4xa7.js +1 -0
- package/lib/index-ledagFNU.js +1 -0
- package/lib/index-pbRVlgcN.js +1 -0
- package/lib/{index-BpQXUhR4.mjs → index-qK7AyMAk.mjs} +23 -27
- package/lib/index-ttZu99PZ.js +1 -0
- package/lib/{index.es-BqRBGIq6.mjs → index.es-BXRQf6Oi.mjs} +25 -26
- package/lib/index.es-BjGaOok5.js +11 -0
- package/lib/index.es-D6S74vhi.js +27 -0
- package/lib/{index.es-DgCZuUzB.mjs → index.es-cOw8juwf.mjs} +741 -737
- package/lib/index.js +1 -1
- package/lib/index.mjs +17 -16
- package/lib/mayan.js +3 -3
- package/lib/mayan.mjs +918 -891
- package/lib/mint-CL36R6ED.js +1 -0
- package/lib/{mint-Dc-VsiAn.mjs → mint-DunEG1jV.mjs} +32 -33
- package/lib/ntt.js +1 -1
- package/lib/ntt.mjs +2332 -2373
- package/lib/platform-7vCWzCny.js +1 -0
- package/lib/platform-BKhoO9So.js +1 -0
- package/lib/{platform-B95L0Vxv.mjs → platform-BN6LFtXE.mjs} +16 -16
- package/lib/{platform-DnP_1wGA.mjs → platform-BYLu9SzP.mjs} +4 -4
- package/lib/platform-Bbe26nx7.js +1 -0
- package/lib/{platform-DiG7WY9Z.mjs → platform-DCgWqmh1.mjs} +4 -4
- package/lib/{provider-jsonrpc-CRABh2gN.mjs → provider-jsonrpc-Bmgnrmpy.mjs} +155 -155
- package/lib/provider-jsonrpc-CbtP2Ffg.js +1 -0
- package/lib/{secp256k1-zHHDNAlH.mjs → secp256k1-BDQEvyHq.mjs} +1 -1
- package/lib/{secp256k1-obBDPYM-.mjs → secp256k1-C77Oh9AA.mjs} +1 -1
- package/lib/{secp256k1-2hq3Jk4g.mjs → secp256k1-CCn2vlXj.mjs} +1 -1
- package/lib/{secp256k1-B94G4gyy.js → secp256k1-CHAR40au.js} +1 -1
- package/lib/{secp256k1-DCcAh19h.js → secp256k1-D-DmPYcJ.js} +1 -1
- package/lib/{secp256k1-CjndBUS7.js → secp256k1-DYWDlveU.js} +1 -1
- package/lib/{signer-N_ccpPOz.mjs → signer-BIcn81N5.mjs} +18 -18
- package/lib/signer-H7atraks.js +1 -0
- package/lib/{solana-_Ha4YgiP.mjs → solana-B0QSg7B3.mjs} +30 -30
- package/lib/solana-Cs5VyB20.js +900 -0
- package/lib/solana-uvHG8JV5.js +1 -0
- package/lib/solana-zyfOlbhb.mjs +18 -0
- package/lib/{solanaEmbed.esm-DK5RIquB.mjs → solanaEmbed.esm-BqdznDuW.mjs} +623 -622
- package/lib/solanaEmbed.esm-D8vtESE6.js +10 -0
- package/lib/src/AppRouter.d.ts.map +1 -1
- package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
- package/lib/src/config/testnet/tokens.d.ts.map +1 -1
- package/lib/src/config/tokens.d.ts +1 -1
- package/lib/src/config/tokens.d.ts.map +1 -1
- package/lib/src/exports/index.d.ts +2 -2
- package/lib/src/exports/index.d.ts.map +1 -1
- package/lib/src/hooks/useFetchQuotes.d.ts.map +1 -1
- package/lib/src/icons/Chains/PLUME.d.ts.map +1 -1
- package/lib/src/icons/PoweredBy.d.ts.map +1 -1
- package/lib/src/icons/Routing.d.ts +5 -0
- package/lib/src/icons/Routing.d.ts.map +1 -0
- package/lib/src/icons/Tokens/PLUME.d.ts.map +1 -1
- package/lib/src/store/transferInput.d.ts +1 -1
- package/lib/src/store/transferInput.d.ts.map +1 -1
- package/lib/src/utils/coingecko.d.ts.map +1 -1
- package/lib/src/utils/formatNumber.d.ts +23 -0
- package/lib/src/utils/formatNumber.d.ts.map +1 -0
- package/lib/src/utils/index.d.ts +3 -1
- package/lib/src/utils/index.d.ts.map +1 -1
- package/lib/src/utils/routes.d.ts +12 -0
- package/lib/src/utils/routes.d.ts.map +1 -0
- package/lib/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
- package/lib/src/views/v2/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
- package/lib/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/lib/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/Eta.d.ts +6 -0
- package/lib/src/views/v3/Bridge/Routes/Eta.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +7 -6
- package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/RoutesLink.d.ts +7 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesLink.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts +2 -1
- package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/RoutesLoader.d.ts +4 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesLoader.d.ts.map +1 -0
- package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts +6 -5
- package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts +1 -0
- package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
- package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
- package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
- package/lib/{sui-CQcQ6w_P.mjs → sui-B38DyOqM.mjs} +44 -44
- package/lib/{sui-BplKFZQu.mjs → sui-BpfnZR4f.mjs} +3 -3
- package/lib/sui-CT9MWY38.js +1 -0
- package/lib/{sui-_hvmCvD8.js → sui-DXQAMRQJ.js} +1 -1
- package/lib/{tokens-DNv0ZNvU.js → tokens-CmINcwKk.js} +31 -31
- package/lib/{tokens-Dl4YwW18.mjs → tokens-YxAPPVy3.mjs} +1726 -1724
- package/lib/transfer-BQ72fByU.js +1 -0
- package/lib/transfer-bTW0j9yh.mjs +58 -0
- package/lib/units-Ckije3Qv.js +1 -0
- package/lib/{units-DPWUSE6J.mjs → units-CtyvuzxQ.mjs} +13 -13
- package/lib/unsignedTransaction-C6Qp42VS.js +1 -0
- package/lib/{unsignedTransaction-DwcUilyN.mjs → unsignedTransaction-CXB-QCUC.mjs} +18 -18
- package/lib/{w3m-modal-BJILsxDp.mjs → w3m-modal-B7LUHLWC.mjs} +2 -2
- package/lib/{w3m-modal-D4CpFxO2.mjs → w3m-modal-BOTzBqbc.mjs} +2 -2
- package/lib/{w3m-modal-CrfHWSrF.js → w3m-modal-BTb03-7B.js} +1 -1
- package/lib/{w3m-modal-CBG2MSPp.js → w3m-modal-xmdf4r6V.js} +1 -1
- package/lib/web3-COTIsLs8.js +22 -0
- package/lib/{address-B-XN4tFw.mjs → web3-DYVeiqSa.mjs} +6599 -6576
- package/package.json +32 -32
- package/dist/assets/index-BWPgrXHs.js +0 -1
- package/lib/account-cRt2xMoW.js +0 -1
- package/lib/address-BGujeWtN.js +0 -22
- package/lib/address-C7DIAk4M.js +0 -1
- package/lib/address-KNhRm6oe.js +0 -1
- package/lib/aptos-f5TqmvqV.js +0 -2
- package/lib/blake2b-B-MRXUPb.js +0 -1
- package/lib/browser-ponyfill-CE6vRkjp.js +0 -2
- package/lib/chain-Hsn22HAP.js +0 -1
- package/lib/chunk-KJH4KKG6-CoyI75Ig.js +0 -470
- package/lib/contract-D2fTrJgn.js +0 -1
- package/lib/core-v0G9f7LX.js +0 -889
- package/lib/create-DoZZ7ciL.js +0 -1
- package/lib/index-B8-KKWD-.js +0 -1
- package/lib/index-BHbvgOMD.js +0 -1
- package/lib/index-BHfUgvSV.js +0 -1
- package/lib/index-BTKC7Hou.js +0 -1
- package/lib/index-BWXglAWd.js +0 -1
- package/lib/index-Bpp8C4u8.js +0 -1
- package/lib/index-CF2fHBHJ.js +0 -3
- package/lib/index-CTPz98nv.js +0 -1
- package/lib/index-ClMoiji-.js +0 -1
- package/lib/index-ClsVcH6F.js +0 -1
- package/lib/index-CqOI6LVu.js +0 -1
- package/lib/index-DCz_4mcz.js +0 -1
- package/lib/index-DKksdvND.js +0 -335
- package/lib/index-DRv3ZpVL.js +0 -1
- package/lib/index-DYqo8IhM.js +0 -1
- package/lib/index-DZubce9o.js +0 -1
- package/lib/index-DprM_IpB.js +0 -1
- package/lib/index-DshEQYMA.js +0 -1
- package/lib/index-JrM783SN.js +0 -1
- package/lib/index.es-C6YhioMN.js +0 -27
- package/lib/index.es-D3Xxxr8I.js +0 -11
- package/lib/mint-DlXC3sGi.js +0 -1
- package/lib/platform-B1XoDKoN.js +0 -1
- package/lib/platform-COuZC5Zc.js +0 -1
- package/lib/platform-NG3efAb2.js +0 -1
- package/lib/provider-jsonrpc-pXNHQF7n.js +0 -1
- package/lib/signer-CCa6npZ3.js +0 -1
- package/lib/solana-BJ3aReZw.mjs +0 -18
- package/lib/solana-BwyVgP30.js +0 -1
- package/lib/solana-CanFuMgA.js +0 -900
- package/lib/solanaEmbed.esm-C--1F7Lx.js +0 -10
- package/lib/sui-Bs83Gy5Z.js +0 -1
- package/lib/units-BvcKDiAx.js +0 -1
- package/lib/unsignedTransaction-dN_5EJf5.js +0 -1
- package/lib/web3-Bu_6UejS.mjs +0 -67
- package/lib/web3-Doz_0RHD.js +0 -1
package/lib/index-DYqo8IhM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var V=Object.defineProperty;var z=(s,e,b)=>e in s?V(s,e,{enumerable:!0,configurable:!0,writable:!0,value:b}):s[e]=b;var c=(s,e,b)=>z(s,typeof e!="symbol"?e+"":e,b);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("./index-BTKC7Hou.js"),a=require("./address-BGujeWtN.js"),u=require("./platform-COuZC5Zc.js"),m=require("./contract-D2fTrJgn.js"),W=require("./unsignedTransaction-B7AZXsTD.js"),L=require("./provider-jsonrpc-pXNHQF7n.js"),O={Mainnet:{Arbitrum:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",Avalanche:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",Base:"0x4200000000000000000000000000000000000006",Bsc:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",Celo:"0x0000000000000000000000000000000000000000",Ethereum:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",Fantom:"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83",Klaytn:"0xe4f05A66Ec68B54A58B17c22107b02e0232cC817",Moonbeam:"0xAcc15dC74880C9944775448304B263D191c6077F",Optimism:"0x4200000000000000000000000000000000000006",Polygon:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",Mantle:"0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8",Scroll:"0x5300000000000000000000000000000000000004",Blast:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7",Berachain:"0x6969696969696969696969696969696969696969",Snaxchain:"0x4200000000000000000000000000000000000006",Unichain:"0x4200000000000000000000000000000000000006",Worldchain:"0x4200000000000000000000000000000000000006",Ink:"0x4200000000000000000000000000000000000006",Sonic:"0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38"},Testnet:{Avalanche:"0xd00ae08403B9bbb9124bB305C09058E32C39A48c",Bsc:"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd",Celo:"0x524d97A67f50F4A062C28c74F60703Aec9028a94",Fantom:"0xf1277d1Ed8AD466beddF92ef448A132661956621",Klaytn:"0x0339d5Eb6D195Ba90B13ed1BCeAa97EbD198b106",Moonbeam:"0xD909178CC99d318e4D46e7E66a972955859670E1",Sepolia:"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c",ArbitrumSepolia:"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73",BaseSepolia:"0x4200000000000000000000000000000000000006",OptimismSepolia:"0x4200000000000000000000000000000000000006",PolygonSepolia:"0x0000000000000000000000000000000000000000",Scroll:"0x5300000000000000000000000000000000000004",Blast:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7",Linea:"0x0000000000000000000000000000000000000000",Berachain:"0x6969696969696969696969696969696969696969",Seievm:"0x3921eA6Cf927BE80211Bb57f19830700285b0AdA",Snaxchain:"0x4200000000000000000000000000000000000006",Unichain:"0x4200000000000000000000000000000000000006",Worldchain:"0x4200000000000000000000000000000000000006",Ink:"0x4200000000000000000000000000000000000006",Monad:"0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",Mezo:"0x0000000000000000000000000000000000000000",Sonic:"0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38"},Devnet:{}};class C{constructor(e,b,t,n){c(this,"network");c(this,"chain");c(this,"provider");c(this,"contracts");c(this,"tokenBridge");c(this,"core");c(this,"tokenBridgeAddress");c(this,"chainId");this.network=e,this.chain=b,this.provider=t,this.contracts=n,this.chainId=a.networkChainToNativeChainId.get(e,b);const f=this.contracts.tokenBridge;if(!f)throw new Error(`Wormhole Token Bridge contract for domain ${b} not found`);this.tokenBridgeAddress=f,this.tokenBridge=w.connect(this.tokenBridgeAddress,t),this.core=new I.EvmWormholeCore(e,b,t,n)}static async fromRpc(e,b){const[t,n]=await u.EvmPlatform.chainFromRpc(e),f=b[n];if(f.network!==t)throw new Error(`Network mismatch: ${f.network} != ${t}`);return new C(t,n,e,f.contracts)}async isWrappedAsset(e){return await this.tokenBridge.isWrappedAsset(e.toString())}async getOriginalAsset(e){if(!await this.isWrappedAsset(e))throw a.ErrNotWrapped(e.toString());const b=u.EvmPlatform.getTokenImplementation(this.provider,e.toString()),[t,n]=await Promise.all([b.chainId().then(Number).then(a.toChainId).then(a.toChain),b.nativeContract().then(f=>new a.UniversalAddress(f))]);return{chain:t,address:n}}async getTokenUniversalAddress(e){return new a.EvmAddress(e).toUniversalAddress()}async getTokenNativeAddress(e,b){return new a.EvmAddress(b).toNative()}async hasWrappedAsset(e){try{return await this.getWrappedAsset(e),!0}catch{}return!1}async getWrappedAsset(e){if(a.isNative(e.address))throw new Error("native asset cannot be a wrapped asset");const b=await this.tokenBridge.wrappedAsset(a.toChainId(e.chain),e.address.toUniversalAddress().toString());if(b===a.EvmZeroAddress)throw a.ErrNotWrapped(e.address.toUniversalAddress().toString());return new a.EvmAddress(b)}async isTransferCompleted(e){return this.tokenBridge.isTransferCompleted(a.keccak_256(e.hash))}async*createAttestation(e){const b=await this.core.getMessageFee();yield this.createUnsignedTx(await this.tokenBridge.attestToken.populateTransaction(e.toString(),0,{value:b}),"TokenBridge.createAttestation")}async*submitAttestation(e){const b=await this.hasWrappedAsset({...e.payload.token})?"updateWrapped":"createWrapped";yield this.createUnsignedTx(await this.tokenBridge[b].populateTransaction(a.serialize$1(e)),"TokenBridge."+b)}async*transfer(e,b,t,n,f){const d=new a.EvmAddress(e).toString(),i=a.toChainId(b.chain),p=b.address.toUniversalAddress().toUint8Array(),r=await this.core.getMessageFee();if(a.isNative(t)){const o=await(f===void 0?this.tokenBridge.wrapAndTransferETH.populateTransaction(i,p,a.unusedArbiterFee,a.unusedNonce,{value:n+r}):this.tokenBridge.wrapAndTransferETHWithPayload.populateTransaction(i,p,a.unusedNonce,f,{value:n+r}));yield this.createUnsignedTx(a.addFrom(o,d),"TokenBridge.wrapAndTransferETH"+(f===void 0?"":"WithPayload"))}else{const o=new a.EvmAddress(t).toString(),y=u.EvmPlatform.getTokenImplementation(this.provider,o);if(await y.allowance(d,this.tokenBridge.target)<n){const l=await y.approve.populateTransaction(this.tokenBridge.target,n);yield this.createUnsignedTx(a.addFrom(l,d),"TokenBridge.Approve")}const h=[o,n,i,p],g=await(f===void 0?this.tokenBridge.transferTokens.populateTransaction(...h,a.unusedArbiterFee,a.unusedNonce,{value:r}):this.tokenBridge.transferTokensWithPayload.populateTransaction(...h,a.unusedNonce,f,{value:r}));yield this.createUnsignedTx(a.addFrom(g,d),"TokenBridge.transferTokens"+(f===void 0?"":"WithPayload"))}}async*redeem(e,b,t=!0){const n=new a.EvmAddress(e).toString();if(b.payloadName==="TransferWithPayload"&&b.payload.token.chain!==this.chain){const d=new a.EvmAddress(b.payload.from).unwrap();if(d!==n)throw new Error(`VAA.from (${d}) does not match sender (${n})`)}if(b.payload.token.chain===this.chain){const d=await this.getWeth();if(new a.EvmAddress(b.payload.token.address).unwrap()===d&&t){const p=await this.tokenBridge.completeTransferAndUnwrapETH.populateTransaction(a.serialize$1(b));yield this.createUnsignedTx(a.addFrom(p,n),"TokenBridge.completeTransferAndUnwrapETH");return}}const f=await this.tokenBridge.completeTransfer.populateTransaction(a.serialize$1(b));yield this.createUnsignedTx(a.addFrom(f,n),"TokenBridge.completeTransfer")}async getWrappedNative(){const e=await this.getWeth();return a.toNative(this.chain,e)}async getWeth(){var e;return((e=O[this.network])==null?void 0:e[this.chain])??this.tokenBridge.WETH()}createUnsignedTx(e,b,t=!1){return new W.EvmUnsignedTransaction(a.addChainId(e,this.chainId),this.network,this.chain,b,t)}}class B{constructor(e,b,t,n){c(this,"network");c(this,"chain");c(this,"provider");c(this,"contracts");c(this,"tokenBridgeRelayer");c(this,"tokenBridge");c(this,"core");c(this,"chainId");if(this.network=e,this.chain=b,this.provider=t,this.contracts=n,e==="Devnet")throw new Error("AutomaticTokenBridge not supported on Devnet");this.chainId=a.networkChainToNativeChainId.get(e,b);const f=this.contracts.tokenBridge;if(!f)throw new Error(`Wormhole Token Bridge contract for domain ${b} not found`);this.tokenBridge=w.connect(f,t);const d=this.contracts.tokenBridgeRelayer;if(!d)throw new Error(`Wormhole Token Bridge Relayer contract for domain ${b} not found`);this.tokenBridgeRelayer=R.connect(d,t),this.core=new I.EvmWormholeCore(e,b,t,n)}async*redeem(e,b){const t=new a.EvmAddress(e).toString(),n=await this.tokenBridgeRelayer.completeTransferWithRelay.populateTransaction(a.serialize$1(b));yield this.createUnsignedTx(a.addFrom(n,t),"TokenBridgeRelayer.completeTransferWithRelay")}static async fromRpc(e,b){const[t,n]=await u.EvmPlatform.chainFromRpc(e),f=b[n];if(f.network!==t)throw new Error(`Network mismatch: ${f.network} != ${t}`);return new B(t,n,e,f.contracts)}async*transfer(e,b,t,n,f){const d=new a.EvmAddress(e).toString(),i=a.toChainId(b.chain),p=await this.core.getMessageFee(),r=b.address.toUniversalAddress().toUint8Array(),o=f||0n;if(a.isNative(t)){const y=await this.tokenBridgeRelayer.wrapAndTransferEthWithRelay.populateTransaction(o,i,r,0,{value:n+p});yield this.createUnsignedTx(a.addFrom(y,d),"TokenBridgeRelayer.wrapAndTransferETHWithRelay")}else{const y=new a.EvmAddress(t).toString(),T=u.EvmPlatform.getTokenImplementation(this.provider,y);if(await T.allowance(d,this.tokenBridgeRelayer.target)<n){const l=await T.approve.populateTransaction(this.tokenBridgeRelayer.target,n);yield this.createUnsignedTx(a.addFrom(l,d),"AutomaticTokenBridge.Approve")}const g=await this.tokenBridgeRelayer.transferTokensWithRelay.populateTransaction(y,n,o,i,r,0,{value:p});yield this.createUnsignedTx(a.addFrom(g,d),"TokenBridgeRelayer.TransferTokensWithRelay")}}async getRelayerFee(e,b){const t=a.toChainId(e),n=await this.tokenAddress(b),d=await u.EvmPlatform.getTokenImplementation(this.provider,n).decimals();return await this.tokenBridgeRelayer.calculateRelayerFee(t,n,d)}async nativeTokenAmount(e,b){const t=await this.tokenAddress(e);return this.tokenBridgeRelayer.calculateNativeSwapAmountOut(t,b)}async maxSwapAmount(e){const b=await this.tokenAddress(e);return this.tokenBridgeRelayer.calculateMaxSwapAmountIn(b)}async getRegisteredTokens(){return(await this.tokenBridgeRelayer.getAcceptedTokensList()).map(b=>a.toNative(this.chain,b))}async isRegisteredToken(e){const b=await this.tokenAddress(e);return await this.tokenBridgeRelayer.isAcceptedToken(b)}async tokenAddress(e){return a.isNative(e)?await this.getWeth():new a.EvmAddress(e).toString()}async getWeth(){var e;return((e=O[this.network])==null?void 0:e[this.chain])??this.tokenBridge.WETH()}createUnsignedTx(e,b,t=!1){return new W.EvmUnsignedTransaction(a.addChainId(e,this.chainId),this.network,this.chain,b,t)}}const Q=["function transferTokensWithRelay(address token, uint256 amount, uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions) payable returns (uint64)","function wrapAndTransferEthWithRelay(uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions) payable returns (uint64)","function executeVAAv1(bytes calldata encodedTransferMessage) payable"],j=["function transferTokensWithRelay(address tokenBridgeRelayer, address token, uint256 amount, uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions, tuple(uint16 dbps, address payee) feeArgs) payable returns (uint64)","function wrapAndTransferEthWithRelay(address tokenBridgeRelayer, uint256 amount, uint16 targetChain, bytes32 targetRecipient, uint32 nonce, bytes32 dstTransferRecipient, bytes32 dstExecutionAddress, uint256 executionAmount, address refundAddr, bytes calldata signedQuoteBytes, bytes calldata relayInstructions, tuple(uint16 dbps, address payee) feeArgs) payable returns (uint64)"];class x{constructor(e,b,t,n){c(this,"network");c(this,"chain");c(this,"provider");c(this,"contracts");c(this,"chainId");c(this,"relayerAddress");c(this,"relayerWithReferrerAddress");c(this,"relayerWithReferrerContract");c(this,"core");this.network=e,this.chain=b,this.provider=t,this.contracts=n,this.chainId=a.networkChainToNativeChainId.get(e,b);const f=this.contracts.executorTokenBridge;if(!f)throw new Error(`Wormhole Executor Token Bridge contracts for domain ${b} not found`);this.relayerAddress=f.relayer;const d=f.relayerWithReferrer;if(!d)throw new Error(`Wormhole Token Bridge Relayer With Referrer contract for domain ${b} not found`);this.relayerWithReferrerAddress=d,this.relayerWithReferrerContract=new m.Contract(this.relayerWithReferrerAddress,j,t),this.core=new I.EvmWormholeCore(e,b,t,n)}static async fromRpc(e,b){const[t,n]=await u.EvmPlatform.chainFromRpc(e),f=b[n];if(f.network!==t)throw new Error(`Network mismatch: ${f.network} != ${t}`);return new x(t,n,e,f.contracts)}async*transfer(e,b,t,n,f,d){const i=a.executorTokenBridge.get(this.network,b.chain);if(!i||!i.relayer)throw new Error(`Token Bridge Executor Relayer contract for domain ${b.chain} not found`);const p=i.relayer,r=new a.EvmAddress(e).unwrap(),o=a.toChainId(b.chain),y=b.address.toUniversalAddress(),{estimatedCost:T,signedQuote:h,relayInstructions:g}=f,l=a.serialize(a.signedQuoteLayout,h),S=a.serialize(a.relayInstructionsLayout,g),F=await this.core.getMessageFee(),U=0,M=a.toUniversal(b.chain,p),D=M,A=T,N=r;let E;const P=d?{dbps:d.feeDbps,payee:d.referrer.address.toString()}:{dbps:0n,payee:L.ZeroAddress};if(a.isNative(t))E=await this.relayerWithReferrerContract.getFunction("wrapAndTransferEthWithRelay").populateTransaction(this.relayerAddress,n,o,y.toUint8Array(),U,M.toUint8Array(),D.toUint8Array(),A,N,l,S,P,{value:n+F+A});else{const _=u.EvmPlatform.getTokenImplementation(this.provider,t.toString());if(await _.allowance(r,this.relayerWithReferrerAddress)<n){const H=await _.approve.populateTransaction(this.relayerWithReferrerAddress,n);yield this.createUnsignedTx(H,"approve")}E=await this.relayerWithReferrerContract.getFunction("transferTokensWithRelay").populateTransaction(this.relayerAddress,t.toString(),n,o,y.toUint8Array(),U,M.toUint8Array(),D.toUint8Array(),A,N,l,S,P,{value:F+A})}yield this.createUnsignedTx(a.addFrom(E,r),a.isNative(t)?"wrapAndTransferEthWithRelay":"transferTokensWithRelay")}async*redeem(e,b){const t=new a.EvmAddress(e).toString(),n=a.serialize$1(b),f=new a.EvmAddress(b.payload.to.address).toString(),i=await new m.Contract(f,Q,this.provider).getFunction("executeVAAv1").populateTransaction(n,{value:0n});yield this.createUnsignedTx(a.addFrom(i,t),"ExecutorTokenBridge.executeVAAv1")}async estimateMsgValueAndGasLimit(e,b){let t;switch(e.chain){case"Arbitrum":case"Moonbeam":t=800000n;break;default:t=425000n;break}return{msgValue:0n,gasLimit:t}}createUnsignedTx(e,b){return new W.EvmUnsignedTransaction(a.addChainId(e,this.chainId),this.network,this.chain,b)}}const k=[{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:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"_parseTransferCommon",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"attestToken",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"bridgeContracts",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferAndUnwrapETHWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"completeTransferWithPayload",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"createWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],name:"encodeAssetMeta",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],name:"encodeTransfer",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],name:"encodeTransferWithPayload",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"finality",outputs:[{internalType:"uint8",name:"",type:"uint8"}],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:"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:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isTransferCompleted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isWrappedAsset",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"outstandingBridged",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseAssetMeta",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"bytes32",name:"symbol",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],internalType:"struct BridgeStructs.AssetMeta",name:"meta",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parsePayloadID",outputs:[{internalType:"uint8",name:"payloadID",type:"uint8"}],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 BridgeStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRegisterChain",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint16",name:"emitterChainID",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],internalType:"struct BridgeStructs.RegisterChain",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransfer",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"uint256",name:"fee",type:"uint256"}],internalType:"struct BridgeStructs.Transfer",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseTransferWithPayload",outputs:[{components:[{internalType:"uint8",name:"payloadID",type:"uint8"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"},{internalType:"uint16",name:"tokenChain",type:"uint16"},{internalType:"bytes32",name:"to",type:"bytes32"},{internalType:"uint16",name:"toChain",type:"uint16"},{internalType:"bytes32",name:"fromAddress",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct BridgeStructs.TransferWithPayload",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"newContract",type:"bytes32"}],internalType:"struct BridgeStructs.UpgradeContract",name:"chain",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"registerChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"transferTokensWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"updateWrapped",outputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"wrapAndTransferETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"wrapAndTransferETHWithPayload",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"wrappedAsset",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],q="0x6080806040523461001b576001600d5561522990816100218239f35b600080fdfe608060405260043610156200001d575b36156200001b57600080fd5b005b60003560e01c806301f5325514620002fe57806307dfd8fb14620002f85780630f50900814620002f25780630f5287b014620002ec578063178149e714620002e65780631a2be4da14620002e05780631c8475e414620002da5780631ff1e28614620002d45780632539464514620002ce5780632b51137514620002c85780632c3c02a414620002c25780632f3a3d5d14620002bc5780635f85426614620002b657806364d42b1714620002b0578063739fc8d114620002aa57806384acd1bb14620002a45780639981509f146200029e5780639a8a05921462000298578063a5799f931462000292578063aa4efa5b146200028c578063ad5c46481462000286578063ad66a5f11462000280578063b046223b146200027a578063b172b2221462000274578063b96c7e4d146200026e578063bee9cdfc1462000268578063c3f511c11462000262578063c48fa115146200025c578063c5a5ebda1462000256578063c68785191462000250578063cb4cfea8146200024a578063d56e2e241462000244578063d60b347f146200023e578063e039f2241462000238578063e80598101462000232578063e89bc401146200022c578063ea63738d1462000226578063f768441f1462000220578063fbe3c2cd146200021a578063fbeeacd914620002145763ff200cde036200000f5762001a10565b620019c5565b6200199e565b62001903565b6200186e565b6200184f565b6200174c565b62001729565b620016e6565b62001616565b620015cb565b620015b6565b6200150d565b62001305565b620012e6565b620010ae565b62001070565b62001050565b62000fd3565b62000fa4565b62000f79565b62000f49565b62000e2b565b62000e07565b62000bb6565b62000b8b565b62000b66565b62000b46565b62000ab8565b62000a74565b62000a2e565b620009b7565b620008e2565b6200088f565b6200085b565b620007b9565b620006df565b62000632565b620005bb565b62000559565b62000502565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176200033657604052565b62000304565b60c081019081106001600160401b038211176200033657604052565b6001600160401b0381116200033657604052565b608081019081106001600160401b038211176200033657604052565b60a081019081106001600160401b038211176200033657604052565b604081019081106001600160401b038211176200033657604052565b90601f801991011681019081106001600160401b038211176200033657604052565b60405190620003f1826200033c565b565b6040519061010082018281106001600160401b038211176200033657604052565b60405190620003f18262000388565b60405190620003f1826200031a565b6040519061016082018281106001600160401b038211176200033657604052565b90620003f16040519283620003c0565b6001600160401b0381116200033657601f01601f191660200190565b81601f82011215620004cc57803590620004998262000463565b92620004a96040519485620003c0565b82845260208383010111620004cc57816000926020809301838601378301015290565b600080fd5b6020600319820112620004cc57600435906001600160401b038211620004cc57620004ff916004016200047f565b90565b34620004cc5760a06200051f6200051936620004d1565b62004421565b6080604051918051835260ff602082015116602084015261ffff806040830151166040850152606082015116606084015201516080820152f35b34620004cc5760c0620005766200057036620004d1565b62003a18565b60a06040519160ff81511683526020810151602084015261ffff604082015116604084015260ff606082015116606084015260808101516080840152015160a0820152f35b34620004cc576020620005d8620005d236620004d1565b620047a1565b60ff60405191168152f35b600435906001600160a01b0382168203620004cc57565b61ffff811603620004cc57565b60a43590620003f182620005fa565b3590620003f182620005fa565b63ffffffff811603620004cc57565b60c0366003190112620004cc57620006db620006bc62000651620005e3565b6044356200065f81620005fa565b6200069660a43592620006728462000623565b620006836002600d54141562001cbd565b6002600d5560843590602435906200208d565b61ffff815116602082015192604083015160806060850151940151946064359362002421565b6001600d556040516001600160401b0390911681529081906020820190565b0390f35b34620004cc57620006f036620004d1565b600c54461462000787576200077560606200074f60e062000723620007196200001b966200410f565b909291926200276b565b6200074761014082015160005260056020526040600020600160ff19825416179055565b015162004591565b6200076c60408201620007654682511462003fa3565b5162004645565b015161ffff1690565b61ffff1661ffff196002541617600255565b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34620004cc576020366003190112620004cc576001600160a01b03620007de620005e3565b166000526009602052602060ff604060002054166040519015158152f35b60005b838110620008105750506000910152565b8181015183820152602001620007ff565b906020916200083c81518092818552858086019101620007fc565b601f01601f1916010190565b906020620004ff92818152019062000821565b34620004cc57620006db6200087a6200087436620004d1565b62002e3d565b60405191829160208352602083019062000821565b34620004cc576040366003190112620004cc5761ffff600435620008b381620005fa565b1660005260086020526040600020602435600052602052602060018060a01b0360406000205416604051908152f35b34620004cc576200094260e062000916620007196200090136620004d1565b62000910600c544614620037ea565b6200410f565b6200093a61014082015160005260056020526040600020600160ff19825416179055565b01516200451f565b61ffff806040830151169060025416036200098157606001516200001b906200097b906001600160a01b03165b6001600160a01b031690565b62004236565b60405162461bcd60e51b815260206004820152600e60248201526d1ddc9bdb99c818da185a5b881a5960921b6044820152606490fd5b34620004cc57620006db620009d6620009d036620004d1565b62003b94565b6040519182918291909160c08060e083019460ff8151168452602081015160208501526040810151604085015261ffff8060608301511660608601526080820151608086015260a08201511660a08501520151910152565b34620004cc576020366003190112620004cc57602062000a5e600435600052600560205260ff6040600020541690565b6040519015158152f35b6000910312620004cc57565b34620004cc576000366003190112620004cc576001546040516001600160a01b039091168152602090f35b60ff811603620004cc57565b3590620003f18262000a9f565b34620004cc5760e0366003190112620004cc57620006db62000b3960405162000ae1816200031a565b60043562000aef8162000a9f565b81526024356020820152604435604082015260643562000b0f81620005fa565b6060820152608435608082015262000b2662000607565b60a082015260c43560c0820152620038c9565b6040519182918262000848565b34620004cc576000366003190112620004cc576020600c54604051908152f35b34620004cc576000366003190112620004cc57602060025460ff60405191831c168152f35b34620004cc576000366003190112620004cc576000546040516001600160a01b039091168152602090f35b6080366003190112620004cc576004803562000bd281620005fa565b604435916064359062000be58262000623565b62000bef62001b7d565b50600080546001600160a01b0394839160209062000c0f9088166200096f565b604051631a90a21960e01b815295869182905afa93841562000d9b57839462000dd0575b5062000c4134851062001bc9565b62000c4d843462001c4d565b9662000c5c8882111562001c5b565b6402540be40080890491049362000c7e62000c77836200238f565b8a62001c4d565b818115801562000da5575b5050845462000cb0919062000ca9908b166001600160a01b03166200096f565b9a62001c4d565b98803b1562000da15784604051809b8193630d0e30db60e41b83525af196871562000d9b5760209862000d6c9862000d7d575b50835462000d0990839062000d039084166001600160a01b03166200096f565b620036f6565b62000d306200096f6200096f6200096f61ffff94856002541698541660018060a01b031690565b9062000d4962000d3f62000414565b61ffff9096168652565b818a86015282604086015285606086015286608086015260243594511662002421565b6001600160401b0360405191168152f35b8062000d8d62000d949262000358565b8062000a68565b3862000ce3565b62001b71565b5080fd5b82829162000dc5575b8280929181923390f11562000d9b57813862000c89565b6108fc915062000dae565b62000df791945060203d811162000dff575b62000dee8183620003c0565b81019062001bb9565b923862000c33565b503d62000de2565b34620004cc576000366003190112620004cc57602061ffff60025416604051908152f35b34620004cc576200001b62000e7a60e062000e4e620007196200091036620004d1565b62000e7261014082015160005260056020526040600020600160ff19825416179055565b015162004421565b62000ec662000e8e604083015161ffff1690565b61ffff62000eaa62000ea360025461ffff1690565b61ffff1690565b9116908114908162000f2b575b811562000f21575b5062003f16565b608062000f096060830162000f0162000efa62000ee5835161ffff1690565b61ffff16600052600b60205260406000205490565b1562003f56565b5161ffff1690565b9101519061ffff16600052600b602052604060002055565b9050153862000ebf565b905062000f4262000f3e600c5446141590565b1590565b9062000eb7565b34620004cc576020366003190112620004cc57602062000a5e600435600052600660205260ff6040600020541690565b34620004cc576000366003190112620004cc576004546040516001600160a01b039091168152602090f35b34620004cc576020366003190112620004cc57602062000fcb60043562000ee581620005fa565b604051908152f35b34620004cc5760c0366003190112620004cc57620006db62000b3960405162000ffc816200033c565b6004356200100a8162000a9f565b815260243560208201526044356200102281620005fa565b6040820152606435620010358162000a9f565b6060820152608435608082015260a43560a082015262003860565b34620004cc576000366003190112620004cc576020600354604051908152f35b34620004cc576020366003190112620004cc576001600160a01b0362001095620005e3565b16600052600a6020526020604060002054604051908152f35b6080366003190112620004cc576004803590620010cb82620005fa565b604435620010d98162000623565b6064356001600160401b038111620004cc57620010fa90369084016200047f565b906200110562001b7d565b506000805490946001600160a01b039491829190602090620011299088166200096f565b604051631a90a21960e01b815294859182905afa92831562000d9b578793620012c1575b506200115b34841062001bc9565b62001167833462001c4d565b966402540be4008804906200118062000c77836200238f565b818115801562001296575b50508454620011ab919062000ca9908b166001600160a01b03166200096f565b98803b1562000da157819085604051809c8193630d0e30db60e41b83525af197881562000d9b57620006db9962001265996200127f575b5084546200120290849062000d039084166001600160a01b03166200096f565b620012296200096f6200096f6200096f61ffff94856002541699541660018060a01b031690565b91620012426200123862000414565b61ffff9097168752565b8260208701528360408701526060860152856080860152602435945116620024fd565b6040516001600160401b0390911681529081906020820190565b8062000d8d6200128f9262000358565b38620011e2565b828291620012b6575b8280929181923390f11562000d9b5781386200118b565b6108fc91506200129f565b620012de91935060203d811162000dff5762000dee8183620003c0565b91386200114d565b34620004cc57620006db6200087a620012ff36620004d1565b62003263565b604080600319360112620004cc576200131d620005e3565b602435916200132c8362000623565b805192602080938186019563313ce56760e01b8752600481526200135081620003a4565b6000809781925190845afa506200136662001a49565b86808651858101906395d89b4160e01b8252600481526200138781620003a4565b5190855afa5060ff6200147d6200096f6200146c88620013a662001a49565b958c8083518b8101906306fdde0360e01b825260048152620013c881620003a4565b51908b5afa5088806200141662001406620013f6620013e662001a49565b9584808251830101910162001a8b565b9a83808251830101910162001aed565b9382808251830101910162001aed565b920151910151906200145c600254986200145262001433620003e2565b60028152956001600160a01b039c8d16878f015261ffff8c1690870152565b60ff166060850152565b608083015260a082015262003860565b8a549095166001600160a01b031690565b91620014a38751968795869485946358cd21bf60e11b8652891c16916004850162001b42565b039134905af192831562000d9b57620006db9493620014d7575b5050516001600160401b0390911681529081906020820190565b620014fc929350803d1062001505575b620014f38183620003c0565b81019062001b2b565b903880620014bd565b503d620014e7565b60c0366003190112620004cc5762001524620005e3565b604435906200153382620005fa565b60843590620015428262000623565b60a435916001600160401b038311620004cc57620006db936200159362001572620006bc9536906004016200047f565b93620015846002600d54141562001cbd565b6002600d556024359062001d2f565b9061ffff82511690602083015192608060408201519101519360643593620024fd565b34620004cc576200001b620012ff36620004d1565b34620004cc576080620015e8620015e236620004d1565b62004591565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34620004cc57600319602036820112620004cc576004356001600160401b0391828211620004cc57610100908236030112620004cc5762001656620003f3565b620016648260040162000aab565b81526024820135602082015260448201356040820152620016886064830162000616565b606082015260848201356080820152620016a560a4830162000616565b60a082015260c482013560c082015260e4820135928311620004cc57620016db62000b39926004620006db95369201016200047f565b60e08201526200393f565b34620004cc576020366003190112620004cc576001600160a01b036200170b620005e3565b166000526007602052602060ff604060002054166040519015158152f35b34620004cc576000366003190112620004cc576020600c54604051904614158152f35b34620004cc57620017916200176136620004d1565b6000805460405163607ec5ef60e11b8152939192839285926001600160a01b031691839182916004830162000848565b03915afa90811562000d9b57620006db9262001801928291839084926200181b575b50620017c19293506200276b565b620017d6620017d08262003826565b6200279e565b620017fa60a0620017eb60e084015162003a18565b9201516001600160401b031690565b9062002a65565b6040516001600160a01b0390911681529081906020820190565b915050620018439150620017c1923d8091833e6200183a8183620003c0565b81019062002632565b909291928392620017b3565b34620004cc57620006db620009d66200186836620004d1565b62003d2e565b34620004cc5760e06200188b6200188536620004d1565b62003c3f565b620006db6040519283926020845260ff8151166020850152602081015160408501526040810151606085015261ffff6060820151166080850152608081015160a0850152620018e560a082015160c086019061ffff169052565b60c08101518285015201516101008084015261012083019062000821565b34620004cc57620019186200176136620004d1565b03915afa90811562000d9b57620006db92620018019282918390849262001973575b50620019489293506200276b565b62001957620017d08262003826565b6200196c60a0620017eb60e084015162003a18565b9062002813565b91505062001992915062001948923d8091833e6200183a8183620003c0565b9092919283926200193a565b34620004cc576000366003190112620004cc57602061ffff60025460101c16604051908152f35b34620004cc576080620019e2620019dc36620004d1565b6200451f565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34620004cc576200001b6200087436620004d1565b60405190602082018281106001600160401b03821117620003365760405260008252565b3d1562001a79573d9062001a5d8262000463565b9162001a6d6040519384620003c0565b82523d6000602084013e565b606090565b5190620003f18262000a9f565b90816020910312620004cc5751620004ff8162000a9f565b81601f82011215620004cc57805162001abc8162000463565b9262001acc6040519485620003c0565b81845260208284010111620004cc57620004ff9160208085019101620007fc565b90602082820312620004cc5781516001600160401b038111620004cc57620004ff920162001aa3565b51906001600160401b0382168203620004cc57565b90816020910312620004cc57620004ff9062001b16565b9162001b6a60ff9163ffffffff60409497969716855260606020860152606085019062000821565b9416910152565b6040513d6000823e3d90fd5b6040519060a082018281106001600160401b03821117620003365760405260006080838281528260208201528260408201528260608201520152565b90816020910312620004cc575190565b1562001bd157565b60405162461bcd60e51b815260206004820152602260248201527f76616c756520697320736d616c6c6572207468616e20776f726d686f6c652066604482015261656560f01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b60841981019190821162001c4757565b62001c21565b9190820391821162001c4757565b1562001c6357565b60405162461bcd60e51b815260206004820152602c60248201527f66656520697320626967676572207468616e20616d6f756e74206d696e75732060448201526b776f726d686f6c652066656560a01b6064820152608490fd5b1562001cc557565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b5190620003f182620005fa565b90816020910312620004cc5751620004ff81620005fa565b9062001d3a62001b7d565b506001600160a01b038216600090815260096020526040902062001d60905b5460ff1690565b156200206f57604051634d4502c960e11b81526001600160a01b0383169260209290918381600481885afa90811562000d9b5760049185916000916200203b575b509560405192838092633d6c043b60e01b82525afa90811562000d9b5762001e289460009262002019575b5050905b62001e2e604051916000806020948581019063313ce56760e01b82526004815262001dfb81620003a4565b5190885afa5062001e1e62001e0f62001a49565b84808251830101910162001a8b565b958680926200234d565b620023aa565b9261ffff9462001e43866002541661ffff1690565b87871690810362001f935762001f5362001f3e8362001f388660008062001f479c8b62001f0f60405162001eed8382019486806370a0823160e01b978881528562001ea03060248301919091602081019260018060a01b03169052565b039562001eb6601f1997888101835282620003c0565b51908c5afa5062001ed962001eca62001a49565b86808251830101910162001bb9565b98309033906001600160a01b031662004942565b60405192830193845230602484015282604481015b03908101835282620003c0565b51908b5afa5062001f3262001f2362001a49565b8a808251830101910162001bb9565b62001c4d565b6200234d565b96879362002308565b976002541661ffff1690565b1462001f80575b505062001f6a62000d3f62000414565b8401526040830152606082015234608082015290565b62001f8b91620036f6565b388362001f5a565b6001600160a01b0383169562001fac8130338a62004942565b863b15620004cc57604051632770a7eb60e21b815230600482015260248101829052966000908890604490829084905af196871562000d9b578362001f539262001f3e9262001f479a62002002575b506200234d565b8062000d8d620020129262000358565b3862001ffb565b620020339250803d1062000dff5762000dee8183620003c0565b388062001dcc565b620020609150823d841162002067575b620020578183620003c0565b81019062001d17565b3862001da1565b503d6200204b565b60025461ffff169162001e28916001600160a01b0382169062001dd0565b91906200209962001b7d565b506001600160a01b0383166000908152600960205260409020620020bd9062001d59565b15620022c457604051634d4502c960e11b81526001600160a01b0384169360209290918381600481895afa90811562000d9b576004918591600091620022a2575b509660405192838092633d6c043b60e01b82525afa90811562000d9b5762001e289460009262002280575b5050915b6200217b604051926000806020958681019063313ce56760e01b8252600481526200215881620003a4565b5190865afa5062001e1e6200216c62001a49565b85808251830101910162001a8b565b60025461ffff969188881691879085908a16840362002210576040516370a0823160e01b81890181815230602484015262001f539562001f47956200220795909462001f389491936000938493928f92620021e49262001eed9187908190856044810162001ea0565b51908c5afa5062001f32620021f862001a49565b8b808251830101910162001bb9565b9788946200234d565b50506001600160a01b038416906200222b8130338562004942565b813b15620004cc57604051632770a7eb60e21b815230600482015260248101829052916000908390604490829084905af191821562000d9b578862001f4792620022079262001f53956200200257506200234d565b6200229a9250803d1062000dff5762000dee8183620003c0565b388062002129565b620022bd9150823d84116200206757620020578183620003c0565b38620020fe565b60025461ffff169262001e28916001600160a01b038216916200212d565b60ff6007199116019060ff821162001c4757565b60ff16604d811162001c4757600a0a90565b600090600860ff8216116200231b575090565b6200232a6200233091620022e2565b620022f6565b15620023395790565b634e487b7160e01b81526012600452602490fd5b90600860ff8216116200235e575090565b6200232a6200236d91620022e2565b90811562002379570490565b634e487b7160e01b600052601260045260246000fd5b6402540be4009081810291818304149015171562001c475790565b90600860ff821611620023bb575090565b6200232a620023ca91620022e2565b9081810291818304149015171562001c475790565b15620023e757565b60405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b6044820152606490fd5b92620024c997959294620024696020989562002479946200244589881115620023df565b6200244f62000423565b60018152985b898c0152604089015261ffff166060880152565b608086015261ffff1660a0850152565b60c0830152600054620024a1906200249a906001600160a01b03166200096f565b92620038c9565b6002546040516358cd21bf60e11b81529687958694938593891c60ff16916004850162001b42565b03925af190811562000d9b57600091620024e1575090565b620004ff915060203d81116200150557620014f38183620003c0565b92620024c997929462002469602098979562002528946200251d620003f3565b600381529862002455565b3360c084015260e0830152600054620024a1906200254f906001600160a01b03166200096f565b926200393f565b5190620003f18262000623565b9080601f83011215620004cc578151916001600160401b03831162000336576040918251936020916200259c838360051b0187620003c0565b818652828087019260071b85010193818511620004cc578301915b848310620025c85750505050505090565b608083830312620004cc57836080918751620025e4816200036c565b85518152828601518382015288860151620025ff8162000a9f565b8982015260608087015190620026158262000a9f565b820152815201920191620025b7565b51908115158203620004cc57565b9091606082840312620004cc578151916001600160401b0392838111620004cc57810161016081860312620004cc576200266b62000432565b90620026778162001a7e565b8252620026876020820162002556565b60208301526200269a6040820162002556565b6040830152620026ad6060820162001d0a565b606083015260808101516080830152620026ca60a0820162001b16565b60a0830152620026dd60c0820162001a7e565b60c083015260e0810151858111620004cc5786620026fd91830162001aa3565b60e08301526101006200271281830162002556565b9083015261012080820151868111620004cc57876200273391840162002563565b90830152610140809101519082015293620027516020830162002624565b936040830151908111620004cc57620004ff920162001aa3565b15620027745750565b60405162461bcd60e51b8152602060048201529081906200279a90602483019062000821565b0390fd5b15620027a657565b60405162461bcd60e51b815260206004820152600f60248201526e34b73b30b634b21032b6b4ba3a32b960891b6044820152606490fd5b9162001b6a6001600160401b03916200280460409497969760608752606087019062000821565b90858203602087015262000821565b906200285061ffff60408401511660208401519061ffff16600052600860205260406000209060005260205260018060a01b036040600020541690565b916001600160a01b038316918215620028d5576200288160806200287860a085015162003e8a565b93015162003e8a565b92803b15620004cc57620028b19360008094604051968795869485936350c66be360e11b855260048501620027dd565b03925af1801562000d9b57620028c5575090565b8062000d8d620004ff9262000358565b60405162461bcd60e51b815260206004820152601d60248201527f7772617070656420617373657420646f6573206e6f74206578697374730000006044820152606490fd5b156200292257565b60405162461bcd60e51b815260206004820152602860248201527f63616e206f6e6c79207772617020746f6b656e732066726f6d20666f726569676044820152676e20636861696e7360c01b6064820152608490fd5b156200298057565b60405162461bcd60e51b815260206004820152601c60248201527f7772617070656420617373657420616c726561647920657869737473000000006044820152606490fd5b936001600160401b039060ff62002a0361ffff969b9a9995620029f460c09a9660e08b5260e08b019062000821565b9089820360208b015262000821565b9a1660408701521660608501526001600160a01b031660808401521660a08201520152565b6001600160a01b039091168152604060208201819052620004ff9291019062000821565b9062002a6160209282815194859201620007fc565b0190565b91909162002bb262002b68604083019462002a9962002a86875161ffff1690565b60025461ffff908116911614156200291a565b85516020858101805161ffff909316600090815260088352604080822094825293835292909220549195909162002b75919062002ae0906001600160a01b03161562002978565b62002b4262002af360a083015162003e8a565b9462002b12606062002b09608086015162003e8a565b94015160ff1690565b9562002b208c5161ffff1690565b908a519260405198899663c71f461560e01b8a890152309360248901620029c5565b039262002b58601f1994858101835282620003c0565b6040519485913085840162002a28565b03838101855284620003c0565b62002bbf6106f69362002b8a83860162000453565b9480865262004afe8487013960405195869162002bab858401809862002a4c565b9062002a4c565b03838101865285620003c0565b62002bfd62002bd0885161ffff1690565b865160405160f09290921b6001600160f01b03191693820193845260028401529192826022850162001f02565b5190209151906000f592833b15620004cc5751905161ffff909116600090815260086020908152604080832093835292815282822080546001600160a01b0319166001600160a01b03871690811790915582526009905220805460ff19166001179055565b1562002c6a57565b60405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b2b73232b960911b6044820152606490fd5b1562002ca857565b60405162461bcd60e51b815260206004820152601a60248201527f7472616e7366657220616c726561647920636f6d706c657465640000000000006044820152606490fd5b1562002cf557565b60405162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103a30b933b2ba1031b430b4b760611b6044820152606490fd5b1562002d3957565b60405162461bcd60e51b815260206004820152602560248201527f6e6f207772617070657220666f72207468697320746f6b656e2063726561746560448201526419081e595d60da1b6064820152608490fd5b1562002d9457565b60405162461bcd60e51b815260206004820152602360248201527f696e76616c696420746f6b656e2c2063616e206f6e6c7920756e77726170205760448201526208aa8960eb1b6064820152608490fd5b1562002ded57565b60405162461bcd60e51b815260206004820152602260248201527f66656520686967686572207468616e207472616e7366657272656420616d6f756044820152611b9d60f21b6064820152608490fd5b600080546001600160a01b039062002e579082166200096f565b604093838551809363607ec5ef60e11b8252818062002e7b60049687830162000848565b03915afa801562000d9b578492859086926200323c575b509062002e9f916200276b565b62002eae620017d08362003826565b60e082019462002ebf865162003d2e565b8462002ecf608083015162003681565b94600360ff62002ee0855160ff1690565b161462003227575b62002f34610140820162002f1962002f1362000f3e8351600052600660205260ff6040600020541690565b62002ca0565b5160005260066020526040600020600160ff19825416179055565b606081015161ffff16906001600160401b0362002f6060a060808401519301516001600160401b031690565b169061ffff8093167fcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c1698b80a48062002fbb62002fa160a086015161ffff1690565b62002fb1836002541661ffff1690565b9216821462002ced565b606084015161ffff1691821603620031df575062002fe06200096f8484015162003681565b62002ff26020840151838316620037a9565b1686806200300c6200096f8988541660018060a01b031690565b926200301c898516821462002d8c565b855163313ce56760e01b60208201908152888252906200303c81620003a4565b51915afa506200307e620030636200305362001a49565b6020808251830101910162001a8b565b60c062003075826020870151620023aa565b940151620023aa565b9081151580620031d2575b15620031c3576200309d8383111562002de5565b803b15620031bf578784518092632e1a7d4d60e01b8252818381620030c9888c83019190602083019252565b03925af1801562000d9b57620031a8575b5086808280156200319d575b8280929181923390f11562000d9b57620031009162001c4d565b82549092906200311b9086166001600160a01b03166200096f565b91823b15620031995751632e1a7d4d60e01b815290810183815290939291869185919082908490829060200103925af191821562000d9b5785948594859462003182575b508391831562003177575b1690f11562000d9b575190565b6108fc92506200316a565b8062000d8d620031929262000358565b386200315f565b8680fd5b6108fc9150620030e6565b8062000d8d620031b89262000358565b38620030da565b8780fd5b50506200310090869062001c4d565b5033878716141562003089565b620032138291858501519061ffff16600052600860205260406000209060005260205260018060a01b036040600020541690565b166200322181151562002d31565b62002ff2565b62003236828716331462002c62565b62002ee8565b905062002e9f93506200325b91503d8087833e6200183a8183620003c0565b919362002e92565b600080546001600160a01b03906200327d9082166200096f565b92604093838551809263607ec5ef60e11b82528180620032a260049788830162000848565b03915afa801562000d9b57849085869162003658575b620032c59293506200276b565b620032d4620017d08262003826565b60e0810194620032e5865162003d2e565b92620032f5608085015162003681565b93600360ff62003306835160ff1690565b161462003643575b62003339610140850162002f1962002f1362000f3e8351600052600660205260ff6040600020541690565b606084015161ffff16936001600160401b036200336560a060808401519301516001600160401b031690565b169061ffff8096167fcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c1698a80a483620033c0620033a660a084015161ffff1690565b620033b6836002541661ffff1690565b9616861462002ced565b866060830195620033d3875161ffff1690565b908382160362003602575050620033f16200096f8584015162003681565b90620034046020840151898416620037a9565b8782169289808751602081019063313ce56760e01b82528881526200342981620003a4565b5190875afa506200345c620034416200305362001a49565b60c062003453826020860151620023aa565b930151620023aa565b998a151580620035f5575b15620035e6576200347b828c111562002de5565b9962003489885161ffff1690565b836200349a816002541661ffff1690565b911614620035d457843b15620004cc5786516340c10f1960e01b81523387820190815260208101839052909290600090849081906040010381838a5af192831562000d9b57620034f193620035bd575b5062001c4d565b9589156200351657505082546200311b925087166001600160a01b031690506200096f565b909295969498506200352d919397505161ffff1690565b906200353e816002541661ffff1690565b911614620035ac5750813b15620004cc5793516340c10f1960e01b81526001600160a01b03909416928401928352602083019190915260009183919082908490829060400103925af1801562000d9b576200359857505190565b8062000d8d620035a89262000358565b5190565b9150919250620035a89350620048fd565b8062000d8d620035cd9262000358565b38620034ea565b620034f19162001f32823387620048fd565b9950620034f1908a9062001c4d565b50338a8a16141562003467565b8386015161ffff909116600090815260086020908152604080832093835292905220546001600160a01b0316166200363c81151562002d31565b9062003404565b62003652868616331462002c62565b6200330e565b50505062003675620032c5913d8087833e6200183a8183620003c0565b919250829190620032b8565b6001600160a01b031981166200369d576001600160a01b031690565b60405162461bcd60e51b8152602060048201526013602482015272696e76616c69642045564d206164647265737360681b6044820152606490fd5b90601f820180921162001c4757565b608501908160851162001c4757565b6001600160a01b0381166000908152600a60205260409020549091810190811062001c47576001600160401b03811162003746576001600160a01b039091166000908152600a6020526040902055565b60405162461bcd60e51b815260206004820152603560248201527f7472616e736665722065786365656473206d6178206f75747374616e64696e6760448201527408189c9a5919d959081d1bdad95b88185b5bdd5b9d605a1b6064820152608490fd5b6001600160a01b0381166000908152600a60205260409020549091810390811162001c47576001600160a01b039091166000908152600a6020526040902055565b15620037f257565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b62003835600c544614620037ea565b60806200385961ffff60608401511661ffff16600052600b60205260406000205490565b9101511490565b8051602082015191604081015191606082015160a06080840151930151936040519560ff60f81b809460f81b166020880152602187015261ffff60f01b9060f01b16604186015260f81b1660438401526044830152606482015260648152620004ff8162000388565b80519060208101519060408101519060608101519160808201519060c060a0840151930151946040519660ff60f81b9060f81b1660208801526021870152604186015261ffff60f01b809360f01b166061860152606385015260f01b166083830152608582015260858152620004ff816200033c565b620004ff60a582516020840151936040810151906060810151608082015160a08301519060e060c085015194015194604051998a9760ff60f81b9060f81b1660208901526021880152604187015261ffff60f01b809360f01b166061870152606386015260f01b1660838401526085830152620039c68151809260208686019101620007fc565b8101036085810184520182620003c0565b15620039df57565b60405162461bcd60e51b8152602060048201526011602482015270696e76616c69642041737365744d65746160781b6044820152606490fd5b906040519162003a28836200033c565b600090818452602084019082825260408501928084526060860193818552608087019082825260a0880192835262003a7460028960ff62003a6988620047a1565b1680915214620039d7565b602184511062003add57620003f19562003aa962003abb926064976021880151905262003aa18762004831565b61ffff169052565b62003ab485620047fe565b60ff169052565b62003ac683620048b9565b905262003ad382620048db565b90525114620039d7565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b6040519062003b29826200031a565b8160c06000918281528260208201528260408201528260608201528260808201528260a08201520152565b1562003b5c57565b60405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2102a3930b739b332b960811b6044820152606490fd5b9062003b9f62003b1a565b9162003bbe600160ff62003bb384620047a1565b168086521462003b54565b62003bc98162004853565b602084015262003bd98162004897565b604084015261ffff62003bec8262004820565b166060840152606381511062003add576085816063620003f1930151608086015262003c2762003c1c8262004842565b61ffff1660a0870152565b62003c328162004864565b60c0860152511462003b54565b906040519161010083018381106001600160401b03821117620003365760405260009081845260208401918083526040850181815260608601828152608087019083825260a088019284845260c0890194855260e0890196606088528962003ca788620047a1565b60ff169081905262003cbc9060031462003b54565b62003cc78762004853565b905262003cd48662004897565b905262003ce18562004820565b61ffff16905262003cf284620048ca565b905262003cff8362004842565b61ffff16905262003d1082620048ec565b9052805162003d1f9062001c37565b62003d2a916200470b565b9052565b9062003d3962003b1a565b9160ff62003d4782620047a1565b166001810362003d5f5750620004ff91925062003b94565b60030362003dda5762003dc660a062003d7c62003dd19362003c3f565b60038652602081015160208701526040810151604087015262003db362003da8606083015161ffff1690565b61ffff166060880152565b60808101516080870152015161ffff1690565b61ffff1660a0840152565b600060c0830152565b60405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c185e5b1bd859081a5960721b6044820152606490fd5b634e487b7160e01b600052603260045260246000fd5b600019811462001c475760010190565b9062003e468262000463565b62003e556040519182620003c0565b828152809262003e68601f199162000463565b0190602036910137565b90815181101562003e84570160200190565b62003e14565b60005b602081108062003ef8575b1562003eaf5762003ea99062003e2a565b62003e8d565b9062003ebb8262003e3a565b9160005b81811062003ecd5750505090565b602081101562003e8457808362003ef2921a62003eeb828762003e72565b5362003e2a565b62003ebf565b1562003e845781811a60f81b6001600160f81b031916151562003e98565b1562003f1e57565b60405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a590818da185a5b881a5960821b6044820152606490fd5b1562003f5e57565b60405162461bcd60e51b815260206004820152601860248201527f636861696e20616c7265616479207265676973746572656400000000000000006044820152606490fd5b1562003fab57565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b6040519061016082018281106001600160401b038211176200033657604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b604051906200405a82620003a4565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906200408e82620003a4565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b60405190606082018281106001600160401b0382111762000336576040526022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b62004159906200411e62003fe4565b5060008054909182916200413d906200096f906001600160a01b031681565b604051808096819463607ec5ef60e11b83526004830162000848565b03915afa91821562000d9b5781928291839162004211575b50811562004209575050606082015161ffff1661ffff6200419d62000ea360025461ffff9060101c1690565b911603620041fd57608082015160035403620041f157620041d1610140830151600052600560205260ff6040600020541690565b620041e5575090600190620004ff62001a25565b9091620004ff620040ba565b9091620004ff6200407f565b9091620004ff6200404b565b929390929150565b9150506200422c9192503d8084833e6200183a8183620003c0565b9192913862004171565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1562004312577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b83161790556200430c604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b602082019081526004825290620042f781620003a4565b51915af46200430562001a49565b906200276b565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b156200437557565b60405162461bcd60e51b815260206004820152600c60248201526b77726f6e67206d6f64756c6560a01b6044820152606490fd5b15620043b157565b60405162461bcd60e51b815260206004820152600c60248201526b3bb937b7339030b1ba34b7b760a11b6044820152606490fd5b15620043ed57565b60405162461bcd60e51b815260206004820152600c60248201526b0eee4dedcce40d8cadccee8d60a31b6044820152606490fd5b906200442c62001b7d565b91620044526a546f6b656e427269646765620044488362004875565b808652146200436d565b62004473600160ff6200446584620047ed565b1680602087015214620043a9565b6023815110620044bc576045620003f19161ffff8060238301511660408701526200449e826200480f565b166060860152620044af81620048a8565b60808601525114620043e5565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6040519062004507826200036c565b60006060838281528260208201528260408201520152565b906200452a620044f8565b91620045466a546f6b656e427269646765620044488362004875565b62004559600260ff6200446584620047ed565b6023815110620044bc57602381015161ffff166040840152620003f190604390620045848162004886565b60608601525114620043e5565b906200459c620044f8565b91620045b86a546f6b656e427269646765620044488362004875565b620045cb600360ff6200446584620047ed565b604181511062004608576043816041620003f1930151604086015262004600620045f58262004820565b61ffff166060870152565b5114620043e5565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b4681036200465257600c55565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b156200469457565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15620046d257565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b62004723826200471b81620036d8565b10156200468c565b6200473c81516200473484620036e7565b1115620046ca565b8162004755575050604051600081526020810160405290565b60405191601f8116916085831560051b80858701019484860193010101905b8084106200478d5750508252601f01601f191660405290565b909283518152602080910193019062004774565b6001815110620047b2576001015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6021815110620047b2576021015190565b6024815110620047b2576024015190565b6025815110620044bc576025015190565b6043815110620044bc576043015190565b6023815110620044bc576023015190565b6065815110620044bc576065015190565b602181511062004608576021015190565b608581511062004608576085015190565b602081511062003add576020015190565b604381511062003add576043015190565b604181511062003add576041015190565b604581511062003add576045015190565b604481511062003add576044015190565b606381511062003add576063015190565b606481511062003add576064015190565b608581511062003add576085015190565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152620003f1916200493c606483620003c0565b620049fe565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152620003f1916200493c8262000388565b90816020910312620004cc57620004ff9062002624565b15620049a657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6040516001600160a01b03919091169162004a1982620003a4565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b1562004a9a576000828192828762004a709796519301915af162004a6962001a49565b9062004adf565b8051908162004a7e57505050565b82620003f19362004a9493830101910162004987565b6200499e565b60405162461bcd60e51b815260048101859052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b9091901562004aec575090565b815115620027745750805190602001fdfe6080604052346100a3576106f6803803809161001a826100be565b60803960408160800191126100a35761003161010c565b60a05191906001600160401b0383116100a35781609f840112156100a35782608001519261005e84610122565b9261006c60405194856100e9565b84845260a085830101116100a3576100949361008f9160a060208601910161013d565b610160565b6040516101f690816105008239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080601f91909101601f19168101906001600160401b038211908210176100e457604052565b6100a8565b601f909101601f19168101906001600160401b038211908210176100e457604052565b608051906001600160a01b03821682036100a357565b6001600160401b0381116100e457601f01601f191660200190565b60005b8381106101505750506000910152565b8181015183820152602001610140565b90813b156102c257604051635c60da1b60e01b8082526020939092916001600160a01b038216918582600481865afa918215610298576101ef926101af916000916102a5575b503b1515610340565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b03909216919091179055565b60405192817f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e600080a282511580159061029d575b610230575b5050505050565b6004848693819382525afa9182156102985761025e93600093610269575b50506102586103a5565b916103fe565b503880808080610229565b610289929350803d10610291575b61028181836100e9565b810190610315565b90388061024e565b503d610277565b610334565b506000610224565b6102bc9150883d8a116102915761028181836100e9565b386101a6565b60405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b6064820152608490fd5b908160209103126100a357516001600160a01b03811681036100a35790565b6040513d6000823e3d90fd5b1561034757565b60405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608490fd5b60405190606082016001600160401b038111838210176100e45760405260278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b9190823b15610451576000816104469460208394519201905af43d15610449573d9061042982610122565b9161043760405193846100e9565b82523d6000602084013e6104a5565b90565b6060906104a5565b60405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b909190156104b1575090565b8151156104c15750805190602001fd5b6044604051809262461bcd60e51b8252602060048301526104f1815180928160248601526020868601910161013d565b601f01601f19168101030190fdfe608080604052366100c4577fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5054635c60da1b60e01b8252602090829060049082906001600160a01b03165afa9081156100b857600091610060575b5061015b565b6020903d82116100b0575b601f8201601f1916810167ffffffffffffffff81118282101761009c5761009693506040520161017a565b3861005a565b634e487b7160e01b84526041600452602484fd5b3d915061006b565b6040513d6000823e3d90fd5b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5054604051635c60da1b60e01b815290602090829060049082906001600160a01b03165afa9081156100b85760009161011d575061015b565b60203d8111610154575b601f8101601f1916820167ffffffffffffffff81118382101761009c5761009693506040528101906101a1565b503d610127565b6000808092368280378136915af43d82803e15610176573d90f35b3d90fd5b602090607f19011261019c576080516001600160a01b038116810361019c5790565b600080fd5b9081602091031261019c57516001600160a01b038116810361019c579056fea2646970667358221220a928e3b00b7d19d8e2f067361e93c7712de3e243b0b8be428e9ac989960b767464736f6c63430008130033a26469706673582212200ab8408b24ad8ea6b955a8d00252b04da580f860c567cd433865e841fd49531564736f6c63430008130033",K=s=>s.length>1;class w extends u.ContractFactory{constructor(...e){K(e)?super(...e):super(k,q,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new m.Interface(k)}static connect(e,b){return new m.Contract(e,k,b)}}c(w,"bytecode",q),c(w,"abi",k);const v=[{inputs:[{internalType:"address",name:"tokenBridge_",type:"address"},{internalType:"address",name:"wethAddress",type:"address"},{internalType:"address",name:"feeRecipient_",type:"address"},{internalType:"address",name:"ownerAssistant_",type:"address"},{internalType:"bool",name:"unwrapWeth_",type:"bool"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRecipient",type:"address"},{indexed:!0,internalType:"address",name:"newRecipient",type:"address"}],name:"FeeRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransfered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"tokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nativeAmount",type:"uint256"}],name:"SwapExecuted",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],indexed:!0,internalType:"struct TokenBridgeRelayerStructs.SwapRateUpdate[]",name:"swapRates",type:"tuple[]"}],name:"SwapRateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"TransferRedeemed",type:"event"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"calculateMaxSwapAmountIn",outputs:[{internalType:"uint256",name:"maxAllowed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"toNativeAmount",type:"uint256"}],name:"calculateNativeSwapAmountOut",outputs:[{internalType:"uint256",name:"nativeAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"targetChainId",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"calculateRelayerFee",outputs:[{internalType:"uint256",name:"feeInTokenDenomination",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"cancelOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferMessage",type:"bytes"}],name:"completeTransferWithRelay",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"confirmOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"decodeTransferWithRelay",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"}],internalType:"struct TokenBridgeRelayerStructs.TransferWithRelay",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"denormalizeAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"}],name:"deregisterToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"}],internalType:"struct TokenBridgeRelayerStructs.TransferWithRelay",name:"transfer",type:"tuple"}],name:"encodeTransferWithRelay",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"feeRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"}],name:"fetchLocalAddressFromTransferMessage",outputs:[{internalType:"address",name:"localAddress",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getAcceptedTokensList",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"emitterChainId",type:"uint16"}],name:"getRegisteredContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isAcceptedToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"maxNativeSwapAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"nativeSwapRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint8",name:"decimals",type:"uint8"}],name:"normalizeAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"ownerAssistant",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bytes32",name:"contractAddress",type:"bytes32"}],name:"registerContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"}],name:"registerToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"relayerFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"relayerFeePrecision",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bool",name:"paused",type:"bool"}],name:"setPauseForTransfers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newOwner",type:"address"}],name:"submitOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"swapRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"swapRatePrecision",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenBridge",outputs:[{internalType:"contract ITokenBridge",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"unwrapWeth",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newFeeRecipient",type:"address"}],name:"updateFeeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"updateMaxNativeSwapAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newAssistant",type:"address"}],name:"updateOwnerAssistant",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"updateRelayerFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"uint256",name:"relayerFeePrecision_",type:"uint256"}],name:"updateRelayerFeePrecision",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],internalType:"struct TokenBridgeRelayerStructs.SwapRateUpdate[]",name:"swapRateUpdate",type:"tuple[]"}],name:"updateSwapRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"uint256",name:"swapRatePrecision_",type:"uint256"}],name:"updateSwapRatePrecision",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bool",name:"unwrapWeth_",type:"bool"}],name:"updateUnwrapWethFlag",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipient",type:"bytes32"},{internalType:"uint32",name:"batchId",type:"uint32"}],name:"wrapAndTransferEthWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],$="0x60806040523480156200001157600080fd5b50604051620049823803806200498283398101604081905262000034916200038c565b6001600f556001600160a01b038516620000955760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420746f6b656e2062726964676520616464726573730000000060448201526064015b60405180910390fd5b6001600160a01b038416620000ed5760405162461bcd60e51b815260206004820152601460248201527f696e76616c69642077657468206164647265737300000000000000000000000060448201526064016200008c565b6001600160a01b038316620001455760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642066656520726563697069656e74000000000000000000000060448201526064016200008c565b6001600160a01b0382166200019d5760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964206f776e657220617373697374616e7400000000000000000060448201526064016200008c565b600180546001600160a01b03191633179055600380546001600160a01b0319166001600160a01b038516179055600680546001600160a01b0319166001600160a01b03871617905560008054600160201b600160c01b0319166401000000006001600160a01b03871602179055600280546001600160a01b0319166001600160a01b0384161790556000805462ff0000191662010000831515021790556000859050620002c0816001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000410565b6000805461ffff191661ffff92909216919091179055565b6200034b816001600160a01b03166384acd1bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032991906200043d565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b620003596305f5e100600755565b620003676305f5e100600855565b5050505050506200045d565b6001600160a01b03811681146200038957600080fd5b50565b600080600080600060a08688031215620003a557600080fd5b8551620003b28162000373565b6020870151909550620003c58162000373565b6040870151909450620003d88162000373565b6060870151909350620003eb8162000373565b608087015190925080151581146200040257600080fd5b809150509295509295909350565b6000602082840312156200042357600080fd5b815161ffff811681146200043657600080fd5b9392505050565b6000602082840312156200045057600080fd5b8151620004368162000373565b614515806200046d6000396000f3fe6080604052600436106102815760003560e01c80636805b84b1161014f5780639fe089ad116100c1578063cd601c781161007a578063cd601c781461083b578063df160d761461085b578063e30c39781461087d578063ea1d2e4a1461089b578063ffa1ad74146108bb578063fff982a8146108ec57600080fd5b80639fe089ad1461076b578063a2f32c8f14610798578063ad5c4648146107b8578063b5419523146107dd578063c6328a46146107fd578063c9c22f9f1461081b57600080fd5b80638da5cb5b116101135780638da5cb5b146106ac5780638e151dd1146106ca57806390a1afaa146106ea57806394cc743d1461070a5780639a8a05921461072a5780639cf278cd1461074d57600080fd5b80636805b84b146105db57806368aa9ef4146105fa5780637c9dec7a146106185780638335572f1461066e57806384acd1bb1461068e57600080fd5b80632def3e16116101f3578063415828bf116101ac578063415828bf14610517578063469048401461052c57806351e2d7b51461054a5780635b9cf0e11461056a578063640d946b1461058a57806366775a6b146105aa57600080fd5b80632def3e16146104145780632efe4f42146104345780632f25e25f1461046a57806339ba66111461047d5780633b6e750f1461049d5780633d62cca0146104e657600080fd5b8063203c509511610245578063203c50951461033357806327105ab91461035357806328ded8e31461037357806329ac8361146103935780632ca8008c146103a65780632d77e8fe146103dc57600080fd5b8063016aa2051461028d578063038c0b66146102af5780631019d654146102c45780631a282195146102f45780631acdab4b1461031457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a83660046137da565b61090c565b005b3480156102bb57600080fd5b506102ad6109d6565b6102d76102d2366004613825565b610ac3565b6040516001600160401b0390911681526020015b60405180910390f35b34801561030057600080fd5b506102ad61030f36600461389a565b610c63565b34801561032057600080fd5b506007545b6040519081526020016102eb565b34801561033f57600080fd5b506102ad61034e3660046137da565b610cec565b34801561035f57600080fd5b5061032561036e3660046138d7565b610e36565b34801561037f57600080fd5b5061032561038e3660046138d7565b610e70565b6102d76103a13660046138fc565b610e9e565b3480156103b257600080fd5b506103256103c1366004613946565b6001600160a01b03166000908152600a602052604090205490565b3480156103e857600080fd5b506103fc6103f7366004613a3e565b61113c565b6040516001600160a01b0390911681526020016102eb565b34801561042057600080fd5b506102ad61042f366004613abd565b61125c565b34801561044057600080fd5b5061032561044f366004613946565b6001600160a01b03166000908152600b602052604090205490565b6102ad610478366004613ae9565b61131a565b34801561048957600080fd5b50610325610498366004613b5a565b611647565b3480156104a957600080fd5b506104d66104b8366004613946565b6001600160a01b03166000908152600d602052604090205460ff1690565b60405190151581526020016102eb565b3480156104f257600080fd5b50610325610501366004613ba5565b61ffff1660009081526009602052604090205490565b34801561052357600080fd5b50600854610325565b34801561053857600080fd5b506003546001600160a01b03166103fc565b34801561055657600080fd5b506102ad610565366004613abd565b6116fa565b34801561057657600080fd5b506102ad610585366004613abd565b611824565b34801561059657600080fd5b506102ad6105a5366004613bc2565b61193f565b3480156105b657600080fd5b506103256105c5366004613ba5565b61ffff166000908152600c602052604090205490565b3480156105e757600080fd5b506000546301000000900460ff166104d6565b34801561060657600080fd5b506002546001600160a01b03166103fc565b34801561062457600080fd5b50610638610633366004613a3e565b611b83565b6040516102eb9190815160ff16815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561067a57600080fd5b506102ad61068936600461389a565b611cb4565b34801561069a57600080fd5b506005546001600160a01b03166103fc565b3480156106b857600080fd5b506001546001600160a01b03166103fc565b3480156106d657600080fd5b506103256106e5366004613c49565b611d3b565b3480156106f657600080fd5b506102ad610705366004613abd565b611e1b565b34801561071657600080fd5b506102ad6107253660046137da565b611ed9565b34801561073657600080fd5b5060005460405161ffff90911681526020016102eb565b34801561075957600080fd5b5060005462010000900460ff166104d6565b34801561077757600080fd5b5061078b610786366004613c67565b611fa5565b6040516102eb9190613d25565b3480156107a457600080fd5b506102ad6107b3366004613ba5565b612050565b3480156107c457600080fd5b50600054600160201b90046001600160a01b03166103fc565b3480156107e957600080fd5b506103256107f8366004613946565b6120c7565b34801561080957600080fd5b506006546001600160a01b03166103fc565b34801561082757600080fd5b506102ad6108363660046137da565b612161565b34801561084757600080fd5b50610325610856366004613946565b61221d565b34801561086757600080fd5b50610870612302565b6040516102eb9190613d38565b34801561088957600080fd5b506004546001600160a01b03166103fc565b3480156108a757600080fd5b506102ad6108b63660046137da565b612367565b3480156108c757600080fd5b5061078b604051806040016040528060058152602001640302e322e360dc1b81525081565b3480156108f857600080fd5b506102ad610907366004613d85565b612456565b3361091f6001546001600160a01b031690565b6001600160a01b03161461094e5760405162461bcd60e51b815260040161094590613dc6565b60405180910390fd5b818061ffff1661096160005461ffff1690565b61ffff16146109825760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166109c85760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d18261251d565b505050565b60006109ea6004546001600160a01b031690565b9050336001600160a01b03821614610a445760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606401610945565b6000610a586001546001600160a01b031690565b600180546001600160a01b0319166001600160a01b0385161790559050610a7f60006126c2565b816001600160a01b0316816001600160a01b03167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee6760405160405180910390a35050565b6000610acd6126e4565b6000546301000000900460ff1615610b1b5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b6000610b2f6005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190613e19565b9050803414610bd65760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b6000610be18961273d565b9050610bf6610bf08983610e36565b82610e70565b9750610c0289896127df565b9750610c4b6040518060c001604052808b6001600160a01b031681526020018360ff1681526020018a81526020018981526020018861ffff168152602001878152508584612815565b92505050610c596001600f55565b9695505050505050565b33610c766001546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610caf60005461ffff1690565b61ffff1614610cd05760405162461bcd60e51b815260040161094590613df4565b6000805463ff0000001916630100000084151502179055505050565b33610cff6001546001600160a01b031690565b6001600160a01b031614610d255760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610d3860005461ffff1690565b61ffff1614610d595760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216610dbf5760405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608401610945565b6000610dd36003546001600160a01b031690565b600380546001600160a01b0319166001600160a01b0386161790559050826001600160a01b0316816001600160a01b03167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a350505050565b600060088260ff161115610e6757610e4f600883613e48565b610e5a90600a613f45565b610e649084613f54565b92505b50815b92915050565b600060088260ff161115610e6757610e89600883613e48565b610e9490600a613f45565b610e649084613f76565b600080546301000000900460ff1615610eed5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b60005462010000900460ff16610f455760405162461bcd60e51b815260206004820181905260248201527f574554482066756e6374696f6e616c697479206e6f7420737570706f727465646044820152606401610945565b6000610f596005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba9190613e19565b90508034116110005760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b600061100c8234613f8d565b9050600061102561101e836012610e36565b6012610e70565b61102f9083613f8d565b9050801561106657604051339082156108fc029083906000818181858888f19350505050158015611064573d6000803e3d6000fd5b505b60006110728284613f8d565b905060006110906000546001600160a01b03600160201b9091041690565b9050806001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110cd57600080fd5b505af11580156110e1573d6000803e3d6000fd5b505050505061112e6040518060c00160405280836001600160a01b03168152602001601260ff1681526020018481526020018c81526020018b61ffff1681526020018a8152508887612815565b9a9950505050505050505050565b60008061114a836021612b3d565b90506000611159846041612b9b565b905061116860005461ffff1690565b61ffff168161ffff1614611249576006546001600160a01b0316604051630ff8f14360e11b815261ffff83166004820152602481018490526001600160a01b039190911690631ff1e28690604401602060405180830381865afa1580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190613fa0565b92506001600160a01b0383166112445760405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd08185d1d195cdd195960721b6044820152606401610945565b611255565b61125282612bf8565b92505b5050919050565b3361126f6001546001600160a01b031690565b6001600160a01b0316146112955760405162461bcd60e51b815260040161094590613dc6565b818061ffff166112a860005461ffff1690565b61ffff16146112c95760405162461bcd60e51b815260040161094590613df4565b600082116113115760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600755565b600080600061135e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b925092509250600061136f84611b83565b905060006113808260600151612bf8565b9050600061139760005460ff620100009091041690565b90506001600160a01b03821633036113bf576113b584838784612f41565b5050505050505050565b60006113ca8561273d565b90506113da846020015182610e70565b6020850152600054600160201b90046001600160a01b03166001600160a01b0316856001600160a01b0316036114255761141a868486602001518561306b565b505050505050505050565b6040840151156115ed5761143d846040015182610e70565b6040850152600061144d8661221d565b9050808560400151111561146357604085018190525b6000611473878760400151611d3b565b905080156115af57803410156114cb5760405162461bcd60e51b815260206004820181905260248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152606401610945565b60006114d78234613f8d565b9050801561150e57604051339082156108fc029083906000818181858888f1935050505015801561150c573d6000803e3d6000fd5b505b6040516001600160a01b0387169083156108fc029084906000818181858888f19350505050158015611544573d6000803e3d6000fd5b50876001600160a01b0316336001600160a01b0316876001600160a01b03167f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f18a60400151866040516115a1929190918252602082015260400190565b60405180910390a4506115ea565b6000604087015234156115ea5760405133903480156108fc02916000818181858888f193505050501580156115e8573d6000803e3d6000fd5b505b50505b6000846040015185602001516116039190613fbd565b9050801561162757611627866116216003546001600160a01b031690565b836131e1565b61163b8685611636848b613f8d565b6131e1565b50505050505050505050565b6001600160a01b0382166000908152600a6020526040812054806000036116a45760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b6008546116b19082613f76565b60075461ffff87166000908152600c60205260409020546116d386600a613f45565b6116dd9190613f76565b6116e79190613f76565b6116f19190613f54565b95945050505050565b3361170d6001546001600160a01b031690565b6001600160a01b0316146117335760405162461bcd60e51b815260040161094590613dc6565b806117905760405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608401610945565b61ffff8216158015906117ac575060005461ffff838116911614155b6118085760405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608401610945565b61ffff91909116600090815260096020526040902055565b5050565b336118376001546001600160a01b031690565b6001600160a01b0316148061186557503361185a6002546001600160a01b031690565b6001600160a01b0316145b6118815760405162461bcd60e51b815260040161094590613fd0565b60005461ffff1661ffff168261ffff16036118ce5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606401610945565b61ffff82166000908152600960205260409020546119275760405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606401610945565b61ffff919091166000908152600c6020526040902055565b336119526001546001600160a01b031690565b6001600160a01b031614806119805750336119756002546001600160a01b031690565b6001600160a01b0316145b61199c5760405162461bcd60e51b815260040161094590613fd0565b828061ffff166119af60005461ffff1690565b61ffff16146119d05760405162461bcd60e51b815260040161094590613df4565b8180611a135760405162461bcd60e51b8152602060048201526012602482015271696e76616c69642061727261792073697a6560701b6044820152606401610945565b60005b81811015611b3b57611a49858583818110611a3357611a33614011565b6104b89260206040909202019081019150613946565b611a655760405162461bcd60e51b815260040161094590614027565b6000858583818110611a7957611a79614011565b9050604002016020013511611ad05760405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606401610945565b611b33858583818110611ae557611ae5614011565b611afb9260206040909202019081019150613946565b868684818110611b0d57611b0d614011565b905060400201602001356001600160a01b039091166000908152600a6020526040902055565b600101611a16565b508383604051611b4c929190614053565b604051908190038120907f7abf49a6ebb116bc314846377cd82a3d2c8c1ea48149a652356009fc37100dd790600090a25050505050565b604080516080810182526000808252602082018190529181018290526060810182905290611bb18382613244565b60ff168252611bc1600182613fbd565b9050816000015160ff16600114611c0e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b611c1883826132a0565b602080840191909152611c2b9082613fbd565b9050611c3783826132a0565b6040830152611c47602082613fbd565b9050611c538382612b3d565b6060830152611c63602082613fbd565b905082518114611cae5760405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840dacae6e6c2ceca40d8cadccee8d60531b6044820152606401610945565b50919050565b33611cc76001546001600160a01b031690565b6001600160a01b031614611ced5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611d0060005461ffff1690565b61ffff1614611d215760405162461bcd60e51b815260040161094590613df4565b6000805462ff000019166201000084151502179055505050565b600080611d478461273d565b90506000611d6d611d686000546001600160a01b03600160201b9091041690565b61273d565b90508060ff168260ff161115611dca57611d878183613e48565b611d9290600a613f45565b611d9b866120c7565b611da59190613f76565b84611daf60075490565b611db99190613f76565b611dc39190613f54565b9250611e13565b611dd3856120c7565b611ddd8383613e48565b611de890600a613f45565b85611df260075490565b611dfc9190613f76565b611e069190613f76565b611e109190613f54565b92505b505092915050565b33611e2e6001546001600160a01b031690565b6001600160a01b031614611e545760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611e6760005461ffff1690565b61ffff1614611e885760405162461bcd60e51b815260040161094590613df4565b60008211611ed05760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600855565b33611eec6001546001600160a01b031690565b6001600160a01b031614611f125760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611f2560005461ffff1690565b61ffff1614611f465760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216611f9c5760405162461bcd60e51b815260206004820181905260248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152606401610945565b6109d1826126c2565b6060816000015160ff16600114611ff25760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b81516020808401516040808601516060870151915161203a95949192910160f89490941b6001600160f81b031916845260018401929092526021830152604182015260610190565b6040516020818303038152906040529050919050565b336120636001546001600160a01b031690565b6001600160a01b0316146120895760405162461bcd60e51b815260040161094590613dc6565b808061ffff1661209c60005461ffff1690565b61ffff16146120bd5760405162461bcd60e51b815260040161094590613df4565b61182060006126c2565b600080546001600160a01b03600160201b90910481168252600a60205260408083205491841683528220546000821180156121025750600081115b6121425760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b808261214d60075490565b6121579190613f76565b6112529190613f54565b336121746001546001600160a01b031690565b6001600160a01b03161461219a5760405162461bcd60e51b815260040161094590613dc6565b818061ffff166121ad60005461ffff1690565b61ffff16146121ce5760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166122145760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d1826132f5565b6000806122298361273d565b9050600061224a611d686000546001600160a01b03600160201b9091041690565b90508060ff168260ff1611156122b9576007546122678284613e48565b61227290600a613f45565b61227b866120c7565b6001600160a01b0387166000908152600b602052604090205461229e9190613f76565b6122a89190613f76565b6122b29190613f54565b9250611255565b6007546122c68383613e48565b6122d190600a613f45565b6122db9190613f76565b6122e4856120c7565b6001600160a01b0386166000908152600b602052604090205461214d565b60606000600e0180548060200260200160405190810160405280929190818152602001828054801561235d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161233f575b5050505050905090565b3361237a6001546001600160a01b031690565b6001600160a01b0316146123a05760405162461bcd60e51b815260040161094590613dc6565b818061ffff166123b360005461ffff1690565b61ffff16146123d45760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166124365760405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608401610945565b600280546001600160a01b0319166001600160a01b038416179055505050565b336124696001546001600160a01b031690565b6001600160a01b03161461248f5760405162461bcd60e51b815260040161094590613dc6565b828061ffff166124a260005461ffff1690565b61ffff16146124c35760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0383166000908152600d602052604090205460ff166124fb5760405162461bcd60e51b815260040161094590614027565b6001600160a01b0383166000908152600b602052604090208290555b50505050565b6001600160a01b0381166000908152600d602052604090205460ff1661257c5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6001600160a01b0381166000908152600d60209081526040808320805460ff19169055600a8252808320839055600b9091528120819055600e54905b8181101561260257826001600160a01b03166000600e0182815481106125e0576125e0614011565b6000918252602090912001546001600160a01b031614612602576001016125b8565b8181146109d157600182111561268a57600e61261f600184613f8d565b8154811061262f5761262f614011565b600091825260209091200154600e80546001600160a01b03909216918390811061265b5761265b614011565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600e80548061269b5761269b61409e565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002600f54036127365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610945565b6002600f55565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b03851691612780916140b4565b600060405180830381855afa9150503d80600081146127bb576040519150601f19603f3d011682016040523d82523d6000602084013e6127c0565b606091505b50915050808060200190518101906127d891906140e0565b9392505050565b6000806127eb846133c4565b90506127f984333086613470565b80612803856133c4565b61280d9190613f8d565b949350505050565b82516001600160a01b03166000908152600d602052604081205460ff1661284e5760405162461bcd60e51b815260040161094590614027565b60a08401516128ab5760405162461bcd60e51b8152602060048201526024808201527f746172676574526563697069656e742063616e6e6f74206265206279746573336044820152633228302960e01b6064820152608401610945565b60006128bf85604001518660200151610e36565b9050600081116129115760405162461bcd60e51b815260206004820152601d60248201527f6e6f726d616c697a656420616d6f756e74206d757374206265203e20300000006044820152606401610945565b600061292586606001518760200151610e36565b905085606001516000148061293a5750600081115b6129865760405162461bcd60e51b815260206004820152601b60248201527f696e76616c696420746f4e6174697665546f6b656e416d6f756e7400000000006044820152606401610945565b608086015161ffff16600090815260096020526040902054806129e35760405162461bcd60e51b81526020600482015260156024820152741d185c99d95d081b9bdd081c9959da5cdd195c9959605a1b6044820152606401610945565b6000612a096129ff89608001518a600001518b60200151611647565b8960200151610e36565b9050612a158382613fbd565b8411612a595760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08185b5bdd5b9d606a1b6044820152606401610945565b6000612a8c6040518060800160405280600160ff1681526020018481526020018681526020018b60a00151815250611fa5565b90506000612aa26006546001600160a01b031690565b9050612ab78a60000151828c604001516134a8565b806001600160a01b031663c5a5ebda898c600001518d604001518e60800151898f896040518863ffffffff1660e01b8152600401612afa969594939291906140fd565b60206040518083038185885af1158015612b18573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061112e9190614163565b6000612b4a826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610945565b50016020015190565b6000612ba8826002613fbd565b83511015612bef5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610945565b50016002015190565b60006001600160a01b0319821615612c485760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642045564d206164647265737360681b6044820152606401610945565b5090565b60606000806000612c656005546001600160a01b031690565b6001600160a01b031663a9e11893866040518263ffffffff1660e01b8152600401612c909190613d25565b600060405180830381865afa158015612cad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cd591908101906142a2565b90506000612ce68260e0015161113c565b9050612d0a816001600160a01b03166000908152600d602052604090205460ff1690565b612d4d5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6000612d58826133c4565b90506000612d6e6006546001600160a01b031690565b90506000816001600160a01b031663c3f511c18a6040518263ffffffff1660e01b8152600401612d9e9190613d25565b6000604051808303816000875af1158015612dbd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612de591908101906143c6565b9050600083612df3866133c4565b612dfd9190613f8d565b90506000836001600160a01b031663ea63738d846040518263ffffffff1660e01b8152600401612e2d9190613d25565b600060405180830381865afa158015612e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e7291908101906143fa565b9050612e92876060015161ffff1660009081526009602052604090205490565b8160c0015114612ee45760405162461bcd60e51b815260206004820152601760248201527f636f6e7472616374206e6f7420726567697374657265640000000000000000006044820152606401610945565b8660a001516001600160401b03168760800151886060015161ffff167fcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c16960405160405180910390a460e001519a9099509397509295505050505050565b3415612f9b5760405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608401610945565b6000546001600160a01b03600160201b909104811690851681148015612fbe5750815b1561305957604051632e1a7d4d60e01b8152600481018490526001600160a01b03821690632e1a7d4d90602401600060405180830381600087803b15801561300557600080fd5b505af1158015613019573d6000803e3d6000fd5b50506040516001600160a01b038716925085156108fc02915085906000818181858888f19350505050158015613053573d6000803e3d6000fd5b50613064565b6130648585856131e1565b5050505050565b34156130ae5760405162461bcd60e51b815260206004820152601260248201527176616c7565206d757374206265207a65726f60701b6044820152606401610945565b80156131a157600054604051632e1a7d4d60e01b815260048101869052600160201b9091046001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b50505050826001600160a01b03166108fc83866131319190613f8d565b6040518115909202916000818181858888f19350505050158015613159573d6000803e3d6000fd5b50811561319c576003546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561319a573d6000803e3d6000fd5b505b612517565b600054600160201b90046001600160a01b03166131c381856116368689613f8d565b821561306457613064816131df6003546001600160a01b031690565b855b6040516001600160a01b0383166024820152604481018290526109d190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526135bd565b6000613251826001613fbd565b835110156132975760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606401610945565b50016001015190565b60006132ad826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610945565b6001600160a01b0381166000908152600d602052604090205460ff161561335e5760405162461bcd60e51b815260206004820152601860248201527f746f6b656e20616c7265616479207265676973746572656400000000000000006044820152606401610945565b6001600160a01b03166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b179052905160009182916001600160a01b03851691613418916140b4565b600060405180830381855afa9150503d8060008114613453576040519150601f19603f3d011682016040523d82523d6000602084013e613458565b606091505b50915050808060200190518101906127d89190613e19565b6040516001600160a01b03808516602483015283166044820152606481018290526125179085906323b872dd60e01b9060840161320d565b8015806135225750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156134fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135209190613e19565b155b61358d5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610945565b6040516001600160a01b0383166024820152604481018290526109d190849063095ea7b360e01b9060640161320d565b6000613612826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661368f9092919063ffffffff16565b8051909150156109d1578080602001905181019061363091906144c2565b6109d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610945565b606061280d848460008585600080866001600160a01b031685876040516136b691906140b4565b60006040518083038185875af1925050503d80600081146136f3576040519150601f19603f3d011682016040523d82523d6000602084013e6136f8565b606091505b509150915061370987838387613714565b979650505050505050565b6060831561378357825160000361377c576001600160a01b0385163b61377c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610945565b508161280d565b61280d83838151156137985781518083602001fd5b8060405162461bcd60e51b81526004016109459190613d25565b61ffff811681146137c257600080fd5b50565b6001600160a01b03811681146137c257600080fd5b600080604083850312156137ed57600080fd5b82356137f8816137b2565b91506020830135613808816137c5565b809150509250929050565b63ffffffff811681146137c257600080fd5b60008060008060008060c0878903121561383e57600080fd5b8635613849816137c5565b955060208701359450604087013593506060870135613867816137b2565b92506080870135915060a087013561387e81613813565b809150509295509295509295565b80151581146137c257600080fd5b600080604083850312156138ad57600080fd5b82356138b8816137b2565b915060208301356138088161388c565b60ff811681146137c257600080fd5b600080604083850312156138ea57600080fd5b823591506020830135613808816138c8565b6000806000806080858703121561391257600080fd5b843593506020850135613924816137b2565b925060408501359150606085013561393b81613813565b939692955090935050565b60006020828403121561395857600080fd5b81356127d8816137c5565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171561399b5761399b613963565b60405290565b60405161016081016001600160401b038111828210171561399b5761399b613963565b60405161010081016001600160401b038111828210171561399b5761399b613963565b604051601f8201601f191681016001600160401b0381118282101715613a0f57613a0f613963565b604052919050565b60006001600160401b03821115613a3057613a30613963565b50601f01601f191660200190565b600060208284031215613a5057600080fd5b81356001600160401b03811115613a6657600080fd5b8201601f81018413613a7757600080fd5b8035613a8a613a8582613a17565b6139e7565b818152856020838501011115613a9f57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008060408385031215613ad057600080fd5b8235613adb816137b2565b946020939093013593505050565b60008060208385031215613afc57600080fd5b82356001600160401b0380821115613b1357600080fd5b818501915085601f830112613b2757600080fd5b813581811115613b3657600080fd5b866020828501011115613b4857600080fd5b60209290920196919550909350505050565b600080600060608486031215613b6f57600080fd5b8335613b7a816137b2565b92506020840135613b8a816137c5565b91506040840135613b9a816138c8565b809150509250925092565b600060208284031215613bb757600080fd5b81356127d8816137b2565b600080600060408486031215613bd757600080fd5b8335613be2816137b2565b925060208401356001600160401b0380821115613bfe57600080fd5b818601915086601f830112613c1257600080fd5b813581811115613c2157600080fd5b8760208260061b8501011115613c3657600080fd5b6020830194508093505050509250925092565b60008060408385031215613c5c57600080fd5b8235613adb816137c5565b600060808284031215613c7957600080fd5b604051608081018181106001600160401b0382111715613c9b57613c9b613963565b6040528235613ca9816138c8565b808252506020830135602082015260408301356040820152606083013560608201528091505092915050565b60005b83811015613cf0578181015183820152602001613cd8565b50506000910152565b60008151808452613d11816020860160208601613cd5565b601f01601f19169290920160200192915050565b6020815260006127d86020830184613cf9565b6020808252825182820181905260009190848201906040850190845b81811015613d795783516001600160a01b031683529284019291840191600101613d54565b50909695505050505050565b600080600060608486031215613d9a57600080fd5b8335613da5816137b2565b92506020840135613db5816137c5565b929592945050506040919091013590565b60208082526014908201527331b0b63632b9103737ba103a34329037bbb732b960611b604082015260600190565b6020808252600b908201526a3bb937b7339031b430b4b760a91b604082015260600190565b600060208284031215613e2b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115610e6a57610e6a613e32565b600181815b80851115613e9c578160001904821115613e8257613e82613e32565b80851615613e8f57918102915b93841c9390800290613e66565b509250929050565b600082613eb357506001610e6a565b81613ec057506000610e6a565b8160018114613ed65760028114613ee057613efc565b6001915050610e6a565b60ff841115613ef157613ef1613e32565b50506001821b610e6a565b5060208310610133831016604e8410600b8410161715613f1f575081810a610e6a565b613f298383613e61565b8060001904821115613f3d57613f3d613e32565b029392505050565b60006127d860ff841683613ea4565b600082613f7157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e6a57610e6a613e32565b81810381811115610e6a57610e6a613e32565b600060208284031215613fb257600080fd5b81516127d8816137c5565b80820180821115610e6a57610e6a613e32565b60208082526021908201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6020808252601290820152711d1bdad95b881b9bdd081858d8d95c1d195960721b604082015260600190565b60008184825b8581101561409357813561406c816137c5565b6001600160a01b031683526020828101359084015260409283019290910190600101614059565b509095945050505050565b634e487b7160e01b600052603160045260246000fd5b600082516140c6818460208701613cd5565b9190910192915050565b80516140db816138c8565b919050565b6000602082840312156140f257600080fd5b81516127d8816138c8565b60018060a01b038716815285602082015261ffff8516604082015283606082015263ffffffff8316608082015260c060a0820152600061414060c0830184613cf9565b98975050505050505050565b80516001600160401b03811681146140db57600080fd5b60006020828403121561417557600080fd5b6127d88261414c565b80516140db81613813565b80516140db816137b2565b600082601f8301126141a557600080fd5b81516141b3613a8582613a17565b8181528460208386010111156141c857600080fd5b61280d826020830160208701613cd5565b600082601f8301126141ea57600080fd5b815160206001600160401b0382111561420557614205613963565b614213818360051b016139e7565b82815260079290921b8401810191818101908684111561423257600080fd5b8286015b84811015614297576080818903121561424f5760008081fd5b614257613979565b815181528482015185820152604080830151614272816138c8565b90820152606082810151614285816138c8565b90820152835291830191608001614236565b509695505050505050565b6000602082840312156142b457600080fd5b81516001600160401b03808211156142cb57600080fd5b9083019061016082860312156142e057600080fd5b6142e86139a1565b6142f1836140d0565b81526142ff6020840161417e565b60208201526143106040840161417e565b604082015261432160608401614189565b60608201526080830151608082015261433c60a0840161414c565b60a082015261434d60c084016140d0565b60c082015260e08301518281111561436457600080fd5b61437087828601614194565b60e08301525061010061438481850161417e565b90820152610120838101518381111561439c57600080fd5b6143a8888287016141d9565b91830191909152506101409283015192810192909252509392505050565b6000602082840312156143d857600080fd5b81516001600160401b038111156143ee57600080fd5b61280d84828501614194565b60006020828403121561440c57600080fd5b81516001600160401b038082111561442357600080fd5b90830190610100828603121561443857600080fd5b6144406139c4565b614449836140d0565b8152602083015160208201526040830151604082015261446b60608401614189565b60608201526080830151608082015261448660a08401614189565b60a082015260c083015160c082015260e0830151828111156144a757600080fd5b6144b387828601614194565b60e08301525095945050505050565b6000602082840312156144d457600080fd5b81516127d88161388c56fea26469706673582212204380a2c16f3d3a94e16ceec8dd417389a415486e9286774f1ba51d1e17ea374064736f6c63430008110033",Y=s=>s.length>1;class R extends u.ContractFactory{constructor(...e){Y(e)?super(...e):super(v,$,e[0])}getDeployTransaction(e,b,t,n,f,d){return super.getDeployTransaction(e,b,t,n,f,d||{})}deploy(e,b,t,n,f,d){return super.deploy(e,b,t,n,f,d||{})}connect(e){return super.connect(e)}static createInterface(){return new m.Interface(v)}static connect(e,b){return new m.Contract(e,v,b)}}c(R,"bytecode",$),c(R,"abi",v);const Z=Object.freeze(Object.defineProperty({__proto__:null,Bridge__factory:w,TokenBridgeRelayer__factory:R},Symbol.toStringTag,{value:"Module"}));a.registerProtocol(a._platform,"TokenBridge",C);a.registerProtocol(a._platform,"AutomaticTokenBridge",B);a.registerProtocol(a._platform,"ExecutorTokenBridge",x);exports.EvmAutomaticTokenBridge=B;exports.EvmExecutorTokenBridge=x;exports.EvmTokenBridge=C;exports.ethers_contracts=Z;
|
package/lib/index-DZubce9o.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./unsignedTransaction-dN_5EJf5.js"),e=require("./address-BGujeWtN.js"),o=require("./web3-Doz_0RHD.js");class n extends Error{constructor(t){super(t)}}class u extends n{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const i=e.struct([e.u32("mintAuthorityOption"),o.publicKey("mintAuthority"),o.u64("supply"),e.u8("decimals"),o.bool("isInitialized"),e.u32("freezeAuthorityOption"),o.publicKey("freezeAuthority")]);i.span;async function f(s,t,O=!1,c=r.TOKEN_PROGRAM_ID,A=r.ASSOCIATED_TOKEN_PROGRAM_ID){if(!O&&!e.PublicKey.isOnCurve(t.toBuffer()))throw new u;const[a]=await e.PublicKey.findProgramAddress([t.toBuffer(),c.toBuffer(),s.toBuffer()],A);return a}exports.ASSOCIATED_TOKEN_PROGRAM_ID=r.ASSOCIATED_TOKEN_PROGRAM_ID;exports.TOKEN_2022_PROGRAM_ID=r.TOKEN_2022_PROGRAM_ID;exports.TOKEN_PROGRAM_ID=r.TOKEN_PROGRAM_ID;exports.MintLayout=i;exports.TokenError=n;exports.TokenOwnerOffCurveError=u;exports.getAssociatedTokenAddress=f;
|
package/lib/index-DprM_IpB.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var Me=Object.defineProperty;var Ie=(r,e,t)=>e in r?Me(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var c=(r,e,t)=>Ie(r,typeof e!="symbol"?e+"":e,t);const i=require("./address-BGujeWtN.js"),m=require("./index-CF2fHBHJ.js"),p=require("./account-cRt2xMoW.js"),X=require("./unsignedTransaction-dN_5EJf5.js"),Ee=require("./create-DoZZ7ciL.js"),O=new i.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");function te(r){return p.deriveAddress([new i.PublicKey(r).toBuffer()],O)}class Pe extends Error{constructor(e){super(e),this.name="IdlError"}}function Y(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>M(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?M(r,s.type):M(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return M(r,e.type.value)}}function M(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+M(r,e.option);if("coption"in e)return 4+M(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 Pe(`Type not found: ${JSON.stringify(e)}`);let s=n[0];return Y(r,s)}if("array"in e){let n=e.array[0],s=e.array[1];return M(r,n)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function L(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Be(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ne=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...i.universalAddressItem},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...i.universalAddressItem},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function re(r){return i.deserialize$1(ne,r)}function E(r,e,t,n){const s=typeof e=="string"?i.dist.Buffer.from(e,"hex"):i.dist.Buffer.from(e);if(s.length!=32)throw Error("address.length != 32");const a=i.dist.Buffer.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),p.deriveAddress([s,(()=>{const o=i.dist.Buffer.alloc(2);return o.writeUInt16BE(t),o})(),a],r)}async function se(r,e,t,n,s,a){return r.getAccountInfo(E(e,t,n,s),a).then(o=>!!p.getAccountData(o)[0])}function h(r){return p.deriveAddress([i.dist.Buffer.from("Bridge")],r)}async function ie(r,e,t){return r.getAccountInfo(h(e),t).then(n=>k.deserialize(p.getAccountData(n)))}class v{constructor(e,t){c(this,"guardianSetExpirationTime");c(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 v(t,n)}}class k{constructor(e,t,n){c(this,"guardianSetIndex");c(this,"lastLamports");c(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=v.deserialize(e.subarray(12));return new k(t,n,s)}}function C(r,e){return p.deriveAddress([i.dist.Buffer.from("Sequence"),new i.PublicKey(r).toBytes()],e)}async function ae(r,e,t,n){return r.getAccountInfo(C(e,t),n).then(s=>z.deserialize(p.getAccountData(s)))}class z{constructor(e,t,n){c(this,"sequence");c(this,"bump");c(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 z(s,t,n)}value(){return this.sequence}}function q(r){return p.deriveAddress([i.dist.Buffer.from("emitter")],r)}function N(r,e){const t=q(r);return{emitter:t,sequence:C(t,e)}}async function oe(r,e,t,n){return ae(r,q(e),t,n)}function P(r){return p.deriveAddress([i.dist.Buffer.from("fee_collector")],r)}const Z=65,U=20;function xe(r,e,t){return new i.TransactionInstruction({keys:[],programId:i.Secp256k1Program.programId,data:Ke.serialize(r,e,t)})}class Ke{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,o=1+s*a,u=Z+U,d=o+s*u,f=32,g=i.dist.Buffer.alloc(d+f);g.writeUInt8(s,0),g.write(n.toString("hex"),d,"hex");for(let l=0;l<s;++l){const y=e.at(l);if((y==null?void 0:y.length)!=Z)throw Error(`signatures[${l}].length != 65`);const S=t.at(l);if((S==null?void 0:S.length)!=U)throw Error(`keys[${l}].length != 20`);const A=o+u*l,K=A+65;g.writeUInt16LE(A,1+l*a),g.writeUInt8(0,3+l*a),g.writeUInt16LE(K,4+l*a),g.writeUInt8(0,6+l*a),g.writeUInt16LE(d,7+l*a),g.writeUInt16LE(f,9+l*a),g.writeUInt8(0,10+l*a),g.write(y.toString("hex"),A,"hex"),g.write(S.toString("hex"),K,"hex")}return g}}function I(r,e){return p.deriveAddress([i.dist.Buffer.from("GuardianSet"),(()=>{const t=i.dist.Buffer.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function G(r,e,t,n){return r.getAccountInfo(I(e,t),n).then(s=>V.deserialize(p.getAccountData(s)))}class V{constructor(e,t,n,s){c(this,"index");c(this,"keys");c(this,"creationTime");c(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*U,a=e.readUInt32LE(s),o=e.readUInt32LE(4+s),u=[];for(let d=0;d<n;++d){const f=8+d*U;u.push(e.subarray(f,f+U))}return new V(t,u,a,o)}}function b(r,e){return p.deriveAddress([i.dist.Buffer.from("PostedVAA"),e],r)}async function Le(r,e,t){return r.getAccountInfo(new i.PublicKey(e),t).then(n=>D.deserialize(p.getAccountData(n)))}class D{constructor(e,t,n){c(this,"signatures");c(this,"hash");c(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(u=>u!=0),s=4+t,a=e.subarray(s,s+32),o=e.readUInt32LE(s+32);return new D(n,a,o)}}function $(r){return p.deriveAddress([i.dist.Buffer.from("upgrade")],r)}function W(r,e,t){return i.SystemProgram.transfer({fromPubkey:new i.PublicKey(e),toPubkey:P(r),lamports:t})}class Ue{constructor(e){c(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 Y(this.idl,e)??0}}class Ce{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?L(e.name):void 0;switch(e.type){case"bool":return m.dist.bool(n);case"u8":return m.dist.u8(n);case"i8":return m.dist.i8(n);case"u16":return m.dist.u16(n);case"i16":return m.dist.i16(n);case"u32":return m.dist.u32(n);case"i32":return m.dist.i32(n);case"f32":return m.dist.f32(n);case"u64":return m.dist.u64(n);case"i64":return m.dist.i64(n);case"f64":return m.dist.f64(n);case"u128":return m.dist.u128(n);case"i128":return m.dist.i128(n);case"u256":return m.dist.u256(n);case"i256":return m.dist.i256(n);case"bytes":return m.dist.vecU8(n);case"string":return m.dist.str(n);case"publicKey":return m.dist.publicKey(n);default:{if("vec"in e.type)return m.dist.vec(B.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return m.dist.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],o=B.fieldLayout({name:void 0,type:s},t);return m.dist.array(o,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class j{constructor(e){c(this,"ixLayout");this.ixLayout=j.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(u=>B.fieldLayout(u,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,m.dist.struct(a,o)]}).concat(e.instructions.map(s=>{let a=s.args.map(u=>B.fieldLayout(u,Array.from([...e.accounts??[],...e.types??[]])));const o=L(s.name);return[o,m.dist.struct(a,o)]}));return new Map(n)}encode(e,t){const n=i.dist.Buffer.alloc(1e3),s=L(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const o=a.encode(t,n),u=n.slice(0,o);return _e(T[Be(s)],u)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){var u;typeof e=="string"&&(e=t==="hex"?i.dist.Buffer.from(e,"hex"):i.b58.decode(e));let n=i.dist.Buffer.from(e.slice(0,1)).readInt8(),s=i.dist.Buffer.from(e.slice(1)),a=L(T[n]??"");return this.ixLayout.get(a)?{data:(u=this.ixLayout.get(a))==null?void 0:u.decode(s),name:a}:null}}var T;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(T||(T={}));function _e(r,e){const t=i.dist.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 Te{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 ve{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 ke{constructor(e){c(this,"instruction");c(this,"accounts");c(this,"state");c(this,"events");c(this,"types");this.instruction=new j(e),this.accounts=new Ue(e),this.state=new Te(e),this.events=new Ce(e),this.types=new ve(e)}}const H={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function ue(r,e){return new m.Program(H,new i.PublicKey(r),e===void 0?{connection:null}:e,ce())}function w(r,e){return ue(r,m.createReadOnlyProvider(e))}function ce(){return new ke(H)}function ze(r,e,t,n){const s=w(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:de(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function de(r,e,t){return{payer:new i.PublicKey(e),bridge:h(r),vaa:b(r,i.dist.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),systemProgram:i.SystemProgram.programId}}function qe(r,e,t,n,s){const a=w(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:ge(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function ge(r,e,t,n){return{payer:new i.PublicKey(e),bridge:h(r),vaa:b(r,i.dist.Buffer.from(n.hash)),claim:E(r,n.emitterAddress.toString(),i.toChainId(n.emitterChain),n.sequence),feeCollector:P(r),recipient:new i.PublicKey(t),rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function Ve(r,e,t,n){const s=w(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:fe(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function fe(r,e,t){return{payer:new i.PublicKey(e),bridge:h(r),vaa:b(r,i.dist.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),guardianSetOld:I(r,t.guardianSet),guardianSetNew:I(r,t.guardianSet+1),systemProgram:i.SystemProgram.programId}}function De(r,e,t,n){const s=w(e,r).methods.upgradeContract();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,n){const{newContract:s}=t.payload.actionArgs;return{payer:new i.PublicKey(e),bridge:h(r),vaa:b(r,i.dist.Buffer.from(t.hash)),claim:E(r,t.emitterAddress.toString(),i.toChainId(t.emitterChain),t.sequence),upgradeAuthority:$(r),spill:new i.PublicKey(n===void 0?e:n),implementation:new i.SolanaAddress(s).unwrap(),programData:te(r),wormholeProgram:new i.PublicKey(r),rent:i.SYSVAR_RENT_PUBKEY,clock:i.SYSVAR_CLOCK_PUBKEY,bpfLoaderUpgradeable:O,systemProgram:i.SystemProgram.programId}}function Fe(r,e,t,n,s,a){const o=w(e,r).methods.initialize(n,new i.BN(s.toString()),[...a.map(u=>[...new Uint8Array(u)])]);return o._ixFn(...o._args,{accounts:le(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function le(r,e){return{bridge:h(r),guardianSet:I(r,0),feeCollector:P(r),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function ye(r,e,t,n,s,a,o){const u=w(e,r).methods.postMessage(a,i.dist.Buffer.from(s),o);return u._ixFn(...u._args,{accounts:F(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function F(r,e,t,n){let s;return n?{emitter:n,sequence:s}=N(n,r):(n=e,s=C(n,r)),{bridge:h(r),message:new i.PublicKey(t),emitter:new i.PublicKey(n),sequence:s,payer:new i.PublicKey(e),feeCollector:P(r),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function pe(r,e,t,n,s){const a=w(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,i.toChainId(n.emitterChain),[...n.emitterAddress.toUint8Array()],new i.BN(n.sequence.toString()),n.consistencyLevel,i.dist.Buffer.from(i.serializePayload(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:he(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function he(r,e,t,n){return{guardianSet:I(r,n.guardianSet),bridge:h(r),signatureSet:new i.PublicKey(t),vaa:b(r,i.dist.Buffer.from(n.hash)),payer:new i.PublicKey(e),clock:i.SYSVAR_CLOCK_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}const Re=19;async function Se(r,e,t,n,s,a){const o=n.guardianSet,u=await G(r,e,o,a),d=n.signatures,f=u.keys,g=7,l=[];for(let y=0;y<Math.ceil(d.length/g);++y){const S=y*g,A=Math.min(d.length,(y+1)*g),K=new Array(Re).fill(-1),J=[],Q=[];for(let _=0;_<A-S;++_){const R=d.at(_+S);J.push(i.dist.Buffer.from(R.signature.encode())),Q.push(f.at(R.guardianIndex)),K[R.guardianIndex]=_}l.push(xe(J,Q,i.dist.Buffer.from(n.hash))),l.push(Oe(r,e,t,n,s,K))}return l}function Oe(r,e,t,n,s,a){const o=w(e,r).methods.verifySignatures(a);return o._ixFn(...o._args,{accounts:we(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t,n){return{payer:new i.PublicKey(e),guardianSet:I(r,n.guardianSet),signatureSet:new i.PublicKey(t),instructions:i.SYSVAR_INSTRUCTIONS_PUBKEY,rent:i.SYSVAR_RENT_PUBKEY,systemProgram:i.SystemProgram.programId}}function Ae(r,e){const{emitter:t,sequence:n}=N(r,e);return{wormholeBridge:h(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:P(e)}}function be(r,e,t,n){const s=F(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const Ye=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:v,BridgeData:k,GuardianSetData:V,SequenceTracker:z,SignatureSetData:D,coder:ce,createBridgeFeeTransferInstruction:W,createInitializeInstruction:Fe,createPostMessageInstruction:ye,createPostVaaInstruction:pe,createReadOnlyWormholeProgramInterface:w,createSetFeesInstruction:ze,createTransferFeesInstruction:qe,createUpgradeContractInstruction:De,createUpgradeGuardianSetInstruction:Ve,createVerifySignaturesInstructions:Se,createWormholeProgramInterface:ue,deriveClaimKey:E,deriveEmitterSequenceKey:C,deriveFeeCollectorKey:P,deriveGuardianSetKey:I,derivePostedVaaKey:b,deriveUpgradeAuthorityKey:$,deriveWormholeBridgeDataKey:h,deriveWormholeEmitterKey:q,getClaim:se,getEmitterKeys:N,getGuardianSet:G,getInitializeAccounts:le,getPostMessageAccounts:F,getPostMessageCpiAccounts:be,getPostVaaAccounts:he,getProgramSequenceTracker:oe,getSequenceTracker:ae,getSetFeesAccounts:de,getSignatureSetData:Le,getTransferFeesAccounts:ge,getUpgradeContractAccounts:me,getUpgradeGuardianSetAccounts:fe,getVerifySignatureAccounts:we,getWormholeBridgeData:ie,getWormholeDerivedAccounts:Ae},Symbol.toStringTag,{value:"Module"})),ee="Program log: Sequence: ";class x{constructor(e,t,n,s){c(this,"network");c(this,"chain");c(this,"connection");c(this,"contracts");c(this,"chainId");c(this,"coreBridge");c(this,"address");c(this,"bridgeData");this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=i.toChainId(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 G(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await X.SolanaPlatform.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new x(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await ie(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=i.Keypair.generate(),o=new i.SolanaAddress(e).unwrap(),u=ye(this.connection,this.coreBridge.programId,o,a.publicKey,t,n,s),d=await this.getMessageFee(),f=W(this.coreBridge.programId,o,d),g=new i.Transaction;g.feePayer=o,g.add(f,u),yield this.createUnsignedTx({transaction:g,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=b(this.coreBridge.programId,i.dist.Buffer.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new i.SolanaAddress(e).unwrap(),o=i.Keypair.generate(),u=await Se(this.connection,this.coreBridge.programId,a,t,o.publicKey);for(let f=0;f<u.length;f+=2){const g=new i.Transaction().add(...u.slice(f,f+2));g.feePayer=a,yield this.createUnsignedTx({transaction:g,signers:[o]},"Core.VerifySignature",!0)}const d=new i.Transaction().add(pe(this.connection,this.coreBridge.programId,a,t,o.publicKey));d.feePayer=a,yield this.createUnsignedTx({transaction:d},"Core.PostVAA")}static parseSequenceFromLog(e,t){var d,f,g,l;const{meta:n,transaction:{message:s}}=t;if(!((d=n==null?void 0:n.innerInstructions)!=null&&d.length))return[];const a=s.staticAccountKeys;if(a.filter(y=>y.toString()===e).length===0)return[];const o=(l=(g=(f=n==null?void 0:n.logMessages)==null?void 0:f.filter(y=>y.startsWith(ee)))==null?void 0:g[0])==null?void 0:l.replace(ee,"");if(!o)return[];const u=[];for(const y of n==null?void 0:n.innerInstructions){const S=y.instructions;u.push(...S.filter(A=>A.programIdIndex in a&&a[A.programIdIndex].toString()===e))}return u.length<1?[]:a.length<3?[]:u.map(y=>[new i.SolanaAddress(a[y.accounts[2]]).toUniversalAddress(),BigInt(o)]).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 d;const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,o=(d=n.innerInstructions)==null?void 0:d.flatMap(f=>f.instructions.filter(g=>a.toString()===e.get(g.programIdIndex).toString())).map(f=>({programIdIndex:f.programIdIndex,accountKeyIndexes:f.accounts})),u=s.compiledInstructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString());return[...o,...u]}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:o,sequence:u,nonce:d,payload:f}=re(new Uint8Array(t==null?void 0:t.data));return Ee.createVAA("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:i.toChain(a),timestamp:n,emitterAddress:s,consistencyLevel:o,sequence:u,nonce:d,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 o=x.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(o.length>0){const[u,d]=o[0];return[{chain:this.chain,emitter:u,sequence:d}]}}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 o=>{const u=n.get(o.accountKeyIndexes[1]),d=await this.parsePostMessageAccount(u);return{chain:d.emitterChain,emitter:d.emitterAddress,sequence:d.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 o=>{const u=n.get(o.accountKeyIndexes[1]);return await this.parsePostMessageAccount(u)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new X.SolanaUnsignedTransaction(e,this.network,this.chain,t,n)}}i.registerProtocol(i._platform$1,"WormholeCore",x);const Ne=Object.freeze(Object.defineProperty({__proto__:null,IDL:H,SolanaWormholeCore:x,deserializePostMessage:re,postMessageLayout:ne,utils:Ye},Symbol.toStringTag,{value:"Module"}));exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID=O;exports.SolanaWormholeCore=x;exports.accountSize=Y;exports.createBridgeFeeTransferInstruction=W;exports.deriveClaimKey=E;exports.deriveEmitterSequenceKey=C;exports.deriveFeeCollectorKey=P;exports.derivePostedVaaKey=b;exports.deriveProgramDataAddress=te;exports.deriveUpgradeAuthorityKey=$;exports.deriveWormholeBridgeDataKey=h;exports.deriveWormholeEmitterKey=q;exports.getClaim=se;exports.getPostMessageAccounts=F;exports.getPostMessageCpiAccounts=be;exports.getProgramSequenceTracker=oe;exports.getWormholeDerivedAccounts=Ae;exports.index=Ne;
|
package/lib/index-DshEQYMA.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var P=Object.defineProperty;var U=(u,o,t)=>o in u?P(u,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[o]=t;var h=(u,o,t)=>U(u,typeof o!="symbol"?o+"":o,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./contract-D2fTrJgn.js"),e=require("./address-BGujeWtN.js"),N=require("./index-BTKC7Hou.js"),R=require("./index-DYqo8IhM.js"),E=require("./platform-COuZC5Zc.js"),$=require("./unsignedTransaction-B7AZXsTD.js"),T=new p.Interface(["function start((bytes32,address,address,address,address,address,uint256,uint256,uint256,uint256)) returns (address,uint16,uint64)","function receiveMessageAndSwap(bytes)"]),O=new p.Interface(["function quoteExactInputSingle((address,address,uint256,uint24,uint160)) public view returns (uint256,uint160,uint32,uint256)"]),Q="https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";class L{static async quoteRelayer(o,t,r){var a;if(e.isNative(t)||e.isNative(r))throw new Error("how did you get here tho?");const n=e.hex.encode(t.toUniversalAddress().toUint8Array(),!1),s=e.hex.encode(r.toUniversalAddress().toUint8Array(),!1),i={targetChain:e.toChainId(o),sourceToken:n,targetToken:s};try{const c=await e.axios.post(Q,i);return BigInt(c.data.fee)}catch(c){throw e.axios.isAxiosError(c)?new Error(`Error getting relayer fee: ${(a=c.response)==null?void 0:a.statusText}`):c}}}const g=100,C={ETH:[e.Wormhole.tokenId("Arbitrum","native"),e.Wormhole.tokenId("Base","native"),e.Wormhole.tokenId("Ethereum","native"),e.Wormhole.tokenId("Optimism","native")],WETH:[e.Wormhole.tokenId("Arbitrum","0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"),e.Wormhole.tokenId("Avalanche","0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"),e.Wormhole.tokenId("Base","0x4200000000000000000000000000000000000006"),e.Wormhole.tokenId("Bsc","0x2170Ed0880ac9A755fd29B2688956BD959F933F8"),e.Wormhole.tokenId("Ethereum","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"),e.Wormhole.tokenId("Optimism","0x4200000000000000000000000000000000000006"),e.Wormhole.tokenId("Polygon","0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619")],wstETH:[e.Wormhole.tokenId("Arbitrum","0x5979D7b546E38E414F7E9822514be443A4800529"),e.Wormhole.tokenId("Base","0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"),e.Wormhole.tokenId("Ethereum","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"),e.Wormhole.tokenId("Optimism","0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"),e.Wormhole.tokenId("Polygon","0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD")],USDT:[e.Wormhole.tokenId("Arbitrum","0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"),e.Wormhole.tokenId("Avalanche","0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"),e.Wormhole.tokenId("Base","0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"),e.Wormhole.tokenId("Bsc","0x55d398326f99059fF775485246999027B3197955"),e.Wormhole.tokenId("Ethereum","0xdAC17F958D2ee523a2206206994597C13D831ec7"),e.Wormhole.tokenId("Optimism","0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"),e.Wormhole.tokenId("Polygon","0xc2132D05D31c914a87C6611C10748AEb04B58e8F"),e.Wormhole.tokenId("Celo","0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e")]};class f{constructor(o,t,r,n){h(this,"network");h(this,"chain");h(this,"provider");h(this,"contracts");h(this,"chainId");h(this,"core");h(this,"tokenBridge");if(this.network=o,this.chain=t,this.provider=r,this.contracts=n,!n.portico)throw new Error("Unsupported chain, no contract addresses for: "+t);this.core=new N.EvmWormholeCore(o,t,r,n),this.tokenBridge=new R.EvmTokenBridge(o,t,r,n),this.chainId=e.networkChainToNativeChainId.get(o,t)}static async fromRpc(o,t){const[r,n]=await E.EvmPlatform.chainFromRpc(o),s=t[n];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new f(r,n,o,s.contracts)}async*transfer(o,t,r,n,s,d,i){const{minAmountStart:a,minAmountFinish:c}=i.swapAmounts;if(a===0n)throw new Error("Invalid min swap amount");if(c===0n)throw new Error("Invalid min swap amount");const k=new e.EvmAddress(o).toString(),[l,w]=e.resolveWrappedToken(this.network,this.chain,r),[I,b]=e.resolveWrappedToken(this.network,t.chain,s),m=e.canonicalAddress(w),v=e.canonicalAddress(await this.getTransferrableToken(m)),F=e.canonicalAddress(t),B=e.canonicalAddress(b),y=new Date().valueOf()%2**4,x=e.PorticoBridge.serializeFlagSet({flags:{shouldWrapNative:l,shouldUnwrapNative:I},recipientChain:e.toChainId(t.chain),bridgeNonce:y,feeTierStart:g,feeTierFinish:g,padding:new Uint8Array(19)}),W=T.encodeFunctionData("start",[[x,m.toLowerCase(),v,B.toLowerCase(),F,d,n.toString(),a.toString(),c.toString(),i.relayerFee.toString()]]),D=this.getTokenGroup(w.address.toString()),A=this.getPorticoAddress(D);l||(yield*this.approve(m,k,n,A));const S=await this.core.getMessageFee(),q={to:A,data:W,value:S+(l?n:0n)};yield this.createUnsignedTransaction(e.addFrom(q,k),"PorticoBridge.Transfer")}async*redeem(o,t){const r=e.toChain(t.payload.payload.flagSet.recipientChain),n=t.payload.payload.finalTokenAddress.toNative(r).toString(),s=this.getTokenGroup(n),d=this.getPorticoAddress(s),a=await new p.Contract(d,T.fragments,this.provider).getFunction("receiveMessageAndSwap").populateTransaction(e.serialize$1(t)),c=new e.EvmAddress(o).toString();yield this.createUnsignedTransaction(e.addFrom(a,c),"PorticoBridge.Redeem")}async isTransferCompleted(o){return await this.tokenBridge.tokenBridge.isTransferCompleted(e.keccak256(o.hash))}async quoteSwap(o,t,r,n){const[,s]=e.resolveWrappedToken(this.network,this.chain,o),[,d]=e.resolveWrappedToken(this.network,this.chain,t),i=e.canonicalAddress(s),a=e.canonicalAddress(d);if(e.isEqualCaseInsensitive(i,a))return n;const c=this.getQuoterAddress(r);return(await new p.Contract(c,O.fragments,this.provider).getFunction("quoteExactInputSingle").staticCall([i,a,n,g,0]))[0]}async quoteRelay(o,t){return await L.quoteRelayer(this.chain,o,t)}async getTransferrableToken(o){const t=e.Wormhole.tokenId(this.chain,o),[,r]=e.resolveWrappedToken(this.network,this.chain,t);if(this.chain==="Ethereum")return r;const n=Object.values(C).find(i=>i.find(a=>a.chain===this.chain&&e.canonicalAddress(a)===e.canonicalAddress(r)));if(!n)throw new Error(`No token group found for ${o} on ${this.chain}`);const s=n.find(i=>i.chain==="Ethereum");if(!s)throw new Error(`No Ethereum origin token found for ${o} on ${this.chain}`);const d=await this.tokenBridge.getWrappedAsset(s);return e.Wormhole.tokenId(this.chain,d.toString())}supportedTokens(){const o=[];for(const[t,r]of Object.entries(C))for(const n of r)n.chain===this.chain&&o.push({group:t,token:n});return o}getTokenGroup(o){const r=this.supportedTokens().find(n=>e.canonicalAddress(n.token)===o);if(!r)throw new Error("Token not found");return r.group}async*approve(o,t,r,n){const s=E.EvmPlatform.getTokenImplementation(this.provider,o);if(await s.allowance(t,n)<r){const i=await s.approve.populateTransaction(n,r);yield this.createUnsignedTransaction(e.addFrom(i,t),"PorticoBridge.Approve")}}createUnsignedTransaction(o,t){return new $.EvmUnsignedTransaction(e.addChainId(o,this.chainId),this.network,this.chain,t,!1)}getPorticoAddress(o){const t=this.contracts.portico;return o==="USDT"&&t.porticoPancakeSwap||t.porticoUniswap}getQuoterAddress(o){const t=this.contracts.portico;return o==="USDT"&&t.pancakeSwapQuoterV2||t.uniswapQuoterV2}}e.registerProtocol(e._platform,"PorticoBridge",f);exports.EvmPorticoBridge=f;
|
package/lib/index-JrM783SN.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var q=Object.defineProperty;var G=(i,e,a)=>e in i?q(i,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[e]=a;var y=(i,e,a)=>G(i,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./address-BGujeWtN.js"),M=require("./index-CF2fHBHJ.js"),h=require("./web3-Doz_0RHD.js"),C=require("./unsignedTransaction-dN_5EJf5.js"),b=new n.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new n.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const A=new n.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new n.PublicKey("So11111111111111111111111111111111111111112");new n.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class X extends Error{constructor(e){super(e)}}class $ extends X{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const J=n.struct([n.u32("mintAuthorityOption"),h.publicKey("mintAuthority"),h.u64("supply"),n.u8("decimals"),h.bool("isInitialized"),n.u32("freezeAuthorityOption"),h.publicKey("freezeAuthority")]);J.span;function Q(i,e,a=!1,t=b,r=A){if(!a&&!n.PublicKey.isOnCurve(e.toBuffer()))throw new $;const[s]=n.PublicKey.findProgramAddressSync([e.toBuffer(),t.toBuffer(),i.toBuffer()],r);return s}function Z(i,e,a,t,r=b,s=A){return j(i,e,a,t,n.dist.Buffer.alloc(0),r,s)}function j(i,e,a,t,r,s=b,o=A){const u=[{pubkey:i,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new n.TransactionInstruction({keys:u,programId:o,data:r})}function w(i,e){return new M.Program(B.TokenMessengerIdl,new n.PublicKey(i),e===void 0?{connection:null}:e)}function O(i,e){return w(i,M.createReadOnlyProvider(e))}function K(i,e){return new M.Program(B.MessageTransmitterIdl,new n.PublicKey(i),e===void 0?{connection:null}:e)}function N(i,e){return K(i,M.createReadOnlyProvider(e))}const m=(i,e,a)=>{const t=[n.dist.Buffer.from(M.index.bytes.utf8.encode(i))];if(a)for(const s of a)typeof s=="string"?t.push(n.dist.Buffer.from(M.index.bytes.utf8.encode(s))):Array.isArray(s)?t.push(n.dist.Buffer.from(s)):n.dist.Buffer.isBuffer(s)?t.push(s):t.push(s.toBuffer());const r=n.PublicKey.findProgramAddressSync(t,e);return{publicKey:r[0],bump:r[1]}};function E(i,e,a,t,r,s,o,u,l){const c=m("message_transmitter",i),d=m("token_messenger",e),f=m("token_minter",e),p=m("local_token",e,[a]),S=m("remote_token_messenger",e,[t.toString()]),k=m("sender_authority",e),T=w(e),v=m("__event_authority",e);return T.methods.depositForBurn({amount:new n.BN(u.toString()),destinationDomain:t,mintRecipient:new n.PublicKey(o.toUint8Array())}).accounts({owner:r,senderAuthorityPda:k.publicKey,burnTokenAccount:s,messageTransmitter:c.publicKey,tokenMessenger:d.publicKey,remoteTokenMessenger:S.publicKey,tokenMinter:f.publicKey,localToken:p.publicKey,burnTokenMint:a,messageTransmitterProgram:i,tokenMessengerMinterProgram:e,tokenProgram:b,eventAuthority:v.publicKey,eventRentPayer:r,messageSentEventData:l}).instruction()}const R=6400n;function I(i){return(i-BigInt(1))/R*R+BigInt(1)}function x(i,e,a){const t=e.toString();return m("used_nonces",a,[t,I(i).toString()]).publicKey}async function _(i,e,a,t,r,s){const o=n.dist.Buffer.from(n.CircleBridge.serialize(t)),u=n.dist.Buffer.from(n.hex.decode(r)),l=new n.PublicKey(a),c=new n.PublicKey(t.payload.burnToken.toUint8Array()),d=new n.SolanaAddress(t.payload.mintRecipient).unwrap(),f=s?new n.PublicKey(s):d,p=t.sourceDomain.toString(),S=m("message_transmitter",i),k=m("token_messenger",e),T=m("token_minter",e),v=m("local_token",e,[l]),U=m("remote_token_messenger",e,[p]),L=m("token_pair",e,[p,c]),W=m("custody",e,[l]),z=m("message_transmitter_authority",i,[e]).publicKey,F=x(t.nonce,t.sourceDomain,i),V=m("__event_authority",i),H=m("__event_authority",e),g=[];g.push({isSigner:!1,isWritable:!1,pubkey:k.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:U.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:T.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:v.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:L.publicKey}),g.push({isSigner:!1,isWritable:!0,pubkey:d}),g.push({isSigner:!1,isWritable:!0,pubkey:W.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:b}),g.push({isSigner:!1,isWritable:!1,pubkey:H.publicKey}),g.push({isSigner:!1,isWritable:!1,pubkey:e});const D=K(i);return D.methods.receiveMessage({message:o,attestation:u}).accounts({payer:f,caller:f,authorityPda:z,messageTransmitter:S.publicKey,usedNonces:F,receiver:e,systemProgram:n.SystemProgram.programId,eventAuthority:V.publicKey,program:D.programId}).remainingAccounts(g).transaction()}class P{constructor(e,a,t,r){y(this,"network");y(this,"chain");y(this,"connection");y(this,"contracts");y(this,"tokenMessenger");y(this,"messageTransmitter");var u,l;if(this.network=e,this.chain=a,this.connection=t,this.contracts=r,e==="Devnet")throw new Error("CircleBridge not supported on Devnet");const s=(u=r.cctp)==null?void 0:u.messageTransmitter;if(!s)throw new Error(`Circle Messenge Transmitter contract for domain ${a} not found`);this.messageTransmitter=N(new n.PublicKey(s),this.connection);const o=(l=r.cctp)==null?void 0:l.tokenMessenger;if(!o)throw new Error(`Circle Token Messenger contract for domain ${a} not found`);this.tokenMessenger=O(new n.PublicKey(o),this.connection)}static async fromRpc(e,a){const[t,r]=await C.SolanaPlatform.chainFromRpc(e),s=a[r];if(s.network!==t)throw new Error(`Network mismatch: ${s.network} != ${t}`);return new P(t,r,e,s.contracts)}async*redeem(e,a,t){const r=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=new n.SolanaAddress(a.payload.mintRecipient).unwrap();if(!await this.connection.getAccountInfo(o)){const d=new n.Transaction().add(Z(s,o,s,r));d.feePayer=s,yield this.createUnsignedTx({transaction:d},"CircleBridge.CreateATA")}const l=await _(this.messageTransmitter.programId,this.tokenMessenger.programId,r,a,t,s),c=new n.Transaction;c.feePayer=s,c.add(l),yield this.createUnsignedTx({transaction:c},"CircleBridge.Redeem")}async*transfer(e,a,t){const r=new n.PublicKey(n.usdcContract.get(this.network,this.chain)),s=new n.SolanaAddress(e).unwrap(),o=Q(r,s),u=n.circleChainId.get(this.network,a.chain),l=a.address.toUniversalAddress(),c=n.Keypair.generate(),d=await E(this.messageTransmitter.programId,this.tokenMessenger.programId,r,u,s,o,l,t,c.publicKey),f=new n.Transaction;f.feePayer=s,f.add(d),yield this.createUnsignedTx({transaction:f,signers:[c]},"CircleBridge.Transfer")}async isTransferCompleted(e){const a=x(e.nonce,e.sourceDomain,this.messageTransmitter.programId),t=I(e.nonce),{usedNonces:r}=await this.messageTransmitter.account.usedNonces.fetch(a),s=Number(e.nonce-t),o=r[Math.floor(s/64)];if(!o)throw new Error("Invalid nonce byte index");const u=s%64,l=new n.BN((BigInt(1)<<BigInt(u)).toString());return!o.and(l).isZero()}async parseTransactionDetails(e){const a=await this.connection.getTransaction(e);if(!a||!a.meta)throw new Error("Transaction not found");const t=a.transaction.message.getAccountKeys();if(t.length<2)throw new Error("No message account found");const r=t.get(1),s=await this.connection.getAccountInfo(r);if(!s)throw new Error("No account data found");const o=new Uint8Array(s.data).slice(44),[u,l]=n.CircleBridge.deserialize(o),{payload:c}=u,d=c.messageSender,f=c.mintRecipient,p=n.toCircleChain(this.network,u.sourceDomain),S=n.toCircleChain(this.network,u.destinationDomain),k={chain:p,address:c.burnToken};return{from:{chain:p,address:d},to:{chain:S,address:f},token:k,amount:c.amount,message:u,id:{hash:l}}}createUnsignedTx(e,a,t=!1){return new C.SolanaUnsignedTransaction(e,this.network,this.chain,a,t)}}const Y={version:"0.1.0",name:"token_messenger_minter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"tokenMessengerMinterProgramData",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"addRemoteTokenMessenger",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddRemoteTokenMessengerParams"}}]},{name:"removeRemoteTokenMessenger",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveRemoteTokenMessengerParams"}}]},{name:"depositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnParams"}}],returns:"u64"},{name:"depositForBurnWithCaller",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"burnTokenAccount",isMut:!0,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"burnTokenMint",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositForBurnWithCallerParams"}}],returns:"u64"},{name:"replaceDepositForBurn",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"tokenMessengerMinterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceDepositForBurnParams"}}],returns:"u64"},{name:"handleReceiveMessage",accounts:[{name:"authorityPda",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"remoteTokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"tokenPair",isMut:!1,isSigner:!1},{name:"recipientTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"HandleReceiveMessageParams"}}]},{name:"setTokenController",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenControllerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"setMaxBurnAmountPerMessage",accounts:[{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxBurnAmountPerMessageParams"}}]},{name:"addLocalToken",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"localTokenMint",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AddLocalTokenParams"}}]},{name:"removeLocalToken",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"RemoveLocalTokenParams"}}]},{name:"linkTokenPair",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"LinkTokenPairParams"}}]},{name:"unlinkTokenPair",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"tokenPair",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UninkTokenPairParams"}}]},{name:"burnTokenCustody",accounts:[{name:"payee",isMut:!0,isSigner:!0},{name:"tokenController",isMut:!1,isSigner:!0},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!1,isSigner:!1},{name:"custodyTokenAccount",isMut:!0,isSigner:!1},{name:"custodyTokenMint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"BurnTokenCustodyParams"}}]}],accounts:[{name:"tokenMessenger",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"},{name:"authorityBump",type:"u8"}]}},{name:"remoteTokenMessenger",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"tokenMinter",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"bump",type:"u8"}]}},{name:"tokenPair",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"},{name:"localToken",type:"publicKey"},{name:"bump",type:"u8"}]}},{name:"localToken",type:{kind:"struct",fields:[{name:"custody",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"burnLimitPerMessage",type:"u64"},{name:"messagesSent",type:"u64"},{name:"messagesReceived",type:"u64"},{name:"amountSent",type:"u128"},{name:"amountReceived",type:"u128"},{name:"bump",type:"u8"},{name:"custodyBump",type:"u8"}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"AddRemoteTokenMessengerParams",type:{kind:"struct",fields:[{name:"domain",type:"u32"},{name:"tokenMessenger",type:"publicKey"}]}},{name:"DepositForBurnWithCallerParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"},{name:"destinationCaller",type:"publicKey"}]}},{name:"DepositForBurnParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"destinationDomain",type:"u32"},{name:"mintRecipient",type:"publicKey"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"},{name:"localMessageTransmitter",type:"publicKey"},{name:"messageBodyVersion",type:"u32"}]}},{name:"RemoveRemoteTokenMessengerParams",type:{kind:"struct",fields:[]}},{name:"ReplaceDepositForBurnParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"},{name:"newMintRecipient",type:"publicKey"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"AddLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"BurnTokenCustodyParams",type:{kind:"struct",fields:[{name:"amount",type:"u64"}]}},{name:"LinkTokenPairParams",type:{kind:"struct",fields:[{name:"localToken",type:"publicKey"},{name:"remoteDomain",type:"u32"},{name:"remoteToken",type:"publicKey"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"RemoveLocalTokenParams",type:{kind:"struct",fields:[]}},{name:"SetMaxBurnAmountPerMessageParams",type:{kind:"struct",fields:[{name:"burnLimitPerMessage",type:"u64"}]}},{name:"SetTokenControllerParams",type:{kind:"struct",fields:[{name:"tokenController",type:"publicKey"}]}},{name:"UninkTokenPairParams",type:{kind:"struct",fields:[]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"TokenMinterError",type:{kind:"enum",variants:[{name:"InvalidAuthority"},{name:"InvalidTokenMinterState"},{name:"ProgramPaused"},{name:"InvalidTokenPairState"},{name:"InvalidLocalTokenState"},{name:"InvalidPauser"},{name:"InvalidTokenController"},{name:"BurnAmountExceeded"},{name:"InvalidAmount"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"DepositForBurn",fields:[{name:"nonce",type:"u64",index:!1},{name:"burnToken",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"depositor",type:"publicKey",index:!1},{name:"mintRecipient",type:"publicKey",index:!1},{name:"destinationDomain",type:"u32",index:!1},{name:"destinationTokenMessenger",type:"publicKey",index:!1},{name:"destinationCaller",type:"publicKey",index:!1}]},{name:"MintAndWithdraw",fields:[{name:"mintRecipient",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1},{name:"mintToken",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerAdded",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"RemoteTokenMessengerRemoved",fields:[{name:"domain",type:"u32",index:!1},{name:"tokenMessenger",type:"publicKey",index:!1}]},{name:"SetTokenController",fields:[{name:"tokenController",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"SetBurnLimitPerMessage",fields:[{name:"token",type:"publicKey",index:!1},{name:"burnLimitPerMessage",type:"u64",index:!1}]},{name:"LocalTokenAdded",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"LocalTokenRemoved",fields:[{name:"custody",type:"publicKey",index:!1},{name:"mint",type:"publicKey",index:!1}]},{name:"TokenPairLinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"TokenPairUnlinked",fields:[{name:"localToken",type:"publicKey",index:!1},{name:"remoteDomain",type:"u32",index:!1},{name:"remoteToken",type:"publicKey",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]},{name:"TokenCustodyBurned",fields:[{name:"custodyTokenAccount",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"InvalidTokenMessengerState",msg:"Invalid token messenger state"},{code:6002,name:"InvalidTokenMessenger",msg:"Invalid token messenger"},{code:6003,name:"InvalidOwner",msg:"Invalid owner"},{code:6004,name:"MalformedMessage",msg:"Malformed message"},{code:6005,name:"InvalidMessageBodyVersion",msg:"Invalid message body version"},{code:6006,name:"InvalidAmount",msg:"Invalid amount"},{code:6007,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6008,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6009,name:"InvalidMintRecipient",msg:"Invalid mint recipient"},{code:6010,name:"InvalidSender",msg:"Invalid sender"},{code:6011,name:"InvalidTokenPair",msg:"Invalid token pair"},{code:6012,name:"InvalidTokenMint",msg:"Invalid token mint"}]},ee={version:"0.1.0",name:"message_transmitter",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"upgradeAuthority",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageTransmitterProgramData",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitializeParams"}}]},{name:"transferOwnership",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"TransferOwnershipParams"}}]},{name:"acceptOwnership",accounts:[{name:"pendingOwner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"AcceptOwnershipParams"}}]},{name:"updatePauser",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdatePauserParams"}}]},{name:"updateAttesterManager",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UpdateAttesterManagerParams"}}]},{name:"pause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"PauseParams"}}]},{name:"unpause",accounts:[{name:"pauser",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"UnpauseParams"}}]},{name:"setMaxMessageBodySize",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetMaxMessageBodySizeParams"}}]},{name:"enableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"EnableAttesterParams"}}]},{name:"disableAttester",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DisableAttesterParams"}}]},{name:"setSignatureThreshold",accounts:[{name:"attesterManager",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetSignatureThresholdParams"}}]},{name:"sendMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageParams"}}],returns:"u64"},{name:"sendMessageWithCaller",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SendMessageWithCallerParams"}}],returns:"u64"},{name:"replaceMessage",accounts:[{name:"eventRentPayer",isMut:!0,isSigner:!0},{name:"senderAuthorityPda",isMut:!1,isSigner:!0},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"senderProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReplaceMessageParams"}}],returns:"u64"},{name:"receiveMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"caller",isMut:!1,isSigner:!0},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"messageTransmitter",isMut:!1,isSigner:!1},{name:"usedNonces",isMut:!0,isSigner:!1},{name:"receiver",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReceiveMessageParams"}}]},{name:"reclaimEventAccount",accounts:[{name:"payee",isMut:!0,isSigner:!0,docs:["rent SOL receiver, should match original rent payer"]},{name:"messageTransmitter",isMut:!0,isSigner:!1},{name:"messageSentEventData",isMut:!0,isSigner:!1}],args:[{name:"params",type:{defined:"ReclaimEventAccountParams"}}]},{name:"getNoncePda",accounts:[{name:"messageTransmitter",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"GetNoncePDAParams"}}],returns:"publicKey"},{name:"isNonceUsed",accounts:[{name:"usedNonces",isMut:!1,isSigner:!1,docs:["Account will be explicitly loaded to avoid error when it's not initialized"]}],args:[{name:"params",type:{defined:"IsNonceUsedParams"}}],returns:"bool"}],accounts:[{name:"messageSent",type:{kind:"struct",fields:[{name:"rentPayer",type:"publicKey"},{name:"message",type:"bytes"}]}},{name:"messageTransmitter",docs:["Main state of the MessageTransmitter program"],type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"pendingOwner",type:"publicKey"},{name:"attesterManager",type:"publicKey"},{name:"pauser",type:"publicKey"},{name:"paused",type:"bool"},{name:"localDomain",type:"u32"},{name:"version",type:"u32"},{name:"signatureThreshold",type:"u32"},{name:"enabledAttesters",type:{vec:"publicKey"}},{name:"maxMessageBodySize",type:"u64"},{name:"nextAvailableNonce",type:"u64"}]}},{name:"usedNonces",docs:["UsedNonces account holds an array of bits that indicate which nonces were already used","so they can't be resused to receive new messages. Array starts with the first_nonce and","holds flags for UsedNonces::MAX_NONCES. Nonces are recorded separately for each remote_domain."],type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"firstNonce",type:"u64"},{name:"usedNonces",type:{array:["u64",100]}}]}}],types:[{name:"AcceptOwnershipParams",type:{kind:"struct",fields:[]}},{name:"DisableAttesterParams",type:{kind:"struct",fields:[{name:"attester",type:"publicKey"}]}},{name:"EnableAttesterParams",type:{kind:"struct",fields:[{name:"newAttester",type:"publicKey"}]}},{name:"GetNoncePDAParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"},{name:"sourceDomain",type:"u32"}]}},{name:"InitializeParams",type:{kind:"struct",fields:[{name:"localDomain",type:"u32"},{name:"attester",type:"publicKey"},{name:"maxMessageBodySize",type:"u64"},{name:"version",type:"u32"}]}},{name:"IsNonceUsedParams",type:{kind:"struct",fields:[{name:"nonce",type:"u64"}]}},{name:"PauseParams",type:{kind:"struct",fields:[]}},{name:"ReceiveMessageParams",type:{kind:"struct",fields:[{name:"message",type:"bytes"},{name:"attestation",type:"bytes"}]}},{name:"HandleReceiveMessageParams",type:{kind:"struct",fields:[{name:"remoteDomain",type:"u32"},{name:"sender",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"authorityBump",type:"u8"}]}},{name:"ReclaimEventAccountParams",type:{kind:"struct",fields:[{name:"attestation",type:"bytes"}]}},{name:"ReplaceMessageParams",type:{kind:"struct",fields:[{name:"originalMessage",type:"bytes"},{name:"originalAttestation",type:"bytes"},{name:"newMessageBody",type:"bytes"},{name:"newDestinationCaller",type:"publicKey"}]}},{name:"SendMessageWithCallerParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"},{name:"destinationCaller",type:"publicKey"}]}},{name:"SendMessageParams",type:{kind:"struct",fields:[{name:"destinationDomain",type:"u32"},{name:"recipient",type:"publicKey"},{name:"messageBody",type:"bytes"}]}},{name:"SetMaxMessageBodySizeParams",type:{kind:"struct",fields:[{name:"newMaxMessageBodySize",type:"u64"}]}},{name:"SetSignatureThresholdParams",type:{kind:"struct",fields:[{name:"newSignatureThreshold",type:"u32"}]}},{name:"TransferOwnershipParams",type:{kind:"struct",fields:[{name:"newOwner",type:"publicKey"}]}},{name:"UnpauseParams",type:{kind:"struct",fields:[]}},{name:"UpdateAttesterManagerParams",type:{kind:"struct",fields:[{name:"newAttesterManager",type:"publicKey"}]}},{name:"UpdatePauserParams",type:{kind:"struct",fields:[{name:"newPauser",type:"publicKey"}]}},{name:"MathError",type:{kind:"enum",variants:[{name:"MathOverflow"},{name:"MathUnderflow"},{name:"ErrorInDivision"}]}}],events:[{name:"OwnershipTransferStarted",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"OwnershipTransferred",fields:[{name:"previousOwner",type:"publicKey",index:!1},{name:"newOwner",type:"publicKey",index:!1}]},{name:"PauserChanged",fields:[{name:"newAddress",type:"publicKey",index:!1}]},{name:"AttesterManagerUpdated",fields:[{name:"previousAttesterManager",type:"publicKey",index:!1},{name:"newAttesterManager",type:"publicKey",index:!1}]},{name:"MessageReceived",fields:[{name:"caller",type:"publicKey",index:!1},{name:"sourceDomain",type:"u32",index:!1},{name:"nonce",type:"u64",index:!1},{name:"sender",type:"publicKey",index:!1},{name:"messageBody",type:"bytes",index:!1}]},{name:"SignatureThresholdUpdated",fields:[{name:"oldSignatureThreshold",type:"u32",index:!1},{name:"newSignatureThreshold",type:"u32",index:!1}]},{name:"AttesterEnabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"AttesterDisabled",fields:[{name:"attester",type:"publicKey",index:!1}]},{name:"MaxMessageBodySizeUpdated",fields:[{name:"newMaxMessageBodySize",type:"u64",index:!1}]},{name:"Pause",fields:[]},{name:"Unpause",fields:[]}],errors:[{code:6e3,name:"InvalidAuthority",msg:"Invalid authority"},{code:6001,name:"ProgramPaused",msg:"Instruction is not allowed at this time"},{code:6002,name:"InvalidMessageTransmitterState",msg:"Invalid message transmitter state"},{code:6003,name:"InvalidSignatureThreshold",msg:"Invalid signature threshold"},{code:6004,name:"SignatureThresholdAlreadySet",msg:"Signature threshold already set"},{code:6005,name:"InvalidOwner",msg:"Invalid owner"},{code:6006,name:"InvalidPauser",msg:"Invalid pauser"},{code:6007,name:"InvalidAttesterManager",msg:"Invalid attester manager"},{code:6008,name:"InvalidAttester",msg:"Invalid attester"},{code:6009,name:"AttesterAlreadyEnabled",msg:"Attester already enabled"},{code:6010,name:"TooFewEnabledAttesters",msg:"Too few enabled attesters"},{code:6011,name:"SignatureThresholdTooLow",msg:"Signature threshold is too low"},{code:6012,name:"AttesterAlreadyDisabled",msg:"Attester already disabled"},{code:6013,name:"MessageBodyLimitExceeded",msg:"Message body exceeds max size"},{code:6014,name:"InvalidDestinationCaller",msg:"Invalid destination caller"},{code:6015,name:"InvalidRecipient",msg:"Invalid message recipient"},{code:6016,name:"SenderNotPermitted",msg:"Sender is not permitted"},{code:6017,name:"InvalidSourceDomain",msg:"Invalid source domain"},{code:6018,name:"InvalidDestinationDomain",msg:"Invalid destination domain"},{code:6019,name:"InvalidMessageVersion",msg:"Invalid message version"},{code:6020,name:"InvalidUsedNoncesAccount",msg:"Invalid used nonces account"},{code:6021,name:"InvalidRecipientProgram",msg:"Invalid recipient program"},{code:6022,name:"InvalidNonce",msg:"Invalid nonce"},{code:6023,name:"NonceAlreadyUsed",msg:"Nonce already used"},{code:6024,name:"MessageTooShort",msg:"Message is too short"},{code:6025,name:"MalformedMessage",msg:"Malformed message"},{code:6026,name:"InvalidSignatureOrderOrDupe",msg:"Invalid signature order or dupe"},{code:6027,name:"InvalidAttesterSignature",msg:"Invalid attester signature"},{code:6028,name:"InvalidAttestationLength",msg:"Invalid attestation length"},{code:6029,name:"InvalidSignatureRecoveryId",msg:"Invalid signature recovery ID"},{code:6030,name:"InvalidSignatureSValue",msg:"Invalid signature S value"},{code:6031,name:"InvalidMessageHash",msg:"Invalid message hash"}]};n.registerProtocol(n._platform$1,"CircleBridge",P);const B={TokenMessengerIdl:Y,MessageTransmitterIdl:ee};exports.SolanaCircleBridge=P;exports.calculateFirstNonce=I;exports.createDepositForBurnInstruction=E;exports.createMessageTransmitterProgramInterface=K;exports.createReadOnlyMessageTransmitterProgramInterface=N;exports.createReadOnlyTokenMessengerProgramInterface=O;exports.createReceiveMessageInstruction=_;exports.createTokenMessengerProgramInterface=w;exports.findProgramAddress=m;exports.idl=B;exports.nonceAccount=x;
|