@wormhole-foundation/wormhole-connect 4.1.0-beta.1-development → 4.2.0-beta.0-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.
Files changed (350) hide show
  1. package/dist/assets/{aptos-C9pj8h2Q.js → aptos-DgUCX7ng.js} +3 -3
  2. package/dist/assets/{evm-DCydYqBI.js → evm-B6bqAPTR.js} +4 -4
  3. package/dist/assets/{evm-CJXv6IQV.js → evm-Ve5nG8Fs.js} +1 -1
  4. package/dist/assets/{index-LvDsy6wR.js → index-BJokXZAc.js} +1 -1
  5. package/dist/assets/{index-BqxX-Ey7.js → index-BJv9sngo.js} +1 -1
  6. package/dist/assets/{index-C9cy4cDs.js → index-BjZMFLjq.js} +1 -1
  7. package/dist/assets/{index-FJ-n91Op.js → index-BwbPlAQZ.js} +1 -1
  8. package/dist/assets/{index-Clu5I99l.js → index-Bzg4DNh9.js} +1 -1
  9. package/dist/assets/{index-ezhfpCvx.js → index-CKXa657f.js} +1 -1
  10. package/dist/assets/index-CXiuP738.js +1 -0
  11. package/dist/assets/{index-CNExx9Zb.js → index-CvTvoHH-.js} +1 -1
  12. package/dist/assets/{index-C25bHdOM.js → index-D1ULRVbZ.js} +1 -1
  13. package/dist/assets/{index-DpabQJOX.js → index-DlH9IMQl.js} +1 -1
  14. package/dist/assets/{index-C8u74RER.js → index-Dsb-5apv.js} +1 -1
  15. package/dist/assets/{index-D9ApKauA.js → index-_YFUWLUM.js} +1 -1
  16. package/dist/assets/{index-CoIvdDsX.js → index-jg26xdEi.js} +1 -1
  17. package/dist/assets/{provider-jsonrpc-DuMpLBV0.js → provider-jsonrpc-DNgUKjG6.js} +1 -1
  18. package/dist/assets/{solana-DWuIx6gK.js → solana-D4RepnSA.js} +2 -2
  19. package/dist/assets/{sui-BcTGBE_4.js → sui-Du5h-f8S.js} +3 -3
  20. package/dist/main.mjs +185 -140
  21. package/dist/src/components/ConfigurablePageHeader.d.ts +1 -1
  22. package/dist/src/components/ConfigurablePageHeader.d.ts.map +1 -1
  23. package/dist/src/components/Header.d.ts +1 -0
  24. package/dist/src/components/Header.d.ts.map +1 -1
  25. package/dist/src/components/PageHeader.d.ts +1 -3
  26. package/dist/src/components/PageHeader.d.ts.map +1 -1
  27. package/dist/src/components/SampleApp/index.d.ts.map +1 -1
  28. package/dist/src/components/v3/BackButton.d.ts +6 -0
  29. package/dist/src/components/v3/BackButton.d.ts.map +1 -0
  30. package/dist/src/components/v3/FormContent.d.ts +5 -0
  31. package/dist/src/components/v3/FormContent.d.ts.map +1 -0
  32. package/dist/src/config/constants.d.ts.map +1 -1
  33. package/dist/src/config/events.d.ts +2 -1
  34. package/dist/src/config/events.d.ts.map +1 -1
  35. package/dist/src/config/mainnet/chains.d.ts.map +1 -1
  36. package/dist/src/config/mainnet/rpcs.d.ts.map +1 -1
  37. package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
  38. package/dist/src/config/mainnet/wrappedTokens.d.ts +6 -0
  39. package/dist/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
  40. package/dist/src/config/types.d.ts +6 -11
  41. package/dist/src/config/types.d.ts.map +1 -1
  42. package/dist/src/config/ui.d.ts +9 -0
  43. package/dist/src/config/ui.d.ts.map +1 -1
  44. package/dist/src/consts/wallet.d.ts.map +1 -1
  45. package/dist/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
  46. package/dist/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
  47. package/dist/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
  48. package/dist/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
  49. package/dist/src/hooks/useTransactionHistory.d.ts.map +1 -1
  50. package/dist/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
  51. package/dist/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
  52. package/dist/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
  53. package/dist/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
  54. package/dist/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
  55. package/dist/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
  56. package/dist/src/icons/PoweredBy.d.ts.map +1 -1
  57. package/dist/src/icons/TokenIcons.d.ts.map +1 -1
  58. package/dist/src/icons/Tokens/AUSD.d.ts +4 -0
  59. package/dist/src/icons/Tokens/AUSD.d.ts.map +1 -0
  60. package/dist/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
  61. package/dist/src/routes/mayan/utils.d.ts.map +1 -1
  62. package/dist/src/routes/monad/consts.d.ts +1 -0
  63. package/dist/src/routes/monad/consts.d.ts.map +1 -1
  64. package/dist/src/routes/monad/monad.test.d.ts +1 -0
  65. package/dist/src/routes/monad/monad.test.d.ts.map +1 -0
  66. package/dist/src/routes/monad/utils.d.ts.map +1 -1
  67. package/dist/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  68. package/dist/src/telemetry/types.d.ts +4 -2
  69. package/dist/src/telemetry/types.d.ts.map +1 -1
  70. package/dist/src/theme.d.ts +4 -3
  71. package/dist/src/theme.d.ts.map +1 -1
  72. package/dist/src/utils/errors.d.ts.map +1 -1
  73. package/dist/src/utils/fees.d.ts.map +1 -1
  74. package/dist/src/utils/index.d.ts.map +1 -1
  75. package/dist/src/utils/sdkv2.d.ts.map +1 -1
  76. package/dist/src/utils/wallet/index.d.ts +1 -0
  77. package/dist/src/utils/wallet/index.d.ts.map +1 -1
  78. package/dist/src/views/Terms.d.ts.map +1 -1
  79. package/dist/src/views/TxSearch.d.ts.map +1 -1
  80. package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
  81. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
  82. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
  83. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
  84. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
  85. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
  86. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
  87. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
  88. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
  89. package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  90. package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  91. package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  92. package/dist/src/views/v3/Bridge/Routes/index.d.ts +2 -1
  93. package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  94. package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
  95. package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
  96. package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
  97. package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
  98. package/dist/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
  99. package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
  100. package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
  101. package/dist/src/views/v3/Bridge/index.d.ts.map +1 -1
  102. package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  103. package/dist/src/views/v3/Redeem/index.d.ts.map +1 -1
  104. package/dist/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
  105. package/dist/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
  106. package/lib/{account-cIQhxn1E.js → account-K005OXgL.js} +1 -1
  107. package/lib/{account-BVl6Reot.mjs → account-TXlxMyv4.mjs} +2 -2
  108. package/lib/{address-rVHWlcKQ.mjs → address-CX0E32ut.mjs} +1 -1
  109. package/lib/{address-W9jn6Qdk.js → address-DqbIfKOu.js} +1 -1
  110. package/lib/{aptos-B84P9rJZ.mjs → aptos-B1Gf2eCD.mjs} +5 -5
  111. package/lib/{aptos-CNHYHK9c.js → aptos-CnswqE-C.js} +2 -2
  112. package/lib/{aptos-D1WFzBMy.mjs → aptos-DRfXJ8Ba.mjs} +7 -7
  113. package/lib/{aptos-DWDR5o78.js → aptos-DcdKyekw.js} +1 -1
  114. package/lib/{associatedTokenAccount-C4vEEbG5.js → associatedTokenAccount-CeqdaO2m.js} +1 -1
  115. package/lib/{associatedTokenAccount-DF6phO3l.mjs → associatedTokenAccount-Dsm4Hq32.mjs} +3 -3
  116. package/lib/{basic-DJXXfABO.js → basic-BS7Z1PMG.js} +1 -1
  117. package/lib/{basic-NhXxxbR1.js → basic-C6VXQ7m-.js} +1 -1
  118. package/lib/{basic-CukRIaOD.mjs → basic-CFbslwLM.mjs} +3 -3
  119. package/lib/{basic-BERCwt2M.mjs → basic-DnhL0oWa.mjs} +3 -3
  120. package/lib/{chunk-KJH4KKG6-Brt4fyqz.mjs → chunk-KJH4KKG6-BfVMUPsB.mjs} +3 -3
  121. package/lib/{chunk-KJH4KKG6-BbF5W1_N.js → chunk-KJH4KKG6-CJx-rDa6.js} +1 -1
  122. package/lib/constants-BCFTvlgh.js +1 -0
  123. package/lib/{constants-VaoVbllu.mjs → constants-CTJ_-E0d.mjs} +2 -1
  124. package/lib/{core-BCZrVb_s.mjs → core-DT6TBPQP.mjs} +6 -6
  125. package/lib/{core-BE6SS7Ye.js → core-RRp0K__1.js} +3 -3
  126. package/lib/{create-CChLkbGc.mjs → create-C5dhTMHL.mjs} +1 -1
  127. package/lib/{create-4w0DrcRO.js → create-bA3Gyivs.js} +1 -1
  128. package/lib/{evm--K7mr7Kr.js → evm-BwCfQIyJ.js} +2 -2
  129. package/lib/{evm-DKaWm7eC.mjs → evm-BxF9XPn4.mjs} +7 -7
  130. package/lib/{evm-C5BixKBn.js → evm-C3B8jHD7.js} +1 -1
  131. package/lib/{evm-CmmnpcFD.mjs → evm-DlOCiplA.mjs} +5 -5
  132. package/lib/executor.js +1 -1
  133. package/lib/executor.mjs +13 -15
  134. package/lib/hosted.js +1 -1
  135. package/lib/hosted.mjs +1 -1
  136. package/lib/hypercore-DbqOAqKF.js +4 -0
  137. package/lib/{hypercore-birmbh9T.mjs → hypercore-H7pw_pN4.mjs} +4858 -3107
  138. package/lib/{index-qL4D-cpk.js → index-1T4sIL8n.js} +1 -1
  139. package/lib/{index-Ap7250Gf.mjs → index-39tU5Y5t.mjs} +6 -6
  140. package/lib/{index-D7gCsil9.js → index-6m7yero0.js} +1 -1
  141. package/lib/{index-C5I7QiZ7.mjs → index-B6Ppg6EZ.mjs} +3 -3
  142. package/lib/{index-xvG6cxNx.js → index-BEIFBxtP.js} +1 -1
  143. package/lib/{index-zIzzPp6D.mjs → index-BHpJUZne.mjs} +3 -3
  144. package/lib/{index-BTcij9Np.js → index-BJ0xVutl.js} +1 -1
  145. package/lib/{index-Bs28m4ya.js → index-BNpkgexR.js} +1 -1
  146. package/lib/{index-C61IKE_V.mjs → index-BSIPYyeZ.mjs} +2 -2
  147. package/lib/{index-EbSw7SbC.js → index-BTjUHY0e.js} +1 -1
  148. package/lib/{index-BuHdMHLz.mjs → index-Ba1zbu3Q.mjs} +2 -2
  149. package/lib/{index-HrZv1SyT.js → index-BbE02hdW.js} +8 -8
  150. package/lib/{index-BU35GfG0.mjs → index-Bdtj4LUz.mjs} +2 -2
  151. package/lib/{index-pYTU7pQK.mjs → index-BmP0jPVN.mjs} +12 -11
  152. package/lib/{index-CR1itkLl.mjs → index-BnKf2rOm.mjs} +3225 -3035
  153. package/lib/{index-Txz5xwr6.mjs → index-BtU67kjy.mjs} +1 -1
  154. package/lib/{index-CH0iw38J.mjs → index-BuEKhdrW.mjs} +3 -3
  155. package/lib/{index-CN7M4gwf.mjs → index-BviSNDV7.mjs} +5 -5
  156. package/lib/{index-Cys9e11O.js → index-C-SMuVS3.js} +1 -1
  157. package/lib/{index-Cg1Xo1eZ.js → index-C85u3Gj5.js} +1 -1
  158. package/lib/{index-BN_2mA2n.mjs → index-CGqJokTg.mjs} +1 -1
  159. package/lib/{index-Da9rvmCc.js → index-Cb0UWLGI.js} +1 -1
  160. package/lib/{index-DHnmtpvA.mjs → index-CcbY14s5.mjs} +4 -4
  161. package/lib/{index-BKgliEPZ.mjs → index-CrWTw0Se.mjs} +2 -2
  162. package/lib/{index-C8YhpD9T.mjs → index-CsLyPoC6.mjs} +4 -4
  163. package/lib/{index-B_JJ50Y-.mjs → index-D-HUNEka.mjs} +4 -4
  164. package/lib/index-DAJZN12d.js +1 -0
  165. package/lib/{index-BhMcIAHt.js → index-DJ2w1fz1.js} +1 -1
  166. package/lib/{index-BRFbmsc_.js → index-DVm_f5E1.js} +1 -1
  167. package/lib/{index-CO4ZoIAU.mjs → index-DjmVBSGQ.mjs} +4 -4
  168. package/lib/{index-Co3mm7UN.mjs → index-DrJE8udd.mjs} +1 -1
  169. package/lib/{index-fTUcaKb4.js → index-DuhYwr0t.js} +1 -1
  170. package/lib/{index-BQ0lWQfT.mjs → index-DwEx1Hn-.mjs} +2 -2
  171. package/lib/{index-DBofyYkS.js → index-DziujHu1.js} +1 -1
  172. package/lib/{index-Dou5sFku.js → index-JWbF-m3e.js} +1 -1
  173. package/lib/{index-N4FkpEh9.mjs → index-NAUBlFLG.mjs} +4 -4
  174. package/lib/{index-D1odbjeH.mjs → index-VnJcNK62.mjs} +3 -3
  175. package/lib/{index-DVxmRy4C.js → index-WrXSs0ic.js} +1 -1
  176. package/lib/{index-CsdD1TNi.js → index-aMKUba1k.js} +1 -1
  177. package/lib/{index-DSnylejH.mjs → index-dufPAW5T.mjs} +292 -269
  178. package/lib/{index-lZY5fTXF.js → index-lAqXlt-a.js} +1 -1
  179. package/lib/{index-BUbUhbMe.js → index-mikg85u5.js} +1 -1
  180. package/lib/{index-BScgBddV.mjs → index-o1SAPXm_.mjs} +3 -3
  181. package/lib/{index-CED5jdrg.js → index-pn6NZmOS.js} +1 -1
  182. package/lib/{index-DNZ-Pkpm.mjs → index-rxQSA9t0.mjs} +6 -6
  183. package/lib/{index-Cw0jWBks.js → index-t_koRpGi.js} +1 -1
  184. package/lib/{index-DALvn9lg.js → index-v7w8krM0.js} +1 -1
  185. package/lib/{index-japympio.js → index-wadjmD_G.js} +1 -1
  186. package/lib/{index.es-CDqFguL5.mjs → index.es-3KAM8l3G.mjs} +4 -4
  187. package/lib/{index.es-DmmqAOLD.js → index.es-B3FwsRfN.js} +3 -3
  188. package/lib/{index.es-B0fk_42a.mjs → index.es-CYyuSfPG.mjs} +4 -4
  189. package/lib/{index.es-Dg6IFrL4.js → index.es-ClIr5Gv-.js} +1 -1
  190. package/lib/index.js +78 -33
  191. package/lib/index.mjs +9157 -8833
  192. package/lib/{keypair-DWucLGoA.js → keypair-DCgXFOw5.js} +1 -1
  193. package/lib/{keypair-CP7syX9B.mjs → keypair-vpG2fl-q.mjs} +3 -3
  194. package/lib/lifi.js +1 -1
  195. package/lib/lifi.mjs +75 -76
  196. package/lib/mayan.js +2 -2
  197. package/lib/mayan.mjs +11 -10
  198. package/lib/{mint-CoNdQTGM.mjs → mint-BPrKG-Zc.mjs} +3 -3
  199. package/lib/{mint-CxQ6P5lT.js → mint-DW-XgF68.js} +1 -1
  200. package/lib/monad.js +1 -1
  201. package/lib/monad.mjs +91 -58
  202. package/lib/multiToken-B9BoSxdr.js +1 -0
  203. package/lib/{multiToken-Bm-K5dRJ.mjs → multiToken-DMllgxzT.mjs} +4 -3
  204. package/lib/ntt.js +2 -2
  205. package/lib/ntt.mjs +77 -86
  206. package/lib/{platform-Cil_UtAQ.mjs → platform-CSpAb386.mjs} +2788 -2748
  207. package/lib/{platform-BMKYxqvv.js → platform-Csj1Outc.js} +1 -1
  208. package/lib/platform-DCcL7jHP.js +11 -0
  209. package/lib/{platform-vRQufc6j.mjs → platform-YzJZdSCf.mjs} +3 -3
  210. package/lib/{secp256k1-CglUNI04.js → secp256k1-B2G0zB-5.js} +1 -1
  211. package/lib/{secp256k1-LTcmQEQ5.mjs → secp256k1-BZFiBDHQ.mjs} +1 -1
  212. package/lib/{secp256k1-CcVQkYNr.js → secp256k1-Bz-QjKBU.js} +1 -1
  213. package/lib/{secp256k1-DROP2Lhv.mjs → secp256k1-Cteng3v9.mjs} +1 -1
  214. package/lib/{secp256k1-BkoM1Jum.js → secp256k1-CxjctkO3.js} +1 -1
  215. package/lib/{secp256k1-DzRCmd6a.mjs → secp256k1-D3i7kc2M.mjs} +1 -1
  216. package/lib/{signer-0hWrZ5BZ.mjs → signer-D2GRgRrw.mjs} +2 -2
  217. package/lib/{signer-DyqulDUM.js → signer-gjSiV5v3.js} +1 -1
  218. package/lib/{solana-C4k_Yg7w.js → solana-BE2DAanS.js} +4 -4
  219. package/lib/{solana-D1LVIhGd.mjs → solana-Df231Yni.mjs} +10 -10
  220. package/lib/solana-DfW5T_64.mjs +18 -0
  221. package/lib/solana-Edd9tIkX.js +1 -0
  222. package/lib/{solanaEmbed.esm-AvWQUA9e.mjs → solanaEmbed.esm-B9WG-Afi.mjs} +4 -4
  223. package/lib/{solanaEmbed.esm--Ac-IlRA.js → solanaEmbed.esm-BqcrHrhl.js} +1 -1
  224. package/lib/{solidity-CbDkqHjE.js → solidity-BW7c8rFv.js} +1 -1
  225. package/lib/{solidity-Dk_mvceo.mjs → solidity-D9gSgFcp.mjs} +1 -1
  226. package/lib/src/components/ConfigurablePageHeader.d.ts +1 -1
  227. package/lib/src/components/ConfigurablePageHeader.d.ts.map +1 -1
  228. package/lib/src/components/Header.d.ts +1 -0
  229. package/lib/src/components/Header.d.ts.map +1 -1
  230. package/lib/src/components/PageHeader.d.ts +1 -3
  231. package/lib/src/components/PageHeader.d.ts.map +1 -1
  232. package/lib/src/components/SampleApp/index.d.ts.map +1 -1
  233. package/lib/src/components/v3/BackButton.d.ts +6 -0
  234. package/lib/src/components/v3/BackButton.d.ts.map +1 -0
  235. package/lib/src/components/v3/FormContent.d.ts +5 -0
  236. package/lib/src/components/v3/FormContent.d.ts.map +1 -0
  237. package/lib/src/config/constants.d.ts.map +1 -1
  238. package/lib/src/config/events.d.ts +2 -1
  239. package/lib/src/config/events.d.ts.map +1 -1
  240. package/lib/src/config/mainnet/chains.d.ts.map +1 -1
  241. package/lib/src/config/mainnet/rpcs.d.ts.map +1 -1
  242. package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
  243. package/lib/src/config/mainnet/wrappedTokens.d.ts +6 -0
  244. package/lib/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
  245. package/lib/src/config/types.d.ts +6 -11
  246. package/lib/src/config/types.d.ts.map +1 -1
  247. package/lib/src/config/ui.d.ts +9 -0
  248. package/lib/src/config/ui.d.ts.map +1 -1
  249. package/lib/src/consts/wallet.d.ts.map +1 -1
  250. package/lib/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
  251. package/lib/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
  252. package/lib/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
  253. package/lib/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
  254. package/lib/src/hooks/useTransactionHistory.d.ts.map +1 -1
  255. package/lib/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
  256. package/lib/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
  257. package/lib/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
  258. package/lib/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
  259. package/lib/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
  260. package/lib/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
  261. package/lib/src/icons/PoweredBy.d.ts.map +1 -1
  262. package/lib/src/icons/TokenIcons.d.ts.map +1 -1
  263. package/lib/src/icons/Tokens/AUSD.d.ts +4 -0
  264. package/lib/src/icons/Tokens/AUSD.d.ts.map +1 -0
  265. package/lib/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
  266. package/lib/src/routes/mayan/utils.d.ts.map +1 -1
  267. package/lib/src/routes/monad/consts.d.ts +1 -0
  268. package/lib/src/routes/monad/consts.d.ts.map +1 -1
  269. package/lib/src/routes/monad/monad.test.d.ts +1 -0
  270. package/lib/src/routes/monad/monad.test.d.ts.map +1 -0
  271. package/lib/src/routes/monad/utils.d.ts.map +1 -1
  272. package/lib/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  273. package/lib/src/telemetry/types.d.ts +4 -2
  274. package/lib/src/telemetry/types.d.ts.map +1 -1
  275. package/lib/src/theme.d.ts +4 -3
  276. package/lib/src/theme.d.ts.map +1 -1
  277. package/lib/src/utils/errors.d.ts.map +1 -1
  278. package/lib/src/utils/fees.d.ts.map +1 -1
  279. package/lib/src/utils/index.d.ts.map +1 -1
  280. package/lib/src/utils/sdkv2.d.ts.map +1 -1
  281. package/lib/src/utils/wallet/index.d.ts +1 -0
  282. package/lib/src/utils/wallet/index.d.ts.map +1 -1
  283. package/lib/src/views/Terms.d.ts.map +1 -1
  284. package/lib/src/views/TxSearch.d.ts.map +1 -1
  285. package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
  286. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
  287. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
  288. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
  289. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
  290. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
  291. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
  292. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
  293. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
  294. package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  295. package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  296. package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  297. package/lib/src/views/v3/Bridge/Routes/index.d.ts +2 -1
  298. package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  299. package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
  300. package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
  301. package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
  302. package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
  303. package/lib/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
  304. package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
  305. package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
  306. package/lib/src/views/v3/Bridge/index.d.ts.map +1 -1
  307. package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  308. package/lib/src/views/v3/Redeem/index.d.ts.map +1 -1
  309. package/lib/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
  310. package/lib/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
  311. package/lib/{sui-BPAb7kcs.mjs → sui-B9tYcgyb.mjs} +4 -4
  312. package/lib/{sui-CgmDTkXK.js → sui-BVwNcgQT.js} +1 -1
  313. package/lib/{sui-LiXjD27c.js → sui-BtyZE8YC.js} +1 -1
  314. package/lib/{sui-cpCvd7RC.mjs → sui-QP4AZGNc.mjs} +6 -6
  315. package/lib/{tokenHelpers-DvWQs1tu.mjs → tokenHelpers-C53sepsl.mjs} +1 -1
  316. package/lib/{tokenHelpers-CbE0g9BP.js → tokenHelpers-DITWDel1.js} +1 -1
  317. package/lib/{tokens-BJDttoCp.mjs → tokens-CO0YQ3R2.mjs} +3 -3
  318. package/lib/{tokens-CvZuVW-g.js → tokens-CiSHS7oi.js} +1 -1
  319. package/lib/types-CgveSjsw.js +1 -0
  320. package/lib/{types-iFgwQ7vG.mjs → types-Dxx2g1wS.mjs} +170 -168
  321. package/lib/{unsignedTransaction-DCDxTFq8.mjs → unsignedTransaction-D2Ja0SuN.mjs} +2 -2
  322. package/lib/{unsignedTransaction-DA4tlY5u.js → unsignedTransaction-qRBv5Cnd.js} +2 -2
  323. package/lib/{utils-DMf7wRGI.js → utils-BEljbqMf.js} +1 -1
  324. package/lib/{utils-BSxsyW2c.mjs → utils-mBHX3Jpu.mjs} +4 -4
  325. package/lib/{w3m-modal-CtQ0TPA4.mjs → w3m-modal-5v-rsnN8.mjs} +2 -2
  326. package/lib/{w3m-modal-k23UDiov.js → w3m-modal-B0Lu-6W8.js} +1 -1
  327. package/lib/{w3m-modal-ByamyZny.js → w3m-modal-B2xHxAWg.js} +1 -1
  328. package/lib/{w3m-modal-DM5Pf8SH.mjs → w3m-modal-SlcSCSnx.mjs} +2 -2
  329. package/lib/{wallet-CMTEE6Oa.mjs → wallet-Cyosy4Hc.mjs} +1 -1
  330. package/lib/{wallet-BMli0fbu.js → wallet-a0_jwP8j.js} +1 -1
  331. package/lib/{web3-CUwFm9Lx.mjs → web3-CdErAVj5.mjs} +2 -2
  332. package/lib/{web3-DdUeM7iQ.js → web3-x1WCGDiy.js} +1 -1
  333. package/package.json +49 -47
  334. package/dist/assets/index-_UMHESh0.js +0 -1
  335. package/dist/src/components/Button.d.ts +0 -13
  336. package/dist/src/components/Button.d.ts.map +0 -1
  337. package/dist/src/icons/Down.d.ts +0 -5
  338. package/dist/src/icons/Down.d.ts.map +0 -1
  339. package/lib/constants-B9TBfA4z.js +0 -1
  340. package/lib/hypercore-4R7JGmbr.js +0 -4
  341. package/lib/index-C8eqQ_7p.js +0 -1
  342. package/lib/multiToken-YoNvxjur.js +0 -1
  343. package/lib/platform-CCG_jgOO.js +0 -11
  344. package/lib/solana-DKFJvqX8.mjs +0 -18
  345. package/lib/solana-Dmje_Si8.js +0 -1
  346. package/lib/src/components/Button.d.ts +0 -13
  347. package/lib/src/components/Button.d.ts.map +0 -1
  348. package/lib/src/icons/Down.d.ts +0 -5
  349. package/lib/src/icons/Down.d.ts.map +0 -1
  350. package/lib/types-CjNs2oB0.js +0 -1
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-DNIta7Pb.js","main.mjs","main.css","assets/index.es-DKX9hqDM.js"])))=>i.map(i=>d[i]);
2
- import{a as yr,d as Mr,b as R,c as J,g as Da,e as Na,t as xr,f as Er,h as Bt,m as qt,k as Ar,s as fr,E as gr,C as Cr,W as kr,N as Ot,i as Ir,j as W,B as wr,l as Tr,n as ut,o as Dr,p as Nr,q as jr,r as zr,_ as vr,u as mt,v as Sr}from"../main.mjs";import{B as D,a as Gt,p as xt,i as Et,n as g,L as ja,s as ht,S as Ur,b as $,f as Lr,e as Br,t as z,F as q,T as Ie,h as we,c as Ct,E as ve,d as $t,N as ea,g as ta,j as aa,I as ra,k as sa,l as na,m as ca,U as za,u as Or,o as v,q as Qt,r as B,w as Qr,v as Pr,R as kt,x as Fr}from"./http-D4bz-t0I.js";import{J as Gr}from"./provider-jsonrpc-DuMpLBV0.js";const Yr=BigInt(-1),F=BigInt(0),ne=BigInt(1),Hr=BigInt(5),ae={};let ce="0000";for(;ce.length<80;)ce+=ce;function K(e){let t=ce;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function pe(e,t,r){const s=BigInt(t.width);if(t.signed){const n=ne<<s-ne;J(r==null||e>=-n&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e>F?e=Bt(qt(e,s),s):e=-Bt(qt(-e,s),s)}else{const n=ne<<s;J(r==null||e>=0&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e=(e%n+n)%n&n-ne}return e}function It(e){typeof e=="number"&&(e=`fixed128x${e}`);let t=!0,r=128,s=18;if(typeof e=="string"){if(e!=="fixed")if(e==="ufixed")t=!1;else{const c=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);R(c,"invalid fixed format","format",e),t=c[1]!=="u",r=parseInt(c[2]),s=parseInt(c[3])}}else if(e){const c=e,o=(i,p,l)=>c[i]==null?l:(R(typeof c[i]===p,"invalid fixed format ("+i+" not "+p+")","format."+i,c[i]),c[i]);t=o("signed","boolean",t),r=o("width","number",r),s=o("decimals","number",s)}R(r%8===0,"invalid FixedNumber width (not byte aligned)","format.width",r),R(s<=80,"invalid FixedNumber decimals (too large)","format.decimals",s);const n=(t?"":"u")+"fixed"+String(r)+"x"+String(s);return{signed:t,width:r,decimals:s,name:n}}function Rr(e,t){let r="";e<F&&(r="-",e*=Yr);let s=e.toString();if(t===0)return r+s;for(;s.length<=t;)s=ce+s;const n=s.length-t;for(s=s.substring(0,n)+"."+s.substring(n);s[0]==="0"&&s[1]!==".";)s=s.substring(1);for(;s[s.length-1]==="0"&&s[s.length-2]!==".";)s=s.substring(0,s.length-1);return r+s}class V{format;#t;#e;#a;_value;constructor(t,r,s){yr(t,ae,"FixedNumber"),this.#e=r,this.#t=s;const n=Rr(r,s.decimals);Mr(this,{format:s.name,_value:n}),this.#a=K(s.decimals)}get signed(){return this.#t.signed}get width(){return this.#t.width}get decimals(){return this.#t.decimals}get value(){return this.#e}#s(t){R(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)}#r(t,r){return t=pe(t,this.#t,r),new V(ae,t,this.#t)}#n(t,r){return this.#s(t),this.#r(this.#e+t.#e,r)}addUnsafe(t){return this.#n(t)}add(t){return this.#n(t,"add")}#c(t,r){return this.#s(t),this.#r(this.#e-t.#e,r)}subUnsafe(t){return this.#c(t)}sub(t){return this.#c(t,"sub")}#o(t,r){return this.#s(t),this.#r(this.#e*t.#e/this.#a,r)}mulUnsafe(t){return this.#o(t)}mul(t){return this.#o(t,"mul")}mulSignal(t){this.#s(t);const r=this.#e*t.#e;return J(r%this.#a===F,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#r(r/this.#a,"mulSignal")}#l(t,r){return J(t.#e!==F,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#s(t),this.#r(this.#e*this.#a/t.#e,r)}divUnsafe(t){return this.#l(t)}div(t){return this.#l(t,"div")}divSignal(t){J(t.#e!==F,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#s(t);const r=this.#e*this.#a;return J(r%t.#e===F,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#r(r/t.#e,"divSignal")}cmp(t){let r=this.value,s=t.value;const n=this.decimals-t.decimals;return n>0?s*=K(n):n<0&&(r*=K(-n)),r<s?-1:r>s?1:0}eq(t){return this.cmp(t)===0}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#e;return this.#e<F&&(t-=this.#a-ne),t=this.#e/this.#a*this.#a,this.#r(t,"floor")}ceiling(){let t=this.#e;return this.#e>F&&(t+=this.#a-ne),t=this.#e/this.#a*this.#a,this.#r(t,"ceiling")}round(t){if(t==null&&(t=0),t>=this.decimals)return this;const r=this.decimals-t,s=Hr*K(r-1);let n=this.value+s;const c=K(r);return n=n/c*c,pe(n,this.#t,"round"),new V(ae,n,this.#t)}isZero(){return this.#e===F}isNegative(){return this.#e<F}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return V.fromString(this.toString(),t)}static fromValue(t,r,s){const n=r==null?0:Da(r),c=It(s);let o=Na(t,"value");const i=n-c.decimals;if(i>0){const p=K(i);J(o%p===F,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),o/=p}else i<0&&(o*=K(-i));return pe(o,c,"fromValue"),new V(ae,o,c)}static fromString(t,r){const s=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);R(s&&s[2].length+s[3].length>0,"invalid FixedNumber string value","value",t);const n=It(r);let c=s[2]||"0",o=s[3]||"";for(;o.length<n.decimals;)o+=ce;J(o.substring(n.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),o=o.substring(0,n.decimals);const i=BigInt(s[1]+c+o);return pe(i,n,"fromString"),new V(ae,i,n)}static fromBytes(t,r){let s=xr(Er(t,"value"));const n=It(r);return n.signed&&(s=Bt(s,n.width)),pe(s,n,"fromBytes"),new V(ae,s,n)}}const Zr=["wei","kwei","mwei","gwei","szabo","finney","ether"];function va(e,t){let r=18;if(typeof t=="string"){const s=Zr.indexOf(t);R(s>=0,"invalid unit","unit",t),r=3*s}else t!=null&&(r=Da(t,"unit"));return V.fromValue(e,r,{decimals:r,width:512}).toString()}function Wr(e){return va(e,18)}class Jr extends Gr{#t;constructor(t,r,s){const n=Object.assign({},s??{},{batchMaxCount:1});R(t&&t.request,"invalid EIP-1193 provider","ethereum",t),super(r,n),this.#t=async(c,o)=>{const i={method:c,params:o};this.emit("debug",{action:"sendEip1193Request",payload:i});try{const p=await t.request(i);return this.emit("debug",{action:"receiveEip1193Result",result:p}),p}catch(p){const l=new Error(p.message);throw l.code=p.code,l.data=p.data,l.payload=i,this.emit("debug",{action:"receiveEip1193Error",error:l}),l}}}async send(t,r){return await this._start(),await super.send(t,r)}async _send(t){R(!Array.isArray(t),"EIP-1193 does not support batch request","payload",t);try{const r=await this.#t(t.method,t.params||[]);return[{id:t.id,result:r}]}catch(r){return[{id:t.id,error:{code:r.code,data:r.data,message:r.message}}]}}getRpcError(t,r){switch(r=JSON.parse(JSON.stringify(r)),r.error.code||-1){case 4001:r.error.message=`ethers-user-denied: ${r.error.message}`;break;case 4200:r.error.message=`ethers-unsupported: ${r.error.message}`;break}return super.getRpcError(t,r)}async hasSigner(t){t==null&&(t=0);const r=await this.send("eth_accounts",[]);return typeof t=="number"?r.length>t:(t=t.toLowerCase(),r.filter(s=>s.toLowerCase()===t).length!==0)}async getSigner(t){if(t==null&&(t=0),!await this.hasSigner(t))try{await this.#t("eth_requestAccounts",[])}catch(r){const s=r.payload;throw this.getRpcError(s,{id:s.id,error:r})}return await super.getSigner(t)}}function At(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class L extends D{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}function oe(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,s=0;for(let n=0;n<r.length-1&&r[t==="left"?n:r.length-n-1].toString()==="0";n++)s++;return r=t==="left"?r.slice(s):r.slice(0,r.length-s),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}const Vr=new TextEncoder;function Ce(e,t={}){return typeof e=="number"||typeof e=="bigint"?Kr(e,t):typeof e=="boolean"?Xr(e,t):Et(e)?G(e,t):Sa(e,t)}function Xr(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Gt(r,{size:t.size}),xt(r,{size:t.size})):r}const H={zero:48,nine:57,A:65,F:70,a:97,f:102};function oa(e){if(e>=H.zero&&e<=H.nine)return e-H.zero;if(e>=H.A&&e<=H.F)return e-(H.A-10);if(e>=H.a&&e<=H.f)return e-(H.a-10)}function G(e,t={}){let r=e;t.size&&(Gt(r,{size:t.size}),r=xt(r,{dir:"right",size:t.size}));let s=r.slice(2);s.length%2&&(s=`0${s}`);const n=s.length/2,c=new Uint8Array(n);for(let o=0,i=0;o<n;o++){const p=oa(s.charCodeAt(i++)),l=oa(s.charCodeAt(i++));if(p===void 0||l===void 0)throw new D(`Invalid byte sequence ("${s[i-2]}${s[i-1]}" in "${s}").`);c[o]=p*16+l}return c}function Kr(e,t){const r=g(e,t);return G(r)}function Sa(e,t={}){const r=Vr.encode(e);return typeof t.size=="number"?(Gt(r,{size:t.size}),xt(r,{dir:"right",size:t.size})):r}function _r(e,t){return Ar(Et(e,{strict:!1})?Ce(e):e)}const qr=/^0x[a-fA-F0-9]{40}$/,wt=new ja(8192);function U(e,t){const{strict:r=!0}=t??{},s=`${e}.${r}`;if(wt.has(s))return wt.get(s);const n=qr.test(e)?e.toLowerCase()===e?!0:r?Ua(e)===e:!0:!1;return wt.set(s,n),n}const Tt=new ja(8192);function Ua(e,t){if(Tt.has(`${e}.${t}`))return Tt.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),s=_r(Sa(r)),n=r.split("");for(let o=0;o<40;o+=2)s[o>>1]>>4>=8&&n[o]&&(n[o]=n[o].toUpperCase()),(s[o>>1]&15)>=8&&n[o+1]&&(n[o+1]=n[o+1].toUpperCase());const c=`0x${n.join("")}`;return Tt.set(`${e}.${t}`,c),c}function _(e,t){if(!U(e,{strict:!1}))throw new L({address:e});return Ua(e,t)}class la extends D{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class $r extends D{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class es extends D{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const ts={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new es({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new $r({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new la({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new la({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function La(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(ts);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function as(e,t,r,{strict:s}={}){return Et(e,{strict:!1})?ss(e,t,r,{strict:s}):rs(e,t,r,{strict:s})}function Ba(e,t,r){if(ht(e)!==r-t)throw new Ur({offset:r,position:"end",size:ht(e)})}function rs(e,t,r,{strict:s}={}){const n=e.slice(t,r);return s&&Ba(n,t,r),n}function ss(e,t,r,{strict:s}={}){const n=`0x${e.replace("0x","").slice(t*2,r*2)}`;return s&&Ba(n,t,r),n}function ee(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Z(e,t="hex"){const r=Oa(e),s=La(new Uint8Array(r.length));return r.encode(s),t==="hex"?$(s.bytes):s.bytes}function Oa(e){return Array.isArray(e)?ns(e.map(t=>Oa(t))):cs(e)}function ns(e){const t=e.reduce((n,c)=>n+c.length,0),r=Qa(t);return{length:t<=55?1+t:1+r+t,encode(n){t<=55?n.pushByte(192+t):(n.pushByte(247+r),r===1?n.pushUint8(t):r===2?n.pushUint16(t):r===3?n.pushUint24(t):n.pushUint32(t));for(const{encode:c}of e)c(n)}}}function cs(e){const t=typeof e=="string"?G(e):e,r=Qa(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(n){t.length===1&&t[0]<128?n.pushBytes(t):t.length<=55?(n.pushByte(128+t.length),n.pushBytes(t)):(n.pushByte(183+r),r===1?n.pushUint8(t.length):r===2?n.pushUint16(t.length):r===3?n.pushUint24(t.length):n.pushUint32(t.length),n.pushBytes(t))}}}function Qa(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new D("Length is too large.")}function os(e,t="wei"){return Lr(e,Br[t])}function Pa(e){const t=Object.entries(e).map(([s,n])=>n===void 0||n===!1?null:[s,n]).filter(Boolean),r=t.reduce((s,[n])=>Math.max(s,n.length),0);return t.map(([s,n])=>` ${`${s}:`.padEnd(r+1)} ${n}`).join(`
2
+ import{a as yr,d as Mr,b as R,c as J,g as Da,e as Na,t as xr,f as Er,h as Bt,m as qt,k as Ar,s as fr,E as gr,C as Cr,W as kr,N as Ot,i as Ir,j as W,B as wr,l as Tr,n as ut,o as Dr,p as Nr,q as jr,r as zr,_ as vr,u as mt,v as Sr}from"../main.mjs";import{B as D,a as Gt,p as xt,i as Et,n as g,L as ja,s as ht,S as Ur,b as $,f as Lr,e as Br,t as z,F as q,T as Ie,h as we,c as Ct,E as ve,d as $t,N as ea,g as ta,j as aa,I as ra,k as sa,l as na,m as ca,U as za,u as Or,o as v,q as Qt,r as B,w as Qr,v as Pr,R as kt,x as Fr}from"./http-D4bz-t0I.js";import{J as Gr}from"./provider-jsonrpc-DNgUKjG6.js";const Yr=BigInt(-1),F=BigInt(0),ne=BigInt(1),Hr=BigInt(5),ae={};let ce="0000";for(;ce.length<80;)ce+=ce;function K(e){let t=ce;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function pe(e,t,r){const s=BigInt(t.width);if(t.signed){const n=ne<<s-ne;J(r==null||e>=-n&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e>F?e=Bt(qt(e,s),s):e=-Bt(qt(-e,s),s)}else{const n=ne<<s;J(r==null||e>=0&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e=(e%n+n)%n&n-ne}return e}function It(e){typeof e=="number"&&(e=`fixed128x${e}`);let t=!0,r=128,s=18;if(typeof e=="string"){if(e!=="fixed")if(e==="ufixed")t=!1;else{const c=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);R(c,"invalid fixed format","format",e),t=c[1]!=="u",r=parseInt(c[2]),s=parseInt(c[3])}}else if(e){const c=e,o=(i,p,l)=>c[i]==null?l:(R(typeof c[i]===p,"invalid fixed format ("+i+" not "+p+")","format."+i,c[i]),c[i]);t=o("signed","boolean",t),r=o("width","number",r),s=o("decimals","number",s)}R(r%8===0,"invalid FixedNumber width (not byte aligned)","format.width",r),R(s<=80,"invalid FixedNumber decimals (too large)","format.decimals",s);const n=(t?"":"u")+"fixed"+String(r)+"x"+String(s);return{signed:t,width:r,decimals:s,name:n}}function Rr(e,t){let r="";e<F&&(r="-",e*=Yr);let s=e.toString();if(t===0)return r+s;for(;s.length<=t;)s=ce+s;const n=s.length-t;for(s=s.substring(0,n)+"."+s.substring(n);s[0]==="0"&&s[1]!==".";)s=s.substring(1);for(;s[s.length-1]==="0"&&s[s.length-2]!==".";)s=s.substring(0,s.length-1);return r+s}class V{format;#t;#e;#a;_value;constructor(t,r,s){yr(t,ae,"FixedNumber"),this.#e=r,this.#t=s;const n=Rr(r,s.decimals);Mr(this,{format:s.name,_value:n}),this.#a=K(s.decimals)}get signed(){return this.#t.signed}get width(){return this.#t.width}get decimals(){return this.#t.decimals}get value(){return this.#e}#s(t){R(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)}#r(t,r){return t=pe(t,this.#t,r),new V(ae,t,this.#t)}#n(t,r){return this.#s(t),this.#r(this.#e+t.#e,r)}addUnsafe(t){return this.#n(t)}add(t){return this.#n(t,"add")}#c(t,r){return this.#s(t),this.#r(this.#e-t.#e,r)}subUnsafe(t){return this.#c(t)}sub(t){return this.#c(t,"sub")}#o(t,r){return this.#s(t),this.#r(this.#e*t.#e/this.#a,r)}mulUnsafe(t){return this.#o(t)}mul(t){return this.#o(t,"mul")}mulSignal(t){this.#s(t);const r=this.#e*t.#e;return J(r%this.#a===F,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#r(r/this.#a,"mulSignal")}#l(t,r){return J(t.#e!==F,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#s(t),this.#r(this.#e*this.#a/t.#e,r)}divUnsafe(t){return this.#l(t)}div(t){return this.#l(t,"div")}divSignal(t){J(t.#e!==F,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#s(t);const r=this.#e*this.#a;return J(r%t.#e===F,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#r(r/t.#e,"divSignal")}cmp(t){let r=this.value,s=t.value;const n=this.decimals-t.decimals;return n>0?s*=K(n):n<0&&(r*=K(-n)),r<s?-1:r>s?1:0}eq(t){return this.cmp(t)===0}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#e;return this.#e<F&&(t-=this.#a-ne),t=this.#e/this.#a*this.#a,this.#r(t,"floor")}ceiling(){let t=this.#e;return this.#e>F&&(t+=this.#a-ne),t=this.#e/this.#a*this.#a,this.#r(t,"ceiling")}round(t){if(t==null&&(t=0),t>=this.decimals)return this;const r=this.decimals-t,s=Hr*K(r-1);let n=this.value+s;const c=K(r);return n=n/c*c,pe(n,this.#t,"round"),new V(ae,n,this.#t)}isZero(){return this.#e===F}isNegative(){return this.#e<F}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return V.fromString(this.toString(),t)}static fromValue(t,r,s){const n=r==null?0:Da(r),c=It(s);let o=Na(t,"value");const i=n-c.decimals;if(i>0){const p=K(i);J(o%p===F,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),o/=p}else i<0&&(o*=K(-i));return pe(o,c,"fromValue"),new V(ae,o,c)}static fromString(t,r){const s=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);R(s&&s[2].length+s[3].length>0,"invalid FixedNumber string value","value",t);const n=It(r);let c=s[2]||"0",o=s[3]||"";for(;o.length<n.decimals;)o+=ce;J(o.substring(n.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),o=o.substring(0,n.decimals);const i=BigInt(s[1]+c+o);return pe(i,n,"fromString"),new V(ae,i,n)}static fromBytes(t,r){let s=xr(Er(t,"value"));const n=It(r);return n.signed&&(s=Bt(s,n.width)),pe(s,n,"fromBytes"),new V(ae,s,n)}}const Zr=["wei","kwei","mwei","gwei","szabo","finney","ether"];function va(e,t){let r=18;if(typeof t=="string"){const s=Zr.indexOf(t);R(s>=0,"invalid unit","unit",t),r=3*s}else t!=null&&(r=Da(t,"unit"));return V.fromValue(e,r,{decimals:r,width:512}).toString()}function Wr(e){return va(e,18)}class Jr extends Gr{#t;constructor(t,r,s){const n=Object.assign({},s??{},{batchMaxCount:1});R(t&&t.request,"invalid EIP-1193 provider","ethereum",t),super(r,n),this.#t=async(c,o)=>{const i={method:c,params:o};this.emit("debug",{action:"sendEip1193Request",payload:i});try{const p=await t.request(i);return this.emit("debug",{action:"receiveEip1193Result",result:p}),p}catch(p){const l=new Error(p.message);throw l.code=p.code,l.data=p.data,l.payload=i,this.emit("debug",{action:"receiveEip1193Error",error:l}),l}}}async send(t,r){return await this._start(),await super.send(t,r)}async _send(t){R(!Array.isArray(t),"EIP-1193 does not support batch request","payload",t);try{const r=await this.#t(t.method,t.params||[]);return[{id:t.id,result:r}]}catch(r){return[{id:t.id,error:{code:r.code,data:r.data,message:r.message}}]}}getRpcError(t,r){switch(r=JSON.parse(JSON.stringify(r)),r.error.code||-1){case 4001:r.error.message=`ethers-user-denied: ${r.error.message}`;break;case 4200:r.error.message=`ethers-unsupported: ${r.error.message}`;break}return super.getRpcError(t,r)}async hasSigner(t){t==null&&(t=0);const r=await this.send("eth_accounts",[]);return typeof t=="number"?r.length>t:(t=t.toLowerCase(),r.filter(s=>s.toLowerCase()===t).length!==0)}async getSigner(t){if(t==null&&(t=0),!await this.hasSigner(t))try{await this.#t("eth_requestAccounts",[])}catch(r){const s=r.payload;throw this.getRpcError(s,{id:s.id,error:r})}return await super.getSigner(t)}}function At(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class L extends D{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}function oe(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,s=0;for(let n=0;n<r.length-1&&r[t==="left"?n:r.length-n-1].toString()==="0";n++)s++;return r=t==="left"?r.slice(s):r.slice(0,r.length-s),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}const Vr=new TextEncoder;function Ce(e,t={}){return typeof e=="number"||typeof e=="bigint"?Kr(e,t):typeof e=="boolean"?Xr(e,t):Et(e)?G(e,t):Sa(e,t)}function Xr(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Gt(r,{size:t.size}),xt(r,{size:t.size})):r}const H={zero:48,nine:57,A:65,F:70,a:97,f:102};function oa(e){if(e>=H.zero&&e<=H.nine)return e-H.zero;if(e>=H.A&&e<=H.F)return e-(H.A-10);if(e>=H.a&&e<=H.f)return e-(H.a-10)}function G(e,t={}){let r=e;t.size&&(Gt(r,{size:t.size}),r=xt(r,{dir:"right",size:t.size}));let s=r.slice(2);s.length%2&&(s=`0${s}`);const n=s.length/2,c=new Uint8Array(n);for(let o=0,i=0;o<n;o++){const p=oa(s.charCodeAt(i++)),l=oa(s.charCodeAt(i++));if(p===void 0||l===void 0)throw new D(`Invalid byte sequence ("${s[i-2]}${s[i-1]}" in "${s}").`);c[o]=p*16+l}return c}function Kr(e,t){const r=g(e,t);return G(r)}function Sa(e,t={}){const r=Vr.encode(e);return typeof t.size=="number"?(Gt(r,{size:t.size}),xt(r,{dir:"right",size:t.size})):r}function _r(e,t){return Ar(Et(e,{strict:!1})?Ce(e):e)}const qr=/^0x[a-fA-F0-9]{40}$/,wt=new ja(8192);function U(e,t){const{strict:r=!0}=t??{},s=`${e}.${r}`;if(wt.has(s))return wt.get(s);const n=qr.test(e)?e.toLowerCase()===e?!0:r?Ua(e)===e:!0:!1;return wt.set(s,n),n}const Tt=new ja(8192);function Ua(e,t){if(Tt.has(`${e}.${t}`))return Tt.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),s=_r(Sa(r)),n=r.split("");for(let o=0;o<40;o+=2)s[o>>1]>>4>=8&&n[o]&&(n[o]=n[o].toUpperCase()),(s[o>>1]&15)>=8&&n[o+1]&&(n[o+1]=n[o+1].toUpperCase());const c=`0x${n.join("")}`;return Tt.set(`${e}.${t}`,c),c}function _(e,t){if(!U(e,{strict:!1}))throw new L({address:e});return Ua(e,t)}class la extends D{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class $r extends D{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class es extends D{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const ts={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new es({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new $r({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new la({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new la({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function La(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(ts);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function as(e,t,r,{strict:s}={}){return Et(e,{strict:!1})?ss(e,t,r,{strict:s}):rs(e,t,r,{strict:s})}function Ba(e,t,r){if(ht(e)!==r-t)throw new Ur({offset:r,position:"end",size:ht(e)})}function rs(e,t,r,{strict:s}={}){const n=e.slice(t,r);return s&&Ba(n,t,r),n}function ss(e,t,r,{strict:s}={}){const n=`0x${e.replace("0x","").slice(t*2,r*2)}`;return s&&Ba(n,t,r),n}function ee(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Z(e,t="hex"){const r=Oa(e),s=La(new Uint8Array(r.length));return r.encode(s),t==="hex"?$(s.bytes):s.bytes}function Oa(e){return Array.isArray(e)?ns(e.map(t=>Oa(t))):cs(e)}function ns(e){const t=e.reduce((n,c)=>n+c.length,0),r=Qa(t);return{length:t<=55?1+t:1+r+t,encode(n){t<=55?n.pushByte(192+t):(n.pushByte(247+r),r===1?n.pushUint8(t):r===2?n.pushUint16(t):r===3?n.pushUint24(t):n.pushUint32(t));for(const{encode:c}of e)c(n)}}}function cs(e){const t=typeof e=="string"?G(e):e,r=Qa(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(n){t.length===1&&t[0]<128?n.pushBytes(t):t.length<=55?(n.pushByte(128+t.length),n.pushBytes(t)):(n.pushByte(183+r),r===1?n.pushUint8(t.length):r===2?n.pushUint16(t.length):r===3?n.pushUint24(t.length):n.pushUint32(t.length),n.pushBytes(t))}}}function Qa(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new D("Length is too large.")}function os(e,t="wei"){return Lr(e,Br[t])}function Pa(e){const t=Object.entries(e).map(([s,n])=>n===void 0||n===!1?null:[s,n]).filter(Boolean),r=t.reduce((s,[n])=>Math.max(s,n.length),0);return t.map(([s,n])=>` ${`${s}:`.padEnd(r+1)} ${n}`).join(`
3
3
  `)}class ls extends D{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(`
4
4
  `),{name:"FeeConflictError"})}}class is extends D{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ps extends D{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Pa(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ds extends D{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function Fa(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(c=>G(c)):e.blobs,n=[];for(const c of s)n.push(Uint8Array.from(t.blobToKzgCommitment(c)));return r==="bytes"?n:n.map(c=>$(c))}function Ga(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(o=>G(o)):e.blobs,n=typeof e.commitments[0]=="string"?e.commitments.map(o=>G(o)):e.commitments,c=[];for(let o=0;o<s.length;o++){const i=s[o],p=n[o];c.push(Uint8Array.from(t.computeBlobKzgProof(i,p)))}return r==="bytes"?c:c.map(o=>$(o))}function Ya(e,t){const r=t||"hex",s=fr(Et(e,{strict:!1})?Ce(e):e);return r==="bytes"?s:z(s)}function us(e){const{commitment:t,version:r=1}=e,s=e.to??(typeof t=="string"?"hex":"bytes"),n=Ya(t,"bytes");return n.set([r],0),s==="bytes"?n:$(n)}function ms(e){const{commitments:t,version:r}=e,s=e.to??(typeof t[0]=="string"?"hex":"bytes"),n=[];for(const c of t)n.push(us({commitment:c,to:s,version:r}));return n}const ia=6,Ha=32,Yt=4096,Ra=Ha*Yt,pa=Ra*ia-1-1*Yt*ia,Za=1;class hs extends D{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Wa extends D{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class bs extends D{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class ys extends D{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Za}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function Ms(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?G(e.data):e.data,s=ht(r);if(!s)throw new Wa;if(s>pa)throw new hs({maxSize:pa,size:s});const n=[];let c=!0,o=0;for(;c;){const i=La(new Uint8Array(Ra));let p=0;for(;p<Yt;){const l=r.slice(o,o+(Ha-1));if(i.pushByte(0),i.pushBytes(l),l.length<31){i.pushByte(128),c=!1;break}p++,o+=31}n.push(i)}return t==="bytes"?n.map(i=>i.bytes):n.map(i=>$(i.bytes))}function xs(e){const{data:t,kzg:r,to:s}=e,n=e.blobs??Ms({data:t,to:s}),c=e.commitments??Fa({blobs:n,kzg:r,to:s}),o=e.proofs??Ga({blobs:n,commitments:c,kzg:r,to:s}),i=[];for(let p=0;p<n.length;p++)i.push({blob:n[p],commitment:c[p],proof:o[p]});return i}const Es=2n**16n-1n,Ne=2n**256n-1n;class le extends D{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}function As(e){const{authorizationList:t}=e;if(t)for(const r of t){const{chainId:s}=r,n=r.address;if(!U(n))throw new L({address:n});if(s<0)throw new le({chainId:s})}Ht(e)}function fs(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Wa;for(const r of t){const s=ht(r),n=we(as(r,0,1));if(s!==32)throw new bs({hash:r,size:s});if(n!==Za)throw new ys({hash:r,version:n})}}Ht(e)}function Ht(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:s,to:n}=e;if(t<=0)throw new le({chainId:t});if(n&&!U(n))throw new L({address:n});if(s&&s>Ne)throw new q({maxFeePerGas:s});if(r&&s&&r>s)throw new Ie({maxFeePerGas:s,maxPriorityFeePerGas:r})}function gs(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:s,maxFeePerGas:n,to:c}=e;if(t<=0)throw new le({chainId:t});if(c&&!U(c))throw new L({address:c});if(r||n)throw new D("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(s&&s>Ne)throw new q({maxFeePerGas:s})}function Cs(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:s,maxFeePerGas:n,to:c}=e;if(c&&!U(c))throw new L({address:c});if(typeof t<"u"&&t<=0)throw new le({chainId:t});if(r||n)throw new D("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(s&&s>Ne)throw new q({maxFeePerGas:s})}function ks(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new ps({transaction:e})}function je(e){if(!e||e.length===0)return[];const t=[];for(let r=0;r<e.length;r++){const{address:s,storageKeys:n}=e[r];for(let c=0;c<n.length;c++)if(n[c].length-2!==64)throw new ds({storageKey:n[c]});if(!U(s,{strict:!1}))throw new L({address:s});t.push([s,n])}return t}function Ja(e,t){const r=ks(e);return r==="eip1559"?Ts(e,t):r==="eip2930"?Ds(e,t):r==="eip4844"?ws(e,t):r==="eip7702"?Is(e,t):Ns(e,t)}function Is(e,t){const{authorizationList:r,chainId:s,gas:n,nonce:c,to:o,value:i,maxFeePerGas:p,maxPriorityFeePerGas:l,accessList:b,data:M}=e;As(e);const d=je(b),m=js(r);return ee(["0x04",Z([g(s),c?g(c):"0x",l?g(l):"0x",p?g(p):"0x",n?g(n):"0x",o??"0x",i?g(i):"0x",M??"0x",d,m,...ie(e,t)])])}function ws(e,t){const{chainId:r,gas:s,nonce:n,to:c,value:o,maxFeePerBlobGas:i,maxFeePerGas:p,maxPriorityFeePerGas:l,accessList:b,data:M}=e;fs(e);let d=e.blobVersionedHashes,m=e.sidecars;if(e.blobs&&(typeof d>"u"||typeof m>"u")){const k=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(x=>$(x)),w=e.kzg,h=Fa({blobs:k,kzg:w});if(typeof d>"u"&&(d=ms({commitments:h})),typeof m>"u"){const x=Ga({blobs:k,commitments:h,kzg:w});m=xs({blobs:k,commitments:h,proofs:x})}}const E=je(b),y=[g(r),n?g(n):"0x",l?g(l):"0x",p?g(p):"0x",s?g(s):"0x",c??"0x",o?g(o):"0x",M??"0x",E,i?g(i):"0x",d??[],...ie(e,t)],f=[],j=[],C=[];if(m)for(let k=0;k<m.length;k++){const{blob:w,commitment:h,proof:x}=m[k];f.push(w),j.push(h),C.push(x)}return ee(["0x03",Z(m?[y,f,j,C]:y)])}function Ts(e,t){const{chainId:r,gas:s,nonce:n,to:c,value:o,maxFeePerGas:i,maxPriorityFeePerGas:p,accessList:l,data:b}=e;Ht(e);const M=je(l),d=[g(r),n?g(n):"0x",p?g(p):"0x",i?g(i):"0x",s?g(s):"0x",c??"0x",o?g(o):"0x",b??"0x",M,...ie(e,t)];return ee(["0x02",Z(d)])}function Ds(e,t){const{chainId:r,gas:s,data:n,nonce:c,to:o,value:i,accessList:p,gasPrice:l}=e;gs(e);const b=je(p),M=[g(r),c?g(c):"0x",l?g(l):"0x",s?g(s):"0x",o??"0x",i?g(i):"0x",n??"0x",b,...ie(e,t)];return ee(["0x01",Z(M)])}function Ns(e,t){const{chainId:r=0,gas:s,data:n,nonce:c,to:o,value:i,gasPrice:p}=e;Cs(e);let l=[c?g(c):"0x",p?g(p):"0x",s?g(s):"0x",o??"0x",i?g(i):"0x",n??"0x"];if(t){const b=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);const m=27n+(t.v===27n?0n:1n);if(t.v!==m)throw new is({v:t.v});return m})(),M=oe(t.r),d=oe(t.s);l=[...l,g(b),M==="0x00"?"0x":M,d==="0x00"?"0x":d]}else r>0&&(l=[...l,g(r),"0x","0x"]);return Z(l)}function ie(e,t){const r=t??e,{v:s,yParity:n}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof s>"u"&&typeof n>"u")return[];const c=oe(r.r),o=oe(r.s);return[typeof n=="number"?n?g(1):"0x":s===0n?"0x":s===1n?g(1):s===27n?"0x":g(1),c==="0x00"?"0x":c,o==="0x00"?"0x":o]}function js(e){if(!e||e.length===0)return[];const t=[];for(const r of e){const{chainId:s,nonce:n,...c}=r,o=r.address;t.push([s?z(s):"0x",o,n?z(n):"0x",...ie({},c)])}return t}function da(e){return e.reduce((t,{slot:r,value:s})=>`${t} ${r}: ${s}
5
5
  `,"")}function zs(e){return e.reduce((t,{address:r,...s})=>{let n=`${t} ${r}:
@@ -1 +1 @@
1
- import{E as l,C as m}from"./evm-DCydYqBI.js";import{aA as T,aG as c,cW as y,cY as g,di as h,bh as v,c_ as M,ah as S,o as w,c$ as x,ay as I}from"../main.mjs";import{c as C}from"./create-CbNCGANY.js";class A{transaction;network;chain;description;parallelizable;constructor(e,t,b,n,a=!1){this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=a}}class d{network;chain;provider;contracts;chainId;coreAddress;core;coreIface;constructor(e,t,b,n){this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=T.get(e,t),this.coreIface=p.createInterface();const a=this.contracts.coreBridge;if(!a)throw new Error("Core bridge address not found");this.coreAddress=a,this.core=p.connect(a,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await l.chainFromRpc(e),a=t[n];if(a.network!==b)throw new Error(`Network mismatch: ${a.network} != ${b}`);return new d(b,n,e,a.contracts)}async*publishMessage(e,t,b,n){const a=new c(e).toString(),i=await this.getMessageFee(),f=await this.core.publishMessage.populateTransaction(b,t,n,{value:i});yield this.createUnsignedTx(y(f,a),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new c(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(g(t));yield this.createUnsignedTx(y(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:a}=b,i=this.coreIface.parseLog({topics:n.slice(),data:a});if(i===null)return;const f=new c(i.args.sender);return{chain:this.chain,emitter:f.toUniversalAddress(),sequence:i.args.sequence}}).filter(h)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:a,data:i}=n,f=this.coreIface.parseLog({topics:a.slice(),data:i});if(f===null)return null;const o=new c(f.args.sender);return C("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:o.toUniversalAddress(),consistencyLevel:Number(f.args.consistencyLevel),sequence:BigInt(f.args.sequence),nonce:Number(f.args.nonce),signatures:[],payload:v.decode(f.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new A(M(e,this.chainId),this.network,this.chain,t,b)}}const s=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],u="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",G=r=>r.length>1;class p extends m{constructor(...e){G(e)?super(...e):super(s,u,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=u;static abi=s;static createInterface(){return new S(s)}static connect(e,t){return new w(e,s,t)}}const F=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:p},Symbol.toStringTag,{value:"Module"}));x(I,"WormholeCore",d);const q=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:d,ethers_contracts:F},Symbol.toStringTag,{value:"Module"}));export{d as E,A as a,q as i};
1
+ import{E as l,C as m}from"./evm-B6bqAPTR.js";import{aB as T,aH as c,cW as y,cY as g,di as h,bh as v,c_ as M,ai as S,o as w,c$ as x,az as I}from"../main.mjs";import{c as C}from"./create-CbNCGANY.js";class A{transaction;network;chain;description;parallelizable;constructor(e,t,b,n,a=!1){this.transaction=e,this.network=t,this.chain=b,this.description=n,this.parallelizable=a}}class d{network;chain;provider;contracts;chainId;coreAddress;core;coreIface;constructor(e,t,b,n){this.network=e,this.chain=t,this.provider=b,this.contracts=n,this.chainId=T.get(e,t),this.coreIface=p.createInterface();const a=this.contracts.coreBridge;if(!a)throw new Error("Core bridge address not found");this.coreAddress=a,this.core=p.connect(a,b)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const t=await this.core.getGuardianSet(e);return{index:e,keys:t[0],expiry:t[1]}}static async fromRpc(e,t){const[b,n]=await l.chainFromRpc(e),a=t[n];if(a.network!==b)throw new Error(`Network mismatch: ${a.network} != ${b}`);return new d(b,n,e,a.contracts)}async*publishMessage(e,t,b,n){const a=new c(e).toString(),i=await this.getMessageFee(),f=await this.core.publishMessage.populateTransaction(b,t,n,{value:i});yield this.createUnsignedTx(y(f,a),"WormholeCore.publishMessage")}async*verifyMessage(e,t){const b=new c(e).toString(),n=await this.core.parseAndVerifyVM.populateTransaction(g(t));yield this.createUnsignedTx(y(n,b),"WormholeCore.verifyMessage")}async parseTransaction(e){const t=await this.provider.getTransactionReceipt(e);return t===null?[]:t.logs.filter(b=>b.address===this.coreAddress).map(b=>{const{topics:n,data:a}=b,i=this.coreIface.parseLog({topics:n.slice(),data:a});if(i===null)return;const f=new c(i.args.sender);return{chain:this.chain,emitter:f.toUniversalAddress(),sequence:i.args.sequence}}).filter(h)}async parseMessages(e){const t=await this.provider.getTransactionReceipt(e);if(t===null)throw new Error("Could not get transaction receipt");const b=await this.getGuardianSetIndex();return t.logs.filter(n=>n.address===this.coreAddress).map(n=>{const{topics:a,data:i}=n,f=this.coreIface.parseLog({topics:a.slice(),data:i});if(f===null)return null;const o=new c(f.args.sender);return C("Uint8Array",{guardianSet:b,timestamp:0,emitterChain:this.chain,emitterAddress:o.toUniversalAddress(),consistencyLevel:Number(f.args.consistencyLevel),sequence:BigInt(f.args.sequence),nonce:Number(f.args.nonce),signatures:[],payload:v.decode(f.args.payload)})}).filter(n=>!!n)}createUnsignedTx(e,t,b=!1){return new A(M(e,this.chainId),this.network,this.chain,t,b)}}const s=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],u="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",G=r=>r.length>1;class p extends m{constructor(...e){G(e)?super(...e):super(s,u,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static bytecode=u;static abi=s;static createInterface(){return new S(s)}static connect(e,t){return new w(e,s,t)}}const F=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:p},Symbol.toStringTag,{value:"Module"}));x(I,"WormholeCore",d);const q=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:d,ethers_contracts:F},Symbol.toStringTag,{value:"Module"}));export{d as E,A as a,q as i};
@@ -1 +1 @@
1
- import{P as i,B as c,cS as p,cG as l,cH as E,cI as H,cJ as Z,dj as j,dk as J,bc as Q,bd as W,dp as x,dq as X,dr as K,ds as Y,dt as N,V as v,dn as $,c$ as ee,be as te}from"../main.mjs";import{d as ne,g as ie,a as se,b as ae,c as re,S as oe,e as ce,f as de}from"./index-DDWBTFUk.js";import{deriveWrappedMetaKey as G,deriveTokenBridgeConfigKey as O,deriveAuthoritySignerKey as ue,deriveSenderAccountKey as me,deriveMintAuthorityKey as ge,deriveEndpointKey as fe}from"./index-FJ-n91Op.js";import{P as le}from"./index-DmYxP1Uj.js";import"./create-CbNCGANY.js";const pe={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function L(a){return i.findProgramAddressSync([c.from("redeemer")],new i(a))[0]}function he(a,t){const e=c.alloc(8);return e.writeBigUInt64LE(t),i.findProgramAddressSync([c.from("msg"),e],new i(a))[0]}function ye(a,t){const e=c.alloc(2);return e.writeUInt16LE(p(t)),i.findProgramAddressSync([c.from("gateway-info"),e],new i(a))[0]}const T=new i("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function we(){return i.findProgramAddressSync([c.from("config")],T)[0]}function Se(a){return i.findProgramAddressSync([c.from("minter-info"),a.toBuffer()],T)[0]}const B=new i("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new i("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new i("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new i("So11111111111111111111111111111111111111112");new i("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class ke extends Error{constructor(t){super(t)}}class Me extends ke{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Te=l.struct([l.u32("mintAuthorityOption"),E("mintAuthority"),H("supply"),l.u8("decimals"),Z("isInitialized"),l.u32("freezeAuthorityOption"),E("freezeAuthority")]);Te.span;async function M(a,t,e=!1,r=B,n=b){if(!e&&!i.isOnCurve(t.toBuffer()))throw new Me;const[s]=await i.findProgramAddress([t.toBuffer(),r.toBuffer(),a.toBuffer()],n);return s}function Be(a,t,e,r,n=B,s=b){return be(a,t,e,r,c.alloc(0),n,s)}function be(a,t,e,r,n,s=B,o=b){const d=[{pubkey:a,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:J.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new j({keys:d,programId:o,data:n})}class A{network;chain;connection;contracts;gateway;tokenBridgeId;coreBridgeId;constructor(t,e,r,n){if(this.network=t,this.chain=e,this.connection=r,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new le(pe,this.contracts.tbtc,{connection:r}),this.tokenBridgeId=new i(this.contracts.tokenBridge),this.coreBridgeId=new i(this.contracts.coreBridge)}static async fromRpc(t,e){const[r,n]=await Q.chainFromRpc(t),s=e[n];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new A(r,n,t,s.contracts)}async*transfer(t,e,r){const n=new W(t).unwrap(),s=L(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:d,wrappedTbtcMint:u}=await this.gateway.account.custodian.fetch(s),h=G(this.tokenBridgeId,u),m=O(this.tokenBridgeId),g=ue(this.tokenBridgeId),C=ne(this.coreBridgeId),{sequence:y}=await ie(this.connection,this.tokenBridgeId,this.coreBridgeId),w=he(this.gateway.programId,y),S=se(this.coreBridgeId),f=ae(this.tokenBridgeId),k=re(f,this.coreBridgeId),R=ye(this.gateway.programId,e.chain),U=me(this.gateway.programId),P={amount:new x.BN(r.toString()),recipientChain:p(e.chain),recipient:[...e.address.toUniversalAddress().toUint8Array()],nonce:0},V=await M(o,n),q=X.get(this.network,e.chain),I={custodian:s,wrappedTbtcToken:d,wrappedTbtcMint:u,tbtcMint:o,senderToken:V,sender:n,tokenBridgeConfig:m,tokenBridgeWrappedAsset:h,tokenBridgeTransferAuthority:g,coreBridgeData:S,coreMessage:w,tokenBridgeCoreEmitter:f,coreEmitterSequence:k,coreFeeCollector:C,clock:Y,rent:K,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},D=q?await this.gateway.methods.sendTbtcGateway({...P}).accounts({...I,gatewayInfo:R,tokenBridgeSender:U}).instruction():await this.gateway.methods.sendTbtcWrapped({...P,arbiterFee:new x.BN(0)}).accounts(I).instruction(),{blockhash:_}=await this.connection.getLatestBlockhash(),F=N.compile({instructions:[D],payerKey:n,recentBlockhash:_}),z=new v(F);yield this.createUnsignedTransaction({transaction:z},"TBTCBridge.Send")}async*redeem(t,e){if(e.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new oe(this.network,this.chain,this.connection,this.contracts).postVaa(t,e);const n=[],s=new W(t).unwrap(),o=e.payload.payload.recipient.toNative(this.chain).unwrap(),d=L(this.gateway.programId),{tbtcMint:u,wrappedTbtcToken:h,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(d),g=await M(u,o);await this.connection.getAccountInfo(g)||n.push(Be(s,g,o,u));const y=G(this.tokenBridgeId,m),w=await M(m,o);n.push(await this.gateway.methods.receiveTbtc([...e.hash]).accounts({payer:s,custodian:d,postedVaa:de(this.coreBridgeId,c.from(e.hash)),tokenBridgeClaim:ce(this.tokenBridgeId,e.emitterAddress.toUint8Array(),p(e.emitterChain),e.sequence),wrappedTbtcToken:h,wrappedTbtcMint:m,tbtcMint:u,recipientToken:g,recipient:o,recipientWrappedToken:w,tbtcConfig:we(),tbtcMinterInfo:Se(d),tokenBridgeConfig:O(this.tokenBridgeId),tokenBridgeRegisteredEmitter:fe(this.tokenBridgeId,p(e.emitterChain),e.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:ge(this.tokenBridgeId),rent:K,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:S}=await this.connection.getLatestBlockhash(),f=N.compile({instructions:n,payerKey:s,recentBlockhash:S}),k=new v(f);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(t,e){return new $(t,this.network,this.chain,e,!1)}}ee(te,"TBTCBridge",A);export{A as SolanaTBTCBridge};
1
+ import{P as i,B as c,cS as p,cG as l,cH as E,cI as H,cJ as Z,dj as j,dk as J,bc as Q,bd as W,dp as x,dq as X,dr as K,ds as Y,dt as N,V as v,dn as $,c$ as ee,be as te}from"../main.mjs";import{d as ne,g as ie,a as se,b as ae,c as re,S as oe,e as ce,f as de}from"./index-DDWBTFUk.js";import{deriveWrappedMetaKey as G,deriveTokenBridgeConfigKey as O,deriveAuthoritySignerKey as ue,deriveSenderAccountKey as me,deriveMintAuthorityKey as ge,deriveEndpointKey as fe}from"./index-BwbPlAQZ.js";import{P as le}from"./index-DmYxP1Uj.js";import"./create-CbNCGANY.js";const pe={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]};function L(a){return i.findProgramAddressSync([c.from("redeemer")],new i(a))[0]}function he(a,t){const e=c.alloc(8);return e.writeBigUInt64LE(t),i.findProgramAddressSync([c.from("msg"),e],new i(a))[0]}function ye(a,t){const e=c.alloc(2);return e.writeUInt16LE(p(t)),i.findProgramAddressSync([c.from("gateway-info"),e],new i(a))[0]}const T=new i("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function we(){return i.findProgramAddressSync([c.from("config")],T)[0]}function Se(a){return i.findProgramAddressSync([c.from("minter-info"),a.toBuffer()],T)[0]}const B=new i("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new i("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const b=new i("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new i("So11111111111111111111111111111111111111112");new i("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class ke extends Error{constructor(t){super(t)}}class Me extends ke{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}const Te=l.struct([l.u32("mintAuthorityOption"),E("mintAuthority"),H("supply"),l.u8("decimals"),Z("isInitialized"),l.u32("freezeAuthorityOption"),E("freezeAuthority")]);Te.span;async function M(a,t,e=!1,r=B,n=b){if(!e&&!i.isOnCurve(t.toBuffer()))throw new Me;const[s]=await i.findProgramAddress([t.toBuffer(),r.toBuffer(),a.toBuffer()],n);return s}function Be(a,t,e,r,n=B,s=b){return be(a,t,e,r,c.alloc(0),n,s)}function be(a,t,e,r,n,s=B,o=b){const d=[{pubkey:a,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:J.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new j({keys:d,programId:o,data:n})}class A{network;chain;connection;contracts;gateway;tokenBridgeId;coreBridgeId;constructor(t,e,r,n){if(this.network=t,this.chain=e,this.connection=r,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");if(!this.contracts.tokenBridge)throw new Error("TokenBridge contract address is required");if(!this.contracts.coreBridge)throw new Error("CoreBridge contract address is required");this.gateway=new le(pe,this.contracts.tbtc,{connection:r}),this.tokenBridgeId=new i(this.contracts.tokenBridge),this.coreBridgeId=new i(this.contracts.coreBridge)}static async fromRpc(t,e){const[r,n]=await Q.chainFromRpc(t),s=e[n];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new A(r,n,t,s.contracts)}async*transfer(t,e,r){const n=new W(t).unwrap(),s=L(this.gateway.programId),{tbtcMint:o,wrappedTbtcToken:d,wrappedTbtcMint:u}=await this.gateway.account.custodian.fetch(s),h=G(this.tokenBridgeId,u),m=O(this.tokenBridgeId),g=ue(this.tokenBridgeId),C=ne(this.coreBridgeId),{sequence:y}=await ie(this.connection,this.tokenBridgeId,this.coreBridgeId),w=he(this.gateway.programId,y),S=se(this.coreBridgeId),f=ae(this.tokenBridgeId),k=re(f,this.coreBridgeId),R=ye(this.gateway.programId,e.chain),U=me(this.gateway.programId),P={amount:new x.BN(r.toString()),recipientChain:p(e.chain),recipient:[...e.address.toUniversalAddress().toUint8Array()],nonce:0},V=await M(o,n),q=X.get(this.network,e.chain),I={custodian:s,wrappedTbtcToken:d,wrappedTbtcMint:u,tbtcMint:o,senderToken:V,sender:n,tokenBridgeConfig:m,tokenBridgeWrappedAsset:h,tokenBridgeTransferAuthority:g,coreBridgeData:S,coreMessage:w,tokenBridgeCoreEmitter:f,coreEmitterSequence:k,coreFeeCollector:C,clock:Y,rent:K,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId},D=q?await this.gateway.methods.sendTbtcGateway({...P}).accounts({...I,gatewayInfo:R,tokenBridgeSender:U}).instruction():await this.gateway.methods.sendTbtcWrapped({...P,arbiterFee:new x.BN(0)}).accounts(I).instruction(),{blockhash:_}=await this.connection.getLatestBlockhash(),F=N.compile({instructions:[D],payerKey:n,recentBlockhash:_}),z=new v(F);yield this.createUnsignedTransaction({transaction:z},"TBTCBridge.Send")}async*redeem(t,e){if(e.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");yield*new oe(this.network,this.chain,this.connection,this.contracts).postVaa(t,e);const n=[],s=new W(t).unwrap(),o=e.payload.payload.recipient.toNative(this.chain).unwrap(),d=L(this.gateway.programId),{tbtcMint:u,wrappedTbtcToken:h,wrappedTbtcMint:m}=await this.gateway.account.custodian.fetch(d),g=await M(u,o);await this.connection.getAccountInfo(g)||n.push(Be(s,g,o,u));const y=G(this.tokenBridgeId,m),w=await M(m,o);n.push(await this.gateway.methods.receiveTbtc([...e.hash]).accounts({payer:s,custodian:d,postedVaa:de(this.coreBridgeId,c.from(e.hash)),tokenBridgeClaim:ce(this.tokenBridgeId,e.emitterAddress.toUint8Array(),p(e.emitterChain),e.sequence),wrappedTbtcToken:h,wrappedTbtcMint:m,tbtcMint:u,recipientToken:g,recipient:o,recipientWrappedToken:w,tbtcConfig:we(),tbtcMinterInfo:Se(d),tokenBridgeConfig:O(this.tokenBridgeId),tokenBridgeRegisteredEmitter:fe(this.tokenBridgeId,p(e.emitterChain),e.emitterAddress.toUint8Array()),tokenBridgeWrappedAsset:y,tokenBridgeMintAuthority:ge(this.tokenBridgeId),rent:K,tbtcProgram:T,tokenBridgeProgram:this.tokenBridgeId,coreBridgeProgram:this.coreBridgeId}).instruction());const{blockhash:S}=await this.connection.getLatestBlockhash(),f=N.compile({instructions:n,payerKey:s,recentBlockhash:S}),k=new v(f);yield this.createUnsignedTransaction({transaction:k},"TBTCBridge.Send")}createUnsignedTransaction(t,e){return new $(t,this.network,this.chain,e,!1)}}ee(te,"TBTCBridge",A);export{A as SolanaTBTCBridge};
@@ -1 +1 @@
1
- import{cS as i,d7 as c,bh as m,c$ as d}from"../main.mjs";import{A as h}from"./aptos-C9pj8h2Q.js";import{c as p}from"./create-CbNCGANY.js";import"./chunk-KJH4KKG6-7L0Yrr0p.js";import"./index-S_2EIxuJ.js";import"./index-VWaDGczM.js";class s{network;chain;connection;contracts;chainId;coreBridge;constructor(e,n,t,o){this.network=e,this.chain=n,this.connection=t,this.contracts=o,this.chainId=i(n);const r=o.coreBridge;if(!r)throw new Error(`CoreBridge contract Address for chain ${n} not found`);this.coreBridge=r}getGuardianSet(e){throw new Error("Method not implemented.")}getGuardianSetIndex(){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,n){const[t,o]=await h.chainFromRpc(e),r=n[o];if(r.network!==t)throw new Error(`Network mismatch: ${r.network} !== ${t}`);return new s(t,o,e,r.contracts)}async*publishMessage(e,n){throw new Error("Method not implemented.")}async*verifyMessage(e,n){throw new Error("Not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(t=>({chain:t.emitterChain,emitter:t.emitterAddress,sequence:t.sequence}))}async parseMessages(e){const n=await this.connection.getTransactionByHash({transactionHash:e});if(n.type!=="user_transaction")throw new Error(`${e} is not a user_transaction`);const t=n.events.filter(o=>o.type.endsWith("WormholeMessage"));if(!t||t.length===0)throw new Error(`WormholeMessage not found for ${e}`);return t.map(o=>{const r=o.data,a=new c(BigInt(r.sender).toString(16).padStart(64,"0"));return p("Uint8Array",{guardianSet:0,emitterChain:this.chain,emitterAddress:a,sequence:BigInt(r.sequence),timestamp:Number(r.timestamp),consistencyLevel:r.consistency_level,nonce:Number(r.nonce),signatures:[],payload:m.decode(r.payload)})})}}d("Aptos","WormholeCore",s);export{s as AptosWormholeCore};
1
+ import{cS as i,d7 as c,bh as m,c$ as d}from"../main.mjs";import{A as h}from"./aptos-DgUCX7ng.js";import{c as p}from"./create-CbNCGANY.js";import"./chunk-KJH4KKG6-7L0Yrr0p.js";import"./index-S_2EIxuJ.js";import"./index-VWaDGczM.js";class s{network;chain;connection;contracts;chainId;coreBridge;constructor(e,n,t,o){this.network=e,this.chain=n,this.connection=t,this.contracts=o,this.chainId=i(n);const r=o.coreBridge;if(!r)throw new Error(`CoreBridge contract Address for chain ${n} not found`);this.coreBridge=r}getGuardianSet(e){throw new Error("Method not implemented.")}getGuardianSetIndex(){throw new Error("Method not implemented.")}getMessageFee(){throw new Error("Method not implemented.")}static async fromRpc(e,n){const[t,o]=await h.chainFromRpc(e),r=n[o];if(r.network!==t)throw new Error(`Network mismatch: ${r.network} !== ${t}`);return new s(t,o,e,r.contracts)}async*publishMessage(e,n){throw new Error("Method not implemented.")}async*verifyMessage(e,n){throw new Error("Not implemented.")}async parseTransaction(e){return(await this.parseMessages(e)).map(t=>({chain:t.emitterChain,emitter:t.emitterAddress,sequence:t.sequence}))}async parseMessages(e){const n=await this.connection.getTransactionByHash({transactionHash:e});if(n.type!=="user_transaction")throw new Error(`${e} is not a user_transaction`);const t=n.events.filter(o=>o.type.endsWith("WormholeMessage"));if(!t||t.length===0)throw new Error(`WormholeMessage not found for ${e}`);return t.map(o=>{const r=o.data,a=new c(BigInt(r.sender).toString(16).padStart(64,"0"));return p("Uint8Array",{guardianSet:0,emitterChain:this.chain,emitterAddress:a,sequence:BigInt(r.sequence),timestamp:Number(r.timestamp),consistencyLevel:r.consistency_level,nonce:Number(r.nonce),signatures:[],payload:m.decode(r.payload)})})}}d("Aptos","WormholeCore",s);export{s as AptosWormholeCore};