@wormhole-foundation/wormhole-connect 3.0.2-beta.0-development → 3.0.2-beta.1-development

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/{basic-ChNCp6rI.js → basic-PUjrTVXb.js} +1 -1
  3. package/dist/assets/{evm-DSirgd5b.js → evm-CO5UWnAY.js} +2 -2
  4. package/dist/assets/{index-L-lC4rqb.js → index-1lzfHdT2.js} +1 -1
  5. package/dist/assets/{index-CHfaLf5J.js → index-DBVZDYF7.js} +1 -1
  6. package/dist/assets/index-DKlPX3ZI.js +1 -0
  7. package/dist/assets/{index-BtCrMDAu.js → index-Ddk7n7Ti.js} +1 -1
  8. package/dist/assets/{index-HhyysXFu.js → index-DyUmO4PR.js} +1 -1
  9. package/dist/assets/{index-BiwA3Bbq.js → index-MMzKxP1N.js} +1 -1
  10. package/dist/assets/{secp256k1-Cd7rIav0.js → secp256k1-0LtSM2L1.js} +1 -1
  11. package/dist/assets/{secp256k1-BQBOR8e3.js → secp256k1-DwTU3j1N.js} +1 -1
  12. package/dist/assets/{solana-DcwLWeKT.js → solana-DlGdMBSL.js} +4 -4
  13. package/dist/assets/{w3m-modal-DdptuLHe.js → w3m-modal-DD9Jgepz.js} +1 -1
  14. package/dist/main.js +72 -70
  15. package/dist/src/AppRouter.d.ts.map +1 -1
  16. package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
  17. package/dist/src/config/testnet/tokens.d.ts.map +1 -1
  18. package/dist/src/config/tokens.d.ts +1 -1
  19. package/dist/src/config/tokens.d.ts.map +1 -1
  20. package/dist/src/exports/index.d.ts +2 -2
  21. package/dist/src/exports/index.d.ts.map +1 -1
  22. package/dist/src/hooks/useFetchQuotes.d.ts.map +1 -1
  23. package/dist/src/icons/Chains/PLUME.d.ts.map +1 -1
  24. package/dist/src/icons/PoweredBy.d.ts.map +1 -1
  25. package/dist/src/icons/Routing.d.ts +5 -0
  26. package/dist/src/icons/Routing.d.ts.map +1 -0
  27. package/dist/src/icons/Tokens/PLUME.d.ts.map +1 -1
  28. package/dist/src/store/transferInput.d.ts +1 -1
  29. package/dist/src/store/transferInput.d.ts.map +1 -1
  30. package/dist/src/utils/coingecko.d.ts.map +1 -1
  31. package/dist/src/utils/formatNumber.d.ts +23 -0
  32. package/dist/src/utils/formatNumber.d.ts.map +1 -0
  33. package/dist/src/utils/index.d.ts +3 -1
  34. package/dist/src/utils/index.d.ts.map +1 -1
  35. package/dist/src/utils/routes.d.ts +12 -0
  36. package/dist/src/utils/routes.d.ts.map +1 -0
  37. package/dist/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
  38. package/dist/src/views/v2/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
  39. package/dist/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  40. package/dist/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
  41. package/dist/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -1
  42. package/dist/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
  43. package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  44. package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  45. package/dist/src/views/v3/Bridge/Routes/Eta.d.ts +6 -0
  46. package/dist/src/views/v3/Bridge/Routes/Eta.d.ts.map +1 -0
  47. package/dist/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -1
  48. package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +7 -6
  49. package/dist/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -1
  50. package/dist/src/views/v3/Bridge/Routes/RoutesLink.d.ts +7 -0
  51. package/dist/src/views/v3/Bridge/Routes/RoutesLink.d.ts.map +1 -0
  52. package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts +2 -1
  53. package/dist/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -1
  54. package/dist/src/views/v3/Bridge/Routes/RoutesLoader.d.ts +4 -0
  55. package/dist/src/views/v3/Bridge/Routes/RoutesLoader.d.ts.map +1 -0
  56. package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts +6 -5
  57. package/dist/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -1
  58. package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts +1 -0
  59. package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  60. package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  61. package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  62. package/lib/account-Br8E7RB6.js +1 -0
  63. package/lib/{account-BTK2b2Fv.mjs → account-CVa_3S2g.mjs} +1 -1
  64. package/lib/{address-8wLqn60W.mjs → address-BApwdEpr.mjs} +96 -96
  65. package/lib/address-BwQqFkyh.js +1 -0
  66. package/lib/address-C2pxq9b2.js +1 -0
  67. package/lib/{address-n0gAFMrZ.mjs → address-f6joE_ig.mjs} +12 -12
  68. package/lib/aptos-CMRGggVs.js +2 -0
  69. package/lib/{aptos-CK-j196x.js → aptos-CTKQNmlP.js} +1 -1
  70. package/lib/{aptos-B-DJQlwt.mjs → aptos-CfFbx7uf.mjs} +9 -9
  71. package/lib/{aptos-Bwcz9wZX.mjs → aptos-fozuppXh.mjs} +3 -3
  72. package/lib/{basic-DHWVLmCq.mjs → basic-BA2aRJJn.mjs} +2 -2
  73. package/lib/{basic-B5ZFelC_.js → basic-DUWaF2I0.js} +1 -1
  74. package/lib/{basic-E2M-9h1u.js → basic-DeiUayOA.js} +1 -1
  75. package/lib/{basic-Pour9Ggp.mjs → basic-DoC8u7J8.mjs} +2 -2
  76. package/lib/{blake2b-C5HyObld.mjs → blake2b-BGxWUAjG.mjs} +23 -23
  77. package/lib/blake2b-Fj1aPKgL.js +1 -0
  78. package/lib/{browser-ponyfill-jK8MKVVg.mjs → browser-ponyfill-D5AN8ZPp.mjs} +1 -1
  79. package/lib/browser-ponyfill-Dn6gsMYK.js +2 -0
  80. package/lib/{chain-Bm6u6eUF.mjs → chain-DAw2I5H8.mjs} +1 -1
  81. package/lib/chain-DnPXlO8g.js +1 -0
  82. package/lib/chunk-KJH4KKG6-BjF7YUcU.js +470 -0
  83. package/lib/{chunk-KJH4KKG6-DJsu-Y-X.mjs → chunk-KJH4KKG6-DmVjhXO7.mjs} +144 -144
  84. package/lib/{constants-Cf2YMjNo.js → constants-BtNs_2F4.js} +1 -1
  85. package/lib/{constants-B7AbX6qr.mjs → constants-Dcc2nVaW.mjs} +3 -3
  86. package/lib/contract-BEHYQLvJ.js +1 -0
  87. package/lib/{contract-llnN6ki0.mjs → contract-BkMAZomO.mjs} +123 -123
  88. package/lib/{core-CF5c7Vev.mjs → core-BHV42Qa0.mjs} +25 -26
  89. package/lib/core-CV23yxnG.js +889 -0
  90. package/lib/create-CHcGblj6.js +1 -0
  91. package/lib/{create-Dm87_0zG.mjs → create-CKLtL7hr.mjs} +1 -1
  92. package/lib/{evm-BYIGg8e4.mjs → evm-Bf7qbM19.mjs} +42 -42
  93. package/lib/{evm-B2hUWkt7.js → evm-ClWkquRx.js} +2 -2
  94. package/lib/{evm-fvvpk-li.mjs → evm-DhMoy8cH.mjs} +6 -6
  95. package/lib/{evm-DFNbMHoa.js → evm-tXmzU9Xp.js} +2 -2
  96. package/lib/executor.js +1 -1
  97. package/lib/executor.mjs +145 -138
  98. package/lib/hosted.js +1 -1
  99. package/lib/hosted.mjs +1 -1
  100. package/lib/{index-Cwo5AKUC.mjs → index-1rCCpdwd.mjs} +5 -5
  101. package/lib/{index-DBCa3k0j.mjs → index-3HvzWPL7.mjs} +9 -9
  102. package/lib/{index-MOwE6ses.mjs → index-B7ztYPhr.mjs} +21 -22
  103. package/lib/index-BM-0SeYB.js +1 -0
  104. package/lib/{index-DiQ8Ytrt.mjs → index-BTnpftLz.mjs} +1 -1
  105. package/lib/{index-BiCMaXJS.js → index-BWQMi6Rj.js} +1 -1
  106. package/lib/index-BbgKw2pu.js +1 -0
  107. package/lib/index-BblcpkoK.js +1 -0
  108. package/lib/index-Bfblsmud.js +1 -0
  109. package/lib/{index-C_0yAOSX.mjs → index-BfkFXEnG.mjs} +25082 -24072
  110. package/lib/{index-fi1sh8vr.mjs → index-BijBPDRn.mjs} +2 -2
  111. package/lib/index-BoquY9R2.js +337 -0
  112. package/lib/index-C2NtsO9Q.js +1 -0
  113. package/lib/{index-CNuk-XLX.mjs → index-C4JmrizV.mjs} +4 -4
  114. package/lib/index-C8TtXpOf.js +1 -0
  115. package/lib/index-CB8kOyIP.js +1 -0
  116. package/lib/index-CInVjUCW.js +1 -0
  117. package/lib/{index-BF11RebI.mjs → index-CLTklDbp.mjs} +1 -1
  118. package/lib/index-CQvgeH_r.js +1 -0
  119. package/lib/{index-DzYjoSJp.mjs → index-CUnOYRFQ.mjs} +23 -24
  120. package/lib/{index-DGh9LzN1.mjs → index-CWe_BTdo.mjs} +31 -31
  121. package/lib/{index-2Bz1Np4K.mjs → index-CZ91lJ9M.mjs} +5 -5
  122. package/lib/{index-Dgy1FO7C.js → index-CgyVnj6U.js} +1 -1
  123. package/lib/{index-BzJcFdt_.mjs → index-Clr2JjoJ.mjs} +44 -44
  124. package/lib/index-CnnCCv6Q.js +1 -0
  125. package/lib/{index-CJnRWlFf.mjs → index-CwxGLNEk.mjs} +48 -49
  126. package/lib/index-D7BLfz05.js +1 -0
  127. package/lib/index-DM7C-wvQ.js +3 -0
  128. package/lib/{index-DhIh3xiW.mjs → index-DNy_sNGr.mjs} +8 -8
  129. package/lib/{index-BZaRg0yd.mjs → index-DVcaDWmz.mjs} +1 -1
  130. package/lib/{index-CsAigASU.mjs → index-DWOP9OBp.mjs} +17 -17
  131. package/lib/{index-CTLz8Fz0.mjs → index-Dda5qc2t.mjs} +13 -14
  132. package/lib/{index-CLBXF_zH.mjs → index-DeaiBvpG.mjs} +16 -16
  133. package/lib/index-HOuGP-7b.js +1 -0
  134. package/lib/{index-Dt2uNp-N.mjs → index-KZve3tYJ.mjs} +4 -4
  135. package/lib/{index-CJDBidKv.mjs → index-SIyXqCAN.mjs} +41 -41
  136. package/lib/index-WhVYPMUr.js +1 -0
  137. package/lib/index-hmjT4xa7.js +1 -0
  138. package/lib/index-ledagFNU.js +1 -0
  139. package/lib/index-pbRVlgcN.js +1 -0
  140. package/lib/{index-BpQXUhR4.mjs → index-qK7AyMAk.mjs} +23 -27
  141. package/lib/index-ttZu99PZ.js +1 -0
  142. package/lib/{index.es-BqRBGIq6.mjs → index.es-BXRQf6Oi.mjs} +25 -26
  143. package/lib/index.es-BjGaOok5.js +11 -0
  144. package/lib/index.es-D6S74vhi.js +27 -0
  145. package/lib/{index.es-DgCZuUzB.mjs → index.es-cOw8juwf.mjs} +741 -737
  146. package/lib/index.js +1 -1
  147. package/lib/index.mjs +17 -16
  148. package/lib/mayan.js +3 -3
  149. package/lib/mayan.mjs +918 -891
  150. package/lib/mint-CL36R6ED.js +1 -0
  151. package/lib/{mint-Dc-VsiAn.mjs → mint-DunEG1jV.mjs} +32 -33
  152. package/lib/ntt.js +1 -1
  153. package/lib/ntt.mjs +2332 -2373
  154. package/lib/platform-7vCWzCny.js +1 -0
  155. package/lib/platform-BKhoO9So.js +1 -0
  156. package/lib/{platform-B95L0Vxv.mjs → platform-BN6LFtXE.mjs} +16 -16
  157. package/lib/{platform-DnP_1wGA.mjs → platform-BYLu9SzP.mjs} +4 -4
  158. package/lib/platform-Bbe26nx7.js +1 -0
  159. package/lib/{platform-DiG7WY9Z.mjs → platform-DCgWqmh1.mjs} +4 -4
  160. package/lib/{provider-jsonrpc-CRABh2gN.mjs → provider-jsonrpc-Bmgnrmpy.mjs} +155 -155
  161. package/lib/provider-jsonrpc-CbtP2Ffg.js +1 -0
  162. package/lib/{secp256k1-zHHDNAlH.mjs → secp256k1-BDQEvyHq.mjs} +1 -1
  163. package/lib/{secp256k1-obBDPYM-.mjs → secp256k1-C77Oh9AA.mjs} +1 -1
  164. package/lib/{secp256k1-2hq3Jk4g.mjs → secp256k1-CCn2vlXj.mjs} +1 -1
  165. package/lib/{secp256k1-B94G4gyy.js → secp256k1-CHAR40au.js} +1 -1
  166. package/lib/{secp256k1-DCcAh19h.js → secp256k1-D-DmPYcJ.js} +1 -1
  167. package/lib/{secp256k1-CjndBUS7.js → secp256k1-DYWDlveU.js} +1 -1
  168. package/lib/{signer-N_ccpPOz.mjs → signer-BIcn81N5.mjs} +18 -18
  169. package/lib/signer-H7atraks.js +1 -0
  170. package/lib/{solana-_Ha4YgiP.mjs → solana-B0QSg7B3.mjs} +30 -30
  171. package/lib/solana-Cs5VyB20.js +900 -0
  172. package/lib/solana-uvHG8JV5.js +1 -0
  173. package/lib/solana-zyfOlbhb.mjs +18 -0
  174. package/lib/{solanaEmbed.esm-DK5RIquB.mjs → solanaEmbed.esm-BqdznDuW.mjs} +623 -622
  175. package/lib/solanaEmbed.esm-D8vtESE6.js +10 -0
  176. package/lib/src/AppRouter.d.ts.map +1 -1
  177. package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
  178. package/lib/src/config/testnet/tokens.d.ts.map +1 -1
  179. package/lib/src/config/tokens.d.ts +1 -1
  180. package/lib/src/config/tokens.d.ts.map +1 -1
  181. package/lib/src/exports/index.d.ts +2 -2
  182. package/lib/src/exports/index.d.ts.map +1 -1
  183. package/lib/src/hooks/useFetchQuotes.d.ts.map +1 -1
  184. package/lib/src/icons/Chains/PLUME.d.ts.map +1 -1
  185. package/lib/src/icons/PoweredBy.d.ts.map +1 -1
  186. package/lib/src/icons/Routing.d.ts +5 -0
  187. package/lib/src/icons/Routing.d.ts.map +1 -0
  188. package/lib/src/icons/Tokens/PLUME.d.ts.map +1 -1
  189. package/lib/src/store/transferInput.d.ts +1 -1
  190. package/lib/src/store/transferInput.d.ts.map +1 -1
  191. package/lib/src/utils/coingecko.d.ts.map +1 -1
  192. package/lib/src/utils/formatNumber.d.ts +23 -0
  193. package/lib/src/utils/formatNumber.d.ts.map +1 -0
  194. package/lib/src/utils/index.d.ts +3 -1
  195. package/lib/src/utils/index.d.ts.map +1 -1
  196. package/lib/src/utils/routes.d.ts +12 -0
  197. package/lib/src/utils/routes.d.ts.map +1 -0
  198. package/lib/src/views/v2/Bridge/AmountInput/index.d.ts.map +1 -1
  199. package/lib/src/views/v2/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
  200. package/lib/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  201. package/lib/src/views/v2/Redeem/TransactionDetails/index.d.ts.map +1 -1
  202. package/lib/src/views/v3/Bridge/AmountInput/index.d.ts.map +1 -1
  203. package/lib/src/views/v3/Bridge/AssetPicker/TokenItem.d.ts.map +1 -1
  204. package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  205. package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  206. package/lib/src/views/v3/Bridge/Routes/Eta.d.ts +6 -0
  207. package/lib/src/views/v3/Bridge/Routes/Eta.d.ts.map +1 -0
  208. package/lib/src/views/v3/Bridge/Routes/RouteBadge.d.ts.map +1 -1
  209. package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts +7 -6
  210. package/lib/src/views/v3/Bridge/Routes/RoutesBottomSheet.d.ts.map +1 -1
  211. package/lib/src/views/v3/Bridge/Routes/RoutesLink.d.ts +7 -0
  212. package/lib/src/views/v3/Bridge/Routes/RoutesLink.d.ts.map +1 -0
  213. package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts +2 -1
  214. package/lib/src/views/v3/Bridge/Routes/RoutesList.d.ts.map +1 -1
  215. package/lib/src/views/v3/Bridge/Routes/RoutesLoader.d.ts +4 -0
  216. package/lib/src/views/v3/Bridge/Routes/RoutesLoader.d.ts.map +1 -0
  217. package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts +6 -5
  218. package/lib/src/views/v3/Bridge/Routes/RoutesModal.d.ts.map +1 -1
  219. package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts +1 -0
  220. package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  221. package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  222. package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  223. package/lib/{sui-CQcQ6w_P.mjs → sui-B38DyOqM.mjs} +44 -44
  224. package/lib/{sui-BplKFZQu.mjs → sui-BpfnZR4f.mjs} +3 -3
  225. package/lib/sui-CT9MWY38.js +1 -0
  226. package/lib/{sui-_hvmCvD8.js → sui-DXQAMRQJ.js} +1 -1
  227. package/lib/{tokens-DNv0ZNvU.js → tokens-CmINcwKk.js} +31 -31
  228. package/lib/{tokens-Dl4YwW18.mjs → tokens-YxAPPVy3.mjs} +1726 -1724
  229. package/lib/transfer-BQ72fByU.js +1 -0
  230. package/lib/transfer-bTW0j9yh.mjs +58 -0
  231. package/lib/units-Ckije3Qv.js +1 -0
  232. package/lib/{units-DPWUSE6J.mjs → units-CtyvuzxQ.mjs} +13 -13
  233. package/lib/unsignedTransaction-C6Qp42VS.js +1 -0
  234. package/lib/{unsignedTransaction-DwcUilyN.mjs → unsignedTransaction-CXB-QCUC.mjs} +18 -18
  235. package/lib/{w3m-modal-BJILsxDp.mjs → w3m-modal-B7LUHLWC.mjs} +2 -2
  236. package/lib/{w3m-modal-D4CpFxO2.mjs → w3m-modal-BOTzBqbc.mjs} +2 -2
  237. package/lib/{w3m-modal-CrfHWSrF.js → w3m-modal-BTb03-7B.js} +1 -1
  238. package/lib/{w3m-modal-CBG2MSPp.js → w3m-modal-xmdf4r6V.js} +1 -1
  239. package/lib/web3-COTIsLs8.js +22 -0
  240. package/lib/{address-B-XN4tFw.mjs → web3-DYVeiqSa.mjs} +6599 -6576
  241. package/package.json +32 -32
  242. package/dist/assets/index-BWPgrXHs.js +0 -1
  243. package/lib/account-cRt2xMoW.js +0 -1
  244. package/lib/address-BGujeWtN.js +0 -22
  245. package/lib/address-C7DIAk4M.js +0 -1
  246. package/lib/address-KNhRm6oe.js +0 -1
  247. package/lib/aptos-f5TqmvqV.js +0 -2
  248. package/lib/blake2b-B-MRXUPb.js +0 -1
  249. package/lib/browser-ponyfill-CE6vRkjp.js +0 -2
  250. package/lib/chain-Hsn22HAP.js +0 -1
  251. package/lib/chunk-KJH4KKG6-CoyI75Ig.js +0 -470
  252. package/lib/contract-D2fTrJgn.js +0 -1
  253. package/lib/core-v0G9f7LX.js +0 -889
  254. package/lib/create-DoZZ7ciL.js +0 -1
  255. package/lib/index-B8-KKWD-.js +0 -1
  256. package/lib/index-BHbvgOMD.js +0 -1
  257. package/lib/index-BHfUgvSV.js +0 -1
  258. package/lib/index-BTKC7Hou.js +0 -1
  259. package/lib/index-BWXglAWd.js +0 -1
  260. package/lib/index-Bpp8C4u8.js +0 -1
  261. package/lib/index-CF2fHBHJ.js +0 -3
  262. package/lib/index-CTPz98nv.js +0 -1
  263. package/lib/index-ClMoiji-.js +0 -1
  264. package/lib/index-ClsVcH6F.js +0 -1
  265. package/lib/index-CqOI6LVu.js +0 -1
  266. package/lib/index-DCz_4mcz.js +0 -1
  267. package/lib/index-DKksdvND.js +0 -335
  268. package/lib/index-DRv3ZpVL.js +0 -1
  269. package/lib/index-DYqo8IhM.js +0 -1
  270. package/lib/index-DZubce9o.js +0 -1
  271. package/lib/index-DprM_IpB.js +0 -1
  272. package/lib/index-DshEQYMA.js +0 -1
  273. package/lib/index-JrM783SN.js +0 -1
  274. package/lib/index.es-C6YhioMN.js +0 -27
  275. package/lib/index.es-D3Xxxr8I.js +0 -11
  276. package/lib/mint-DlXC3sGi.js +0 -1
  277. package/lib/platform-B1XoDKoN.js +0 -1
  278. package/lib/platform-COuZC5Zc.js +0 -1
  279. package/lib/platform-NG3efAb2.js +0 -1
  280. package/lib/provider-jsonrpc-pXNHQF7n.js +0 -1
  281. package/lib/signer-CCa6npZ3.js +0 -1
  282. package/lib/solana-BJ3aReZw.mjs +0 -18
  283. package/lib/solana-BwyVgP30.js +0 -1
  284. package/lib/solana-CanFuMgA.js +0 -900
  285. package/lib/solanaEmbed.esm-C--1F7Lx.js +0 -10
  286. package/lib/sui-Bs83Gy5Z.js +0 -1
  287. package/lib/units-BvcKDiAx.js +0 -1
  288. package/lib/unsignedTransaction-dN_5EJf5.js +0 -1
  289. package/lib/web3-Bu_6UejS.mjs +0 -67
  290. package/lib/web3-Doz_0RHD.js +0 -1
package/lib/mayan.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var tt=Object.defineProperty;var nt=(e,t,n)=>t in e?tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var z=(e,t,n)=>nt(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const browserPonyfill=require("./browser-ponyfill-CE6vRkjp.js"),address=require("./address-BGujeWtN.js"),platform=require("./platform-B1XoDKoN.js"),blake2b=require("./blake2b-B-MRXUPb.js"),providerJsonrpc=require("./provider-jsonrpc-pXNHQF7n.js"),contract=require("./contract-D2fTrJgn.js"),units=require("./units-BvcKDiAx.js"),unsignedTransaction=require("./unsignedTransaction-dN_5EJf5.js"),unsignedTransaction$1=require("./unsignedTransaction-DzSLsK-p.js"),platform$1=require("./platform-COuZC5Zc.js"),unsignedTransaction$2=require("./unsignedTransaction-B7AZXsTD.js");var sha3={exports:{}};(function(e){(function(){var t="input is invalid type",n="finalize already called",a=typeof window=="object",r=a?window:{};r.JS_SHA3_NO_WINDOW&&(a=!1);var i=!a&&typeof self=="object",o=!r.JS_SHA3_NO_NODE_JS&&typeof address.dist.process=="object"&&address.dist.process.versions&&address.dist.process.versions.node;o?r=address.commonjsGlobal:i&&(r=self);var s=!r.JS_SHA3_NO_COMMON_JS&&!0&&e.exports,d=!r.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",u="0123456789abcdef".split(""),l=[31,7936,2031616,520093696],p=[4,1024,262144,67108864],f=[1,256,65536,16777216],y=[6,1536,393216,100663296],m=[0,8,16,24],b=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],g=[224,256,384,512],h=[128,256],T=["hex","buffer","arrayBuffer","array","digest"],A={128:168,256:136};(r.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(c){return Object.prototype.toString.call(c)==="[object Array]"}),d&&(r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(c){return typeof c=="object"&&c.buffer&&c.buffer.constructor===ArrayBuffer});for(var S=function(c,_,I){return function(M){return new j(c,_,c).update(M)[I]()}},w=function(c,_,I){return function(M,E){return new j(c,_,E).update(M)[I]()}},P=function(c,_,I){return function(M,E,k,B){return W["cshake"+c].update(M,E,k,B)[I]()}},O=function(c,_,I){return function(M,E,k,B){return W["kmac"+c].update(M,E,k,B)[I]()}},R=function(c,_,I,M){for(var E=0;E<T.length;++E){var k=T[E];c[k]=_(I,M,k)}return c},$=function(c,_){var I=S(c,_,"hex");return I.create=function(){return new j(c,_,c)},I.update=function(M){return I.create().update(M)},R(I,S,c,_)},D=function(c,_){var I=w(c,_,"hex");return I.create=function(M){return new j(c,_,M)},I.update=function(M,E){return I.create(E).update(M)},R(I,w,c,_)},C=function(c,_){var I=A[c],M=P(c,_,"hex");return M.create=function(E,k,B){return!k&&!B?W["shake"+c].create(E):new j(c,_,E).bytepad([k,B],I)},M.update=function(E,k,B,x){return M.create(k,B,x).update(E)},R(M,P,c,_)},v=function(c,_){var I=A[c],M=O(c,_,"hex");return M.create=function(E,k,B){return new Q(c,_,k).bytepad(["KMAC",B],I).bytepad([E],I)},M.update=function(E,k,B,x){return M.create(E,B,x).update(k)},R(M,O,c,_)},N=[{name:"keccak",padding:f,bits:g,createMethod:$},{name:"sha3",padding:y,bits:g,createMethod:$},{name:"shake",padding:l,bits:h,createMethod:D},{name:"cshake",padding:p,bits:h,createMethod:C},{name:"kmac",padding:p,bits:h,createMethod:v}],W={},U=[],L=0;L<N.length;++L)for(var V=N[L],X=V.bits,Y=0;Y<X.length;++Y){var Z=V.name+"_"+X[Y];if(U.push(Z),W[Z]=V.createMethod(X[Y],V.padding),V.name!=="sha3"){var q=V.name+X[Y];U.push(q),W[q]=W[Z]}}function j(c,_,I){this.blocks=[],this.s=[],this.padding=_,this.outputBits=I,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(c<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=I>>5,this.extraBytes=(I&31)>>3;for(var M=0;M<50;++M)this.s[M]=0}j.prototype.update=function(c){if(this.finalized)throw new Error(n);var _,I=typeof c;if(I!=="string"){if(I==="object"){if(c===null)throw new Error(t);if(d&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!d||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);_=!0}for(var M=this.blocks,E=this.byteCount,k=c.length,B=this.blockCount,x=0,G=this.s,F,H;x<k;){if(this.reset)for(this.reset=!1,M[0]=this.block,F=1;F<B+1;++F)M[F]=0;if(_)for(F=this.start;x<k&&F<E;++x)M[F>>2]|=c[x]<<m[F++&3];else for(F=this.start;x<k&&F<E;++x)H=c.charCodeAt(x),H<128?M[F>>2]|=H<<m[F++&3]:H<2048?(M[F>>2]|=(192|H>>6)<<m[F++&3],M[F>>2]|=(128|H&63)<<m[F++&3]):H<55296||H>=57344?(M[F>>2]|=(224|H>>12)<<m[F++&3],M[F>>2]|=(128|H>>6&63)<<m[F++&3],M[F>>2]|=(128|H&63)<<m[F++&3]):(H=65536+((H&1023)<<10|c.charCodeAt(++x)&1023),M[F>>2]|=(240|H>>18)<<m[F++&3],M[F>>2]|=(128|H>>12&63)<<m[F++&3],M[F>>2]|=(128|H>>6&63)<<m[F++&3],M[F>>2]|=(128|H&63)<<m[F++&3]);if(this.lastByteIndex=F,F>=E){for(this.start=F-E,this.block=M[B],F=0;F<B;++F)G[F]^=M[F];J(G),this.reset=!0}else this.start=F}return this},j.prototype.encode=function(c,_){var I=c&255,M=1,E=[I];for(c=c>>8,I=c&255;I>0;)E.unshift(I),c=c>>8,I=c&255,++M;return _?E.push(M):E.unshift(M),this.update(E),E.length},j.prototype.encodeString=function(c){var _,I=typeof c;if(I!=="string"){if(I==="object"){if(c===null)throw new Error(t);if(d&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!d||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);_=!0}var M=0,E=c.length;if(_)M=E;else for(var k=0;k<c.length;++k){var B=c.charCodeAt(k);B<128?M+=1:B<2048?M+=2:B<55296||B>=57344?M+=3:(B=65536+((B&1023)<<10|c.charCodeAt(++k)&1023),M+=4)}return M+=this.encode(M*8),this.update(c),M},j.prototype.bytepad=function(c,_){for(var I=this.encode(_),M=0;M<c.length;++M)I+=this.encodeString(c[M]);var E=_-I%_,k=[];return k.length=E,this.update(k),this},j.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var c=this.blocks,_=this.lastByteIndex,I=this.blockCount,M=this.s;if(c[_>>2]|=this.padding[_&3],this.lastByteIndex===this.byteCount)for(c[0]=c[I],_=1;_<I+1;++_)c[_]=0;for(c[I-1]|=2147483648,_=0;_<I;++_)M[_]^=c[_];J(M)}},j.prototype.toString=j.prototype.hex=function(){this.finalize();for(var c=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,B="",x;k<I;){for(E=0;E<c&&k<I;++E,++k)x=_[E],B+=u[x>>4&15]+u[x&15]+u[x>>12&15]+u[x>>8&15]+u[x>>20&15]+u[x>>16&15]+u[x>>28&15]+u[x>>24&15];k%c===0&&(J(_),E=0)}return M&&(x=_[E],B+=u[x>>4&15]+u[x&15],M>1&&(B+=u[x>>12&15]+u[x>>8&15]),M>2&&(B+=u[x>>20&15]+u[x>>16&15])),B},j.prototype.arrayBuffer=function(){this.finalize();var c=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,B=this.outputBits>>3,x;M?x=new ArrayBuffer(I+1<<2):x=new ArrayBuffer(B);for(var G=new Uint32Array(x);k<I;){for(E=0;E<c&&k<I;++E,++k)G[k]=_[E];k%c===0&&J(_)}return M&&(G[E]=_[E],x=x.slice(0,B)),x},j.prototype.buffer=j.prototype.arrayBuffer,j.prototype.digest=j.prototype.array=function(){this.finalize();for(var c=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,B=[],x,G;k<I;){for(E=0;E<c&&k<I;++E,++k)x=k<<2,G=_[E],B[x]=G&255,B[x+1]=G>>8&255,B[x+2]=G>>16&255,B[x+3]=G>>24&255;k%c===0&&J(_)}return M&&(x=k<<2,G=_[E],B[x]=G&255,M>1&&(B[x+1]=G>>8&255),M>2&&(B[x+2]=G>>16&255)),B};function Q(c,_,I){j.call(this,c,_,I)}Q.prototype=new j,Q.prototype.finalize=function(){return this.encode(this.outputBits,!0),j.prototype.finalize.call(this)};var J=function(c){var _,I,M,E,k,B,x,G,F,H,ee,te,ne,ae,re,se,ie,oe,ue,de,le,ce,pe,ye,me,fe,be,ge,Te,he,Ae,_e,Ie,we,Se,Ce,Me,Pe,Ee,ve,ke,Oe,Re,xe,Be,Fe,De,$e,Ne,Ue,We,Ke,je,He,Ge,Le,Ve,ze,Ye,Je,Xe,Ze,Qe;for(M=0;M<48;M+=2)E=c[0]^c[10]^c[20]^c[30]^c[40],k=c[1]^c[11]^c[21]^c[31]^c[41],B=c[2]^c[12]^c[22]^c[32]^c[42],x=c[3]^c[13]^c[23]^c[33]^c[43],G=c[4]^c[14]^c[24]^c[34]^c[44],F=c[5]^c[15]^c[25]^c[35]^c[45],H=c[6]^c[16]^c[26]^c[36]^c[46],ee=c[7]^c[17]^c[27]^c[37]^c[47],te=c[8]^c[18]^c[28]^c[38]^c[48],ne=c[9]^c[19]^c[29]^c[39]^c[49],_=te^(B<<1|x>>>31),I=ne^(x<<1|B>>>31),c[0]^=_,c[1]^=I,c[10]^=_,c[11]^=I,c[20]^=_,c[21]^=I,c[30]^=_,c[31]^=I,c[40]^=_,c[41]^=I,_=E^(G<<1|F>>>31),I=k^(F<<1|G>>>31),c[2]^=_,c[3]^=I,c[12]^=_,c[13]^=I,c[22]^=_,c[23]^=I,c[32]^=_,c[33]^=I,c[42]^=_,c[43]^=I,_=B^(H<<1|ee>>>31),I=x^(ee<<1|H>>>31),c[4]^=_,c[5]^=I,c[14]^=_,c[15]^=I,c[24]^=_,c[25]^=I,c[34]^=_,c[35]^=I,c[44]^=_,c[45]^=I,_=G^(te<<1|ne>>>31),I=F^(ne<<1|te>>>31),c[6]^=_,c[7]^=I,c[16]^=_,c[17]^=I,c[26]^=_,c[27]^=I,c[36]^=_,c[37]^=I,c[46]^=_,c[47]^=I,_=H^(E<<1|k>>>31),I=ee^(k<<1|E>>>31),c[8]^=_,c[9]^=I,c[18]^=_,c[19]^=I,c[28]^=_,c[29]^=I,c[38]^=_,c[39]^=I,c[48]^=_,c[49]^=I,ae=c[0],re=c[1],Fe=c[11]<<4|c[10]>>>28,De=c[10]<<4|c[11]>>>28,ge=c[20]<<3|c[21]>>>29,Te=c[21]<<3|c[20]>>>29,Je=c[31]<<9|c[30]>>>23,Xe=c[30]<<9|c[31]>>>23,Oe=c[40]<<18|c[41]>>>14,Re=c[41]<<18|c[40]>>>14,we=c[2]<<1|c[3]>>>31,Se=c[3]<<1|c[2]>>>31,se=c[13]<<12|c[12]>>>20,ie=c[12]<<12|c[13]>>>20,$e=c[22]<<10|c[23]>>>22,Ne=c[23]<<10|c[22]>>>22,he=c[33]<<13|c[32]>>>19,Ae=c[32]<<13|c[33]>>>19,Ze=c[42]<<2|c[43]>>>30,Qe=c[43]<<2|c[42]>>>30,He=c[5]<<30|c[4]>>>2,Ge=c[4]<<30|c[5]>>>2,Ce=c[14]<<6|c[15]>>>26,Me=c[15]<<6|c[14]>>>26,oe=c[25]<<11|c[24]>>>21,ue=c[24]<<11|c[25]>>>21,Ue=c[34]<<15|c[35]>>>17,We=c[35]<<15|c[34]>>>17,_e=c[45]<<29|c[44]>>>3,Ie=c[44]<<29|c[45]>>>3,ye=c[6]<<28|c[7]>>>4,me=c[7]<<28|c[6]>>>4,Le=c[17]<<23|c[16]>>>9,Ve=c[16]<<23|c[17]>>>9,Pe=c[26]<<25|c[27]>>>7,Ee=c[27]<<25|c[26]>>>7,de=c[36]<<21|c[37]>>>11,le=c[37]<<21|c[36]>>>11,Ke=c[47]<<24|c[46]>>>8,je=c[46]<<24|c[47]>>>8,xe=c[8]<<27|c[9]>>>5,Be=c[9]<<27|c[8]>>>5,fe=c[18]<<20|c[19]>>>12,be=c[19]<<20|c[18]>>>12,ze=c[29]<<7|c[28]>>>25,Ye=c[28]<<7|c[29]>>>25,ve=c[38]<<8|c[39]>>>24,ke=c[39]<<8|c[38]>>>24,ce=c[48]<<14|c[49]>>>18,pe=c[49]<<14|c[48]>>>18,c[0]=ae^~se&oe,c[1]=re^~ie&ue,c[10]=ye^~fe&ge,c[11]=me^~be&Te,c[20]=we^~Ce&Pe,c[21]=Se^~Me&Ee,c[30]=xe^~Fe&$e,c[31]=Be^~De&Ne,c[40]=He^~Le&ze,c[41]=Ge^~Ve&Ye,c[2]=se^~oe&de,c[3]=ie^~ue&le,c[12]=fe^~ge&he,c[13]=be^~Te&Ae,c[22]=Ce^~Pe&ve,c[23]=Me^~Ee&ke,c[32]=Fe^~$e&Ue,c[33]=De^~Ne&We,c[42]=Le^~ze&Je,c[43]=Ve^~Ye&Xe,c[4]=oe^~de&ce,c[5]=ue^~le&pe,c[14]=ge^~he&_e,c[15]=Te^~Ae&Ie,c[24]=Pe^~ve&Oe,c[25]=Ee^~ke&Re,c[34]=$e^~Ue&Ke,c[35]=Ne^~We&je,c[44]=ze^~Je&Ze,c[45]=Ye^~Xe&Qe,c[6]=de^~ce&ae,c[7]=le^~pe&re,c[16]=he^~_e&ye,c[17]=Ae^~Ie&me,c[26]=ve^~Oe&we,c[27]=ke^~Re&Se,c[36]=Ue^~Ke&xe,c[37]=We^~je&Be,c[46]=Je^~Ze&He,c[47]=Xe^~Qe&Ge,c[8]=ce^~ae&se,c[9]=pe^~re&ie,c[18]=_e^~ye&fe,c[19]=Ie^~me&be,c[28]=Oe^~we&Ce,c[29]=Re^~Se&Me,c[38]=Ke^~xe&Fe,c[39]=je^~Be&De,c[48]=Ze^~He&Le,c[49]=Qe^~Ge&Ve,c[0]^=b[M],c[1]^=b[M+1]};if(s)e.exports=W;else for(L=0;L<U.length;++L)r[U[L]]=W[U[L]]})()})(sha3);var sha3Exports=sha3.exports,sha256={exports:{}};(function(module){(function(){var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof address.dist.process=="object"&&address.dist.process.versions&&address.dist.process.versions.node;NODE_JS?root=address.commonjsGlobal:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&!0&&module.exports,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(n){return new Sha256(t,!0).update(n)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(r){return t.create().update(r)};for(var n=0;n<OUTPUT_TYPES.length;++n){var a=OUTPUT_TYPES[n];t[a]=createOutputMethod(a,e)}return t},nodeWrap=function(method,is224){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),algorithm=is224?"sha224":"sha256",nodeMethod=function(e){if(typeof e=="string")return crypto.createHash(algorithm).update(e,"utf8").digest("hex");if(e==null)throw new Error(ERROR);return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash(algorithm).update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod},createHmacOutputMethod=function(e,t){return function(n,a){return new HmacSha256(n,t,!0).update(a)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(r){return new HmacSha256(r,e)},t.update=function(r,i){return t.create(r).update(i)};for(var n=0;n<OUTPUT_TYPES.length;++n){var a=OUTPUT_TYPES[n];t[a]=createHmacOutputMethod(a,e)}return t};function Sha256(e,t){t?(blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}Sha256.prototype.update=function(e){if(!this.finalized){var t,n=typeof e;if(n!=="string"){if(n==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);t=!0}for(var a,r=0,i,o=e.length,s=this.blocks;r<o;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),t)for(i=this.start;r<o&&i<64;++r)s[i>>2]|=e[r]<<SHIFT[i++&3];else for(i=this.start;r<o&&i<64;++r)a=e.charCodeAt(r),a<128?s[i>>2]|=a<<SHIFT[i++&3]:a<2048?(s[i>>2]|=(192|a>>6)<<SHIFT[i++&3],s[i>>2]|=(128|a&63)<<SHIFT[i++&3]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<SHIFT[i++&3],s[i>>2]|=(128|a>>6&63)<<SHIFT[i++&3],s[i>>2]|=(128|a&63)<<SHIFT[i++&3]):(a=65536+((a&1023)<<10|e.charCodeAt(++r)&1023),s[i>>2]|=(240|a>>18)<<SHIFT[i++&3],s[i>>2]|=(128|a>>12&63)<<SHIFT[i++&3],s[i>>2]|=(128|a>>6&63)<<SHIFT[i++&3],s[i>>2]|=(128|a&63)<<SHIFT[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=s[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,i=this.h5,o=this.h6,s=this.h7,d=this.blocks,u,l,p,f,y,m,b,g,h,T,A;for(u=16;u<64;++u)y=d[u-15],l=(y>>>7|y<<25)^(y>>>18|y<<14)^y>>>3,y=d[u-2],p=(y>>>17|y<<15)^(y>>>19|y<<13)^y>>>10,d[u]=d[u-16]+l+d[u-7]+p<<0;for(A=t&n,u=0;u<64;u+=4)this.first?(this.is224?(g=300032,y=d[0]-1413257819,s=y-150054599<<0,a=y+24177077<<0):(g=704751109,y=d[0]-210244248,s=y-1521486534<<0,a=y+143694565<<0),this.first=!1):(l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),p=(r>>>6|r<<26)^(r>>>11|r<<21)^(r>>>25|r<<7),g=e&t,f=g^e&n^A,b=r&i^~r&o,y=s+p+b+K[u]+d[u],m=l+f,s=a+y<<0,a=y+m<<0),l=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),p=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),h=a&e,f=h^a&t^g,b=s&r^~s&i,y=o+p+b+K[u+1]+d[u+1],m=l+f,o=n+y<<0,n=y+m<<0,l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),p=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),T=n&a,f=T^n&e^h,b=o&s^~o&r,y=i+p+b+K[u+2]+d[u+2],m=l+f,i=t+y<<0,t=y+m<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),p=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),A=t&n,f=A^t&a^T,b=i&o^~i&s,y=r+p+b+K[u+3]+d[u+3],m=l+f,r=e+y<<0,e=y+m<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+n<<0,this.h3=this.h3+a<<0,this.h4=this.h4+r<<0,this.h5=this.h5+i<<0,this.h6=this.h6+o<<0,this.h7=this.h7+s<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,i=this.h5,o=this.h6,s=this.h7,d=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15];return this.is224||(d+=HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]),d},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,i=this.h5,o=this.h6,s=this.h7,d=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,a>>24&255,a>>16&255,a>>8&255,a&255,r>>24&255,r>>16&255,r>>8&255,r&255,i>>24&255,i>>16&255,i>>8&255,i&255,o>>24&255,o>>16&255,o>>8&255,o&255];return this.is224||d.push(s>>24&255,s>>16&255,s>>8&255,s&255),d},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,n){var a,r=typeof e;if(r==="string"){var i=[],o=e.length,s=0,d;for(a=0;a<o;++a)d=e.charCodeAt(a),d<128?i[s++]=d:d<2048?(i[s++]=192|d>>6,i[s++]=128|d&63):d<55296||d>=57344?(i[s++]=224|d>>12,i[s++]=128|d>>6&63,i[s++]=128|d&63):(d=65536+((d&1023)<<10|e.charCodeAt(++a)&1023),i[s++]=240|d>>18,i[s++]=128|d>>12&63,i[s++]=128|d>>6&63,i[s++]=128|d&63);e=i}else if(r==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var u=[],l=[];for(a=0;a<64;++a){var p=e[a]||0;u[a]=92^p,l[a]=54^p}Sha256.call(this,t,n),this.update(l),this.oKeyPad=u,this.inner=!0,this.sharedMemory=n}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256);var sha256Exports=sha256.exports;function base$1(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let u=0;u<t.length;u++)t[u]=255;for(let u=0;u<e.length;u++){const l=e.charAt(u),p=l.charCodeAt(0);if(t[p]!==255)throw new TypeError(l+" is ambiguous");t[p]=u}const n=e.length,a=e.charAt(0),r=Math.log(n)/Math.log(256),i=Math.log(256)/Math.log(n);function o(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";let l=0,p=0,f=0;const y=u.length;for(;f!==y&&u[f]===0;)f++,l++;const m=(y-f)*i+1>>>0,b=new Uint8Array(m);for(;f!==y;){let T=u[f],A=0;for(let S=m-1;(T!==0||A<p)&&S!==-1;S--,A++)T+=256*b[S]>>>0,b[S]=T%n>>>0,T=T/n>>>0;if(T!==0)throw new Error("Non-zero carry");p=A,f++}let g=m-p;for(;g!==m&&b[g]===0;)g++;let h=a.repeat(l);for(;g<m;++g)h+=e.charAt(b[g]);return h}function s(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;let l=0,p=0,f=0;for(;u[l]===a;)p++,l++;const y=(u.length-l)*r+1>>>0,m=new Uint8Array(y);for(;l<u.length;){const T=u.charCodeAt(l);if(T>255)return;let A=t[T];if(A===255)return;let S=0;for(let w=y-1;(A!==0||S<f)&&w!==-1;w--,S++)A+=n*m[w]>>>0,m[w]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");f=S,l++}let b=y-f;for(;b!==y&&m[b]===0;)b++;const g=new Uint8Array(p+(y-b));let h=p;for(;b!==y;)g[h++]=m[b++];return g}function d(u){const l=s(u);if(l)return l;throw new Error("Non-base"+n+" character")}return{encode:o,decodeUnsafe:s,decode:d}}var ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base$1(ALPHABET$1);const toBase58=e=>address.base58.encode(e),fromBase58=e=>address.base58.decode(e);function fromBase64(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))}const CHUNK_SIZE=8192;function toBase64(e){if(e.length<CHUNK_SIZE)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=CHUNK_SIZE){const a=e.slice(n,n+CHUNK_SIZE);t+=String.fromCharCode(...a)}return btoa(t)}function fromHex(e){var r;const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2===0?t:`0${t}`,a=((r=n.match(/[0-9a-fA-F]{2}/g))==null?void 0:r.map(i=>parseInt(i,16)))??[];if(a.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(a)}function toHex(e){return e.reduce((t,n)=>t+n.toString(16).padStart(2,"0"),"")}function chunk(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,a)=>e.slice(a*t,(a+1)*t))}function ulebEncode(e){const t=[];let n=0;if(e===0)return[0];for(;e>0;)t[n]=e&127,(e>>=7)&&(t[n]|=128),n+=1;return t}function ulebDecode(e){let t=0,n=0,a=0;for(;;){const r=e[a];if(a+=1,t|=(r&127)<<n,!(r&128))break;n+=7}return{value:t,length:a}}class BcsReader{constructor(t){this.bytePosition=0,this.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength)}shift(t){return this.bytePosition+=t,this}read8(){const t=this.dataView.getUint8(this.bytePosition);return this.shift(1),t}read16(){const t=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),t}read32(){const t=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),t}read64(){const t=this.read32(),a=this.read32().toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+a).toString(10)}read128(){const t=BigInt(this.read64()),a=BigInt(this.read64()).toString(16)+t.toString(16).padStart(16,"0");return BigInt("0x"+a).toString(10)}read256(){const t=BigInt(this.read128()),a=BigInt(this.read128()).toString(16)+t.toString(16).padStart(32,"0");return BigInt("0x"+a).toString(10)}readBytes(t){const n=this.bytePosition+this.dataView.byteOffset,a=new Uint8Array(this.dataView.buffer,n,t);return this.shift(t),a}readULEB(){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t),{value:a,length:r}=ulebDecode(n);return this.shift(r),a}readVec(t){const n=this.readULEB(),a=[];for(let r=0;r<n;r++)a.push(t(this,r,n));return a}}function encodeStr(e,t){switch(t){case"base58":return toBase58(e);case"base64":return toBase64(e);case"hex":return toHex(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function splitGenericParameters(e,t=["<",">"]){const[n,a]=t,r=[];let i="",o=0;for(let s=0;s<e.length;s++){const d=e[s];if(d===n&&o++,d===a&&o--,o===0&&d===","){r.push(i.trim()),i="";continue}i+=d}return r.push(i.trim()),r}class BcsWriter{constructor({initialSize:t=1024,maxSize:n=1/0,allocateSize:a=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=n,this.allocateSize=a,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){const n=this.bytePosition+t;if(n>this.size){const a=Math.min(this.maxSize,this.size+this.allocateSize);if(n>a)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${n}`);this.size=a;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return toLittleEndian(BigInt(t),8).forEach(n=>this.write8(n)),this}write128(t){return toLittleEndian(BigInt(t),16).forEach(n=>this.write8(n)),this}write256(t){return toLittleEndian(BigInt(t),32).forEach(n=>this.write8(n)),this}writeULEB(t){return ulebEncode(t).forEach(n=>this.write8(n)),this}writeVec(t,n){return this.writeULEB(t.length),Array.from(t).forEach((a,r)=>n(this,a,r,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return encodeStr(this.toBytes(),t)}}function toLittleEndian(e,t){const n=new Uint8Array(t);let a=0;for(;e>0;)n[a]=Number(e%BigInt(256)),e=e/BigInt(256),a+=1;return n}var __typeError$1=e=>{throw TypeError(e)},__accessCheck$1=(e,t,n)=>t.has(e)||__typeError$1("Cannot "+n),__privateGet$1=(e,t,n)=>(__accessCheck$1(e,t,"read from private field"),n?n.call(e):t.get(e)),__privateAdd$1=(e,t,n)=>t.has(e)?__typeError$1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),__privateSet$1=(e,t,n,a)=>(__accessCheck$1(e,t,"write to private field"),t.set(e,n),n),_write,_serialize,_schema,_bytes;const _BcsType=class et{constructor(t){__privateAdd$1(this,_write),__privateAdd$1(this,_serialize),this.name=t.name,this.read=t.read,this.serializedSize=t.serializedSize??(()=>null),__privateSet$1(this,_write,t.write),__privateSet$1(this,_serialize,t.serialize??((n,a)=>{const r=new BcsWriter({initialSize:this.serializedSize(n)??void 0,...a});return __privateGet$1(this,_write).call(this,n,r),r.toBytes()})),this.validate=t.validate??(()=>{})}write(t,n){this.validate(t),__privateGet$1(this,_write).call(this,t,n)}serialize(t,n){return this.validate(t),new SerializedBcs(this,__privateGet$1(this,_serialize).call(this,t,n))}parse(t){const n=new BcsReader(t);return this.read(n)}fromHex(t){return this.parse(fromHex(t))}fromBase58(t){return this.parse(fromBase58(t))}fromBase64(t){return this.parse(fromBase64(t))}transform({name:t,input:n,output:a,validate:r}){return new et({name:t??this.name,read:i=>a?a(this.read(i)):this.read(i),write:(i,o)=>__privateGet$1(this,_write).call(this,n?n(i):i,o),serializedSize:i=>this.serializedSize(n?n(i):i),serialize:(i,o)=>__privateGet$1(this,_serialize).call(this,n?n(i):i,o),validate:i=>{r==null||r(i),this.validate(n?n(i):i)}})}};_write=new WeakMap;_serialize=new WeakMap;let BcsType=_BcsType;const SERIALIZED_BCS_BRAND=Symbol.for("@mysten/serialized-bcs");function isSerializedBcs(e){return!!e&&typeof e=="object"&&e[SERIALIZED_BCS_BRAND]===!0}class SerializedBcs{constructor(t,n){__privateAdd$1(this,_schema),__privateAdd$1(this,_bytes),__privateSet$1(this,_schema,t),__privateSet$1(this,_bytes,n)}get[SERIALIZED_BCS_BRAND](){return!0}toBytes(){return __privateGet$1(this,_bytes)}toHex(){return toHex(__privateGet$1(this,_bytes))}toBase64(){return toBase64(__privateGet$1(this,_bytes))}toBase58(){return toBase58(__privateGet$1(this,_bytes))}parse(){return __privateGet$1(this,_schema).parse(__privateGet$1(this,_bytes))}}_schema=new WeakMap;_bytes=new WeakMap;function fixedSizeBcsType({size:e,...t}){return new BcsType({...t,serializedSize:()=>e})}function uIntBcsType({readMethod:e,writeMethod:t,...n}){return fixedSizeBcsType({...n,read:a=>a[e](),write:(a,r)=>r[t](a),validate:a=>{var r;if(a<0||a>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${a}. Expected value in range 0-${n.maxValue}`);(r=n.validate)==null||r.call(n,a)}})}function bigUIntBcsType({readMethod:e,writeMethod:t,...n}){return fixedSizeBcsType({...n,read:a=>a[e](),write:(a,r)=>r[t](BigInt(a)),validate:a=>{var i;const r=BigInt(a);if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);(i=n.validate)==null||i.call(n,r)}})}function dynamicSizeBcsType({serialize:e,...t}){const n=new BcsType({...t,serialize:e,write:(a,r)=>{for(const i of n.serialize(a).toBytes())r.write8(i)}});return n}function stringLikeBcsType({toBytes:e,fromBytes:t,...n}){return new BcsType({...n,read:a=>{const r=a.readULEB(),i=a.readBytes(r);return t(i)},write:(a,r)=>{const i=e(a);r.writeULEB(i.length);for(let o=0;o<i.length;o++)r.write8(i[o])},serialize:a=>{const r=e(a),i=ulebEncode(r.length),o=new Uint8Array(i.length+r.length);return o.set(i,0),o.set(r,i.length),o},validate:a=>{var r;if(typeof a!="string")throw new TypeError(`Invalid ${n.name} value: ${a}. Expected string`);(r=n.validate)==null||r.call(n,a)}})}function lazyBcsType(e){let t=null;function n(){return t||(t=e()),t}return new BcsType({name:"lazy",read:a=>n().read(a),serializedSize:a=>n().serializedSize(a),write:(a,r)=>n().write(a,r),serialize:(a,r)=>n().serialize(a,r).toBytes()})}const bcs={u8(e){return uIntBcsType({name:"u8",readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...e})},u16(e){return uIntBcsType({name:"u16",readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...e})},u32(e){return uIntBcsType({name:"u32",readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e})},u64(e){return bigUIntBcsType({name:"u64",readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e})},u128(e){return bigUIntBcsType({name:"u128",readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e})},u256(e){return bigUIntBcsType({name:"u256",readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e})},bool(e){return fixedSizeBcsType({name:"bool",size:1,read:t=>t.read8()===1,write:(t,n)=>n.write8(t?1:0),...e,validate:t=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,t),typeof t!="boolean")throw new TypeError(`Expected boolean, found ${typeof t}`)}})},uleb128(e){return dynamicSizeBcsType({name:"uleb128",read:t=>t.readULEB(),serialize:t=>Uint8Array.from(ulebEncode(t)),...e})},bytes(e,t){return fixedSizeBcsType({name:`bytes[${e}]`,size:e,read:n=>n.readBytes(e),write:(n,a)=>{const r=new Uint8Array(n);for(let i=0;i<e;i++)a.write8(r[i]??0)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}})},byteVector(e){return new BcsType({name:"bytesVector",read:t=>{const n=t.readULEB();return t.readBytes(n)},write:(t,n)=>{const a=new Uint8Array(t);n.writeULEB(a.length);for(let r=0;r<a.length;r++)n.write8(a[r]??0)},...e,serializedSize:t=>{const n="length"in t?t.length:null;return n==null?null:ulebEncode(n).length+n},validate:t=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,t),!t||typeof t!="object"||!("length"in t))throw new TypeError(`Expected array, found ${typeof t}`)}})},string(e){return stringLikeBcsType({name:"string",toBytes:t=>new TextEncoder().encode(t),fromBytes:t=>new TextDecoder().decode(t),...e})},fixedArray(e,t,n){return new BcsType({name:`${t.name}[${e}]`,read:a=>{const r=new Array(e);for(let i=0;i<e;i++)r[i]=t.read(a);return r},write:(a,r)=>{for(const i of a)t.write(i,r)},...n,validate:a=>{var r;if((r=n==null?void 0:n.validate)==null||r.call(n,a),!a||typeof a!="object"||!("length"in a))throw new TypeError(`Expected array, found ${typeof a}`);if(a.length!==e)throw new TypeError(`Expected array of length ${e}, found ${a.length}`)}})},option(e){return bcs.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:t=>t==null?{None:!0}:{Some:t},output:t=>t.$kind==="Some"?t.Some:null})},vector(e,t){return new BcsType({name:`vector<${e.name}>`,read:n=>{const a=n.readULEB(),r=new Array(a);for(let i=0;i<a;i++)r[i]=e.read(n);return r},write:(n,a)=>{a.writeULEB(n.length);for(const r of n)e.write(r,a)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})},tuple(e,t){return new BcsType({name:`(${e.map(n=>n.name).join(", ")})`,serializedSize:n=>{let a=0;for(let r=0;r<e.length;r++){const i=e[r].serializedSize(n[r]);if(i==null)return null;a+=i}return a},read:n=>{const a=[];for(const r of e)a.push(r.read(n));return a},write:(n,a)=>{for(let r=0;r<e.length;r++)e[r].write(n[r],a)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!Array.isArray(n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${n.length}`)}})},struct(e,t,n){const a=Object.entries(t);return new BcsType({name:e,serializedSize:r=>{let i=0;for(const[o,s]of a){const d=s.serializedSize(r[o]);if(d==null)return null;i+=d}return i},read:r=>{const i={};for(const[o,s]of a)i[o]=s.read(r);return i},write:(r,i)=>{for(const[o,s]of a)s.write(r[o],i)},...n,validate:r=>{var i;if((i=n==null?void 0:n.validate)==null||i.call(n,r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`)}})},enum(e,t,n){const a=Object.entries(t);return new BcsType({name:e,read:r=>{const i=r.readULEB(),o=a[i];if(!o)throw new TypeError(`Unknown value ${i} for enum ${e}`);const[s,d]=o;return{[s]:(d==null?void 0:d.read(r))??!0,$kind:s}},write:(r,i)=>{const[o,s]=Object.entries(r).filter(([d])=>Object.hasOwn(t,d))[0];for(let d=0;d<a.length;d++){const[u,l]=a[d];if(u===o){i.writeULEB(d),l==null||l.write(s,i);return}}},...n,validate:r=>{var s;if((s=n==null?void 0:n.validate)==null||s.call(n,r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`);const i=Object.keys(r).filter(d=>r[d]!==void 0&&Object.hasOwn(t,d));if(i.length!==1)throw new TypeError(`Expected object with one key, but found ${i.length} for type ${e}}`);const[o]=i;if(!Object.hasOwn(t,o))throw new TypeError(`Invalid enum variant ${o}`)}})},map(e,t){return bcs.vector(bcs.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:n=>[...n.entries()],output:n=>{const a=new Map;for(const[r,i]of n)a.set(r,i);return a}})},lazy(e){return lazyBcsType(e)}},SUI_NS_NAME_REGEX=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,SUI_NS_DOMAIN_REGEX=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,MAX_SUI_NS_NAME_LENGTH=235;function isValidSuiNSName(e){return e.length>MAX_SUI_NS_NAME_LENGTH?!1:e.includes("@")?SUI_NS_NAME_REGEX.test(e):SUI_NS_DOMAIN_REGEX.test(e)}const NAME_PATTERN=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,VERSION_REGEX=/^\d+$/,MAX_APP_SIZE=64,NAME_SEPARATOR$1="/",isValidNamedPackage=e=>{const t=e.split(NAME_SEPARATOR$1);if(t.length<2||t.length>3)return!1;const[n,a,r]=t;return r!==void 0&&!VERSION_REGEX.test(r)||!isValidSuiNSName(n)?!1:NAME_PATTERN.test(a)&&a.length<MAX_APP_SIZE},isValidNamedType=e=>{const t=e.split(/::|<|>|,/);for(const n of t)if(n.includes(NAME_SEPARATOR$1)&&!isValidNamedPackage(n))return!1;return!0},SUI_ADDRESS_LENGTH=32;function isValidSuiAddress(e){return isHex(e)&&getHexByteLength(e)===SUI_ADDRESS_LENGTH}function normalizeSuiAddress(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(SUI_ADDRESS_LENGTH*2,"0")}`}function normalizeSuiObjectId(e,t=!1){return normalizeSuiAddress(e,t)}function isHex(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2===0}function getHexByteLength(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}const VECTOR_REGEX=/^vector<(.+)>$/,STRUCT_REGEX=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class TypeTagSerializer{static parseFromStr(t,n=!1){if(t==="address")return{address:null};if(t==="bool")return{bool:null};if(t==="u8")return{u8:null};if(t==="u16")return{u16:null};if(t==="u32")return{u32:null};if(t==="u64")return{u64:null};if(t==="u128")return{u128:null};if(t==="u256")return{u256:null};if(t==="signer")return{signer:null};const a=t.match(VECTOR_REGEX);if(a)return{vector:TypeTagSerializer.parseFromStr(a[1],n)};const r=t.match(STRUCT_REGEX);if(r)return{struct:{address:n?normalizeSuiAddress(r[1]):r[1],module:r[2],name:r[3],typeParams:r[5]===void 0?[]:TypeTagSerializer.parseStructTypeArgs(r[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${t}`)}static parseStructTypeArgs(t,n=!1){return splitGenericParameters(t).map(a=>TypeTagSerializer.parseFromStr(a,n))}static tagToString(t){if("bool"in t)return"bool";if("u8"in t)return"u8";if("u16"in t)return"u16";if("u32"in t)return"u32";if("u64"in t)return"u64";if("u128"in t)return"u128";if("u256"in t)return"u256";if("address"in t)return"address";if("signer"in t)return"signer";if("vector"in t)return`vector<${TypeTagSerializer.tagToString(t.vector)}>`;if("struct"in t){const n=t.struct,a=n.typeParams.map(TypeTagSerializer.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${a?`<${a}>`:""}`}throw new Error("Invalid TypeTag")}}function unsafe_u64(e){return bcs.u64({name:"unsafe_u64",...e}).transform({input:t=>t,output:t=>Number(t)})}function optionEnum(e){return bcs.enum("Option",{None:null,Some:e})}const Address=bcs.bytes(SUI_ADDRESS_LENGTH).transform({validate:e=>{const t=typeof e=="string"?e:toHex(e);if(!t||!isValidSuiAddress(normalizeSuiAddress(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>typeof e=="string"?fromHex(normalizeSuiAddress(e)):e,output:e=>normalizeSuiAddress(toHex(e))}),ObjectDigest=bcs.vector(bcs.u8()).transform({name:"ObjectDigest",input:e=>fromBase58(e),output:e=>toBase58(new Uint8Array(e)),validate:e=>{if(fromBase58(e).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),SuiObjectRef=bcs.struct("SuiObjectRef",{objectId:Address,version:bcs.u64(),digest:ObjectDigest}),SharedObjectRef=bcs.struct("SharedObjectRef",{objectId:Address,initialSharedVersion:bcs.u64(),mutable:bcs.bool()}),ObjectArg$3=bcs.enum("ObjectArg",{ImmOrOwnedObject:SuiObjectRef,SharedObject:SharedObjectRef,Receiving:SuiObjectRef}),Owner=bcs.enum("Owner",{AddressOwner:Address,ObjectOwner:Address,Shared:bcs.struct("Shared",{initialSharedVersion:bcs.u64()}),Immutable:null,ConsensusAddressOwner:bcs.struct("ConsensusAddressOwner",{owner:Address,startVersion:bcs.u64()})}),CallArg$2=bcs.enum("CallArg",{Pure:bcs.struct("Pure",{bytes:bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})}),Object:ObjectArg$3}),InnerTypeTag=bcs.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:bcs.lazy(()=>InnerTypeTag),struct:bcs.lazy(()=>StructTag$1),u16:null,u32:null,u256:null}),TypeTag$1=InnerTypeTag.transform({input:e=>typeof e=="string"?TypeTagSerializer.parseFromStr(e,!0):e,output:e=>TypeTagSerializer.tagToString(e)}),Argument$2=bcs.enum("Argument",{GasCoin:null,Input:bcs.u16(),Result:bcs.u16(),NestedResult:bcs.tuple([bcs.u16(),bcs.u16()])}),ProgrammableMoveCall$2=bcs.struct("ProgrammableMoveCall",{package:Address,module:bcs.string(),function:bcs.string(),typeArguments:bcs.vector(TypeTag$1),arguments:bcs.vector(Argument$2)}),Command$2=bcs.enum("Command",{MoveCall:ProgrammableMoveCall$2,TransferObjects:bcs.struct("TransferObjects",{objects:bcs.vector(Argument$2),address:Argument$2}),SplitCoins:bcs.struct("SplitCoins",{coin:Argument$2,amounts:bcs.vector(Argument$2)}),MergeCoins:bcs.struct("MergeCoins",{destination:Argument$2,sources:bcs.vector(Argument$2)}),Publish:bcs.struct("Publish",{modules:bcs.vector(bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})),dependencies:bcs.vector(Address)}),MakeMoveVec:bcs.struct("MakeMoveVec",{type:optionEnum(TypeTag$1).transform({input:e=>e===null?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:bcs.vector(Argument$2)}),Upgrade:bcs.struct("Upgrade",{modules:bcs.vector(bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})),dependencies:bcs.vector(Address),package:Address,ticket:Argument$2})}),ProgrammableTransaction=bcs.struct("ProgrammableTransaction",{inputs:bcs.vector(CallArg$2),commands:bcs.vector(Command$2)}),TransactionKind=bcs.enum("TransactionKind",{ProgrammableTransaction,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),TransactionExpiration$3=bcs.enum("TransactionExpiration",{None:null,Epoch:unsafe_u64()}),StructTag$1=bcs.struct("StructTag",{address:Address,module:bcs.string(),name:bcs.string(),typeParams:bcs.vector(InnerTypeTag)}),GasData$2=bcs.struct("GasData",{payment:bcs.vector(SuiObjectRef),owner:Address,price:bcs.u64(),budget:bcs.u64()}),TransactionDataV1=bcs.struct("TransactionDataV1",{kind:TransactionKind,sender:Address,gasData:GasData$2,expiration:TransactionExpiration$3}),TransactionData$1=bcs.enum("TransactionData",{V1:TransactionDataV1}),IntentScope=bcs.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),IntentVersion=bcs.enum("IntentVersion",{V0:null}),AppId=bcs.enum("AppId",{Sui:null}),Intent=bcs.struct("Intent",{scope:IntentScope,version:IntentVersion,appId:AppId});function IntentMessage(e){return bcs.struct(`IntentMessage<${e.name}>`,{intent:Intent,value:e})}const CompressedSignature=bcs.enum("CompressedSignature",{ED25519:bcs.fixedArray(64,bcs.u8()),Secp256k1:bcs.fixedArray(64,bcs.u8()),Secp256r1:bcs.fixedArray(64,bcs.u8()),ZkLogin:bcs.vector(bcs.u8())}),PublicKey=bcs.enum("PublicKey",{ED25519:bcs.fixedArray(32,bcs.u8()),Secp256k1:bcs.fixedArray(33,bcs.u8()),Secp256r1:bcs.fixedArray(33,bcs.u8()),ZkLogin:bcs.vector(bcs.u8())}),MultiSigPkMap=bcs.struct("MultiSigPkMap",{pubKey:PublicKey,weight:bcs.u8()}),MultiSigPublicKey=bcs.struct("MultiSigPublicKey",{pk_map:bcs.vector(MultiSigPkMap),threshold:bcs.u16()}),MultiSig=bcs.struct("MultiSig",{sigs:bcs.vector(CompressedSignature),bitmap:bcs.u16(),multisig_pk:MultiSigPublicKey}),base64String=bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))}),SenderSignedTransaction=bcs.struct("SenderSignedTransaction",{intentMessage:IntentMessage(TransactionData$1),txSignatures:bcs.vector(base64String)}),SenderSignedData=bcs.vector(SenderSignedTransaction,{name:"SenderSignedData"}),PasskeyAuthenticator=bcs.struct("PasskeyAuthenticator",{authenticatorData:bcs.vector(bcs.u8()),clientDataJson:bcs.string(),userSignature:bcs.vector(bcs.u8())}),PackageUpgradeError=bcs.enum("PackageUpgradeError",{UnableToFetchPackage:bcs.struct("UnableToFetchPackage",{packageId:Address}),NotAPackage:bcs.struct("NotAPackage",{objectId:Address}),IncompatibleUpgrade:null,DigestDoesNotMatch:bcs.struct("DigestDoesNotMatch",{digest:bcs.vector(bcs.u8())}),UnknownUpgradePolicy:bcs.struct("UnknownUpgradePolicy",{policy:bcs.u8()}),PackageIDDoesNotMatch:bcs.struct("PackageIDDoesNotMatch",{packageId:Address,ticketId:Address})}),ModuleId=bcs.struct("ModuleId",{address:Address,name:bcs.string()}),MoveLocation=bcs.struct("MoveLocation",{module:ModuleId,function:bcs.u16(),instruction:bcs.u16(),functionName:bcs.option(bcs.string())}),CommandArgumentError=bcs.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:bcs.struct("IndexOutOfBounds",{idx:bcs.u16()}),SecondaryIndexOutOfBounds:bcs.struct("SecondaryIndexOutOfBounds",{resultIdx:bcs.u16(),secondaryIdx:bcs.u16()}),InvalidResultArity:bcs.struct("InvalidResultArity",{resultIdx:bcs.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),TypeArgumentError=bcs.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),ExecutionFailureStatus=bcs.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:bcs.struct("MoveObjectTooBig",{objectSize:bcs.u64(),maxObjectSize:bcs.u64()}),MovePackageTooBig:bcs.struct("MovePackageTooBig",{objectSize:bcs.u64(),maxObjectSize:bcs.u64()}),CircularObjectOwnership:bcs.struct("CircularObjectOwnership",{object:Address}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:bcs.option(MoveLocation),MoveAbort:bcs.tuple([MoveLocation,bcs.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:bcs.struct("CommandArgumentError",{argIdx:bcs.u16(),kind:CommandArgumentError}),TypeArgumentError:bcs.struct("TypeArgumentError",{argumentIdx:bcs.u16(),kind:TypeArgumentError}),UnusedValueWithoutDrop:bcs.struct("UnusedValueWithoutDrop",{resultIdx:bcs.u16(),secondaryIdx:bcs.u16()}),InvalidPublicFunctionReturnType:bcs.struct("InvalidPublicFunctionReturnType",{idx:bcs.u16()}),InvalidTransferObject:null,EffectsTooLarge:bcs.struct("EffectsTooLarge",{currentSize:bcs.u64(),maxSize:bcs.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:bcs.struct("PackageUpgradeError",{upgradeError:PackageUpgradeError}),WrittenObjectsTooLarge:bcs.struct("WrittenObjectsTooLarge",{currentSize:bcs.u64(),maxSize:bcs.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:bcs.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:bcs.vector(Address)}),AddressDeniedForCoin:bcs.struct("AddressDeniedForCoin",{address:Address,coinType:bcs.string()}),CoinTypeGlobalPause:bcs.struct("CoinTypeGlobalPause",{coinType:bcs.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),ExecutionStatus=bcs.enum("ExecutionStatus",{Success:null,Failed:bcs.struct("ExecutionFailed",{error:ExecutionFailureStatus,command:bcs.option(bcs.u64())})}),GasCostSummary=bcs.struct("GasCostSummary",{computationCost:bcs.u64(),storageCost:bcs.u64(),storageRebate:bcs.u64(),nonRefundableStorageFee:bcs.u64()}),TransactionEffectsV1=bcs.struct("TransactionEffectsV1",{status:ExecutionStatus,executedEpoch:bcs.u64(),gasUsed:GasCostSummary,modifiedAtVersions:bcs.vector(bcs.tuple([Address,bcs.u64()])),sharedObjects:bcs.vector(SuiObjectRef),transactionDigest:ObjectDigest,created:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),mutated:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),unwrapped:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),deleted:bcs.vector(SuiObjectRef),unwrappedThenDeleted:bcs.vector(SuiObjectRef),wrapped:bcs.vector(SuiObjectRef),gasObject:bcs.tuple([SuiObjectRef,Owner]),eventsDigest:bcs.option(ObjectDigest),dependencies:bcs.vector(ObjectDigest)}),VersionDigest=bcs.tuple([bcs.u64(),ObjectDigest]),ObjectIn=bcs.enum("ObjectIn",{NotExist:null,Exist:bcs.tuple([VersionDigest,Owner])}),ObjectOut=bcs.enum("ObjectOut",{NotExist:null,ObjectWrite:bcs.tuple([ObjectDigest,Owner]),PackageWrite:VersionDigest}),IDOperation=bcs.enum("IDOperation",{None:null,Created:null,Deleted:null}),EffectsObjectChange=bcs.struct("EffectsObjectChange",{inputState:ObjectIn,outputState:ObjectOut,idOperation:IDOperation}),UnchangedSharedKind=bcs.enum("UnchangedSharedKind",{ReadOnlyRoot:VersionDigest,MutateDeleted:bcs.u64(),ReadDeleted:bcs.u64(),Cancelled:bcs.u64(),PerEpochConfig:null}),TransactionEffectsV2=bcs.struct("TransactionEffectsV2",{status:ExecutionStatus,executedEpoch:bcs.u64(),gasUsed:GasCostSummary,transactionDigest:ObjectDigest,gasObjectIndex:bcs.option(bcs.u32()),eventsDigest:bcs.option(ObjectDigest),dependencies:bcs.vector(ObjectDigest),lamportVersion:bcs.u64(),changedObjects:bcs.vector(bcs.tuple([Address,EffectsObjectChange])),unchangedSharedObjects:bcs.vector(bcs.tuple([Address,UnchangedSharedKind])),auxDataDigest:bcs.option(ObjectDigest)}),TransactionEffects=bcs.enum("TransactionEffects",{V1:TransactionEffectsV1,V2:TransactionEffectsV2});function pureBcsSchemaFromTypeName(e){switch(e){case"u8":return bcs.u8();case"u16":return bcs.u16();case"u32":return bcs.u32();case"u64":return bcs.u64();case"u128":return bcs.u128();case"u256":return bcs.u256();case"bool":return bcs.bool();case"string":return bcs.string();case"id":case"address":return Address}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[n,a]=t.slice(1);return n==="vector"?bcs.vector(pureBcsSchemaFromTypeName(a)):bcs.option(pureBcsSchemaFromTypeName(a))}throw new Error(`Invalid Pure type name: ${e}`)}const suiBcs={...bcs,U8:bcs.u8(),U16:bcs.u16(),U32:bcs.u32(),U64:bcs.u64(),U128:bcs.u128(),U256:bcs.u256(),ULEB128:bcs.uleb128(),Bool:bcs.bool(),String:bcs.string(),Address,AppId,Argument:Argument$2,CallArg:CallArg$2,Command:Command$2,CompressedSignature,GasData:GasData$2,Intent,IntentMessage,IntentScope,IntentVersion,MultiSig,MultiSigPkMap,MultiSigPublicKey,ObjectArg:ObjectArg$3,ObjectDigest,Owner,PasskeyAuthenticator,ProgrammableMoveCall:ProgrammableMoveCall$2,ProgrammableTransaction,PublicKey,SenderSignedData,SenderSignedTransaction,SharedObjectRef,StructTag:StructTag$1,SuiObjectRef,TransactionData:TransactionData$1,TransactionDataV1,TransactionEffects,TransactionExpiration:TransactionExpiration$3,TransactionKind,TypeTag:TypeTag$1};BigInt(1e9);const MOVE_STDLIB_ADDRESS="0x1",SUI_FRAMEWORK_ADDRESS="0x2",SUI_CLOCK_OBJECT_ID=normalizeSuiObjectId("0x6"),SUI_TYPE_ARG=`${SUI_FRAMEWORK_ADDRESS}::sui::SUI`;normalizeSuiObjectId("0x5");const OBJECT_MODULE_NAME="object",ID_STRUCT_NAME="ID",STD_ASCII_MODULE_NAME="ascii",STD_ASCII_STRUCT_NAME="String",STD_UTF8_MODULE_NAME="string",STD_UTF8_STRUCT_NAME="String",STD_OPTION_MODULE_NAME="option",STD_OPTION_STRUCT_NAME="Option";function isTxContext(e){const t=typeof e.body=="object"&&"datatype"in e.body?e.body.datatype:null;return!!t&&normalizeSuiAddress(t.package)===normalizeSuiAddress("0x2")&&t.module==="tx_context"&&t.type==="TxContext"}function getPureBcsSchema(e){if(typeof e=="string")switch(e){case"address":return suiBcs.Address;case"bool":return suiBcs.Bool;case"u8":return suiBcs.U8;case"u16":return suiBcs.U16;case"u32":return suiBcs.U32;case"u64":return suiBcs.U64;case"u128":return suiBcs.U128;case"u256":return suiBcs.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if(e.vector==="u8")return suiBcs.vector(suiBcs.U8).transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});const t=getPureBcsSchema(e.vector);return t?suiBcs.vector(t):null}if("datatype"in e){const t=normalizeSuiAddress(e.datatype.package);if(t===normalizeSuiAddress(MOVE_STDLIB_ADDRESS)){if(e.datatype.module===STD_ASCII_MODULE_NAME&&e.datatype.type===STD_ASCII_STRUCT_NAME||e.datatype.module===STD_UTF8_MODULE_NAME&&e.datatype.type===STD_UTF8_STRUCT_NAME)return suiBcs.String;if(e.datatype.module===STD_OPTION_MODULE_NAME&&e.datatype.type===STD_OPTION_STRUCT_NAME){const n=getPureBcsSchema(e.datatype.typeParameters[0]);return n?suiBcs.vector(n):null}}if(t===normalizeSuiAddress(SUI_FRAMEWORK_ADDRESS)&&e.datatype.module===OBJECT_MODULE_NAME&&e.datatype.type===ID_STRUCT_NAME)return suiBcs.Address}return null}function normalizedTypeToMoveTypeSignature(e){return typeof e=="object"&&"Reference"in e?{ref:"&",body:normalizedTypeToMoveTypeSignatureBody(e.Reference)}:typeof e=="object"&&"MutableReference"in e?{ref:"&mut",body:normalizedTypeToMoveTypeSignatureBody(e.MutableReference)}:{ref:null,body:normalizedTypeToMoveTypeSignatureBody(e)}}function normalizedTypeToMoveTypeSignatureBody(e){if(typeof e=="string")switch(e){case"Address":return"address";case"Bool":return"bool";case"U8":return"u8";case"U16":return"u16";case"U32":return"u32";case"U64":return"u64";case"U128":return"u128";case"U256":return"u256";default:throw new Error(`Unexpected type ${e}`)}if("Vector"in e)return{vector:normalizedTypeToMoveTypeSignatureBody(e.Vector)};if("Struct"in e)return{datatype:{package:e.Struct.address,module:e.Struct.module,type:e.Struct.name,typeParameters:e.Struct.typeArguments.map(normalizedTypeToMoveTypeSignatureBody)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}function Pure(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?toBase64(e):e.toBase64()}}}const Inputs={Pure,ObjectRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:normalizeSuiAddress(e)}}}},SharedObjectRef({objectId:e,mutable:t,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:normalizeSuiAddress(e)}}}},ReceivingRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:normalizeSuiAddress(e)}}}}};function safeEnum(e){const t=Object.entries(e).map(([n,a])=>platform.object({[n]:a}));return platform.pipe(platform.union(t),platform.transform(n=>({...n,$kind:Object.keys(n)[0]})))}const SuiAddress=platform.pipe(platform.string(),platform.transform(e=>normalizeSuiAddress(e)),platform.check(isValidSuiAddress)),ObjectID=SuiAddress,BCSBytes=platform.string(),JsonU64=platform.pipe(platform.union([platform.string(),platform.pipe(platform.number(),platform.integer())]),platform.check(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),ObjectRef$1=platform.object({objectId:SuiAddress,version:JsonU64,digest:platform.string()}),Argument$1=platform.pipe(platform.union([platform.object({GasCoin:platform.literal(!0)}),platform.object({Input:platform.pipe(platform.number(),platform.integer()),type:platform.optional(platform.literal("pure"))}),platform.object({Input:platform.pipe(platform.number(),platform.integer()),type:platform.optional(platform.literal("object"))}),platform.object({Result:platform.pipe(platform.number(),platform.integer())}),platform.object({NestedResult:platform.tuple([platform.pipe(platform.number(),platform.integer()),platform.pipe(platform.number(),platform.integer())])})]),platform.transform(e=>({...e,$kind:Object.keys(e)[0]}))),GasData$1=platform.object({budget:platform.nullable(JsonU64),price:platform.nullable(JsonU64),owner:platform.nullable(SuiAddress),payment:platform.nullable(platform.array(ObjectRef$1))}),OpenMoveTypeSignatureBody=platform.union([platform.literal("address"),platform.literal("bool"),platform.literal("u8"),platform.literal("u16"),platform.literal("u32"),platform.literal("u64"),platform.literal("u128"),platform.literal("u256"),platform.object({vector:platform.lazy(()=>OpenMoveTypeSignatureBody)}),platform.object({datatype:platform.object({package:platform.string(),module:platform.string(),type:platform.string(),typeParameters:platform.array(platform.lazy(()=>OpenMoveTypeSignatureBody))})}),platform.object({typeParameter:platform.pipe(platform.number(),platform.integer())})]),OpenMoveTypeSignature=platform.object({ref:platform.nullable(platform.union([platform.literal("&"),platform.literal("&mut")])),body:OpenMoveTypeSignatureBody}),ProgrammableMoveCall$1=platform.object({package:ObjectID,module:platform.string(),function:platform.string(),typeArguments:platform.array(platform.string()),arguments:platform.array(Argument$1),_argumentTypes:platform.optional(platform.nullable(platform.array(OpenMoveTypeSignature)))}),$Intent$1=platform.object({name:platform.string(),inputs:platform.record(platform.string(),platform.union([Argument$1,platform.array(Argument$1)])),data:platform.record(platform.string(),platform.unknown())}),Command$1=safeEnum({MoveCall:ProgrammableMoveCall$1,TransferObjects:platform.object({objects:platform.array(Argument$1),address:Argument$1}),SplitCoins:platform.object({coin:Argument$1,amounts:platform.array(Argument$1)}),MergeCoins:platform.object({destination:Argument$1,sources:platform.array(Argument$1)}),Publish:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID)}),MakeMoveVec:platform.object({type:platform.nullable(platform.string()),elements:platform.array(Argument$1)}),Upgrade:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID),package:ObjectID,ticket:Argument$1}),$Intent:$Intent$1}),ObjectArg$2=safeEnum({ImmOrOwnedObject:ObjectRef$1,SharedObject:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef$1}),CallArg$1=safeEnum({Object:ObjectArg$2,Pure:platform.object({bytes:BCSBytes}),UnresolvedPure:platform.object({value:platform.unknown()}),UnresolvedObject:platform.object({objectId:ObjectID,version:platform.optional(platform.nullable(JsonU64)),digest:platform.optional(platform.nullable(platform.string())),initialSharedVersion:platform.optional(platform.nullable(JsonU64))})}),NormalizedCallArg$1=safeEnum({Object:ObjectArg$2,Pure:platform.object({bytes:BCSBytes})}),TransactionExpiration$2=safeEnum({None:platform.literal(!0),Epoch:JsonU64}),TransactionData=platform.object({version:platform.literal(2),sender:platform.nullish(SuiAddress),expiration:platform.nullish(TransactionExpiration$2),gasData:GasData$1,inputs:platform.array(CallArg$1),commands:platform.array(Command$1)}),Commands={MoveCall(e){const[t,n="",a=""]="target"in e?e.target.split("::"):[e.package,e.module,e.function];return{$kind:"MoveCall",MoveCall:{package:t,module:n,function:a,typeArguments:e.typeArguments??[],arguments:e.arguments??[]}}},TransferObjects(e,t){return{$kind:"TransferObjects",TransferObjects:{objects:e.map(n=>platform.parse(Argument$1,n)),address:platform.parse(Argument$1,t)}}},SplitCoins(e,t){return{$kind:"SplitCoins",SplitCoins:{coin:platform.parse(Argument$1,e),amounts:t.map(n=>platform.parse(Argument$1,n))}}},MergeCoins(e,t){return{$kind:"MergeCoins",MergeCoins:{destination:platform.parse(Argument$1,e),sources:t.map(n=>platform.parse(Argument$1,n))}}},Publish({modules:e,dependencies:t}){return{$kind:"Publish",Publish:{modules:e.map(n=>typeof n=="string"?n:toBase64(new Uint8Array(n))),dependencies:t.map(n=>normalizeSuiObjectId(n))}}},Upgrade({modules:e,dependencies:t,package:n,ticket:a}){return{$kind:"Upgrade",Upgrade:{modules:e.map(r=>typeof r=="string"?r:toBase64(new Uint8Array(r))),dependencies:t.map(r=>normalizeSuiObjectId(r)),package:n,ticket:platform.parse(Argument$1,a)}}},MakeMoveVec({type:e,elements:t}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(n=>platform.parse(Argument$1,n))}}},Intent({name:e,inputs:t={},data:n={}}){return{$kind:"$Intent",$Intent:{name:e,inputs:Object.fromEntries(Object.entries(t).map(([a,r])=>[a,Array.isArray(r)?r.map(i=>platform.parse(Argument$1,i)):platform.parse(Argument$1,r)])),data:n}}}},ObjectRef=platform.object({digest:platform.string(),objectId:platform.string(),version:platform.union([platform.pipe(platform.number(),platform.integer()),platform.string(),platform.bigint()])}),ObjectArg$1=safeEnum({ImmOrOwned:ObjectRef,Shared:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef}),NormalizedCallArg=safeEnum({Object:ObjectArg$1,Pure:platform.array(platform.pipe(platform.number(),platform.integer()))}),TransactionInput=platform.union([platform.object({kind:platform.literal("Input"),index:platform.pipe(platform.number(),platform.integer()),value:platform.unknown(),type:platform.optional(platform.literal("object"))}),platform.object({kind:platform.literal("Input"),index:platform.pipe(platform.number(),platform.integer()),value:platform.unknown(),type:platform.literal("pure")})]),TransactionExpiration$1=platform.union([platform.object({Epoch:platform.pipe(platform.number(),platform.integer())}),platform.object({None:platform.nullable(platform.literal(!0))})]),StringEncodedBigint=platform.pipe(platform.union([platform.number(),platform.string(),platform.bigint()]),platform.check(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),TypeTag=platform.union([platform.object({bool:platform.nullable(platform.literal(!0))}),platform.object({u8:platform.nullable(platform.literal(!0))}),platform.object({u64:platform.nullable(platform.literal(!0))}),platform.object({u128:platform.nullable(platform.literal(!0))}),platform.object({address:platform.nullable(platform.literal(!0))}),platform.object({signer:platform.nullable(platform.literal(!0))}),platform.object({vector:platform.lazy(()=>TypeTag)}),platform.object({struct:platform.lazy(()=>StructTag)}),platform.object({u16:platform.nullable(platform.literal(!0))}),platform.object({u32:platform.nullable(platform.literal(!0))}),platform.object({u256:platform.nullable(platform.literal(!0))})]),StructTag=platform.object({address:platform.string(),module:platform.string(),name:platform.string(),typeParams:platform.array(TypeTag)}),GasConfig=platform.object({budget:platform.optional(StringEncodedBigint),price:platform.optional(StringEncodedBigint),payment:platform.optional(platform.array(ObjectRef)),owner:platform.optional(platform.string())}),TransactionArgumentTypes=[TransactionInput,platform.object({kind:platform.literal("GasCoin")}),platform.object({kind:platform.literal("Result"),index:platform.pipe(platform.number(),platform.integer())}),platform.object({kind:platform.literal("NestedResult"),index:platform.pipe(platform.number(),platform.integer()),resultIndex:platform.pipe(platform.number(),platform.integer())})],TransactionArgument=platform.union([...TransactionArgumentTypes]),MoveCallTransaction=platform.object({kind:platform.literal("MoveCall"),target:platform.pipe(platform.string(),platform.check(e=>e.split("::").length===3)),typeArguments:platform.array(platform.string()),arguments:platform.array(TransactionArgument)}),TransferObjectsTransaction=platform.object({kind:platform.literal("TransferObjects"),objects:platform.array(TransactionArgument),address:TransactionArgument}),SplitCoinsTransaction=platform.object({kind:platform.literal("SplitCoins"),coin:TransactionArgument,amounts:platform.array(TransactionArgument)}),MergeCoinsTransaction=platform.object({kind:platform.literal("MergeCoins"),destination:TransactionArgument,sources:platform.array(TransactionArgument)}),MakeMoveVecTransaction=platform.object({kind:platform.literal("MakeMoveVec"),type:platform.union([platform.object({Some:TypeTag}),platform.object({None:platform.nullable(platform.literal(!0))})]),objects:platform.array(TransactionArgument)}),PublishTransaction=platform.object({kind:platform.literal("Publish"),modules:platform.array(platform.array(platform.pipe(platform.number(),platform.integer()))),dependencies:platform.array(platform.string())}),UpgradeTransaction=platform.object({kind:platform.literal("Upgrade"),modules:platform.array(platform.array(platform.pipe(platform.number(),platform.integer()))),dependencies:platform.array(platform.string()),packageId:platform.string(),ticket:TransactionArgument}),TransactionTypes=[MoveCallTransaction,TransferObjectsTransaction,SplitCoinsTransaction,MergeCoinsTransaction,PublishTransaction,UpgradeTransaction,MakeMoveVecTransaction],TransactionType=platform.union([...TransactionTypes]);platform.object({version:platform.literal(1),sender:platform.optional(platform.string()),expiration:platform.nullish(TransactionExpiration$1),gasConfig:GasConfig,inputs:platform.array(TransactionInput),transactions:platform.array(TransactionType)});function serializeV1TransactionData(e){var n;const t=e.inputs.map((a,r)=>{if(a.Object)return{kind:"Input",index:r,value:{Object:a.Object.ImmOrOwnedObject?{ImmOrOwned:a.Object.ImmOrOwnedObject}:a.Object.Receiving?{Receiving:{digest:a.Object.Receiving.digest,version:a.Object.Receiving.version,objectId:a.Object.Receiving.objectId}}:{Shared:{mutable:a.Object.SharedObject.mutable,initialSharedVersion:a.Object.SharedObject.initialSharedVersion,objectId:a.Object.SharedObject.objectId}}},type:"object"};if(a.Pure)return{kind:"Input",index:r,value:{Pure:Array.from(fromBase64(a.Pure.bytes))},type:"pure"};if(a.UnresolvedPure)return{kind:"Input",type:"pure",index:r,value:a.UnresolvedPure.value};if(a.UnresolvedObject)return{kind:"Input",type:"object",index:r,value:a.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:((n=e.expiration)==null?void 0:n.$kind)==="Epoch"?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(a=>{if(a.MakeMoveVec)return{kind:"MakeMoveVec",type:a.MakeMoveVec.type===null?{None:!0}:{Some:TypeTagSerializer.parseFromStr(a.MakeMoveVec.type)},objects:a.MakeMoveVec.elements.map(r=>convertTransactionArgument(r,t))};if(a.MergeCoins)return{kind:"MergeCoins",destination:convertTransactionArgument(a.MergeCoins.destination,t),sources:a.MergeCoins.sources.map(r=>convertTransactionArgument(r,t))};if(a.MoveCall)return{kind:"MoveCall",target:`${a.MoveCall.package}::${a.MoveCall.module}::${a.MoveCall.function}`,typeArguments:a.MoveCall.typeArguments,arguments:a.MoveCall.arguments.map(r=>convertTransactionArgument(r,t))};if(a.Publish)return{kind:"Publish",modules:a.Publish.modules.map(r=>Array.from(fromBase64(r))),dependencies:a.Publish.dependencies};if(a.SplitCoins)return{kind:"SplitCoins",coin:convertTransactionArgument(a.SplitCoins.coin,t),amounts:a.SplitCoins.amounts.map(r=>convertTransactionArgument(r,t))};if(a.TransferObjects)return{kind:"TransferObjects",objects:a.TransferObjects.objects.map(r=>convertTransactionArgument(r,t)),address:convertTransactionArgument(a.TransferObjects.address,t)};if(a.Upgrade)return{kind:"Upgrade",modules:a.Upgrade.modules.map(r=>Array.from(fromBase64(r))),dependencies:a.Upgrade.dependencies,packageId:a.Upgrade.package,ticket:convertTransactionArgument(a.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(a)}`)})}}function convertTransactionArgument(e,t){if(e.$kind==="GasCoin")return{kind:"GasCoin"};if(e.$kind==="Result")return{kind:"Result",index:e.Result};if(e.$kind==="NestedResult")return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if(e.$kind==="Input")return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function transactionDataFromV1(e){var t,n,a;return platform.parse(TransactionData,{version:2,sender:e.sender??null,expiration:e.expiration?"Epoch"in e.expiration?{Epoch:e.expiration.Epoch}:{None:!0}:null,gasData:{owner:e.gasConfig.owner??null,budget:((t=e.gasConfig.budget)==null?void 0:t.toString())??null,price:((n=e.gasConfig.price)==null?void 0:n.toString())??null,payment:((a=e.gasConfig.payment)==null?void 0:a.map(r=>({digest:r.digest,objectId:r.objectId,version:r.version.toString()})))??null},inputs:e.inputs.map(r=>{if(r.kind==="Input"){if(platform.is(NormalizedCallArg,r.value)){const i=platform.parse(NormalizedCallArg,r.value);if(i.Object){if(i.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:i.Object.ImmOrOwned.objectId,version:String(i.Object.ImmOrOwned.version),digest:i.Object.ImmOrOwned.digest}}};if(i.Object.Shared)return{Object:{SharedObject:{mutable:i.Object.Shared.mutable??null,initialSharedVersion:i.Object.Shared.initialSharedVersion,objectId:i.Object.Shared.objectId}}};if(i.Object.Receiving)return{Object:{Receiving:{digest:i.Object.Receiving.digest,version:String(i.Object.Receiving.version),objectId:i.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:toBase64(new Uint8Array(i.Pure))}}}return r.type==="object"?{UnresolvedObject:{objectId:r.value}}:{UnresolvedPure:{value:r.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(r=>{switch(r.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in r.type?TypeTagSerializer.tagToString(r.type.Some):null,elements:r.objects.map(i=>parseV1TransactionArgument(i))}};case"MergeCoins":return{MergeCoins:{destination:parseV1TransactionArgument(r.destination),sources:r.sources.map(i=>parseV1TransactionArgument(i))}};case"MoveCall":{const[i,o,s]=r.target.split("::");return{MoveCall:{package:i,module:o,function:s,typeArguments:r.typeArguments,arguments:r.arguments.map(d=>parseV1TransactionArgument(d))}}}case"Publish":return{Publish:{modules:r.modules.map(i=>toBase64(Uint8Array.from(i))),dependencies:r.dependencies}};case"SplitCoins":return{SplitCoins:{coin:parseV1TransactionArgument(r.coin),amounts:r.amounts.map(i=>parseV1TransactionArgument(i))}};case"TransferObjects":return{TransferObjects:{objects:r.objects.map(i=>parseV1TransactionArgument(i)),address:parseV1TransactionArgument(r.address)}};case"Upgrade":return{Upgrade:{modules:r.modules.map(i=>toBase64(Uint8Array.from(i))),dependencies:r.dependencies,package:r.packageId,ticket:parseV1TransactionArgument(r.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(r)}`)})})}function parseV1TransactionArgument(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function enumUnion(e){return platform.union(Object.entries(e).map(([t,n])=>platform.object({[t]:n})))}const Argument=enumUnion({GasCoin:platform.literal(!0),Input:platform.pipe(platform.number(),platform.integer()),Result:platform.pipe(platform.number(),platform.integer()),NestedResult:platform.tuple([platform.pipe(platform.number(),platform.integer()),platform.pipe(platform.number(),platform.integer())])}),GasData=platform.object({budget:platform.nullable(JsonU64),price:platform.nullable(JsonU64),owner:platform.nullable(SuiAddress),payment:platform.nullable(platform.array(ObjectRef$1))}),ProgrammableMoveCall=platform.object({package:ObjectID,module:platform.string(),function:platform.string(),typeArguments:platform.array(platform.string()),arguments:platform.array(Argument)}),$Intent=platform.object({name:platform.string(),inputs:platform.record(platform.string(),platform.union([Argument,platform.array(Argument)])),data:platform.record(platform.string(),platform.unknown())}),Command=enumUnion({MoveCall:ProgrammableMoveCall,TransferObjects:platform.object({objects:platform.array(Argument),address:Argument}),SplitCoins:platform.object({coin:Argument,amounts:platform.array(Argument)}),MergeCoins:platform.object({destination:Argument,sources:platform.array(Argument)}),Publish:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID)}),MakeMoveVec:platform.object({type:platform.nullable(platform.string()),elements:platform.array(Argument)}),Upgrade:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID),package:ObjectID,ticket:Argument}),$Intent}),ObjectArg=enumUnion({ImmOrOwnedObject:ObjectRef$1,SharedObject:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef$1}),CallArg=enumUnion({Object:ObjectArg,Pure:platform.object({bytes:BCSBytes}),UnresolvedPure:platform.object({value:platform.unknown()}),UnresolvedObject:platform.object({objectId:ObjectID,version:platform.optional(platform.nullable(JsonU64)),digest:platform.optional(platform.nullable(platform.string())),initialSharedVersion:platform.optional(platform.nullable(JsonU64))})}),TransactionExpiration=enumUnion({None:platform.literal(!0),Epoch:JsonU64}),SerializedTransactionDataV2=platform.object({version:platform.literal(2),sender:platform.nullish(SuiAddress),expiration:platform.nullish(TransactionExpiration),gasData:GasData,inputs:platform.array(CallArg),commands:platform.array(Command),digest:platform.optional(platform.nullable(platform.string()))}),MAX_OBJECTS_PER_FETCH=50,GAS_SAFE_OVERHEAD=1000n,MAX_GAS=5e10;function suiClientResolveTransactionPlugin(e){return async function(n,a,r){return await normalizeInputs(n,e),await resolveObjectReferences(n,e),a.onlyTransactionKind||(await setGasPrice(n,e),await setGasBudget(n,e),await setGasPayment(n,e)),await r()}}async function setGasPrice(e,t){e.gasConfig.price||(e.gasConfig.price=String(await t.getReferenceGasPrice()))}async function setGasBudget(e,t){if(e.gasConfig.budget)return;const n=await t.dryRunTransactionBlock({transactionBlock:e.build({overrides:{gasData:{budget:String(MAX_GAS),payment:[]}}})});if(n.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const a=GAS_SAFE_OVERHEAD*BigInt(e.gasConfig.price||1n),r=BigInt(n.effects.gasUsed.computationCost)+a,i=r+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);e.gasConfig.budget=String(i>r?i:r)}async function setGasPayment(e,t){if(!e.gasConfig.payment){const a=(await t.getCoins({owner:e.gasConfig.owner||e.sender,coinType:SUI_TYPE_ARG})).data.filter(r=>!e.inputs.find(o=>{var s;return(s=o.Object)!=null&&s.ImmOrOwnedObject?r.coinObjectId===o.Object.ImmOrOwnedObject.objectId:!1})).map(r=>({objectId:r.coinObjectId,digest:r.digest,version:r.version}));if(!a.length)throw new Error("No valid gas coins found for the transaction.");e.gasConfig.payment=a.map(r=>platform.parse(ObjectRef$1,r))}}async function resolveObjectReferences(e,t){const n=e.inputs.filter(l=>{var p;return l.UnresolvedObject&&!(l.UnresolvedObject.version||(p=l.UnresolvedObject)!=null&&p.initialSharedVersion)}),a=[...new Set(n.map(l=>normalizeSuiObjectId(l.UnresolvedObject.objectId)))],r=a.length?chunk(a,MAX_OBJECTS_PER_FETCH):[],i=(await Promise.all(r.map(l=>t.multiGetObjects({ids:l,options:{showOwner:!0}})))).flat(),o=new Map(a.map((l,p)=>[l,i[p]])),s=Array.from(o).filter(([l,p])=>p.error).map(([l,p])=>JSON.stringify(p.error));if(s.length)throw new Error(`The following input objects are invalid: ${s.join(", ")}`);const d=i.map(l=>{if(l.error||!l.data)throw new Error(`Failed to fetch object: ${l.error}`);const p=l.data.owner,f=p&&typeof p=="object"?"Shared"in p?p.Shared.initial_shared_version:"ConsensusAddressOwner"in p?p.ConsensusAddressOwner.start_version:null:null;return{objectId:l.data.objectId,digest:l.data.digest,version:l.data.version,initialSharedVersion:f}}),u=new Map(a.map((l,p)=>[l,d[p]]));for(const[l,p]of e.inputs.entries()){if(!p.UnresolvedObject)continue;let f;const y=normalizeSuiAddress(p.UnresolvedObject.objectId),m=u.get(y);p.UnresolvedObject.initialSharedVersion??(m==null?void 0:m.initialSharedVersion)?f=Inputs.SharedObjectRef({objectId:y,initialSharedVersion:p.UnresolvedObject.initialSharedVersion||(m==null?void 0:m.initialSharedVersion),mutable:isUsedAsMutable(e,l)}):isUsedAsReceiving(e,l)&&(f=Inputs.ReceivingRef({objectId:y,digest:p.UnresolvedObject.digest??(m==null?void 0:m.digest),version:p.UnresolvedObject.version??(m==null?void 0:m.version)})),e.inputs[e.inputs.indexOf(p)]=f??Inputs.ObjectRef({objectId:y,digest:p.UnresolvedObject.digest??(m==null?void 0:m.digest),version:p.UnresolvedObject.version??(m==null?void 0:m.version)})}}async function normalizeInputs(e,t){const{inputs:n,commands:a}=e,r=[],i=new Set;a.forEach(s=>{if(s.MoveCall){if(s.MoveCall._argumentTypes)return;if(s.MoveCall.arguments.map(l=>l.$kind==="Input"?e.inputs[l.Input]:null).some(l=>(l==null?void 0:l.UnresolvedPure)||(l==null?void 0:l.UnresolvedObject))){const l=`${s.MoveCall.package}::${s.MoveCall.module}::${s.MoveCall.function}`;i.add(l),r.push(s.MoveCall)}}});const o=new Map;i.size>0&&await Promise.all([...i].map(async s=>{const[d,u,l]=s.split("::"),p=await t.getNormalizedMoveFunction({package:d,module:u,function:l});o.set(s,p.parameters.map(f=>normalizedTypeToMoveTypeSignature(f)))})),r.length&&await Promise.all(r.map(async s=>{const d=o.get(`${s.package}::${s.module}::${s.function}`);if(!d)return;const l=d.length>0&&isTxContext(d.at(-1))?d.slice(0,d.length-1):d;s._argumentTypes=l})),a.forEach(s=>{if(!s.MoveCall)return;const d=s.MoveCall,u=`${d.package}::${d.module}::${d.function}`,l=d._argumentTypes;if(l){if(l.length!==s.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${u}`);l.forEach((p,f)=>{var T,A;const y=d.arguments[f];if(y.$kind!=="Input")return;const m=n[y.Input];if(!m.UnresolvedPure&&!m.UnresolvedObject)return;const b=((T=m.UnresolvedPure)==null?void 0:T.value)??((A=m.UnresolvedObject)==null?void 0:A.objectId),g=getPureBcsSchema(p.body);if(g){y.type="pure",n[n.indexOf(m)]=Inputs.Pure(g.serialize(b));return}if(typeof b!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(b,null,2)}`);y.type="object";const h=m.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:b}}:m;n[y.Input]=h})}})}function isUsedAsMutable(e,t){let n=!1;return e.getInputUses(t,(a,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const i=r.MoveCall.arguments.indexOf(a);n=r.MoveCall._argumentTypes[i].ref!=="&"||n}(r.$kind==="MakeMoveVec"||r.$kind==="MergeCoins"||r.$kind==="SplitCoins")&&(n=!0)}),n}function isUsedAsReceiving(e,t){let n=!1;return e.getInputUses(t,(a,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const i=r.MoveCall.arguments.indexOf(a);n=isReceivingType(r.MoveCall._argumentTypes[i])||n}}),n}function isReceivingType(e){return typeof e.body!="object"||!("datatype"in e.body)?!1:e.body.datatype.package==="0x2"&&e.body.datatype.module==="transfer"&&e.body.datatype.type==="Receiving"}function needsTransactionResolution(e,t){return!!(e.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!t.onlyTransactionKind&&(!e.gasConfig.price||!e.gasConfig.budget||!e.gasConfig.payment))}async function resolveTransactionPlugin(e,t,n){var i;if(normalizeRawArguments(e),!needsTransactionResolution(e,t))return await validate(e),n();const a=getClient$1(t);return(((i=a.core)==null?void 0:i.resolveTransactionPlugin())??suiClientResolveTransactionPlugin(a))(e,t,async()=>{await validate(e),await n()})}function validate(e){e.inputs.forEach((t,n)=>{if(t.$kind!=="Object"&&t.$kind!=="Pure")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(t)}`)})}function getClient$1(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}function normalizeRawArguments(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(n=>{normalizeRawArgument(n,suiBcs.U64,e)});break;case"TransferObjects":normalizeRawArgument(t.TransferObjects.address,suiBcs.Address,e);break}}function normalizeRawArgument(e,t,n){if(e.$kind!=="Input")return;const a=n.inputs[e.Input];a.$kind==="UnresolvedPure"&&(n.inputs[e.Input]=Inputs.Pure(t.serialize(a.UnresolvedPure.value)))}function createObjectMethods(e){function t(n){return e(n)}return t.system=()=>t("0x5"),t.clock=()=>t("0x6"),t.random=()=>t("0x8"),t.denyList=()=>t("0x403"),t.option=({type:n,value:a})=>r=>r.moveCall({typeArguments:[n],target:`0x1::option::${a===null?"none":"some"}`,arguments:a===null?[]:[r.object(a)]}),t}function createPure(e){function t(n,a){if(typeof n=="string")return e(pureBcsSchemaFromTypeName(n).serialize(a));if(n instanceof Uint8Array||isSerializedBcs(n))return e(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=n=>e(suiBcs.U8.serialize(n)),t.u16=n=>e(suiBcs.U16.serialize(n)),t.u32=n=>e(suiBcs.U32.serialize(n)),t.u64=n=>e(suiBcs.U64.serialize(n)),t.u128=n=>e(suiBcs.U128.serialize(n)),t.u256=n=>e(suiBcs.U256.serialize(n)),t.bool=n=>e(suiBcs.Bool.serialize(n)),t.string=n=>e(suiBcs.String.serialize(n)),t.address=n=>e(suiBcs.Address.serialize(n)),t.id=t.address,t.vector=(n,a)=>e(suiBcs.vector(pureBcsSchemaFromTypeName(n)).serialize(a)),t.option=(n,a)=>e(suiBcs.option(pureBcsSchemaFromTypeName(n)).serialize(a)),t}function hashTypedData(e,t){const n=Array.from(`${e}::`).map(r=>r.charCodeAt(0)),a=new Uint8Array(n.length+t.length);return a.set(n),a.set(t,n.length),blake2b.blake2b(a,{dkLen:32})}function prepareSuiAddress(e){return normalizeSuiAddress(e).replace("0x","")}class TransactionDataBuilder{constructor(t){this.version=2,this.sender=(t==null?void 0:t.sender)??null,this.expiration=(t==null?void 0:t.expiration)??null,this.inputs=(t==null?void 0:t.inputs)??[],this.commands=(t==null?void 0:t.commands)??[],this.gasData=(t==null?void 0:t.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(t){const a=suiBcs.TransactionKind.parse(t).ProgrammableTransaction;if(!a)throw new Error("Unable to deserialize from bytes.");return TransactionDataBuilder.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:a.inputs,commands:a.commands})}static fromBytes(t){const n=suiBcs.TransactionData.parse(t),a=n==null?void 0:n.V1,r=a.kind.ProgrammableTransaction;if(!a||!r)throw new Error("Unable to deserialize from bytes.");return TransactionDataBuilder.restore({version:2,sender:a.sender,expiration:a.expiration,gasData:a.gasData,inputs:r.inputs,commands:r.commands})}static restore(t){return t.version===2?new TransactionDataBuilder(platform.parse(TransactionData,t)):new TransactionDataBuilder(platform.parse(TransactionData,transactionDataFromV1(t)))}static getDigestFromBytes(t){const n=hashTypedData("TransactionData",t);return toBase58(n)}get gasConfig(){return this.gasData}set gasConfig(t){this.gasData=t}build({maxSizeBytes:t=1/0,overrides:n,onlyTransactionKind:a}={}){const r=this.inputs,i=this.commands,o={ProgrammableTransaction:{inputs:r,commands:i}};if(a)return suiBcs.TransactionKind.serialize(o,{maxSize:t}).toBytes();const s=(n==null?void 0:n.expiration)??this.expiration,d=(n==null?void 0:n.sender)??this.sender,u={...this.gasData,...n==null?void 0:n.gasConfig,...n==null?void 0:n.gasData};if(!d)throw new Error("Missing transaction sender");if(!u.budget)throw new Error("Missing gas budget");if(!u.payment)throw new Error("Missing gas payment");if(!u.price)throw new Error("Missing gas price");const l={sender:prepareSuiAddress(d),expiration:s||{None:!0},gasData:{payment:u.payment,owner:prepareSuiAddress(this.gasData.owner??d),price:BigInt(u.price),budget:BigInt(u.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:i}}};return suiBcs.TransactionData.serialize({V1:l},{maxSize:t}).toBytes()}addInput(t,n){const a=this.inputs.length;return this.inputs.push(n),{Input:a,type:t,$kind:"Input"}}getInputUses(t,n){this.mapArguments((a,r)=>(a.$kind==="Input"&&a.Input===t&&n(a,r),a))}mapCommandArguments(t,n){const a=this.commands[t];switch(a.$kind){case"MoveCall":a.MoveCall.arguments=a.MoveCall.arguments.map(i=>n(i,a,t));break;case"TransferObjects":a.TransferObjects.objects=a.TransferObjects.objects.map(i=>n(i,a,t)),a.TransferObjects.address=n(a.TransferObjects.address,a,t);break;case"SplitCoins":a.SplitCoins.coin=n(a.SplitCoins.coin,a,t),a.SplitCoins.amounts=a.SplitCoins.amounts.map(i=>n(i,a,t));break;case"MergeCoins":a.MergeCoins.destination=n(a.MergeCoins.destination,a,t),a.MergeCoins.sources=a.MergeCoins.sources.map(i=>n(i,a,t));break;case"MakeMoveVec":a.MakeMoveVec.elements=a.MakeMoveVec.elements.map(i=>n(i,a,t));break;case"Upgrade":a.Upgrade.ticket=n(a.Upgrade.ticket,a,t);break;case"$Intent":const r=a.$Intent.inputs;a.$Intent.inputs={};for(const[i,o]of Object.entries(r))a.$Intent.inputs[i]=Array.isArray(o)?o.map(s=>n(s,a,t)):n(o,a,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${a.$kind}`)}}mapArguments(t){for(const n of this.commands.keys())this.mapCommandArguments(n,t)}replaceCommand(t,n,a=t){if(!Array.isArray(n)){this.commands[t]=n;return}const r=n.length-1;this.commands.splice(t,1,...n),r!==0&&this.mapArguments((i,o,s)=>{if(s<t+n.length)return i;switch(i.$kind){case"Result":i.Result===t&&(i.Result=a),i.Result>t&&(i.Result+=r);break;case"NestedResult":i.NestedResult[0]===t&&(i.NestedResult[0]=a),i.NestedResult[0]>t&&(i.NestedResult[0]+=r);break}return i})}getDigest(){const t=this.build({onlyTransactionKind:!1});return TransactionDataBuilder.getDigestFromBytes(t)}snapshot(){return platform.parse(TransactionData,this)}shallowClone(){return new TransactionDataBuilder({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}}function getIdFromCallArg(e){if(typeof e=="string")return normalizeSuiAddress(e);if(e.Object)return e.Object.ImmOrOwnedObject?normalizeSuiAddress(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?normalizeSuiAddress(e.Object.Receiving.objectId):normalizeSuiAddress(e.Object.SharedObject.objectId);if(e.UnresolvedObject)return normalizeSuiAddress(e.UnresolvedObject.objectId)}const NAME_SEPARATOR="/";function hasMvrName(e){return e.includes(NAME_SEPARATOR)||e.includes("@")||e.includes(".sui")}function findNamesInTransaction(e){const t=new Set,n=new Set;for(const a of e.commands)switch(a.$kind){case"MakeMoveVec":a.MakeMoveVec.type&&getNamesFromTypeList([a.MakeMoveVec.type]).forEach(o=>{n.add(o)});break;case"MoveCall":const r=a.MoveCall,i=r.package.split("::")[0];if(hasMvrName(i)){if(!isValidNamedPackage(i))throw new Error(`Invalid package name: ${i}`);t.add(i)}getNamesFromTypeList(r.typeArguments??[]).forEach(o=>{n.add(o)});break}return{packages:[...t],types:[...n]}}function replaceNames(e,t){var n;for(const a of e.commands){if((n=a.MakeMoveVec)!=null&&n.type){if(!hasMvrName(a.MakeMoveVec.type))continue;if(!t.types[a.MakeMoveVec.type])throw new Error(`No resolution found for type: ${a.MakeMoveVec.type}`);a.MakeMoveVec.type=t.types[a.MakeMoveVec.type].type}const r=a.MoveCall;if(!r)continue;const i=r.package.split("::"),o=i[0];if(hasMvrName(o)&&!t.packages[o])throw new Error(`No address found for package: ${o}`);hasMvrName(o)&&(i[0]=t.packages[o].package,r.package=i.join("::"));const s=r.typeArguments;if(s){for(let d=0;d<s.length;d++)if(hasMvrName(s[d])){if(!t.types[s[d]])throw new Error(`No resolution found for type: ${s[d]}`);s[d]=t.types[s[d]].type}r.typeArguments=s}}}function getNamesFromTypeList(e){const t=new Set;for(const n of e)if(hasMvrName(n)){if(!isValidNamedType(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}const namedPackagesPlugin=e=>async(t,n,a)=>{const r=findNamesInTransaction(t);if(r.types.length===0&&r.packages.length===0)return a();const i=await getClient(n).core.mvr.resolve({types:r.types,packages:r.packages});replaceNames(t,i),await a()};function getClient(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}var __typeError=e=>{throw TypeError(e)},__accessCheck=(e,t,n)=>t.has(e)||__typeError("Cannot "+n),__privateGet=(e,t,n)=>(__accessCheck(e,t,"read from private field"),n?n.call(e):t.get(e)),__privateAdd=(e,t,n)=>t.has(e)?__typeError("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),__privateSet=(e,t,n,a)=>(__accessCheck(e,t,"write to private field"),t.set(e,n),n),__privateMethod=(e,t,n)=>(__accessCheck(e,t,"access private method"),n),_serializationPlugins,_buildPlugins,_intentResolvers,_inputSection,_commandSection,_availableResults,_pendingPromises,_added,_data,_Transaction_instances,fork_fn,addCommand_fn,addInput_fn,normalizeTransactionArgument_fn,resolveArgument_fn,prepareBuild_fn,runPlugins_fn,waitForPendingTasks_fn,sortCommandsAndInputs_fn;function createTransactionResult(e,t=1/0){const n={$kind:"Result",get Result(){return typeof e=="function"?e():e}},a=[],r=i=>a[i]??(a[i]={$kind:"NestedResult",get NestedResult(){return[typeof e=="function"?e():e,i]}});return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,o){if(o in i)return Reflect.get(i,o);if(o===Symbol.iterator)return function*(){let d=0;for(;d<t;)yield r(d),d++};if(typeof o=="symbol")return;const s=parseInt(o,10);if(!(Number.isNaN(s)||s<0))return r(s)}})}const TRANSACTION_BRAND=Symbol.for("@mysten/transaction");function isTransaction(e){return!!e&&typeof e=="object"&&e[TRANSACTION_BRAND]===!0}const modulePluginRegistry={buildPlugins:new Map,serializationPlugins:new Map},TRANSACTION_REGISTRY_KEY=Symbol.for("@mysten/transaction/registry");function getGlobalPluginRegistry(){try{const e=globalThis;return e[TRANSACTION_REGISTRY_KEY]||(e[TRANSACTION_REGISTRY_KEY]=modulePluginRegistry),e[TRANSACTION_REGISTRY_KEY]}catch{return modulePluginRegistry}}const _Transaction=class qe{constructor(){__privateAdd(this,_Transaction_instances),__privateAdd(this,_serializationPlugins),__privateAdd(this,_buildPlugins),__privateAdd(this,_intentResolvers,new Map),__privateAdd(this,_inputSection,[]),__privateAdd(this,_commandSection,[]),__privateAdd(this,_availableResults,new Set),__privateAdd(this,_pendingPromises,new Set),__privateAdd(this,_added,new Map),__privateAdd(this,_data),this.object=createObjectMethods(n=>{var i,o;if(typeof n=="function")return this.object(this.add(n));if(typeof n=="object"&&platform.is(Argument$1,n))return n;const a=getIdFromCallArg(n),r=__privateGet(this,_data).inputs.find(s=>a===getIdFromCallArg(s));return(i=r==null?void 0:r.Object)!=null&&i.SharedObject&&typeof n=="object"&&((o=n.Object)!=null&&o.SharedObject)&&(r.Object.SharedObject.mutable=r.Object.SharedObject.mutable||n.Object.SharedObject.mutable),r?{$kind:"Input",Input:__privateGet(this,_data).inputs.indexOf(r),type:"object"}:__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"object",typeof n=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:normalizeSuiAddress(n)}}:n)});const t=getGlobalPluginRegistry();__privateSet(this,_data,new TransactionDataBuilder),__privateSet(this,_buildPlugins,[...t.buildPlugins.values()]),__privateSet(this,_serializationPlugins,[...t.serializationPlugins.values()])}static fromKind(t){const n=new qe;return __privateSet(n,_data,TransactionDataBuilder.fromKindBytes(typeof t=="string"?fromBase64(t):t)),__privateSet(n,_inputSection,__privateGet(n,_data).inputs.slice()),__privateSet(n,_commandSection,__privateGet(n,_data).commands.slice()),__privateSet(n,_availableResults,new Set(__privateGet(n,_commandSection).map((a,r)=>r))),n}static from(t){const n=new qe;return isTransaction(t)?__privateSet(n,_data,new TransactionDataBuilder(t.getData())):typeof t!="string"||!t.startsWith("{")?__privateSet(n,_data,TransactionDataBuilder.fromBytes(typeof t=="string"?fromBase64(t):t)):__privateSet(n,_data,TransactionDataBuilder.restore(JSON.parse(t))),__privateSet(n,_inputSection,__privateGet(n,_data).inputs.slice()),__privateSet(n,_commandSection,__privateGet(n,_data).commands.slice()),__privateSet(n,_availableResults,new Set(__privateGet(n,_commandSection).map((a,r)=>r))),n}static registerGlobalSerializationPlugin(t,n){getGlobalPluginRegistry().serializationPlugins.set(t,n??t)}static unregisterGlobalSerializationPlugin(t){getGlobalPluginRegistry().serializationPlugins.delete(t)}static registerGlobalBuildPlugin(t,n){getGlobalPluginRegistry().buildPlugins.set(t,n??t)}static unregisterGlobalBuildPlugin(t){getGlobalPluginRegistry().buildPlugins.delete(t)}addSerializationPlugin(t){__privateGet(this,_serializationPlugins).push(t)}addBuildPlugin(t){__privateGet(this,_buildPlugins).push(t)}addIntentResolver(t,n){if(__privateGet(this,_intentResolvers).has(t)&&__privateGet(this,_intentResolvers).get(t)!==n)throw new Error(`Intent resolver for ${t} already exists`);__privateGet(this,_intentResolvers).set(t,n)}setSender(t){__privateGet(this,_data).sender=t}setSenderIfNotSet(t){__privateGet(this,_data).sender||(__privateGet(this,_data).sender=t)}setExpiration(t){__privateGet(this,_data).expiration=t?platform.parse(TransactionExpiration$2,t):null}setGasPrice(t){__privateGet(this,_data).gasConfig.price=String(t)}setGasBudget(t){__privateGet(this,_data).gasConfig.budget=String(t)}setGasBudgetIfNotSet(t){__privateGet(this,_data).gasData.budget==null&&(__privateGet(this,_data).gasConfig.budget=String(t))}setGasOwner(t){__privateGet(this,_data).gasConfig.owner=t}setGasPayment(t){__privateGet(this,_data).gasConfig.payment=t.map(n=>platform.parse(ObjectRef$1,n))}get blockData(){return serializeV1TransactionData(__privateGet(this,_data).snapshot())}getData(){return __privateGet(this,_data).snapshot()}get[TRANSACTION_BRAND](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:createPure(t=>isSerializedBcs(t)?__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"pure",{$kind:"Pure",Pure:{bytes:t.toBase64()}}):__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"pure",platform.is(NormalizedCallArg$1,t)?platform.parse(NormalizedCallArg$1,t):t instanceof Uint8Array?Inputs.Pure(t):{$kind:"UnresolvedPure",UnresolvedPure:{value:t}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...t){return this.object(Inputs.ObjectRef(...t))}receivingRef(...t){return this.object(Inputs.ReceivingRef(...t))}sharedObjectRef(...t){return this.object(Inputs.SharedObjectRef(...t))}add(t){if(typeof t=="function"){if(__privateGet(this,_added).has(t))return __privateGet(this,_added).get(t);const n=__privateMethod(this,_Transaction_instances,fork_fn).call(this),a=t(n);if(!(a&&typeof a=="object"&&"then"in a))return __privateSet(this,_availableResults,__privateGet(n,_availableResults)),__privateGet(this,_added).set(t,a),a;const r=__privateMethod(this,_Transaction_instances,addCommand_fn).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:__privateGet(this,_data).commands.length,result:null}}});__privateGet(this,_pendingPromises).add(Promise.resolve(a).then(o=>{r.$Intent.data.result=o}));const i=createTransactionResult(()=>r.$Intent.data.resultIndex);return __privateGet(this,_added).set(t,i),i}else __privateMethod(this,_Transaction_instances,addCommand_fn).call(this,t);return createTransactionResult(__privateGet(this,_data).commands.length-1)}splitCoins(t,n){const a=Commands.SplitCoins(typeof t=="string"?this.object(t):__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,t),n.map(r=>typeof r=="number"||typeof r=="bigint"||typeof r=="string"?this.pure.u64(r):__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,r)));return __privateMethod(this,_Transaction_instances,addCommand_fn).call(this,a),createTransactionResult(__privateGet(this,_data).commands.length-1,n.length)}mergeCoins(t,n){return this.add(Commands.MergeCoins(this.object(t),n.map(a=>this.object(a))))}publish({modules:t,dependencies:n}){return this.add(Commands.Publish({modules:t,dependencies:n}))}upgrade({modules:t,dependencies:n,package:a,ticket:r}){return this.add(Commands.Upgrade({modules:t,dependencies:n,package:a,ticket:this.object(r)}))}moveCall({arguments:t,...n}){return this.add(Commands.MoveCall({...n,arguments:t==null?void 0:t.map(a=>__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,a))}))}transferObjects(t,n){return this.add(Commands.TransferObjects(t.map(a=>this.object(a)),typeof n=="string"?this.pure.address(n):__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,n)))}makeMoveVec({type:t,elements:n}){return this.add(Commands.MakeMoveVec({type:t,elements:n.map(a=>this.object(a))}))}serialize(){return JSON.stringify(serializeV1TransactionData(__privateGet(this,_data).snapshot()))}async toJSON(t={}){await this.prepareForSerialization(t);const n=this.isFullyResolved();return JSON.stringify(platform.parse(SerializedTransactionDataV2,n?{...__privateGet(this,_data).snapshot(),digest:__privateGet(this,_data).getDigest()}:__privateGet(this,_data).snapshot()),(a,r)=>typeof r=="bigint"?r.toString():r,2)}async sign(t){const{signer:n,...a}=t,r=await this.build(a);return n.signTransaction(r)}isFullyResolved(){return!(!__privateGet(this,_data).sender||__privateGet(this,_pendingPromises).size>0||__privateGet(this,_data).commands.some(t=>t.$Intent)||needsTransactionResolution(__privateGet(this,_data),{}))}async build(t={}){return await this.prepareForSerialization(t),await __privateMethod(this,_Transaction_instances,prepareBuild_fn).call(this,t),__privateGet(this,_data).build({onlyTransactionKind:t.onlyTransactionKind})}async getDigest(t={}){return await this.prepareForSerialization(t),await __privateMethod(this,_Transaction_instances,prepareBuild_fn).call(this,t),__privateGet(this,_data).getDigest()}async prepareForSerialization(t){var r;await __privateMethod(this,_Transaction_instances,waitForPendingTasks_fn).call(this),__privateMethod(this,_Transaction_instances,sortCommandsAndInputs_fn).call(this);const n=new Set;for(const i of __privateGet(this,_data).commands)i.$Intent&&n.add(i.$Intent.name);const a=[...__privateGet(this,_serializationPlugins)];for(const i of n)if(!((r=t.supportedIntents)!=null&&r.includes(i))){if(!__privateGet(this,_intentResolvers).has(i))throw new Error(`Missing intent resolver for ${i}`);a.push(__privateGet(this,_intentResolvers).get(i))}a.push(namedPackagesPlugin()),await __privateMethod(this,_Transaction_instances,runPlugins_fn).call(this,a,t)}};_serializationPlugins=new WeakMap;_buildPlugins=new WeakMap;_intentResolvers=new WeakMap;_inputSection=new WeakMap;_commandSection=new WeakMap;_availableResults=new WeakMap;_pendingPromises=new WeakMap;_added=new WeakMap;_data=new WeakMap;_Transaction_instances=new WeakSet;fork_fn=function(){const e=new _Transaction;return __privateSet(e,_data,__privateGet(this,_data)),__privateSet(e,_serializationPlugins,__privateGet(this,_serializationPlugins)),__privateSet(e,_buildPlugins,__privateGet(this,_buildPlugins)),__privateSet(e,_intentResolvers,__privateGet(this,_intentResolvers)),__privateSet(e,_pendingPromises,__privateGet(this,_pendingPromises)),__privateSet(e,_availableResults,new Set(__privateGet(this,_availableResults))),__privateSet(e,_added,__privateGet(this,_added)),__privateGet(this,_inputSection).push(__privateGet(e,_inputSection)),__privateGet(this,_commandSection).push(__privateGet(e,_commandSection)),e};addCommand_fn=function(e){const t=__privateGet(this,_data).commands.length;return __privateGet(this,_commandSection).push(e),__privateGet(this,_availableResults).add(t),__privateGet(this,_data).commands.push(e),__privateGet(this,_data).mapCommandArguments(t,n=>{if(n.$kind==="Result"&&!__privateGet(this,_availableResults).has(n.Result))throw new Error(`Result { Result: ${n.Result} } is not available to use the current transaction`);if(n.$kind==="NestedResult"&&!__privateGet(this,_availableResults).has(n.NestedResult[0]))throw new Error(`Result { NestedResult: [${n.NestedResult[0]}, ${n.NestedResult[1]}] } is not available to use the current transaction`);if(n.$kind==="Input"&&n.Input>=__privateGet(this,_data).inputs.length)throw new Error(`Input { Input: ${n.Input} } references an input that does not exist in the current transaction`);return n}),e};addInput_fn=function(e,t){return __privateGet(this,_inputSection).push(t),__privateGet(this,_data).addInput(e,t)};normalizeTransactionArgument_fn=function(e){return isSerializedBcs(e)?this.pure(e):__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,e)};resolveArgument_fn=function(e){if(typeof e=="function"){const t=this.add(e);return typeof t=="function"?__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,t):platform.parse(Argument$1,t)}return platform.parse(Argument$1,e)};prepareBuild_fn=async function(e){if(!e.onlyTransactionKind&&!__privateGet(this,_data).sender)throw new Error("Missing transaction sender");await __privateMethod(this,_Transaction_instances,runPlugins_fn).call(this,[...__privateGet(this,_buildPlugins),resolveTransactionPlugin],e)};runPlugins_fn=async function(e,t){const n=a=>{if(a>=e.length)return()=>{};const r=e[a];return async()=>{const i=n(a+1);let o=!1,s=!1;if(await r(__privateGet(this,_data),t,async()=>{if(o)throw new Error(`next() was call multiple times in TransactionPlugin ${a}`);o=!0,await i(),s=!0}),!o)throw new Error(`next() was not called in TransactionPlugin ${a}`);if(!s)throw new Error(`next() was not awaited in TransactionPlugin ${a}`)}};await n(0)(),__privateSet(this,_inputSection,__privateGet(this,_data).inputs.slice()),__privateSet(this,_commandSection,__privateGet(this,_data).commands.slice())};waitForPendingTasks_fn=async function(){for(;__privateGet(this,_pendingPromises).size>0;){const e=Promise.all(__privateGet(this,_pendingPromises));__privateGet(this,_pendingPromises).clear(),__privateGet(this,_pendingPromises).add(e),await e,__privateGet(this,_pendingPromises).delete(e)}};sortCommandsAndInputs_fn=function(){var o;const e=__privateGet(this,_data).commands,t=__privateGet(this,_data).inputs,n=__privateGet(this,_commandSection).flat(1/0),a=__privateGet(this,_inputSection).flat(1/0);if(n.length!==e.length)throw new Error("Unexpected number of commands found in transaction data");if(a.length!==t.length)throw new Error("Unexpected number of inputs found in transaction data");const r=n.filter(s=>{var d;return((d=s.$Intent)==null?void 0:d.name)!=="AsyncTransactionThunk"});__privateGet(this,_data).commands=r,__privateGet(this,_data).inputs=a,__privateSet(this,_commandSection,r),__privateSet(this,_inputSection,a),__privateSet(this,_availableResults,new Set(r.map((s,d)=>d)));function i(s){var l;const d=e[s];if(((l=d.$Intent)==null?void 0:l.name)==="AsyncTransactionThunk"){const p=d.$Intent.data.result;if(p==null)throw new Error("AsyncTransactionThunk has not been resolved");return i(p.Result)}const u=r.indexOf(d);if(u===-1)throw new Error("Unable to find original index for command");return u}__privateGet(this,_data).mapArguments(s=>{if(s.$kind==="Input"){const d=a.indexOf(t[s.Input]);if(d===-1)throw new Error("Input has not been resolved");return{...s,Input:d}}else if(s.$kind==="Result"){const d=i(s.Result);return{...s,Result:d}}else if(s.$kind==="NestedResult"){const d=i(s.NestedResult[0]);return{...s,NestedResult:[d,s.NestedResult[1]]}}return s});for(const[s,d]of e.entries())if(((o=d.$Intent)==null?void 0:o.name)==="AsyncTransactionThunk")try{d.$Intent.data.resultIndex=i(s)}catch{}};let Transaction=_Transaction;var addresses_default$1={MAYAN_FORWARDER_CONTRACT:"0x337685fdaB40D39bd02028545a4FfA7D287cC3E2",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"BLZRi6frs4X4DNLw56V4EXai1b6QVESN1BhHBTYM9VcY",FEE_MANAGER_PROGRAM_ID:"5VtQHnhs2pfVEr68qQsbTRwKh4JV5GTu9mBHgHFxpHeQ",WORMHOLE_PROGRAM_ID:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE:"Ff3yi1meWQQ19VPZMzGg6H8JQQeRudiV7QtVtyzJyoht",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",SUI_CCTP_CORE_PACKAGE_ID:"0x08d87d37ba49e785dde270a83f8e979605b03dc552b5548f26fdf2f49bf7ed1b",SUI_CCTP_CORE_STATE:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",SUI_CCTP_TOKEN_PACKAGE_ID:"0x2aa6c5d56376c371f88a6cc42e852824994993cb9bab8d3e6450cbe3cb32b94e",SUI_CCTP_TOKEN_STATE:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",SUI_WORMHOLE_PACKAGE_ID:"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",SUI_WORMHOLE_STATE:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",SUI_LOGGER_PACKAGE_ID:"0x05680e9030c147b413a489f7891273acc221d49bd061c433e5771bc170fc37ac",EXPLORER_URL:"https://explorer-api.mayan.finance/v3",PRICE_URL:"https://price-api.mayan.finance/v3",RELAYER_URL:"https://relayer-api.mayan.finance/v3",HC_ARBITRUM_BRIDGE:"0x2df1c51e09aecf9cacb7bc98cb1742757f163df7",HC_ARBITRUM_DEPOSIT_PROCESSOR:"0xdDd77e62C848C3334f1148d4F1457FC59ede4E4B",ARBITRUM_USDC_CONTRACT:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",PAYLOAD_WRITER_PROGRAM_ID:"DwMLtdtJqJQkHzNcrdTBuWHJByJfgpKBnvFvzyKdy3cU"},CCTP_TOKEN_DECIMALS$1=6;function getCCTPDomain$1(e){switch(e){case"ethereum":return 0;case"avalanche":return 1;case"optimism":return 2;case"arbitrum":return 3;case"solana":return 5;case"base":return 6;case"polygon":return 7;case"sui":return 8;case"unichain":return 10;case"linea":return 11;case"sonic":return 13;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs$1(e,t){const n=new address.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),a=new address.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),[r]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("message_transmitter")],n),[i]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("sender_authority")],a),[o]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("local_token"),e.toBytes()],a),[s]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("token_messenger")],a),[d]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("token_minter")],a),u=getCCTPDomain$1(t),[l]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("remote_token_messenger"),address.bufferPolyfillExports.Buffer.from(u.toString())],a),[p]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("__event_authority")],n),[f]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("__event_authority")],a);return{messageTransmitter:r,senderAuthority:i,remoteTokenMessengerKey:l,tokenMessenger:s,tokenMinter:d,eventAuthToken:f,eventAuthCore:p,localToken:o}}var sha3_2562=sha3Exports.sha3_256,isValidAptosType=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function nativeAddressToHexString$1(e,t){if(t===1)return address.zeroPadValue(new address.PublicKey(e).toBytes(),32);if(t===chains$1.ethereum||t===chains$1.bsc||t===chains$1.polygon||t===chains$1.avalanche||t===chains$1.arbitrum||t===chains$1.optimism||t===chains$1.base||t===chains$1.unichain||t===chains$1.linea||t===chains$1.sonic)return address.zeroPadValue(e,32);if(t===chains$1.aptos&&isValidAptosType(e))return`0x${sha3_2562(e)}`;if(t===chains$1.sui){let n=e.startsWith("0x")?e.substring(2):e;if(address.bufferPolyfillExports.Buffer.from(n,"hex").length!==32)throw new Error("Invalid sui address: "+e);return address.zeroPadValue(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array$1(e){return new Uint8Array(address.bufferPolyfillExports.Buffer.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress$1(e,t,n=!1,a=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),r=new address.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!address.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[i]=address.PublicKey.findProgramAddressSync([t.toBuffer(),a.toBuffer(),e.toBuffer()],r);return i}function isValidNumericInput(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function getAmountOfFractionalAmount$1(e,t){if(e==null)throw new Error("getAmountOfFractionalAmount: Amount is null or undefined");if(typeof e!="string"&&typeof e!="number")throw new Error("getAmountOfFractionalAmount: Amount is not a string or number");if(typeof e=="string"&&e.length===0)throw new Error("getAmountOfFractionalAmount: Amount is empty");if(!Number.isFinite(Number(e)))throw new Error("getAmountOfFractionalAmount: Amount is not a number");if(!isValidNumericInput(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");const n=Math.min(8,Number(t)),a=Number(e).toFixed(n+1),r=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),i=a.match(r);if(!i)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=i[0];return units.parseUnits(o,Number(t))}var chains$1={solana:1,ethereum:2,bsc:4,polygon:5,avalanche:6,arbitrum:23,optimism:24,base:30,aptos:22,sui:21,unichain:44,linea:38,hypercore:65e3,sonic:52};function getWormholeChainIdByName$1(e){return chains$1[e]}var evmChainIdMap$1={1:2,56:4,137:5,43114:6,42161:23,10:24,8453:30,130:44,59144:38,146:52};function getWormholeChainIdById$1(e){return evmChainIdMap$1[e]}var sdkVersion$1=[10,9,0];function getSdkVersion$1(){return sdkVersion$1.join("_")}function getGasDecimal$1(e){return e==="solana"?9:18}function getGasDecimalsInSolana$1(e){return e==="solana"?9:8}var MAX_U64$1=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob$1(e){if(e<BigInt(0)||e>MAX_U64$1)throw new Error(`Invalid u64: ${e}`);const t=address.bufferPolyfillExports.Buffer.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit$1={value:BigInt(0),deadline:0,v:0,r:`0x${address.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${address.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress$1(e,t){return!e||!t?null:e.type==="WH"?(t==null?void 0:t.solana)||null:e.type==="MCTP"||e.type==="SWIFT"?e.toChain==="solana"?(t==null?void 0:t.solana)||null:e.toChain==="sui"?(t==null?void 0:t.sui)||null:(t==null?void 0:t.evm)||null:e.type==="FAST_MCTP"&&e.toChain!=="solana"&&e.toChain!=="sui"?(t==null?void 0:t.evm)||null:e.type==="MONO_CHAIN"?e.fromChain==="solana"?(t==null?void 0:t.solana)||null:e.fromChain==="sui"?(t==null?void 0:t.sui)||null:(t==null?void 0:t.evm)||null:null}var MCTP_PAYLOAD_TYPE_DEFAULT$1=1,MCTP_INIT_ORDER_PAYLOAD_ID$1=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1=1,FAST_MCTP_PAYLOAD_TYPE_ORDER$1=3;function getHyperCoreUSDCDepositCustomPayload(e,t,n){const a=address.bufferPolyfillExports.Buffer.alloc(109),r=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(t));if(r.length!==20)throw new Error("Invalid destination address length, expected 20 bytes");const i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(n));if(i.length!==65)throw new Error("Invalid USDC permit signature length, expected 65 bytes");return a.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),0),a.set(r,8),a.writeBigUInt64BE(BigInt(e.hyperCoreParams.depositAmountUSDC64),28),a.writeBigUInt64BE(BigInt(e.deadline64),36),a.set(i,44),a}function toQueryString$1(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function check5xxError$1(e){if(e.status.toString().startsWith("5")){let t;try{const n=await e.json();(n!=null&&n.code||n!=null&&n.statusCode)&&(n!=null&&n.message||n!=null&&n.msg)&&(t={code:(n==null?void 0:n.code)||(n==null?void 0:n.statusCode),message:(n==null?void 0:n.message)||(n==null?void 0:n.msg)})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl$1(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0,fullList:!1,payload:void 0,monoChain:!0}){const{gasDrop:n,referrerBps:a}=e;let r=e.slippageBps;const o={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0,fullList:t.fullList===!0,payload:typeof t.payload=="string"?t.payload:void 0,monoChain:t.monoChain!==!1},solanaProgram:addresses_default$1.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default$1.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:r,referrer:e.referrer,referrerBps:Number.isFinite(a)?a:void 0,gasDrop:Number.isFinite(n)?n:void 0,sdkVersion:getSdkVersion$1()},s=`${addresses_default$1.PRICE_URL}/quote?`,d=toQueryString$1(o);return s+d}async function getSuggestedRelayer$1(){const e=await browserPonyfill.o(`${addresses_default$1.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default$1.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError$1(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana$1(e){const t=toQueryString$1({...e,sdkVersion:getSdkVersion$1()}),n=await browserPonyfill.o(`${addresses_default$1.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError$1(n);const a=await n.json();if(n.status!==200&&n.status!==201)throw a;return a}async function getSwapSui$1(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion$1()}),n=`${addresses_default$1.PRICE_URL}/get-swap/sui`,a=await browserPonyfill.o(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError$1(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}var MayanSwapArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_tokenBridge",type:"address"},{internalType:"address",name:"_weth",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"Redeemed",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"tokenAddr",type:"bytes32"},{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"sourceAddr",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bool",name:"unwrapRedeem",type:"bool"},{internalType:"bool",name:"unwrapRefund",type:"bool"}],internalType:"struct MayanStructs.Swap",name:"s",type:"tuple"}],name:"encodeSwap",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"getWeth",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRedeemPayload",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint64",name:"relayerFee",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanStructs.Redeem",name:"r",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeemAndUnwrap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"swap",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"sweepEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"}],name:"wrapAndSwapETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}]},MayanForwarderArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_guardian",type:"address"},{internalType:"address[]",name:"_swapProtocols",type:"address[]"},{internalType:"address[]",name:"_mayanProtocols",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"UnsupportedProtocol",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedEth",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SwapAndForwarded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenIn",type:"address"},{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedEth",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mayanProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setMayanProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setSwapProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}]},MayanCircleArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_cctpTokenMessenger",type:"address"},{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerAlreadySet",type:"error"},{inputs:[],name:"CallerNotSet",type:"error"},{inputs:[],name:"CctpReceiveFailed",type:"error"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DomainAlreadySet",type:"error"},{inputs:[],name:"DomainNotSet",type:"error"},{inputs:[],name:"EmitterAlreadySet",type:"error"},{inputs:[],name:"EthTransferFailed",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidAmountOut",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"InvalidDestAddr",type:"error"},{inputs:[],name:"InvalidDomain",type:"error"},{inputs:[],name:"InvalidEmitter",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidMintRecipient",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidOrder",type:"error"},{inputs:[],name:"InvalidPayload",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"InvalidRedeemFee",type:"error"},{inputs:[],name:"InvalidReferrerFee",type:"error"},{inputs:[],name:"MintRecipientAlreadySet",type:"error"},{inputs:[],name:"MintRecipientNotSet",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderRefunded",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes",name:"customPayload",type:"bytes"}],name:"bridgeWithFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint256",name:"redeemFee",type:"uint256"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],name:"bridgeWithLockedFee",outputs:[{internalType:"uint64",name:"cctpNonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cctpTokenMessenger",outputs:[{internalType:"contract ITokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"chainIdToEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"params",type:"tuple"}],name:"createOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"domainToCaller",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"feeStorage",outputs:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"redeemFee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"driver",type:"bytes32"}],internalType:"struct MayanCircle.FulfillParams",name:"params",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"}],name:"fulfillOrder",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getDomain",outputs:[{internalType:"uint32",name:"domain",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"keyToMintRecipient",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"burnAmount",type:"uint64"},{internalType:"bytes32",name:"burnToken",type:"bytes32"},{internalType:"bytes32",name:"customPayload",type:"bytes32"}],internalType:"struct MayanCircle.BridgeWithFeeParams",name:"bridgeParams",type:"tuple"}],name:"redeemWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"redeemWithLockedFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"cctpNonce",type:"uint32"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"refineFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"orderParams",type:"tuple"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"}],internalType:"struct MayanCircle.ExtraParams",name:"extraParams",type:"tuple"}],name:"refund",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"setDomain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"caller",type:"bytes32"}],name:"setDomainCaller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"emitter",type:"bytes32"}],name:"setEmitter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"}],name:"setMintRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"}],name:"unlockFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm1",type:"bytes"},{internalType:"bytes",name:"encodedVm2",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],internalType:"struct MayanCircle.UnlockRefinedFeeMsg",name:"refinedMsg",type:"tuple"}],name:"unlockFeeRefined",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function getEvmMctpBridgeParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(n)),i=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${r}`);const s=e.cheaperChain===e.fromChain,d=nativeAddressToHexString$1(t,o),u=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),p=BigInt(e.effectiveAmountIn64),f=getCCTPDomain$1(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const y=e.mctpMayanContract;if(e.toChain==="solana"&&s)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));return s&&(m=BigInt(0)),{lockFee:s,tokenIn:e.mctpInputContract,amountIn:p,redeemFee:u,gasDrop:l,destAddr:d,destDomain:f,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",bridgeFee:m,contractAddress:y}}function getEvmMctpBridgeTxPayload$1(e,t,n,a){const r=getEvmMctpBridgeParams$1(e,t,n),{contractAddress:i,tokenIn:o,amountIn:s,destAddr:d,lockFee:u,redeemFee:l,gasDrop:p,destDomain:f,customPayload:y,payloadType:m,bridgeFee:b}=r,g=new contract.Contract(i,MayanCircleArtifact_default$1.abi);let h,T;return u?h=g.interface.encodeFunctionData("bridgeWithLockedFee",[o,s,p,l,f,d]):h=g.interface.encodeFunctionData("bridgeWithFee",[o,s,l,p,d,f,m,y]),T=contract.toBeHex(b),{to:i,data:h,value:T,_params:r}}function getEvmMctpCreateOrderParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(a)),i=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${i} !== ${r}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const s=e.mctpMayanContract,d=nativeAddressToHexString$1(t,o);let u;n?u=nativeAddressToHexString$1(n,o):u=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const l=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),p=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8));let f=BigInt(e.effectiveAmountIn64);const y=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:f,gasDrop:p,destAddr:d,destChain:o,tokenOut:b,minAmountOut:y,deadline:m,redeemFee:l,referrerAddr:u,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain)),contractAddress:s}}function getEvmMctpCreateOrderTxPayload$1(e,t,n,a){const r=getEvmMctpCreateOrderParams$1(e,t,n,a),{contractAddress:i,params:o,bridgeFee:s}=r,u=new contract.Contract(i,MayanCircleArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[o]),l=contract.toBeHex(s);return{to:i,data:u,value:l,_params:r}}function getMctpFromEvmTxPayload$1(e,t,n,a,r,i){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),d=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));let u=contract.toBeHex(d);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const l=getEvmMctpCreateOrderTxPayload$1(e,t,n,a),p="forwardERC20",f=[e.fromToken.contract,l._params.params.amountIn,o,l._params.contractAddress,l.data];return{data:s.interface.encodeFunctionData(p,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const l=getEvmMctpBridgeTxPayload$1(e,t,a),p="forwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:s.interface.encodeFunctionData(p,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const{minMiddleAmount:l,evmSwapRouterAddress:p,evmSwapRouterCalldata:f}=e;if(!l||!p||!f)throw new Error("MCTP swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const y=getEvmMctpCreateOrderTxPayload$1(e,t,n,a),m=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.params.amountIn;if(b<=d)throw new Error("Amount in is less than bridge fee");d!==BigInt(0)&&(b-=d),u=contract.toBeHex(y._params.params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(b,g),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}else{const y=getEvmMctpBridgeTxPayload$1(e,t,a),m=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.amountIn;if(b<=d)throw new Error("Amount in is less than bridge fee");d!==BigInt(0)&&(b-=d),u=contract.toBeHex(y._params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(b,g),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}}}var MayanSwiftArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"_solanaEmitter",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DuplicateOrder",type:"error"},{inputs:[],name:"FeesTooHigh",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidAuctionMode",type:"error"},{inputs:[],name:"InvalidBpsFee",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidDestChain",type:"error"},{inputs:[],name:"InvalidEmitterAddress",type:"error"},{inputs:[],name:"InvalidEmitterChain",type:"error"},{inputs:[],name:"InvalidEvmAddr",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidOrderHash",type:"error"},{inputs:[],name:"InvalidOrderStatus",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidSrcChain",type:"error"},{inputs:[],name:"InvalidWormholeFee",type:"error"},{inputs:[],name:"OrderNotExists",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"SmallAmountIn",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"OrderCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderRefunded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderUnlocked",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"canceler",type:"bytes32"}],name:"cancelOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithEth",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"signedOrderHash",type:"bytes"}],name:"createOrderWithSig",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithToken",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillSimple",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"enum MayanSwift.Status",name:"status",type:"uint8"},{internalType:"uint64",name:"amountIn",type:"uint64"},{internalType:"uint16",name:"destChainId",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseFulfillPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"driver",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"}],internalType:"struct MayanSwift.FulfillMsg",name:"fulfillMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRefundPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"canceler",type:"bytes32"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwift.RefundMsg",name:"refundMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUnlockPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct MayanSwift.UnlockMsg",name:"unlockMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"postBatch",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"refundOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"solanaEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"unlockMsgs",outputs:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockSingle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function decodeInstructionArgs(e,t){const n=t.subarray(0,8),a=e.instructions.find(s=>address.bufferPolyfillExports.Buffer.from(s.discriminator).toString("hex").toLowerCase()===address.bufferPolyfillExports.Buffer.from(n).toString("hex").toLowerCase());if(!a)throw new Error(`Instruction ${address.bufferPolyfillExports.Buffer.from(n).toString("hex")} not in IDL`);const r=a.args||[],i={};let o=8;for(const s of r){const[d,u]=decodeType(s.type,t,o,e);i[s.name]=d,o=u}return i}function decodeType(e,t,n,a){var r;if(typeof e=="string")switch(e){case"u8":return[t.readUInt8(n),n+1];case"u16":return[t.readUInt16LE(n),n+2];case"u32":return[t.readUInt32LE(n),n+4];case"u64":return[t.readBigUInt64LE(n),n+8];case"bool":return[t.readUInt8(n)!==0,n+1];case"pubkey":{const i=t.subarray(n,n+32);return[new address.PublicKey(i),n+32]}default:throw new Error(`Unknown primitive: ${e}`)}if("array"in e){const[i,o]=e.array,s=[];let d=n;for(let u=0;u<o;u++){const[l,p]=decodeType(i,t,d,a);s.push(l),d=p}return[s,d]}if("defined"in e){const i=(r=a.types)==null?void 0:r.find(o=>o.name===e.defined.name);if(!i)throw new Error(`Type ${e.defined} not found`);if(i.type.kind==="struct"){const o={};let s=n;for(const d of i.type.fields){const[u,l]=decodeType(d.type,t,s,a);o[d.name]=u,s=l}return[o,s]}else{const o=t.readUInt8(n),s=i.type.variants[o];if(!s)throw new Error(`Invalid enum index ${o}`);let d=n+1;const u={variant:s.name};if(s.fields&&s.fields.length){const l=[];for(const p of s.fields){const[f,y]=decodeType(p.type,t,d,a);l.push(f),d=y}u.fields=l}return[u,d]}}if("option"in e)return t.readUInt8(n)===0?[null,n+1]:decodeType(e.option,t,n+1,a);if("vec"in e){const i=t.readUInt32LE(n);let o=n+4;const s=[];for(let d=0;d<i;d++){const[u,l]=decodeType(e.vec,t,o,a);s.push(u),o=l}return[s,o]}throw new Error(`Unsupported type shape: ${JSON.stringify(e)}`)}function decodeJupiterV6InsArgs(e){return decodeInstructionArgs(jupV6Idl,address.bufferPolyfillExports.Buffer.from(e))}var jupV6Idl={instructions:[{name:"route",docs:["route_plan Topologically sorted trade DAG"],discriminator:[229,23,203,151,122,227,173,42],accounts:[{name:"token_program"},{name:"user_transfer_authority",signer:!0},{name:"user_source_token_account",writable:!0},{name:"user_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0,optional:!0},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"},{name:"shared_accounts_route",docs:["Route by using program owned token accounts and open orders accounts."],discriminator:[193,32,155,51,65,214,156,129],accounts:[{name:"token_program"},{name:"program_authority"},{name:"user_transfer_authority",signer:!0},{name:"source_token_account",writable:!0},{name:"program_source_token_account",writable:!0},{name:"program_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0},{name:"source_mint"},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"token_2022_program",optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"id",type:"u8"},{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"}],types:[{name:"AccountsType",type:{kind:"enum",variants:[{name:"TransferHookA"},{name:"TransferHookB"},{name:"TransferHookReward"},{name:"TransferHookInput"},{name:"TransferHookIntermediate"},{name:"TransferHookOutput"},{name:"SupplementalTickArrays"},{name:"SupplementalTickArraysOne"},{name:"SupplementalTickArraysTwo"}]}},{name:"FeeEvent",type:{kind:"struct",fields:[{name:"account",type:"pubkey"},{name:"mint",type:"pubkey"},{name:"amount",type:"u64"}]}},{name:"RemainingAccountsInfo",type:{kind:"struct",fields:[{name:"slices",type:{vec:{defined:{name:"RemainingAccountsSlice"}}}}]}},{name:"RemainingAccountsSlice",type:{kind:"struct",fields:[{name:"accounts_type",type:{defined:{name:"AccountsType"}}},{name:"length",type:"u8"}]}},{name:"RoutePlanStep",type:{kind:"struct",fields:[{name:"swap",type:{defined:{name:"Swap"}}},{name:"percent",type:"u8"},{name:"input_index",type:"u8"},{name:"output_index",type:"u8"}]}},{name:"Side",type:{kind:"enum",variants:[{name:"Bid"},{name:"Ask"}]}},{name:"Swap",type:{kind:"enum",variants:[{name:"Saber"},{name:"SaberAddDecimalsDeposit"},{name:"SaberAddDecimalsWithdraw"},{name:"TokenSwap"},{name:"Sencha"},{name:"Step"},{name:"Cropper"},{name:"Raydium"},{name:"Crema",fields:[{name:"a_to_b",type:"bool"}]},{name:"Lifinity"},{name:"Mercurial"},{name:"Cykura"},{name:"Serum",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"MarinadeDeposit"},{name:"MarinadeUnstake"},{name:"Aldrin",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"AldrinV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Whirlpool",fields:[{name:"a_to_b",type:"bool"}]},{name:"Invariant",fields:[{name:"x_to_y",type:"bool"}]},{name:"Meteora"},{name:"GooseFX"},{name:"DeltaFi",fields:[{name:"stable",type:"bool"}]},{name:"Balansol"},{name:"MarcoPolo",fields:[{name:"x_to_y",type:"bool"}]},{name:"Dradex",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"LifinityV2"},{name:"RaydiumClmm"},{name:"Openbook",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Phoenix",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Symmetry",fields:[{name:"from_token_id",type:"u64"},{name:"to_token_id",type:"u64"}]},{name:"TokenSwapV2"},{name:"HeliumTreasuryManagementRedeemV0"},{name:"StakeDexStakeWrappedSol"},{name:"StakeDexSwapViaStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"GooseFXV2"},{name:"Perps"},{name:"PerpsAddLiquidity"},{name:"PerpsRemoveLiquidity"},{name:"MeteoraDlmm"},{name:"OpenBookV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumClmmV2"},{name:"StakeDexPrefundWithdrawStakeAndDepositStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"Clone",fields:[{name:"pool_index",type:"u8"},{name:"quantity_is_input",type:"bool"},{name:"quantity_is_collateral",type:"bool"}]},{name:"SanctumS",fields:[{name:"src_lst_value_calc_accs",type:"u8"},{name:"dst_lst_value_calc_accs",type:"u8"},{name:"src_lst_index",type:"u32"},{name:"dst_lst_index",type:"u32"}]},{name:"SanctumSAddLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"SanctumSRemoveLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"RaydiumCP"},{name:"WhirlpoolSwapV2",fields:[{name:"a_to_b",type:"bool"},{name:"remaining_accounts_info",type:{option:{defined:{name:"RemainingAccountsInfo"}}}}]},{name:"OneIntro"},{name:"PumpdotfunWrappedBuy"},{name:"PumpdotfunWrappedSell"},{name:"PerpsV2"},{name:"PerpsV2AddLiquidity"},{name:"PerpsV2RemoveLiquidity"},{name:"MoonshotWrappedBuy"},{name:"MoonshotWrappedSell"},{name:"StabbleStableSwap"},{name:"StabbleWeightedSwap"},{name:"Obric",fields:[{name:"x_to_y",type:"bool"}]},{name:"FoxBuyFromEstimatedCost"},{name:"FoxClaimPartial",fields:[{name:"is_y",type:"bool"}]},{name:"SolFi",fields:[{name:"is_quote_to_base",type:"bool"}]},{name:"SolayerDelegateNoInit"},{name:"SolayerUndelegateNoInit"},{name:"TokenMill",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"DaosFunBuy"},{name:"DaosFunSell"},{name:"ZeroFi"},{name:"StakeDexWithdrawWrappedSol"},{name:"VirtualsBuy"},{name:"VirtualsSell"},{name:"Perena",fields:[{name:"in_index",type:"u8"},{name:"out_index",type:"u8"}]},{name:"PumpdotfunAmmBuy"},{name:"PumpdotfunAmmSell"},{name:"Gamma"},{name:"MeteoraDlmmSwapV2",fields:[{name:"remaining_accounts_info",type:{defined:{name:"RemainingAccountsInfo"}}}]},{name:"Woofi"},{name:"MeteoraDammV2"},{name:"MeteoraDynamicBondingCurveSwap"},{name:"StabbleStableSwapV2"},{name:"StabbleWeightedSwapV2"},{name:"RaydiumLaunchlabBuy",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"RaydiumLaunchlabSell",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"BoopdotfunWrappedBuy"},{name:"BoopdotfunWrappedSell"},{name:"Plasma",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"GoonFi",fields:[{name:"is_bid",type:"bool"},{name:"blacklist_bump",type:"u8"}]},{name:"HumidiFi",fields:[{name:"swap_id",type:"u64"},{name:"is_base_to_quote",type:"bool"}]},{name:"MeteoraDynamicBondingCurveSwapWithRemainingAccounts"},{name:"TesseraV",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumStable"}]}},{name:"SwapEvent",type:{kind:"struct",fields:[{name:"amm",type:"pubkey"},{name:"input_mint",type:"pubkey"},{name:"input_amount",type:"u64"},{name:"output_mint",type:"pubkey"},{name:"output_amount",type:"u64"}]}},{name:"TokenLedger",type:{kind:"struct",fields:[{name:"token_account",type:"pubkey"},{name:"amount",type:"u64"}]}}]};function createAssociatedTokenAccountInstruction$1(e,t,n,a,r=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),i=new address.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:address.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new address.TransactionInstruction({keys:o,programId:i,data:address.bufferPolyfillExports.Buffer.from([1])})}var TOKEN_ACCOUNT_LEN$1=165;async function createInitializeRandomTokenAccountInstructions$1(e,t,n,a,r,i=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const o=[],s=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN$1);return o.push(address.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:r.publicKey,lamports:s,space:TOKEN_ACCOUNT_LEN$1,programId:i})),o.push(new address.TransactionInstruction({keys:[{pubkey:r.publicKey,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:i,data:address.bufferPolyfillExports.Buffer.from([1])})),o}var ApproveInstructionData$1=address.struct([address.u8("instruction"),address.blob(8,"amount")]);function createApproveInstruction$1(e,t,n,a,r=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],o=address.bufferPolyfillExports.Buffer.alloc(ApproveInstructionData$1.span);return ApproveInstructionData$1.encode({instruction:4,amount:getSafeU64Blob$1(a)},o),new address.TransactionInstruction({keys:i,programId:r,data:o})}var SyncNativeInstructionData$1=address.struct([address.u8("instruction")]);function createSyncNativeInstruction$1(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],n=address.bufferPolyfillExports.Buffer.alloc(SyncNativeInstructionData$1.span);return SyncNativeInstructionData$1.encode({instruction:17},n),new address.TransactionInstruction({keys:t,programId:new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),data:n})}address.struct([address.u8("instruction")]);var SplTransferInstructionData$1=address.struct([address.u8("instruction"),address.blob(8,"amount")]);function createSplTransferInstruction$1(e,t,n,a,r=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],o=address.bufferPolyfillExports.Buffer.alloc(SplTransferInstructionData$1.span);return SplTransferInstructionData$1.encode({instruction:3,amount:getSafeU64Blob$1(a)},o),new address.TransactionInstruction({keys:i,programId:r,data:o})}var solMint$1=new address.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo$1(e){return new address.TransactionInstruction({programId:new address.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new address.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:address.bufferPolyfillExports.Buffer.from(e.data,"base64")})}async function getAddressLookupTableAccounts$1(e,t){return(await t.getMultipleAccountsInfo(e.map(a=>new address.PublicKey(a)))).reduce((a,r,i)=>{const o=e[i];if(r){const s=new address.AddressLookupTableAccount({key:new address.PublicKey(o),state:address.AddressLookupTableAccount.deserialize(r.data)});a.push(s)}return a},new Array)}function decentralizeClientSwapInstructions$1(e,t){const n=deserializeInstructionInfo$1(e.swapInstruction),a=e.cleanupInstruction?deserializeInstructionInfo$1(e.cleanupInstruction):null,r=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo$1):[],i=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo$1):[];return{swapInstruction:n,cleanupInstruction:a,computeBudgetInstructions:r,setupInstructions:i,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData$1(e){let t=`global:${e}`;return address.bufferPolyfillExports.Buffer.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer$1(){let e;try{const t=await getSuggestedRelayer$1();e=new address.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=address.SystemProgram.programId}return e}function validateJupCleanupInstruction$1(e,t){if(e){if(!e.programId.equals(new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!e.programId.equals(new address.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid cleanup instruction:: programId");if(Uint8Array.from(e.data).length!==1)throw new Error("Invalid cleanup instruction:: data");if(Uint8Array.from(e.data)[0]!==9)throw new Error("Invalid cleanup instruction:: data");if(t&&!e.keys[1].pubkey.equals(t))throw new Error("Invalid cleanup instruction:: dest account")}}function validateJupSetupInstructions$1(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(n=>{if(!n.programId.equals(new address.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))&&!n.programId.equals(address.SystemProgram.programId)&&!n.programId.equals(new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!n.programId.equals(new address.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(n.programId.equals(new address.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(n.data).length===1){if(Uint8Array.from(n.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(n.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(n.programId.equals(address.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const a=getAssociatedTokenAddress$1(solMint$1,t,!0);if(n.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!n.keys[1].pubkey.equals(a))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(n.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction$1(e,t,n=!1){const a=new address.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");if(!e.programId.equals(a))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("shared_accounts_route").toString("hex")){if(!e.keys[6].pubkey.equals(t))throw new Error("Invalid swap instruction shared_accounts_route:: dest account")}else if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("route").toString("hex")){if(n){if(!e.keys[4].pubkey.equals(a)&&!e.keys[3].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else if(!e.keys[4].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else throw new Error("Invalid swap instruction:: ix id")}function validateJupSwapInstructionData(e,t){const n=decodeJupiterV6InsArgs(Uint8Array.from(e.data));if(n.in_amount>BigInt(t.effectiveAmountIn64))throw new Error("Invalid swap instruction:: amount in");const a=getAmountOfFractionalAmount$1(t.minAmountOut,t.toToken.decimals);if(n.quoted_out_amount-n.quoted_out_amount*BigInt(n.slippage_bps)/10000n<a)throw new Error("Invalid swap instruction:: quote expired");if(n.platform_fee_bps!==t.referrerBps)throw new Error("Invalid swap instruction:: platform fee")}function validateJupComputeBudgetInstructions$1(e){e.forEach(t=>{if(!t.programId.equals(address.ComputeBudgetProgram.programId))throw new Error("Invalid compute budget instruction:: programId");if(Uint8Array.from(t.data)[0]===3&&t.data.readBigUInt64LE(1)>100000000n)throw new Error("Invalid compute budget instruction:: to high tx fee")})}function validateJupSwap$1(e,t,n,a,r=!1){validateJupComputeBudgetInstructions$1(e.computeBudgetInstructions),validateJupSetupInstructions$1(e.setupInstructions,n),validateJupSwapInstruction$1(e.swapInstruction,t,r),validateJupCleanupInstruction$1(e.cleanupInstruction,a)}function createTransferAllAndCloseInstruction$1(e,t,n,a,r,i=new address.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new address.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}],programId:new address.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData$1("transfer_all_and_close")})}function createPayloadWriterCreateInstruction(e,t,n,a){const r=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:address.SystemProgram.programId,isSigner:!1,isWritable:!1}],i=14+n.length,o=address.bufferPolyfillExports.Buffer.alloc(i);return o.set(getAnchorInstructionData$1("create_simple"),0),o.writeUint16LE(a,8),o.writeUint32LE(n.length,10),o.set(n,14),new address.TransactionInstruction({keys:r,programId:new address.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:o})}function createPayloadWriterCloseInstruction(e,t,n){const a=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],i=address.bufferPolyfillExports.Buffer.alloc(10);return i.set(getAnchorInstructionData$1("close"),0),i.writeUint16LE(n,8),new address.TransactionInstruction({keys:a,programId:new address.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:i})}function getWormholePDAs$1(e){const t=new address.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),n=new address.PublicKey(e),[a]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("Bridge")],t),[r]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("emitter")],n),[i]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("Sequence"),r.toBuffer()],t),[o]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("fee_collector")],t);return{bridgeConfig:a,sequenceKey:i,feeCollector:o,emitter:r}}var MCTPBridgeWithFeeLayout$1=address.struct([address.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction$1(e,t,n,a,r){const i=new address.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),o=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),s=new address.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),d=new address.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),u=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),l=new address.PublicKey(a),p=new address.PublicKey(n),f=getAssociatedTokenAddress$1(p,e,!0);let y;r&&r>BigInt(0)?y=getAssociatedTokenAddress$1(p,l,!1):y=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs$1(p,t),b=getWormholePDAs$1(addresses_default$1.MCTP_PROGRAM_ID),g=address.Keypair.generate(),h=address.Keypair.generate(),T=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=address.bufferPolyfillExports.Buffer.alloc(MCTPBridgeWithFeeLayout$1.span);return MCTPBridgeWithFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_with_fee")},A),{instruction:new address.TransactionInstruction({keys:T,data:A,programId:u}),signers:[g,h]}}var MctpBridgeLockFeeLayout$1=address.struct([address.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction$1(e,t,n,a,r){const i=[],o=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),s=new address.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID),d=new address.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),u=new address.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),l=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),p=new address.PublicKey(a),f=new address.PublicKey(n),y=getAssociatedTokenAddress$1(f,e,!0),m=getCCTPBridgePDAs$1(f,t),b=address.Keypair.generate(),[g]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("LOCKED_FEE"),f.toBuffer(),b.publicKey.toBytes()],l);let h;r&&r>BigInt(0)?h=getAssociatedTokenAddress$1(f,p,!1):h=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const T=getAssociatedTokenAddress$1(f,g,!0);i.push(createAssociatedTokenAccountInstruction$1(p,T,g,f));const A=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],S=address.bufferPolyfillExports.Buffer.alloc(MctpBridgeLockFeeLayout$1.span);MctpBridgeLockFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_locked_fee")},S);const w=new address.TransactionInstruction({keys:A,data:S,programId:l});return i.push(w),{instructions:i,signer:b}}var MctpInitSwapLayout$1=address.struct([address.blob(8,"instruction")]);function createMctpInitSwapInstruction$1(e,t,n,a,r){const i=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),o=new address.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),s=new address.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),d=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),u=new address.PublicKey(a),l=new address.PublicKey(n),p=getAssociatedTokenAddress$1(l,e,!0),f=getCCTPBridgePDAs$1(l,t),y=address.Keypair.generate(),[m]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],d);let b;r&&r>BigInt(0)?b=getAssociatedTokenAddress$1(l,u,!1):b=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const g=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:y.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=address.bufferPolyfillExports.Buffer.alloc(MctpInitSwapLayout$1.span);return MctpInitSwapLayout$1.encode({instruction:getAnchorInstructionData$1("create_order")},h),{instruction:new address.TransactionInstruction({keys:g,data:h,programId:d}),signer:y}}var MctpBridgeLedgerLayout$1=address.struct([address.blob(8,"instruction"),address.blob(32,"destAddress"),address.blob(8,"amountInMin"),address.blob(8,"gasDrop"),address.blob(8,"feeRedeem"),address.blob(8,"feeSolana"),address.u16("destinationChain"),address.blob(32,"keyRnd"),address.u8("mode")]);function createMctpBridgeLedgerInstruction$1(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new address.PublicKey(e.swapperAddress),n=new address.PublicKey(e.mintAddress),a=getAssociatedTokenAddress$1(n,e.ledger,!0),r=getWormholeChainIdByName$1(e.toChain),i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),o=getSafeU64Blob$1(e.amountInMin64),s=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),d=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),u=getSafeU64Blob$1(e.feeSolana),l=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):address.SystemProgram.programId.toBuffer(),p=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(l),isWritable:!1,isSigner:!1}],f=address.bufferPolyfillExports.Buffer.alloc(MctpBridgeLedgerLayout$1.span);return MctpBridgeLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_bridge_ledger"),destAddress:i,amountInMin:o,gasDrop:s,feeRedeem:d,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},f),new address.TransactionInstruction({keys:p,data:f,programId:new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout$1=address.struct([address.blob(8,"instruction"),address.blob(32,"destAddress"),address.blob(8,"amountInMin"),address.blob(8,"gasDrop"),address.blob(8,"feeRedeem"),address.blob(8,"feeSolana"),address.u16("destinationChain"),address.blob(32,"keyRnd"),address.u8("mode"),address.blob(32,"tokenOut"),address.blob(8,"amountOutMin"),address.blob(8,"deadline"),address.blob(32,"refAddress"),address.u8("feeRateRef")]);function createMctpSwapLedgerInstruction$1(e){const t=new address.PublicKey(e.swapperAddress),n=new address.PublicKey(e.mintAddress),a=getAssociatedTokenAddress$1(n,e.ledger,!0),r=getWormholeChainIdByName$1(e.toChain),i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),o=getSafeU64Blob$1(e.amountInMin64),s=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),d=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),u=getSafeU64Blob$1(e.feeSolana),l=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.tokenOut,r))),p=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):address.SystemProgram.programId.toBuffer(),f=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),y=getSafeU64Blob$1(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=address.bufferPolyfillExports.Buffer.alloc(MctpSwapLedgerLayout$1.span);return MctpSwapLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_order_ledger"),destAddress:i,amountInMin:o,gasDrop:s,feeRedeem:d,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:l,refAddress:p,amountOutMin:f,deadline:y,feeRateRef:e.feeRateRef},b),new address.TransactionInstruction({keys:m,data:b,programId:new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions$1(e,t,n,a,r,i={}){const o=(i==null?void 0:i.forceSkipCctpInstructions)||!1,s=(i==null?void 0:i.allowSwapperOffCurve)||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let d=[],u=[],l=[],p=[],f=[],y=[],m=[];const b=address.Keypair.generate();let g=null;d.push(addresses_default$1.LOOKUP_TABLE);const h=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),T=new address.PublicKey(t),A=address.Keypair.generate(),S=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const w=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[P]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from(w),T.toBytes(),A.publicKey.toBytes()],h),O=getAssociatedTokenAddress$1(new address.PublicKey(e.mctpInputContract),P,!0),R=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const C=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&u.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),u.push(createAssociatedTokenAccountInstruction$1(T,O,P,new address.PublicKey(e.mctpInputContract))),u.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(new address.PublicKey(e.mctpInputContract),T,s),O,T,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(u.push(createMctpSwapLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:S,feeRateRef:e.referrerBps})),!o){const{instruction:v,signer:N}=createMctpInitSwapInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(v),l.push(N)}}else if(u.push(createMctpBridgeLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:R,referrerAddress:a})),!o)if(R==="WITH_FEE"){const{instruction:v,signers:N}=createMctpBridgeWithFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(v),l.push(...N)}else{const{instructions:v,signer:N}=createMctpBridgeLockFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(...v),l.push(N)}}else{const C=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:P.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":R,fillMaxAccounts:(i==null?void 0:i.separateSwapTx)||!1,tpmTokenAccount:i!=null&&i.separateSwapTx?b.publicKey.toString():null}),v=decentralizeClientSwapInstructions$1(C);i!=null&&i.separateSwapTx&&C.maxAccountsFilled?(validateJupSwap$1(v,b.publicKey,T),m=await createInitializeRandomTokenAccountInstructions$1(r,T,new address.PublicKey(e.mctpInputContract),T,b),y.push(...v.computeBudgetInstructions),v.setupInstructions&&y.push(...v.setupInstructions),y.push(v.swapInstruction),v.cleanupInstruction&&y.push(v.cleanupInstruction),f.push(...v.addressLookupTableAddresses),u.push(createAssociatedTokenAccountInstruction$1(T,O,P,new address.PublicKey(e.mctpInputContract))),u.push(createTransferAllAndCloseInstruction$1(T,new address.PublicKey(e.mctpInputContract),b.publicKey,O,T))):(validateJupSwap$1(v,O,T),u.push(...v.computeBudgetInstructions),v.setupInstructions&&u.push(...v.setupInstructions),u.push(v.swapInstruction),v.cleanupInstruction&&u.push(v.cleanupInstruction),d.push(...v.addressLookupTableAddresses));const N=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(u.push(createMctpSwapLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:S,feeRateRef:e.referrerBps})),y.length>0){const{instruction:W,signer:U}=createMctpInitSwapInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(W),l.push(U)}}else if(u.push(createMctpBridgeLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),mode:R,referrerAddress:a})),y.length>0)if(R==="WITH_FEE"){const{instruction:W,signers:U}=createMctpBridgeWithFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(W),l.push(...U)}else{const{instructions:W,signer:U}=createMctpBridgeLockFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(...W),l.push(U)}}const D=await getAddressLookupTableAccounts$1(d.concat(f),r);if(p=D.slice(0,d.length),y.length>0){const C=D.slice(d.length);g={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:C},createTmpTokenAccountIxs:m,tmpTokenAccount:b}}return{instructions:u,signers:l,lookupTables:p,swapMessageV0Params:g}}function createSwiftOrderHash$1(e,t,n,a,r){const o=address.bufferPolyfillExports.Buffer.alloc(239);let s=0;const d=getWormholeChainIdByName$1(e.fromChain),u=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(t,d)));o.set(u,0),s+=32,o.writeUInt16BE(d,s),s+=2;const l=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.swiftInputContract,d),p=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(l));o.set(p,s),s+=32;const f=getWormholeChainIdByName$1(e.toChain),y=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(n,f)));o.set(y,s),s+=32,o.writeUInt16BE(f,s),s+=2;const m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,f),b=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(m));o.set(b,s),s+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(e.toToken.decimals,8)),s),s+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),s),s+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),s),s+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),s),s+=8,o.writeBigUInt64BE(BigInt(e.deadline64),s),s+=8;const g=a?address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(a,f))):address.SystemProgram.programId.toBuffer();o.set(g,s),s+=32,o.writeUInt8(e.referrerBps,s),s+=1;const h=e.protocolBps;o.writeUInt8(h,s),s+=1,o.writeUInt8(e.swiftAuctionMode,s),s+=1;const T=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(r));if(o.set(T,s),s+=32,s!==239)throw new Error(`Invalid order data size: ${s}`);const A=address.keccak256(o);return address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(A))}var InitSwiftLayout$1=address.struct([address.blob(8,"instruction"),address.blob(8,"amountInMin"),address.u8("nativeInput"),address.blob(8,"feeSubmit"),address.blob(32,"destAddress"),address.u16("destinationChain"),address.blob(32,"tokenOut"),address.blob(8,"amountOutMin"),address.blob(8,"gasDrop"),address.blob(8,"feeCancel"),address.blob(8,"feeRefund"),address.blob(8,"deadline"),address.blob(32,"refAddress"),address.u8("feeRateRef"),address.u8("feeRateMayan"),address.u8("auctionMode"),address.blob(32,"randomKey")]);function createSwiftInitInstruction$1(e){const{quote:t}=e,n=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new address.PublicKey(t.swiftInputContract),a=getWormholeChainIdByName$1(t.toChain);if(a!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${a} != ${t.toToken.wChainId}`);const r=[{pubkey:e.trader,isWritable:!1,isSigner:!0},{pubkey:e.relayer,isWritable:!0,isSigner:!0},{pubkey:e.state,isWritable:!0,isSigner:!1},{pubkey:e.stateAccount,isWritable:!0,isSigner:!1},{pubkey:e.relayerAccount,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],i=address.bufferPolyfillExports.Buffer.alloc(InitSwiftLayout$1.span),o=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,a))):address.SystemProgram.programId.toBuffer(),s=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount$1(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout$1.encode({instruction:getAnchorInstructionData$1("init_order"),amountInMin:getSafeU64Blob$1(s),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob$1(BigInt(t.submitRelayerFee64)),destAddress:address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,a))),destinationChain:a,tokenOut:address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(t.toToken.contract,a))),amountOutMin:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.gasDrop,Math.min(getGasDecimal$1(t.toChain),8))),feeCancel:getSafeU64Blob$1(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob$1(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob$1(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},i),new address.TransactionInstruction({keys:r,data:i,programId:new address.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions$1(e,t,n,a,r,i={}){if(e.type!=="SWIFT")throw new Error("Unsupported quote type for Swift: "+e.type);if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const o=i.allowSwapperOffCurve||!1;let s=[],d=[],u=[];u.push(addresses_default$1.LOOKUP_TABLE);let l=[],p=[],f=[];const y=address.Keypair.generate();let m=null;const b=new address.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID),g=new address.PublicKey(t),h=address.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const T=BigInt(e.deadline64),A=createSwiftOrderHash$1(e,t,n,a,h.publicKey.toBuffer().toString("hex")),[S]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("STATE_SOURCE"),A],b),w=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new address.PublicKey(e.swiftInputContract),P=getAssociatedTokenAddress$1(w,S,!0),O=e.gasless?new address.PublicKey(e.relayer):g,R=getAssociatedTokenAddress$1(w,O,!1);if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&s.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),s.push(createAssociatedTokenAccountInstruction$1(O,P,S,w)),e.swiftInputContract===providerJsonrpc.ZeroAddress?s.push(address.SystemProgram.transfer({fromPubkey:g,toPubkey:P,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction$1(P)):s.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(w,g,o),P,g,BigInt(e.effectiveAmountIn64)));else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.swiftInputContract,userWallet:t,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.gasless?"SWIFT_GASLESS":"SWIFT",orderHash:`0x${A.toString("hex")}`,fillMaxAccounts:(i==null?void 0:i.separateSwapTx)||!1,tpmTokenAccount:i!=null&&i.separateSwapTx?y.publicKey.toString():null}),C=decentralizeClientSwapInstructions$1(D);i!=null&&i.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap$1(C,y.publicKey,g),f=await createInitializeRandomTokenAccountInstructions$1(r,O,w,g,y),p.push(...C.computeBudgetInstructions),C.setupInstructions&&p.push(...C.setupInstructions),p.push(C.swapInstruction),C.cleanupInstruction&&p.push(C.cleanupInstruction),l.push(...C.addressLookupTableAddresses),s.push(createAssociatedTokenAccountInstruction$1(O,P,S,w)),s.push(createTransferAllAndCloseInstruction$1(g,w,y.publicKey,P,O))):(s.push(...C.computeBudgetInstructions),C.setupInstructions&&s.push(...C.setupInstructions),s.push(C.swapInstruction),C.cleanupInstruction&&s.push(C.cleanupInstruction),u.push(...C.addressLookupTableAddresses))}s.push(createSwiftInitInstruction$1({quote:e,state:S,trader:g,stateAccount:P,randomKey:h.publicKey,relayerAccount:R,relayer:O,destinationAddress:n,deadline:T,referrerAddress:a}));const $=await getAddressLookupTableAccounts$1(u.concat(l),r);if(d=$.slice(0,u.length),p.length>0){const D=$.slice(u.length);m={messageV0:{payerKey:O,instructions:p,addressLookupTableAccounts:D},createTmpTokenAccountIxs:f,tmpTokenAccount:y}}return{instructions:s,signers:[],lookupTables:d,swapMessageV0Params:m}}async function createHyperCoreDepositFromSolanaInstructions(e,t,n,a,r,i={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!(i!=null&&i.usdcPermitSignature))throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");const o=i.allowSwapperOffCurve||!1;let s=[],d=[],u=[],l=[];l.push(addresses_default$1.LOOKUP_TABLE);let p=[],f=[],y=[];const m=address.Keypair.generate();let b=null;const g=new address.PublicKey(t),h=new address.PublicKey(e.hyperCoreParams.initiateTokenContract),T=Math.floor(Math.random()*65e3),[A]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("PAYLOAD"),g.toBuffer(),(()=>{const D=address.bufferPolyfillExports.Buffer.alloc(2);return D.writeUInt16LE(T,0),D})()],new address.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID)),S=getHyperCoreUSDCDepositCustomPayload(e,n,i.usdcPermitSignature),w=address.Keypair.generate(),P=new address.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),[O]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("LEDGER_BRIDGE"),g.toBytes(),w.publicKey.toBytes()],P),R=getAssociatedTokenAddress$1(h,O,!0);if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract){e.suggestedPriorityFee>0&&s.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),s.push(createAssociatedTokenAccountInstruction$1(g,R,O,h)),s.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(h,g,o),R,g,BigInt(e.hyperCoreParams.bridgeAmountUSDC64))),s.push(createPayloadWriterCreateInstruction(g,A,S,T)),s.push(createMctpBridgeLedgerInstruction$1({ledger:O,randomKey:w.publicKey,swapperAddress:g.toString(),mintAddress:h.toString(),mode:"WITH_FEE",feeSolana:BigInt(0),amountInMin64:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),customPayload:A,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:a,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}));const{instruction:D,signers:C}=createMctpBridgeWithFeeInstruction$1(O,"arbitrum",e.hyperCoreParams.initiateTokenContract,g.toString(),BigInt(0));s.push(D),d.push(...C),s.push(createPayloadWriterCloseInstruction(g,A,T))}else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.hyperCoreParams.initiateTokenContract,userWallet:g.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:"HC_USDC",fillMaxAccounts:(i==null?void 0:i.separateSwapTx)||!1,tpmTokenAccount:m.publicKey.toString()}),C=decentralizeClientSwapInstructions$1(D);if(i!=null&&i.separateSwapTx&&D.maxAccountsFilled)validateJupSwap$1(C,m.publicKey,g),y=await createInitializeRandomTokenAccountInstructions$1(r,g,h,g,m),f.push(...C.computeBudgetInstructions),C.setupInstructions&&f.push(...C.setupInstructions),f.push(C.swapInstruction),C.cleanupInstruction&&f.push(C.cleanupInstruction),p.push(...C.addressLookupTableAddresses);else{validateJupSwap$1(C,m.publicKey,g),s.push(...C.computeBudgetInstructions);const L=await createInitializeRandomTokenAccountInstructions$1(r,g,h,g,m);s.push(...L),d.push(m),C.setupInstructions&&s.push(...C.setupInstructions),s.push(C.swapInstruction),C.cleanupInstruction&&s.push(C.cleanupInstruction),l.push(...C.addressLookupTableAddresses)}const v=f.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);let N=BigInt(e.hyperCoreParams.bridgeAmountUSDC64);f.length>0&&(N=N-BigInt(e.solanaRelayerFee64)),s.push(createAssociatedTokenAccountInstruction$1(g,R,O,new address.PublicKey(e.mctpInputContract))),s.push(createSplTransferInstruction$1(m.publicKey,R,g,N));const W=getAssociatedTokenAddress$1(h,g,o),U=await r.getAccountInfo(W);if((!U||!U.data)&&s.push(createAssociatedTokenAccountInstruction$1(g,W,g,h)),s.push(createTransferAllAndCloseInstruction$1(g,h,m.publicKey,W,g)),s.push(createPayloadWriterCreateInstruction(g,A,S,T)),s.push(createMctpBridgeLedgerInstruction$1({ledger:O,swapperAddress:g.toString(),mintAddress:h.toString(),randomKey:w.publicKey,mode:"WITH_FEE",feeSolana:v,amountInMin64:N,customPayload:A,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:a,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"})),s.push(createPayloadWriterCloseInstruction(g,A,T)),f.length>0){const{instruction:L,signers:V}=createMctpBridgeWithFeeInstruction$1(O,"arbitrum",e.hyperCoreParams.initiateTokenContract,g.toString(),BigInt(0));s.push(L),d.push(...V)}}const $=await getAddressLookupTableAccounts$1(l.concat(p),r);if(u=$.slice(0,l.length),f.length>0){const D=$.slice(l.length);b={messageV0:{payerKey:g,instructions:f,addressLookupTableAccounts:D},createTmpTokenAccountIxs:y,tmpTokenAccount:m}}return{instructions:s,signers:d,lookupTables:u,swapMessageV0Params:b}}async function createMonoChainFromSolanaInstructions(e,t,n,a,r,i={}){if(e.type!=="MONO_CHAIN")throw new Error("Unsupported quote type for mono chain: "+e.type);if(e.fromChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.fromChain);if(e.toChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.toChain);if(e.fromToken.contract===e.toToken.contract)throw new Error("From token and to token are the same: "+e.fromToken.contract);if(n.startsWith("0x"))throw new Error("Destination address should not be EVM address");try{new address.PublicKey(n)}catch{throw new Error("Invalid destination address: "+n)}let o=[],s=[],d=[];const u=new address.PublicKey(t),l=new address.PublicKey(n),p=e.toToken.contract===providerJsonrpc.ZeroAddress?solMint$1:new address.PublicKey(e.toToken.contract),f=getAssociatedTokenAddress$1(p,l,!0,e.toToken.standard==="spl2022"?new address.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID):new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)),y=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),m=await getSwapSolana$1({userWallet:t,destinationWallet:n,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,middleToken:e.toToken.contract,amountIn64:e.effectiveAmountIn64,expectedAmountOut64:String(y),depositMode:"MONO_CHAIN",referrerAddress:a}),b=decentralizeClientSwapInstructions$1(m);return validateJupSwap$1(b,f,u,l,u.equals(l)),validateJupSwapInstructionData(b.swapInstruction,e),o.push(...b.computeBudgetInstructions),b.setupInstructions&&o.push(...b.setupInstructions),o.push(b.swapInstruction),b.cleanupInstruction&&o.push(b.cleanupInstruction),d.push(...b.addressLookupTableAddresses),{instructions:o,signers:[],lookupTables:s,swapMessageV0Params:null}}var STATE_SIZE$1=420,SwapLayout$1=address.struct([address.u8("instruction"),address.u8("stateNonce"),address.blob(8,"amount"),address.blob(8,"minAmountOut"),address.blob(8,"deadline"),address.blob(8,"feeSwap"),address.blob(8,"feeReturn"),address.blob(8,"feeCancel"),address.blob(8,"gasDrop"),address.u16("destinationChain"),address.blob(32,"destinationAddress"),address.u8("unwrapRedeem"),address.u8("unwrapRefund"),address.u8("mayanFeeNonce"),address.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions$1(e,t,n,a,r,i={}){const o=getQuoteSuitableReferrerAddress$1(e,a);if(e.fromChain==="hypercore")throw new Error("HyperCore as source chain is not supported in Solana");if(e.toChain==="hypercore")return createHyperCoreDepositFromSolanaInstructions(e,t,n,o,r,i);if(e.type==="MCTP")return createMctpFromSolanaInstructions$1(e,t,n,o,r,i);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions$1(e,t,n,o,r,i);if(e.type==="MONO_CHAIN")return createMonoChainFromSolanaInstructions(e,t,n,o,r,i);let s=[];const d=r??new address.Connection("https://rpc.ankr.com/solana"),u=new address.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),l=new address.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),p=new address.PublicKey(t),f=new address.PublicKey(addresses_default$1.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&s.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let y;o?y=new address.PublicKey(o):y=address.SystemProgram.programId;const[m,b]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("MAYANFEE")],u),[g,h]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("REFERRERFEE"),y.toBuffer()],u),T=address.Keypair.generate(),A=address.Keypair.generate(),[S,w]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("V2STATE"),address.bufferPolyfillExports.Buffer.from(T.publicKey.toBytes()),address.bufferPolyfillExports.Buffer.from(A.publicKey.toBytes())],u),P=new address.PublicKey(e.fromToken.mint),O=new address.PublicKey(e.toToken.mint),R=getAssociatedTokenAddress$1(P,p),$=getAssociatedTokenAddress$1(P,S,!0),[[D,C],v,N]=await Promise.all([d.getMultipleAccountsInfo([R,$],"finalized"),d.getMinimumBalanceForRentExemption(STATE_SIZE$1),decideRelayer$1()]);(!D||D.data.length===0)&&s.push(createAssociatedTokenAccountInstruction$1(p,R,p,P)),(!C||C.data.length===0)&&s.push(createAssociatedTokenAccountInstruction$1(p,$,S,P)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(s.push(address.SystemProgram.transfer({fromPubkey:p,toPubkey:R,lamports:BigInt(e.effectiveAmountIn64)})),s.push(createSyncNativeInstruction$1(R)));const W=BigInt(e.effectiveAmountIn64),U=address.Keypair.generate();s.push(createApproveInstruction$1(R,U.publicKey,p,W)),s.push(address.SystemProgram.transfer({fromPubkey:p,toPubkey:U.publicKey,lamports:v}));const L=[{pubkey:U.publicKey,isWritable:!1,isSigner:!0},{pubkey:T.publicKey,isWritable:!1,isSigner:!0},{pubkey:A.publicKey,isWritable:!1,isSigner:!0},{pubkey:S,isWritable:!0,isSigner:!1},{pubkey:R,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:P,isWritable:!1,isSigner:!1},{pubkey:O,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:U.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],V=getWormholeChainIdByName$1(e.toChain);if(V===1){const k=await d.getAccountInfo(new address.PublicKey(n));if(k&&k.owner&&k.owner.equals(l))throw new Error("Destination address is not about token account. It should be a owner address")}const X=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(n,V))),Y=getAmountOfFractionalAmount$1(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount$1(e.swapRelayerFee,e.mintDecimals.from),q=getAmountOfFractionalAmount$1(e.redeemRelayerFee,e.mintDecimals.to),j=getAmountOfFractionalAmount$1(e.refundRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount$1(e.gasDrop,getGasDecimalsInSolana$1(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,c=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const _=BigInt(e.deadline64),I=address.bufferPolyfillExports.Buffer.alloc(SwapLayout$1.span),M={instruction:101,stateNonce:w,amount:getSafeU64Blob$1(W),minAmountOut:getSafeU64Blob$1(Y),deadline:getSafeU64Blob$1(_),feeSwap:getSafeU64Blob$1(Z),feeReturn:getSafeU64Blob$1(q),feeCancel:getSafeU64Blob$1(j),gasDrop:getSafeU64Blob$1(Q),destinationChain:V,destinationAddress:X,unwrapRedeem:J?1:0,unwrapRefund:c?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout$1.encode(M,I);const E=new address.TransactionInstruction({keys:L,data:I,programId:u});return s.push(E),{instructions:s,signers:[U,T,A],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams$1(e,t,n,a,r){const i=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain),s=getWormholeChainIdByName$1(e.toChain);if(o!==i)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${i}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==s)throw new Error(`Destination chain ID mismatch: ${s} != ${e.toToken.wChainId}`);const d=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const u=BigInt(e.deadline64),l=e.swiftInputContract,p=BigInt(e.effectiveAmountIn64);let f;a?f=nativeAddressToHexString$1(a,s):f=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),1);const y=nativeAddressToHexString$1(address.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),1):nativeAddressToHexString$1(e.toToken.contract,s),b=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),h=nativeAddressToHexString$1(n,s),T={trader:nativeAddressToHexString$1(t,o),tokenOut:m,minAmountOut:b,gasDrop:g,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:u,destAddr:h,destChainId:s,referrerAddr:f,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:y};return{contractAddress:d,tokenIn:l,amountIn:p,order:T}}function getSwiftFromEvmTxPayload$1(e,t,n,a,r,i){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");r=Number(r);const o=ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{tokenIn:d,amountIn:u,order:l,contractAddress:p}=getEvmSwiftParams$1(e,t,n,a,r);let f;const y=new contract.Contract(p,MayanSwiftArtifact_default$1.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?f=y.interface.encodeFunctionData("createOrderWithEth",[l]):f=y.interface.encodeFunctionData("createOrderWithToken",[d,u,l]);let m,b,g;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="forwardEth",b=[p,f],g=contract.toBeHex(u)):(m="forwardERC20",b=[d,u,o,p,f],g=contract.toBeHex(0));else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:A}=e;if(!e.minMiddleAmount||!T||!A)throw new Error("Swift swap requires middle amount, router address and calldata");const S=e.fromToken.contract,w=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[u,T,A,e.swiftInputContract,w,p,f],g=contract.toBeHex(u)):(m="swapAndForwardERC20",b=[S,u,o,T,A,e.swiftInputContract,w,p,f],g=contract.toBeHex(0))}return{data:s.interface.encodeFunctionData(m,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:g,chainId:r,_forwarder:{method:m,params:b}}}var ShuttleArtifact_default$1={abi:[{type:"function",name:"batchMaxApprove",inputs:[{name:"approvals",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initiate",inputs:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"overrideAmountIn",type:"uint256",internalType:"uint256"},{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"params",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"error",name:"ChainNotSupported",inputs:[{name:"chain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"DeadlineExpired",inputs:[{name:"blocktime",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"ExceedsMaxGasDropoff",inputs:[{name:"requested",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ExceedsMaxRelayingFee",inputs:[{name:"fee",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InsufficientInputAmount",inputs:[{name:"input",type:"uint256",internalType:"uint256"},{name:"minimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidAddress",inputs:[{name:"addr",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidOverrideAmount",inputs:[{name:"received",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapType",inputs:[{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapTypeForChain",inputs:[{name:"chain",type:"uint16",internalType:"uint16"},{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RelayingDisabledForChain",inputs:[]}]},shuttleConstants$1={FAST_MODE_FLAG:1,RELAY_REDEEM_MODE:2,EXACT_IN_FLAG:1,USDC_INPUT_TOKEN_TYPE:0,PRE_APPROVED_ACQUIRE_MODE:0,OUTPUT_USDC_MODE:0,OUTPUT_NATIVE_MODE:1,OUTPUT_OTHER_MODE:2};function writeBigIntTo16BytesBuffer$1(e){const t=(1n<<128n)-1n;if(e<0n||e>t)throw new RangeError("Value must fit in an unsigned 128-bit integer (0 <= value < 2^128)");const n=address.bufferPolyfillExports.Buffer.alloc(16);for(let a=15;a>=0;a--)n[a]=Number(e&0xFFn),e>>=8n;return n}function getShuttleParams$1(e,t,n){const{shuttleParams:a}=e;if(!a)throw new Error("Swap layer params are missing in quote response");const r=getWormholeChainIdById$1(Number(n)),i=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${r}`);let s=[];s.push(shuttleConstants$1.FAST_MODE_FLAG);const d=address.bufferPolyfillExports.Buffer.alloc(8);d.writeBigUInt64BE(BigInt(a.maxLLFee));const u=d.subarray(2);s.push(...u);const l=address.bufferPolyfillExports.Buffer.alloc(4);l.writeUInt32BE(a.fastTransferDeadline),s.push(...l),s.push(shuttleConstants$1.RELAY_REDEEM_MODE);const p=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(6,getGasDecimal$1(e.toChain))),f=address.bufferPolyfillExports.Buffer.alloc(8);f.writeBigUInt64BE(p);const y=f.subarray(4);s.push(...y);const m=address.bufferPolyfillExports.Buffer.alloc(8);m.writeBigUInt64BE(BigInt(a.maxRelayingFee));const b=m.subarray(2);s.push(...b),s.push(shuttleConstants$1.EXACT_IN_FLAG),s.push(shuttleConstants$1.USDC_INPUT_TOKEN_TYPE);const g=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){s.push(...Array(8).fill(0));const T=address.bufferPolyfillExports.Buffer.alloc(8);T.writeBigUInt64BE(g),s.push(...T)}else s.push(...Array(16).fill(0));if(s.push(shuttleConstants$1.PRE_APPROVED_ACQUIRE_MODE),a.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)s.push(shuttleConstants$1.OUTPUT_NATIVE_MODE);else{s.push(shuttleConstants$1.OUTPUT_OTHER_MODE);const w=address.bufferPolyfillExports.Buffer.from(nativeAddressToHexString$1(e.toToken.contract,o).slice(2),"hex");s.push(...w)}const T=address.bufferPolyfillExports.Buffer.alloc(4);T.writeUInt32BE(Number(BigInt(e.deadline64))),s.push(...T);const A=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){s.push(...Array(8).fill(0));const w=address.bufferPolyfillExports.Buffer.alloc(8);w.writeBigUInt64BE(A),s.push(...w)}else{const w=writeBigIntTo16BytesBuffer$1(A);s.push(...w)}const S=address.bufferPolyfillExports.Buffer.from(a.path.slice(2),"hex");s.push(...S)}else s.push(shuttleConstants$1.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString$1(t,o),destChainId:o,serializedParams:`0x${address.bufferPolyfillExports.Buffer.from(s).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:g,bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain))}}function getShuttleFromEvmTxPayload$1(e,t,n,a){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const r=ZeroPermit$1,i=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{destAddr:o,destChainId:s,serializedParams:d,contractAddress:u,amountIn:l,bridgeFee:p}=getShuttleParams$1(e,t,n);let f;f=new contract.Contract(u,ShuttleArtifact_default$1.abi).interface.encodeFunctionData("initiate",[o,l,s,d]);let m,b,g;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",b=[e.shuttleInputContract,l,r,u,f],g=contract.toBeHex(p);else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:A}=e;if(!e.minMiddleAmount||!T||!A)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const S=e.fromToken.contract,w=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[l,T,A,e.shuttleInputContract,w,u,f],g=contract.toBeHex(l)):(m="swapAndForwardERC20",b=[S,l,r,T,A,e.shuttleInputContract,w,u,f],g=contract.toBeHex(p))}return{data:i.interface.encodeFunctionData(m,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:g,chainId:n,_forwarder:{method:m,params:b}}}var MayanFastMctpArtifact_default$1={abi:[{type:"constructor",inputs:[{name:"_cctpTokenMessengerV2",type:"address",internalType:"address"},{name:"_feeManager",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"bridge",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"customPayload",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cctpTokenMessengerV2",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITokenMessengerV2"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createOrder",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"orderPayload",type:"tuple",internalType:"struct FastMCTP.OrderPayload",components:[{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"tokenOut",type:"bytes32",internalType:"bytes32"},{name:"amountOutMin",type:"uint64",internalType:"uint64"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"refundFee",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"referrerAddr",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"domainToCaller",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"feeManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"fulfillOrder",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"},{name:"swapProtocol",type:"address",internalType:"address"},{name:"swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"keyToMintRecipient",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"refund",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"rescueEth",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueRedeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDomainCallers",inputs:[{name:"domain",type:"uint32",internalType:"uint32"},{name:"caller",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeManager",inputs:[{name:"_feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMintRecipient",inputs:[{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"tokenIn",type:"address",internalType:"address"},{name:"mintRecipient",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPause",inputs:[{name:"_pause",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedMsgSenders",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedSwapProtocols",inputs:[{name:"protocol",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"whitelistedMsgSenders",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"whitelistedSwapProtocols",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OrderFulfilled",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OrderRefunded",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"CallerNotSet",inputs:[]},{type:"error",name:"CctpReceiveFailed",inputs:[]},{type:"error",name:"DeadlineViolation",inputs:[]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"InvalidAddress",inputs:[]},{type:"error",name:"InvalidAmountOut",inputs:[]},{type:"error",name:"InvalidGasDrop",inputs:[]},{type:"error",name:"InvalidMintRecipient",inputs:[]},{type:"error",name:"InvalidPayload",inputs:[]},{type:"error",name:"InvalidPayloadType",inputs:[]},{type:"error",name:"InvalidRedeemFee",inputs:[]},{type:"error",name:"InvalidRefundFee",inputs:[]},{type:"error",name:"MintRecipientNotSet",inputs:[]},{type:"error",name:"Paused",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnauthorizedMsgSender",inputs:[]},{type:"error",name:"UnauthorizedSwapProtocol",inputs:[]}]};function getEvmFastMctpBridgeParams$1(e,t,n,a,r){const i=getWormholeChainIdById$1(Number(a)),o=getWormholeChainIdByName$1(e.fromChain),s=getWormholeChainIdByName$1(e.toChain);if(o!==i)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${i}`);const d=nativeAddressToHexString$1(t,s),u=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),p=BigInt(e.circleMaxFee64),f=BigInt(e.effectiveAmountIn64),y=getCCTPDomain$1(e.toChain);let m;if(n?m=nativeAddressToHexString$1(n,s):m=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:f,redeemFee:u,gasDrop:l,destAddr:d,destDomain:y,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:p,contractAddress:b}}function getEvmFastMctpBridgeTxPayload$1(e,t,n,a,r){const i=getEvmFastMctpBridgeParams$1(e,t,n,a),{contractAddress:o,tokenIn:s,amountIn:d,destAddr:u,redeemFee:l,gasDrop:p,circleMaxFee:f,referrerAddr:y,referrerBps:m,destDomain:b,customPayload:g,minFinalityThreshold:h,payloadType:T}=i,A=new contract.Contract(o,MayanFastMctpArtifact_default$1.abi);let S,w;return S=A.interface.encodeFunctionData("bridge",[s,d,l,f,p,u,b,y,m,T,h,g]),w=contract.toBeHex(0),{to:o,data:S,value:w,_params:i}}function getEvmFastMctpCreateOrderParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(a)),i=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${i} !== ${r}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const s=e.fastMctpMayanContract,d=nativeAddressToHexString$1(t,o);let u;n?u=nativeAddressToHexString$1(n,o):u=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const l=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),p=BigInt(e.refundRelayerFee64),f=BigInt(e.circleMaxFee64),y=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),m=getCCTPDomain$1(e.toChain),b=BigInt(e.effectiveAmountIn64),g=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),T=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:f,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER$1,destAddr:d,tokenOut:T,amountOutMin:g,gasDrop:y,redeemFee:l,refundFee:p,deadline:h,referrerAddr:u,referrerBps:e.referrerBps||0},contractAddress:s}}function getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a){const r=getEvmFastMctpCreateOrderParams$1(e,t,n,a),{contractAddress:i,orderPayload:o,tokenIn:s,amountIn:d,circleMaxFee:u,destDomain:l,minFinalityThreshold:p}=r,y=new contract.Contract(i,MayanFastMctpArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[s,d,u,l,p,o]),m=contract.toBeHex(0);return{to:i,data:y,value:m,_params:r}}function getFastMctpFromEvmTxPayload$1(e,t,n,a,r,i){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const d=getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a),u="forwardERC20",l=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:s.interface.encodeFunctionData(u,l),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:l}}}else{const d=getEvmFastMctpBridgeTxPayload$1(e,t,n,a),u="forwardERC20",l=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:s.interface.encodeFunctionData(u,l),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:l}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:u,evmSwapRouterCalldata:l}=e;if(!d||!u||!l)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}else{const p=getEvmFastMctpBridgeTxPayload$1(e,t,n,a),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}}}var HCDepositInitiatorArtifact_default={abi:[{type:"constructor",inputs:[{name:"_hcProcessor",type:"address",internalType:"address"},{name:"_usdc",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastDeposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastMCTP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"mayanCircle",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setFastMCTP",inputs:[{name:"_fastMCTP",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMayanCircle",inputs:[{name:"_mayanCircle",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"InsufficientAmount",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function getUsdcDepositInitiatorMctpTxPayload(e,t,n,a){if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const r=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(a));if(i.length!==65)throw new Error("Invalid USDC permit signature length");const o="0x"+i.subarray(0,32).toString("hex"),s="0x"+i.subarray(32,64).toString("hex"),d=i[64];let u,l;return u=r.interface.encodeFunctionData("deposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:o,s,v:d}}}]),l=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:u,value:l,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getUsdcDepositInitiatorFastMctpTxPayload(e,t,n,a,r){const i=getWormholeChainIdByName$1("arbitrum");if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const o=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),s=address.bufferPolyfillExports.Buffer.from(hexToUint8Array$1(r));if(s.length!==65)throw new Error("Invalid USDC permit signature length");const d="0x"+s.subarray(0,32).toString("hex"),u="0x"+s.subarray(32,64).toString("hex"),l=s[64];let p;a?p=nativeAddressToHexString$1(a,i):p=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));let f,y;return f=o.interface.encodeFunctionData("fastDeposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,BigInt(e.circleMaxFee64),getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),p,e.referrerBps,Number(e.fastMctpMinFinality),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:d,s:u,v:l}}}]),y=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:f,value:y,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getHyperCoreDepositFromEvmTxPayload(e,t,n,a,r,i,o,s={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP"&&e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!(s!=null&&s.usdcPermitSignature))throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");const d=getWormholeChainIdById$1(Number(r)),u=getWormholeChainIdByName$1(e.fromChain);if(u!==d)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${u} !== ${d}`);const l=i||ZeroPermit$1,p=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);let f;if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");if(e.type==="MCTP")f=getUsdcDepositInitiatorMctpTxPayload(e,t,n,s.usdcPermitSignature);else if(e.type==="FAST_MCTP")f=getUsdcDepositInitiatorFastMctpTxPayload(e,t,n,a,s.usdcPermitSignature);else throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);if(e.fromToken.contract.toLowerCase()===e.hyperCoreParams.initiateTokenContract.toLowerCase()){const y="forwardERC20",m=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),l,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:y,params:m}}}else{const{evmSwapRouterAddress:y,evmSwapRouterCalldata:m}=e;if(!e.minMiddleAmount||!y||!m)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");const b=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const g="swapAndForwardEth",h=[BigInt(e.effectiveAmountIn64),y,m,e.hyperCoreParams.initiateTokenContract,b,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(BigInt(e.effectiveAmountIn64)),chainId:r,_forwarder:{method:g,params:h}}}else{const g="swapAndForwardERC20",h=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),l,y,m,e.hyperCoreParams.initiateTokenContract,b,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:g,params:h}}}}}var MayanMonoChainArtifact_default={abi:[{type:"constructor",inputs:[{name:"_forwarderAddress",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"ForwarderAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"MAX_REFERRER_BPS",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"rescueETH",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferEth",inputs:[{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"payable"},{type:"function",name:"transferToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"EthTransferred",inputs:[{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TokenTransferred",inputs:[{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"InvalidReferrerBps",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function getEvmMonoChainTxPayload(e,t,n){const a=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),r=new contract.Contract(e.monoChainMayanContract,MayanMonoChainArtifact_default.abi);let i,o;return e.toToken.contract===providerJsonrpc.ZeroAddress?i=r.interface.encodeFunctionData("transferEth",[t,n,e.referrerBps||0]):i=r.interface.encodeFunctionData("transferToken",[e.toToken.contract,a,t,n,e.referrerBps||0]),e.fromToken.contract===providerJsonrpc.ZeroAddress?o=contract.toBeHex(e.effectiveAmountIn64):o=contract.toBeHex(0),{to:e.monoChainMayanContract,data:i,value:o,_params:{amountIn:BigInt(e.effectiveAmountIn64),tokenIn:e.fromToken.contract}}}function getMonoChainFromEvmTxPayload(e,t,n,a,r){if(e.type!=="MONO_CHAIN")throw new Error("Quote type is not MONO_CHAIN");if(e.fromChain!==e.toChain)throw new Error("Quote chains are not equal");if(e.fromToken.contract.toLowerCase()===e.toToken.contract.toLowerCase())throw new Error(`From token and to token are the same: ${e.fromToken.contract}`);if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");const i=getWormholeChainIdById$1(Number(a)),o=getWormholeChainIdByName$1(e.fromChain);if(o!==i)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${i}`);a=Number(a);const s=r||ZeroPermit$1,d=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{evmSwapRouterAddress:u,evmSwapRouterCalldata:l}=e;if(!u||!l)throw new Error("Mono chain swap requires router address and calldata");const p=getEvmMonoChainTxPayload(e,t,n),f=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,l,e.toToken.contract,f,e.monoChainMayanContract,p.data];return{data:d.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,s,u,l,e.toToken.contract,f,e.monoChainMayanContract,p.data];return{data:d.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}function getEvmSwapParams$1(e,t,n,a,r,i){const o=new address.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),[s]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("MAIN")],o),d=getAssociatedTokenAddress$1(new address.PublicKey(e.fromToken.mint),s,!0),u=BigInt(e.effectiveAmountIn64),l=nativeAddressToHexString$1(d.toString(),1),p=nativeAddressToHexString$1(addresses_default$1.AUCTION_PROGRAM_ID,1);let f;n?f=nativeAddressToHexString$1(n,1):f=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),1);const y=getWormholeChainIdById$1(Number(r)),m=getWormholeChainIdByName$1(e.fromChain),b=getWormholeChainIdByName$1(e.toChain);if(m!==y)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${m} !== ${y}`);const g=e.whMayanContract,h={mayanAddr:l,mayanChainId:1,destAddr:nativeAddressToHexString$1(t,b),destChainId:b,auctionAddr:p,referrer:f,refundAddr:nativeAddressToHexString$1(a,y)},T=e.toToken.contract===providerJsonrpc.ZeroAddress,A={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),unwrap:T,customPayload:"0x"},S={swapFee:getAmountOfFractionalAmount$1(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount$1(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},w=nativeAddressToHexString$1(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),P=getAmountOfFractionalAmount$1(e.bridgeFee,18);return{amountIn:u,tokenIn:e.fromToken.contract,tokenOut:w,tokenOutWChainId:e.toToken.realOriginChainId,criteria:A,recipient:h,relayerFees:S,contractAddress:g,bridgeFee:P}}function getSwapFromEvmTxPayload$1(e,t,n,a,r,i,o,s,d){const u=getWormholeChainIdById$1(Number(i)),l=getWormholeChainIdByName$1(e.fromChain);if(l!==u)throw new Error(`Signer chain id(${Number(i)}) and quote from chain are not same! ${l} !== ${u}`);const p=getQuoteSuitableReferrerAddress$1(e,a);if(e.toChain==="hypercore")return getHyperCoreDepositFromEvmTxPayload(e,t,n,p,i,s,o,d);if(e.type==="MCTP")return getMctpFromEvmTxPayload$1(e,n,p,i,s);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload$1(e,t,n,p,i);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload$1(e,n,i);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload$1(e,n,p,i,s);if(e.type==="MONO_CHAIN")return getMonoChainFromEvmTxPayload(e,n,p,i,s);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:f,recipient:y,tokenOut:m,tokenOutWChainId:b,criteria:g,tokenIn:h,amountIn:T,contractAddress:A,bridgeFee:S}=getEvmSwapParams$1(e,n,p,r,i),w=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),P=new contract.Contract(A,MayanSwapArtifact_default$1.abi);let O,R,$;const D=ZeroPermit$1;if(h===providerJsonrpc.ZeroAddress){const v=P.interface.encodeFunctionData("wrapAndSwapETH",[f,y,m,b,g]);O="forwardEth",R=[A,v],$=contract.toBeHex(T)}else{const v=P.interface.encodeFunctionData("swap",[f,y,m,b,g,h,T]);O="forwardERC20",R=[h,T,D,A,v],$=contract.toBeHex(S)}const C=w.interface.encodeFunctionData(O,R);return{to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,data:C,value:$,chainId:i,_forwarder:{method:O,params:R}}}async function assertArgumentIsImmutable$1(e,t){var a;let n;try{n=await t.getMoveFunctionArgTypes({package:e.package,module:e.module,function:e.function})}catch{throw new Error(`Failed to fetch ${e.package}::${e.module}::${e.function} ArgTypes`)}if(n){if(n[e.argumentIndex]!=="Pure"&&((a=n[e.argumentIndex])==null?void 0:a.Object)!=="ByImmutableReference")throw new Error(`Argument ${e.argumentIndex} of ${e.module}::${e.function} is not immutable`)}else throw new Error(`Failed to fetch package::${e.module}::${e.function} ArgTypes`)}async function fetchAllCoins$1(e,t){let n=[],a=BigInt(0),r;do{const i=await t.getCoins({...e,owner:e.walletAddress,cursor:r}),o=i.data.filter(s=>BigInt(s.balance)>BigInt(0));if(n=[...n,...o],o.forEach(s=>{a+=BigInt(s.balance)}),i.data.length===0||!i.hasNextPage||!i.nextCursor||a>=e.coinAmount)return{coins:n.sort((s,d)=>Number(BigInt(s.coinObjectId)-BigInt(d.coinObjectId))),sum:a};r=i.nextCursor}while(!0)}async function fetchMayanSuiPackageId$1(e,t){var a,r,i;let n;try{n=await t.getObject({id:e,options:{showContent:!0}})}catch(o){throw new Error(`Failed to fetch Mayan Sui package ID:
1
+ "use strict";var tt=Object.defineProperty;var nt=(e,t,n)=>t in e?tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var z=(e,t,n)=>nt(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const browserPonyfill=require("./browser-ponyfill-Dn6gsMYK.js"),web3=require("./web3-COTIsLs8.js"),platform=require("./platform-BKhoO9So.js"),blake2b=require("./blake2b-Fj1aPKgL.js"),providerJsonrpc=require("./provider-jsonrpc-CbtP2Ffg.js"),contract=require("./contract-BEHYQLvJ.js"),units=require("./units-Ckije3Qv.js"),unsignedTransaction=require("./unsignedTransaction-C6Qp42VS.js"),transfer=require("./transfer-BQ72fByU.js"),unsignedTransaction$1=require("./unsignedTransaction-DzSLsK-p.js"),platform$1=require("./platform-Bbe26nx7.js"),unsignedTransaction$2=require("./unsignedTransaction-B7AZXsTD.js"),mint=require("./mint-CL36R6ED.js");var sha3={exports:{}};(function(e){(function(){var t="input is invalid type",n="finalize already called",a=typeof window=="object",r=a?window:{};r.JS_SHA3_NO_WINDOW&&(a=!1);var s=!a&&typeof self=="object",o=!r.JS_SHA3_NO_NODE_JS&&typeof web3.dist.process=="object"&&web3.dist.process.versions&&web3.dist.process.versions.node;o?r=web3.commonjsGlobal:s&&(r=self);var i=!r.JS_SHA3_NO_COMMON_JS&&!0&&e.exports,l=!r.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",u="0123456789abcdef".split(""),c=[31,7936,2031616,520093696],p=[4,1024,262144,67108864],f=[1,256,65536,16777216],y=[6,1536,393216,100663296],m=[0,8,16,24],b=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],g=[224,256,384,512],h=[128,256],T=["hex","buffer","arrayBuffer","array","digest"],w={128:168,256:136};(r.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(d){return Object.prototype.toString.call(d)==="[object Array]"}),l&&(r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(d){return typeof d=="object"&&d.buffer&&d.buffer.constructor===ArrayBuffer});for(var A=function(d,_,I){return function(M){return new j(d,_,d).update(M)[I]()}},S=function(d,_,I){return function(M,E){return new j(d,_,E).update(M)[I]()}},P=function(d,_,I){return function(M,E,k,F){return W["cshake"+d].update(M,E,k,F)[I]()}},O=function(d,_,I){return function(M,E,k,F){return W["kmac"+d].update(M,E,k,F)[I]()}},R=function(d,_,I,M){for(var E=0;E<T.length;++E){var k=T[E];d[k]=_(I,M,k)}return d},$=function(d,_){var I=A(d,_,"hex");return I.create=function(){return new j(d,_,d)},I.update=function(M){return I.create().update(M)},R(I,A,d,_)},D=function(d,_){var I=S(d,_,"hex");return I.create=function(M){return new j(d,_,M)},I.update=function(M,E){return I.create(E).update(M)},R(I,S,d,_)},C=function(d,_){var I=w[d],M=P(d,_,"hex");return M.create=function(E,k,F){return!k&&!F?W["shake"+d].create(E):new j(d,_,E).bytepad([k,F],I)},M.update=function(E,k,F,B){return M.create(k,F,B).update(E)},R(M,P,d,_)},v=function(d,_){var I=w[d],M=O(d,_,"hex");return M.create=function(E,k,F){return new Q(d,_,k).bytepad(["KMAC",F],I).bytepad([E],I)},M.update=function(E,k,F,B){return M.create(E,F,B).update(k)},R(M,O,d,_)},N=[{name:"keccak",padding:f,bits:g,createMethod:$},{name:"sha3",padding:y,bits:g,createMethod:$},{name:"shake",padding:c,bits:h,createMethod:D},{name:"cshake",padding:p,bits:h,createMethod:C},{name:"kmac",padding:p,bits:h,createMethod:v}],W={},U=[],L=0;L<N.length;++L)for(var V=N[L],X=V.bits,Y=0;Y<X.length;++Y){var Z=V.name+"_"+X[Y];if(U.push(Z),W[Z]=V.createMethod(X[Y],V.padding),V.name!=="sha3"){var q=V.name+X[Y];U.push(q),W[q]=W[Z]}}function j(d,_,I){this.blocks=[],this.s=[],this.padding=_,this.outputBits=I,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(d<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=I>>5,this.extraBytes=(I&31)>>3;for(var M=0;M<50;++M)this.s[M]=0}j.prototype.update=function(d){if(this.finalized)throw new Error(n);var _,I=typeof d;if(I!=="string"){if(I==="object"){if(d===null)throw new Error(t);if(l&&d.constructor===ArrayBuffer)d=new Uint8Array(d);else if(!Array.isArray(d)&&(!l||!ArrayBuffer.isView(d)))throw new Error(t)}else throw new Error(t);_=!0}for(var M=this.blocks,E=this.byteCount,k=d.length,F=this.blockCount,B=0,G=this.s,x,H;B<k;){if(this.reset)for(this.reset=!1,M[0]=this.block,x=1;x<F+1;++x)M[x]=0;if(_)for(x=this.start;B<k&&x<E;++B)M[x>>2]|=d[B]<<m[x++&3];else for(x=this.start;B<k&&x<E;++B)H=d.charCodeAt(B),H<128?M[x>>2]|=H<<m[x++&3]:H<2048?(M[x>>2]|=(192|H>>6)<<m[x++&3],M[x>>2]|=(128|H&63)<<m[x++&3]):H<55296||H>=57344?(M[x>>2]|=(224|H>>12)<<m[x++&3],M[x>>2]|=(128|H>>6&63)<<m[x++&3],M[x>>2]|=(128|H&63)<<m[x++&3]):(H=65536+((H&1023)<<10|d.charCodeAt(++B)&1023),M[x>>2]|=(240|H>>18)<<m[x++&3],M[x>>2]|=(128|H>>12&63)<<m[x++&3],M[x>>2]|=(128|H>>6&63)<<m[x++&3],M[x>>2]|=(128|H&63)<<m[x++&3]);if(this.lastByteIndex=x,x>=E){for(this.start=x-E,this.block=M[F],x=0;x<F;++x)G[x]^=M[x];J(G),this.reset=!0}else this.start=x}return this},j.prototype.encode=function(d,_){var I=d&255,M=1,E=[I];for(d=d>>8,I=d&255;I>0;)E.unshift(I),d=d>>8,I=d&255,++M;return _?E.push(M):E.unshift(M),this.update(E),E.length},j.prototype.encodeString=function(d){var _,I=typeof d;if(I!=="string"){if(I==="object"){if(d===null)throw new Error(t);if(l&&d.constructor===ArrayBuffer)d=new Uint8Array(d);else if(!Array.isArray(d)&&(!l||!ArrayBuffer.isView(d)))throw new Error(t)}else throw new Error(t);_=!0}var M=0,E=d.length;if(_)M=E;else for(var k=0;k<d.length;++k){var F=d.charCodeAt(k);F<128?M+=1:F<2048?M+=2:F<55296||F>=57344?M+=3:(F=65536+((F&1023)<<10|d.charCodeAt(++k)&1023),M+=4)}return M+=this.encode(M*8),this.update(d),M},j.prototype.bytepad=function(d,_){for(var I=this.encode(_),M=0;M<d.length;++M)I+=this.encodeString(d[M]);var E=_-I%_,k=[];return k.length=E,this.update(k),this},j.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var d=this.blocks,_=this.lastByteIndex,I=this.blockCount,M=this.s;if(d[_>>2]|=this.padding[_&3],this.lastByteIndex===this.byteCount)for(d[0]=d[I],_=1;_<I+1;++_)d[_]=0;for(d[I-1]|=2147483648,_=0;_<I;++_)M[_]^=d[_];J(M)}},j.prototype.toString=j.prototype.hex=function(){this.finalize();for(var d=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,F="",B;k<I;){for(E=0;E<d&&k<I;++E,++k)B=_[E],F+=u[B>>4&15]+u[B&15]+u[B>>12&15]+u[B>>8&15]+u[B>>20&15]+u[B>>16&15]+u[B>>28&15]+u[B>>24&15];k%d===0&&(J(_),E=0)}return M&&(B=_[E],F+=u[B>>4&15]+u[B&15],M>1&&(F+=u[B>>12&15]+u[B>>8&15]),M>2&&(F+=u[B>>20&15]+u[B>>16&15])),F},j.prototype.arrayBuffer=function(){this.finalize();var d=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,F=this.outputBits>>3,B;M?B=new ArrayBuffer(I+1<<2):B=new ArrayBuffer(F);for(var G=new Uint32Array(B);k<I;){for(E=0;E<d&&k<I;++E,++k)G[k]=_[E];k%d===0&&J(_)}return M&&(G[E]=_[E],B=B.slice(0,F)),B},j.prototype.buffer=j.prototype.arrayBuffer,j.prototype.digest=j.prototype.array=function(){this.finalize();for(var d=this.blockCount,_=this.s,I=this.outputBlocks,M=this.extraBytes,E=0,k=0,F=[],B,G;k<I;){for(E=0;E<d&&k<I;++E,++k)B=k<<2,G=_[E],F[B]=G&255,F[B+1]=G>>8&255,F[B+2]=G>>16&255,F[B+3]=G>>24&255;k%d===0&&J(_)}return M&&(B=k<<2,G=_[E],F[B]=G&255,M>1&&(F[B+1]=G>>8&255),M>2&&(F[B+2]=G>>16&255)),F};function Q(d,_,I){j.call(this,d,_,I)}Q.prototype=new j,Q.prototype.finalize=function(){return this.encode(this.outputBits,!0),j.prototype.finalize.call(this)};var J=function(d){var _,I,M,E,k,F,B,G,x,H,ee,te,ne,ae,re,ie,se,oe,ue,le,ce,pe,de,ye,me,fe,be,ge,Te,he,we,Ae,_e,Ie,Se,Ce,Me,Pe,Ee,ve,ke,Oe,Re,Be,Fe,xe,De,$e,Ne,Ue,We,Ke,je,He,Ge,Le,Ve,ze,Ye,Je,Xe,Ze,Qe;for(M=0;M<48;M+=2)E=d[0]^d[10]^d[20]^d[30]^d[40],k=d[1]^d[11]^d[21]^d[31]^d[41],F=d[2]^d[12]^d[22]^d[32]^d[42],B=d[3]^d[13]^d[23]^d[33]^d[43],G=d[4]^d[14]^d[24]^d[34]^d[44],x=d[5]^d[15]^d[25]^d[35]^d[45],H=d[6]^d[16]^d[26]^d[36]^d[46],ee=d[7]^d[17]^d[27]^d[37]^d[47],te=d[8]^d[18]^d[28]^d[38]^d[48],ne=d[9]^d[19]^d[29]^d[39]^d[49],_=te^(F<<1|B>>>31),I=ne^(B<<1|F>>>31),d[0]^=_,d[1]^=I,d[10]^=_,d[11]^=I,d[20]^=_,d[21]^=I,d[30]^=_,d[31]^=I,d[40]^=_,d[41]^=I,_=E^(G<<1|x>>>31),I=k^(x<<1|G>>>31),d[2]^=_,d[3]^=I,d[12]^=_,d[13]^=I,d[22]^=_,d[23]^=I,d[32]^=_,d[33]^=I,d[42]^=_,d[43]^=I,_=F^(H<<1|ee>>>31),I=B^(ee<<1|H>>>31),d[4]^=_,d[5]^=I,d[14]^=_,d[15]^=I,d[24]^=_,d[25]^=I,d[34]^=_,d[35]^=I,d[44]^=_,d[45]^=I,_=G^(te<<1|ne>>>31),I=x^(ne<<1|te>>>31),d[6]^=_,d[7]^=I,d[16]^=_,d[17]^=I,d[26]^=_,d[27]^=I,d[36]^=_,d[37]^=I,d[46]^=_,d[47]^=I,_=H^(E<<1|k>>>31),I=ee^(k<<1|E>>>31),d[8]^=_,d[9]^=I,d[18]^=_,d[19]^=I,d[28]^=_,d[29]^=I,d[38]^=_,d[39]^=I,d[48]^=_,d[49]^=I,ae=d[0],re=d[1],xe=d[11]<<4|d[10]>>>28,De=d[10]<<4|d[11]>>>28,ge=d[20]<<3|d[21]>>>29,Te=d[21]<<3|d[20]>>>29,Je=d[31]<<9|d[30]>>>23,Xe=d[30]<<9|d[31]>>>23,Oe=d[40]<<18|d[41]>>>14,Re=d[41]<<18|d[40]>>>14,Ie=d[2]<<1|d[3]>>>31,Se=d[3]<<1|d[2]>>>31,ie=d[13]<<12|d[12]>>>20,se=d[12]<<12|d[13]>>>20,$e=d[22]<<10|d[23]>>>22,Ne=d[23]<<10|d[22]>>>22,he=d[33]<<13|d[32]>>>19,we=d[32]<<13|d[33]>>>19,Ze=d[42]<<2|d[43]>>>30,Qe=d[43]<<2|d[42]>>>30,He=d[5]<<30|d[4]>>>2,Ge=d[4]<<30|d[5]>>>2,Ce=d[14]<<6|d[15]>>>26,Me=d[15]<<6|d[14]>>>26,oe=d[25]<<11|d[24]>>>21,ue=d[24]<<11|d[25]>>>21,Ue=d[34]<<15|d[35]>>>17,We=d[35]<<15|d[34]>>>17,Ae=d[45]<<29|d[44]>>>3,_e=d[44]<<29|d[45]>>>3,ye=d[6]<<28|d[7]>>>4,me=d[7]<<28|d[6]>>>4,Le=d[17]<<23|d[16]>>>9,Ve=d[16]<<23|d[17]>>>9,Pe=d[26]<<25|d[27]>>>7,Ee=d[27]<<25|d[26]>>>7,le=d[36]<<21|d[37]>>>11,ce=d[37]<<21|d[36]>>>11,Ke=d[47]<<24|d[46]>>>8,je=d[46]<<24|d[47]>>>8,Be=d[8]<<27|d[9]>>>5,Fe=d[9]<<27|d[8]>>>5,fe=d[18]<<20|d[19]>>>12,be=d[19]<<20|d[18]>>>12,ze=d[29]<<7|d[28]>>>25,Ye=d[28]<<7|d[29]>>>25,ve=d[38]<<8|d[39]>>>24,ke=d[39]<<8|d[38]>>>24,pe=d[48]<<14|d[49]>>>18,de=d[49]<<14|d[48]>>>18,d[0]=ae^~ie&oe,d[1]=re^~se&ue,d[10]=ye^~fe&ge,d[11]=me^~be&Te,d[20]=Ie^~Ce&Pe,d[21]=Se^~Me&Ee,d[30]=Be^~xe&$e,d[31]=Fe^~De&Ne,d[40]=He^~Le&ze,d[41]=Ge^~Ve&Ye,d[2]=ie^~oe&le,d[3]=se^~ue&ce,d[12]=fe^~ge&he,d[13]=be^~Te&we,d[22]=Ce^~Pe&ve,d[23]=Me^~Ee&ke,d[32]=xe^~$e&Ue,d[33]=De^~Ne&We,d[42]=Le^~ze&Je,d[43]=Ve^~Ye&Xe,d[4]=oe^~le&pe,d[5]=ue^~ce&de,d[14]=ge^~he&Ae,d[15]=Te^~we&_e,d[24]=Pe^~ve&Oe,d[25]=Ee^~ke&Re,d[34]=$e^~Ue&Ke,d[35]=Ne^~We&je,d[44]=ze^~Je&Ze,d[45]=Ye^~Xe&Qe,d[6]=le^~pe&ae,d[7]=ce^~de&re,d[16]=he^~Ae&ye,d[17]=we^~_e&me,d[26]=ve^~Oe&Ie,d[27]=ke^~Re&Se,d[36]=Ue^~Ke&Be,d[37]=We^~je&Fe,d[46]=Je^~Ze&He,d[47]=Xe^~Qe&Ge,d[8]=pe^~ae&ie,d[9]=de^~re&se,d[18]=Ae^~ye&fe,d[19]=_e^~me&be,d[28]=Oe^~Ie&Ce,d[29]=Re^~Se&Me,d[38]=Ke^~Be&xe,d[39]=je^~Fe&De,d[48]=Ze^~He&Le,d[49]=Qe^~Ge&Ve,d[0]^=b[M],d[1]^=b[M+1]};if(i)e.exports=W;else for(L=0;L<U.length;++L)r[U[L]]=W[U[L]]})()})(sha3);var sha3Exports=sha3.exports,sha256={exports:{}};(function(module){(function(){var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof web3.dist.process=="object"&&web3.dist.process.versions&&web3.dist.process.versions.node;NODE_JS?root=web3.commonjsGlobal:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&!0&&module.exports,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(n){return new Sha256(t,!0).update(n)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(r){return t.create().update(r)};for(var n=0;n<OUTPUT_TYPES.length;++n){var a=OUTPUT_TYPES[n];t[a]=createOutputMethod(a,e)}return t},nodeWrap=function(method,is224){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),algorithm=is224?"sha224":"sha256",nodeMethod=function(e){if(typeof e=="string")return crypto.createHash(algorithm).update(e,"utf8").digest("hex");if(e==null)throw new Error(ERROR);return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash(algorithm).update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod},createHmacOutputMethod=function(e,t){return function(n,a){return new HmacSha256(n,t,!0).update(a)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(r){return new HmacSha256(r,e)},t.update=function(r,s){return t.create(r).update(s)};for(var n=0;n<OUTPUT_TYPES.length;++n){var a=OUTPUT_TYPES[n];t[a]=createHmacOutputMethod(a,e)}return t};function Sha256(e,t){t?(blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}Sha256.prototype.update=function(e){if(!this.finalized){var t,n=typeof e;if(n!=="string"){if(n==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);t=!0}for(var a,r=0,s,o=e.length,i=this.blocks;r<o;){if(this.hashed&&(this.hashed=!1,i[0]=this.block,i[16]=i[1]=i[2]=i[3]=i[4]=i[5]=i[6]=i[7]=i[8]=i[9]=i[10]=i[11]=i[12]=i[13]=i[14]=i[15]=0),t)for(s=this.start;r<o&&s<64;++r)i[s>>2]|=e[r]<<SHIFT[s++&3];else for(s=this.start;r<o&&s<64;++r)a=e.charCodeAt(r),a<128?i[s>>2]|=a<<SHIFT[s++&3]:a<2048?(i[s>>2]|=(192|a>>6)<<SHIFT[s++&3],i[s>>2]|=(128|a&63)<<SHIFT[s++&3]):a<55296||a>=57344?(i[s>>2]|=(224|a>>12)<<SHIFT[s++&3],i[s>>2]|=(128|a>>6&63)<<SHIFT[s++&3],i[s>>2]|=(128|a&63)<<SHIFT[s++&3]):(a=65536+((a&1023)<<10|e.charCodeAt(++r)&1023),i[s>>2]|=(240|a>>18)<<SHIFT[s++&3],i[s>>2]|=(128|a>>12&63)<<SHIFT[s++&3],i[s>>2]|=(128|a>>6&63)<<SHIFT[s++&3],i[s>>2]|=(128|a&63)<<SHIFT[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=i[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,s=this.h5,o=this.h6,i=this.h7,l=this.blocks,u,c,p,f,y,m,b,g,h,T,w;for(u=16;u<64;++u)y=l[u-15],c=(y>>>7|y<<25)^(y>>>18|y<<14)^y>>>3,y=l[u-2],p=(y>>>17|y<<15)^(y>>>19|y<<13)^y>>>10,l[u]=l[u-16]+c+l[u-7]+p<<0;for(w=t&n,u=0;u<64;u+=4)this.first?(this.is224?(g=300032,y=l[0]-1413257819,i=y-150054599<<0,a=y+24177077<<0):(g=704751109,y=l[0]-210244248,i=y-1521486534<<0,a=y+143694565<<0),this.first=!1):(c=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),p=(r>>>6|r<<26)^(r>>>11|r<<21)^(r>>>25|r<<7),g=e&t,f=g^e&n^w,b=r&s^~r&o,y=i+p+b+K[u]+l[u],m=c+f,i=a+y<<0,a=y+m<<0),c=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),p=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),h=a&e,f=h^a&t^g,b=i&r^~i&s,y=o+p+b+K[u+1]+l[u+1],m=c+f,o=n+y<<0,n=y+m<<0,c=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),p=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),T=n&a,f=T^n&e^h,b=o&i^~o&r,y=s+p+b+K[u+2]+l[u+2],m=c+f,s=t+y<<0,t=y+m<<0,c=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),p=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),w=t&n,f=w^t&a^T,b=s&o^~s&i,y=r+p+b+K[u+3]+l[u+3],m=c+f,r=e+y<<0,e=y+m<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+n<<0,this.h3=this.h3+a<<0,this.h4=this.h4+r<<0,this.h5=this.h5+s<<0,this.h6=this.h6+o<<0,this.h7=this.h7+i<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,s=this.h5,o=this.h6,i=this.h7,l=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15];return this.is224||(l+=HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]),l},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,a=this.h3,r=this.h4,s=this.h5,o=this.h6,i=this.h7,l=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,a>>24&255,a>>16&255,a>>8&255,a&255,r>>24&255,r>>16&255,r>>8&255,r&255,s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255];return this.is224||l.push(i>>24&255,i>>16&255,i>>8&255,i&255),l},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,n){var a,r=typeof e;if(r==="string"){var s=[],o=e.length,i=0,l;for(a=0;a<o;++a)l=e.charCodeAt(a),l<128?s[i++]=l:l<2048?(s[i++]=192|l>>6,s[i++]=128|l&63):l<55296||l>=57344?(s[i++]=224|l>>12,s[i++]=128|l>>6&63,s[i++]=128|l&63):(l=65536+((l&1023)<<10|e.charCodeAt(++a)&1023),s[i++]=240|l>>18,s[i++]=128|l>>12&63,s[i++]=128|l>>6&63,s[i++]=128|l&63);e=s}else if(r==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var u=[],c=[];for(a=0;a<64;++a){var p=e[a]||0;u[a]=92^p,c[a]=54^p}Sha256.call(this,t,n),this.update(c),this.oKeyPad=u,this.inner=!0,this.sharedMemory=n}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256);var sha256Exports=sha256.exports;function base$1(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let u=0;u<t.length;u++)t[u]=255;for(let u=0;u<e.length;u++){const c=e.charAt(u),p=c.charCodeAt(0);if(t[p]!==255)throw new TypeError(c+" is ambiguous");t[p]=u}const n=e.length,a=e.charAt(0),r=Math.log(n)/Math.log(256),s=Math.log(256)/Math.log(n);function o(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";let c=0,p=0,f=0;const y=u.length;for(;f!==y&&u[f]===0;)f++,c++;const m=(y-f)*s+1>>>0,b=new Uint8Array(m);for(;f!==y;){let T=u[f],w=0;for(let A=m-1;(T!==0||w<p)&&A!==-1;A--,w++)T+=256*b[A]>>>0,b[A]=T%n>>>0,T=T/n>>>0;if(T!==0)throw new Error("Non-zero carry");p=w,f++}let g=m-p;for(;g!==m&&b[g]===0;)g++;let h=a.repeat(c);for(;g<m;++g)h+=e.charAt(b[g]);return h}function i(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;let c=0,p=0,f=0;for(;u[c]===a;)p++,c++;const y=(u.length-c)*r+1>>>0,m=new Uint8Array(y);for(;c<u.length;){const T=u.charCodeAt(c);if(T>255)return;let w=t[T];if(w===255)return;let A=0;for(let S=y-1;(w!==0||A<f)&&S!==-1;S--,A++)w+=n*m[S]>>>0,m[S]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");f=A,c++}let b=y-f;for(;b!==y&&m[b]===0;)b++;const g=new Uint8Array(p+(y-b));let h=p;for(;b!==y;)g[h++]=m[b++];return g}function l(u){const c=i(u);if(c)return c;throw new Error("Non-base"+n+" character")}return{encode:o,decodeUnsafe:i,decode:l}}var ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base$1(ALPHABET$1);const toBase58=e=>web3.base58.encode(e),fromBase58=e=>web3.base58.decode(e);function fromBase64(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))}const CHUNK_SIZE=8192;function toBase64(e){if(e.length<CHUNK_SIZE)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=CHUNK_SIZE){const a=e.slice(n,n+CHUNK_SIZE);t+=String.fromCharCode(...a)}return btoa(t)}function fromHex(e){var r;const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2===0?t:`0${t}`,a=((r=n.match(/[0-9a-fA-F]{2}/g))==null?void 0:r.map(s=>parseInt(s,16)))??[];if(a.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(a)}function toHex(e){return e.reduce((t,n)=>t+n.toString(16).padStart(2,"0"),"")}function chunk(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,a)=>e.slice(a*t,(a+1)*t))}function ulebEncode(e){const t=[];let n=0;if(e===0)return[0];for(;e>0;)t[n]=e&127,(e>>=7)&&(t[n]|=128),n+=1;return t}function ulebDecode(e){let t=0,n=0,a=0;for(;;){const r=e[a];if(a+=1,t|=(r&127)<<n,!(r&128))break;n+=7}return{value:t,length:a}}class BcsReader{constructor(t){this.bytePosition=0,this.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength)}shift(t){return this.bytePosition+=t,this}read8(){const t=this.dataView.getUint8(this.bytePosition);return this.shift(1),t}read16(){const t=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),t}read32(){const t=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),t}read64(){const t=this.read32(),a=this.read32().toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+a).toString(10)}read128(){const t=BigInt(this.read64()),a=BigInt(this.read64()).toString(16)+t.toString(16).padStart(16,"0");return BigInt("0x"+a).toString(10)}read256(){const t=BigInt(this.read128()),a=BigInt(this.read128()).toString(16)+t.toString(16).padStart(32,"0");return BigInt("0x"+a).toString(10)}readBytes(t){const n=this.bytePosition+this.dataView.byteOffset,a=new Uint8Array(this.dataView.buffer,n,t);return this.shift(t),a}readULEB(){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t),{value:a,length:r}=ulebDecode(n);return this.shift(r),a}readVec(t){const n=this.readULEB(),a=[];for(let r=0;r<n;r++)a.push(t(this,r,n));return a}}function encodeStr(e,t){switch(t){case"base58":return toBase58(e);case"base64":return toBase64(e);case"hex":return toHex(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function splitGenericParameters(e,t=["<",">"]){const[n,a]=t,r=[];let s="",o=0;for(let i=0;i<e.length;i++){const l=e[i];if(l===n&&o++,l===a&&o--,o===0&&l===","){r.push(s.trim()),s="";continue}s+=l}return r.push(s.trim()),r}class BcsWriter{constructor({initialSize:t=1024,maxSize:n=1/0,allocateSize:a=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=n,this.allocateSize=a,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){const n=this.bytePosition+t;if(n>this.size){const a=Math.min(this.maxSize,this.size+this.allocateSize);if(n>a)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${n}`);this.size=a;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return toLittleEndian(BigInt(t),8).forEach(n=>this.write8(n)),this}write128(t){return toLittleEndian(BigInt(t),16).forEach(n=>this.write8(n)),this}write256(t){return toLittleEndian(BigInt(t),32).forEach(n=>this.write8(n)),this}writeULEB(t){return ulebEncode(t).forEach(n=>this.write8(n)),this}writeVec(t,n){return this.writeULEB(t.length),Array.from(t).forEach((a,r)=>n(this,a,r,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return encodeStr(this.toBytes(),t)}}function toLittleEndian(e,t){const n=new Uint8Array(t);let a=0;for(;e>0;)n[a]=Number(e%BigInt(256)),e=e/BigInt(256),a+=1;return n}var __typeError$1=e=>{throw TypeError(e)},__accessCheck$1=(e,t,n)=>t.has(e)||__typeError$1("Cannot "+n),__privateGet$1=(e,t,n)=>(__accessCheck$1(e,t,"read from private field"),n?n.call(e):t.get(e)),__privateAdd$1=(e,t,n)=>t.has(e)?__typeError$1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),__privateSet$1=(e,t,n,a)=>(__accessCheck$1(e,t,"write to private field"),t.set(e,n),n),_write,_serialize,_schema,_bytes;const _BcsType=class et{constructor(t){__privateAdd$1(this,_write),__privateAdd$1(this,_serialize),this.name=t.name,this.read=t.read,this.serializedSize=t.serializedSize??(()=>null),__privateSet$1(this,_write,t.write),__privateSet$1(this,_serialize,t.serialize??((n,a)=>{const r=new BcsWriter({initialSize:this.serializedSize(n)??void 0,...a});return __privateGet$1(this,_write).call(this,n,r),r.toBytes()})),this.validate=t.validate??(()=>{})}write(t,n){this.validate(t),__privateGet$1(this,_write).call(this,t,n)}serialize(t,n){return this.validate(t),new SerializedBcs(this,__privateGet$1(this,_serialize).call(this,t,n))}parse(t){const n=new BcsReader(t);return this.read(n)}fromHex(t){return this.parse(fromHex(t))}fromBase58(t){return this.parse(fromBase58(t))}fromBase64(t){return this.parse(fromBase64(t))}transform({name:t,input:n,output:a,validate:r}){return new et({name:t??this.name,read:s=>a?a(this.read(s)):this.read(s),write:(s,o)=>__privateGet$1(this,_write).call(this,n?n(s):s,o),serializedSize:s=>this.serializedSize(n?n(s):s),serialize:(s,o)=>__privateGet$1(this,_serialize).call(this,n?n(s):s,o),validate:s=>{r==null||r(s),this.validate(n?n(s):s)}})}};_write=new WeakMap;_serialize=new WeakMap;let BcsType=_BcsType;const SERIALIZED_BCS_BRAND=Symbol.for("@mysten/serialized-bcs");function isSerializedBcs(e){return!!e&&typeof e=="object"&&e[SERIALIZED_BCS_BRAND]===!0}class SerializedBcs{constructor(t,n){__privateAdd$1(this,_schema),__privateAdd$1(this,_bytes),__privateSet$1(this,_schema,t),__privateSet$1(this,_bytes,n)}get[SERIALIZED_BCS_BRAND](){return!0}toBytes(){return __privateGet$1(this,_bytes)}toHex(){return toHex(__privateGet$1(this,_bytes))}toBase64(){return toBase64(__privateGet$1(this,_bytes))}toBase58(){return toBase58(__privateGet$1(this,_bytes))}parse(){return __privateGet$1(this,_schema).parse(__privateGet$1(this,_bytes))}}_schema=new WeakMap;_bytes=new WeakMap;function fixedSizeBcsType({size:e,...t}){return new BcsType({...t,serializedSize:()=>e})}function uIntBcsType({readMethod:e,writeMethod:t,...n}){return fixedSizeBcsType({...n,read:a=>a[e](),write:(a,r)=>r[t](a),validate:a=>{var r;if(a<0||a>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${a}. Expected value in range 0-${n.maxValue}`);(r=n.validate)==null||r.call(n,a)}})}function bigUIntBcsType({readMethod:e,writeMethod:t,...n}){return fixedSizeBcsType({...n,read:a=>a[e](),write:(a,r)=>r[t](BigInt(a)),validate:a=>{var s;const r=BigInt(a);if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);(s=n.validate)==null||s.call(n,r)}})}function dynamicSizeBcsType({serialize:e,...t}){const n=new BcsType({...t,serialize:e,write:(a,r)=>{for(const s of n.serialize(a).toBytes())r.write8(s)}});return n}function stringLikeBcsType({toBytes:e,fromBytes:t,...n}){return new BcsType({...n,read:a=>{const r=a.readULEB(),s=a.readBytes(r);return t(s)},write:(a,r)=>{const s=e(a);r.writeULEB(s.length);for(let o=0;o<s.length;o++)r.write8(s[o])},serialize:a=>{const r=e(a),s=ulebEncode(r.length),o=new Uint8Array(s.length+r.length);return o.set(s,0),o.set(r,s.length),o},validate:a=>{var r;if(typeof a!="string")throw new TypeError(`Invalid ${n.name} value: ${a}. Expected string`);(r=n.validate)==null||r.call(n,a)}})}function lazyBcsType(e){let t=null;function n(){return t||(t=e()),t}return new BcsType({name:"lazy",read:a=>n().read(a),serializedSize:a=>n().serializedSize(a),write:(a,r)=>n().write(a,r),serialize:(a,r)=>n().serialize(a,r).toBytes()})}const bcs={u8(e){return uIntBcsType({name:"u8",readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...e})},u16(e){return uIntBcsType({name:"u16",readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...e})},u32(e){return uIntBcsType({name:"u32",readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e})},u64(e){return bigUIntBcsType({name:"u64",readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e})},u128(e){return bigUIntBcsType({name:"u128",readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e})},u256(e){return bigUIntBcsType({name:"u256",readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e})},bool(e){return fixedSizeBcsType({name:"bool",size:1,read:t=>t.read8()===1,write:(t,n)=>n.write8(t?1:0),...e,validate:t=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,t),typeof t!="boolean")throw new TypeError(`Expected boolean, found ${typeof t}`)}})},uleb128(e){return dynamicSizeBcsType({name:"uleb128",read:t=>t.readULEB(),serialize:t=>Uint8Array.from(ulebEncode(t)),...e})},bytes(e,t){return fixedSizeBcsType({name:`bytes[${e}]`,size:e,read:n=>n.readBytes(e),write:(n,a)=>{const r=new Uint8Array(n);for(let s=0;s<e;s++)a.write8(r[s]??0)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}})},byteVector(e){return new BcsType({name:"bytesVector",read:t=>{const n=t.readULEB();return t.readBytes(n)},write:(t,n)=>{const a=new Uint8Array(t);n.writeULEB(a.length);for(let r=0;r<a.length;r++)n.write8(a[r]??0)},...e,serializedSize:t=>{const n="length"in t?t.length:null;return n==null?null:ulebEncode(n).length+n},validate:t=>{var n;if((n=e==null?void 0:e.validate)==null||n.call(e,t),!t||typeof t!="object"||!("length"in t))throw new TypeError(`Expected array, found ${typeof t}`)}})},string(e){return stringLikeBcsType({name:"string",toBytes:t=>new TextEncoder().encode(t),fromBytes:t=>new TextDecoder().decode(t),...e})},fixedArray(e,t,n){return new BcsType({name:`${t.name}[${e}]`,read:a=>{const r=new Array(e);for(let s=0;s<e;s++)r[s]=t.read(a);return r},write:(a,r)=>{for(const s of a)t.write(s,r)},...n,validate:a=>{var r;if((r=n==null?void 0:n.validate)==null||r.call(n,a),!a||typeof a!="object"||!("length"in a))throw new TypeError(`Expected array, found ${typeof a}`);if(a.length!==e)throw new TypeError(`Expected array of length ${e}, found ${a.length}`)}})},option(e){return bcs.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:t=>t==null?{None:!0}:{Some:t},output:t=>t.$kind==="Some"?t.Some:null})},vector(e,t){return new BcsType({name:`vector<${e.name}>`,read:n=>{const a=n.readULEB(),r=new Array(a);for(let s=0;s<a;s++)r[s]=e.read(n);return r},write:(n,a)=>{a.writeULEB(n.length);for(const r of n)e.write(r,a)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})},tuple(e,t){return new BcsType({name:`(${e.map(n=>n.name).join(", ")})`,serializedSize:n=>{let a=0;for(let r=0;r<e.length;r++){const s=e[r].serializedSize(n[r]);if(s==null)return null;a+=s}return a},read:n=>{const a=[];for(const r of e)a.push(r.read(n));return a},write:(n,a)=>{for(let r=0;r<e.length;r++)e[r].write(n[r],a)},...t,validate:n=>{var a;if((a=t==null?void 0:t.validate)==null||a.call(t,n),!Array.isArray(n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${n.length}`)}})},struct(e,t,n){const a=Object.entries(t);return new BcsType({name:e,serializedSize:r=>{let s=0;for(const[o,i]of a){const l=i.serializedSize(r[o]);if(l==null)return null;s+=l}return s},read:r=>{const s={};for(const[o,i]of a)s[o]=i.read(r);return s},write:(r,s)=>{for(const[o,i]of a)i.write(r[o],s)},...n,validate:r=>{var s;if((s=n==null?void 0:n.validate)==null||s.call(n,r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`)}})},enum(e,t,n){const a=Object.entries(t);return new BcsType({name:e,read:r=>{const s=r.readULEB(),o=a[s];if(!o)throw new TypeError(`Unknown value ${s} for enum ${e}`);const[i,l]=o;return{[i]:(l==null?void 0:l.read(r))??!0,$kind:i}},write:(r,s)=>{const[o,i]=Object.entries(r).filter(([l])=>Object.hasOwn(t,l))[0];for(let l=0;l<a.length;l++){const[u,c]=a[l];if(u===o){s.writeULEB(l),c==null||c.write(i,s);return}}},...n,validate:r=>{var i;if((i=n==null?void 0:n.validate)==null||i.call(n,r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`);const s=Object.keys(r).filter(l=>r[l]!==void 0&&Object.hasOwn(t,l));if(s.length!==1)throw new TypeError(`Expected object with one key, but found ${s.length} for type ${e}}`);const[o]=s;if(!Object.hasOwn(t,o))throw new TypeError(`Invalid enum variant ${o}`)}})},map(e,t){return bcs.vector(bcs.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:n=>[...n.entries()],output:n=>{const a=new Map;for(const[r,s]of n)a.set(r,s);return a}})},lazy(e){return lazyBcsType(e)}},SUI_NS_NAME_REGEX=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,SUI_NS_DOMAIN_REGEX=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,MAX_SUI_NS_NAME_LENGTH=235;function isValidSuiNSName(e){return e.length>MAX_SUI_NS_NAME_LENGTH?!1:e.includes("@")?SUI_NS_NAME_REGEX.test(e):SUI_NS_DOMAIN_REGEX.test(e)}const NAME_PATTERN=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,VERSION_REGEX=/^\d+$/,MAX_APP_SIZE=64,NAME_SEPARATOR$1="/",isValidNamedPackage=e=>{const t=e.split(NAME_SEPARATOR$1);if(t.length<2||t.length>3)return!1;const[n,a,r]=t;return r!==void 0&&!VERSION_REGEX.test(r)||!isValidSuiNSName(n)?!1:NAME_PATTERN.test(a)&&a.length<MAX_APP_SIZE},isValidNamedType=e=>{const t=e.split(/::|<|>|,/);for(const n of t)if(n.includes(NAME_SEPARATOR$1)&&!isValidNamedPackage(n))return!1;return!0},SUI_ADDRESS_LENGTH=32;function isValidSuiAddress(e){return isHex(e)&&getHexByteLength(e)===SUI_ADDRESS_LENGTH}function normalizeSuiAddress(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(SUI_ADDRESS_LENGTH*2,"0")}`}function normalizeSuiObjectId(e,t=!1){return normalizeSuiAddress(e,t)}function isHex(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2===0}function getHexByteLength(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}const VECTOR_REGEX=/^vector<(.+)>$/,STRUCT_REGEX=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class TypeTagSerializer{static parseFromStr(t,n=!1){if(t==="address")return{address:null};if(t==="bool")return{bool:null};if(t==="u8")return{u8:null};if(t==="u16")return{u16:null};if(t==="u32")return{u32:null};if(t==="u64")return{u64:null};if(t==="u128")return{u128:null};if(t==="u256")return{u256:null};if(t==="signer")return{signer:null};const a=t.match(VECTOR_REGEX);if(a)return{vector:TypeTagSerializer.parseFromStr(a[1],n)};const r=t.match(STRUCT_REGEX);if(r)return{struct:{address:n?normalizeSuiAddress(r[1]):r[1],module:r[2],name:r[3],typeParams:r[5]===void 0?[]:TypeTagSerializer.parseStructTypeArgs(r[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${t}`)}static parseStructTypeArgs(t,n=!1){return splitGenericParameters(t).map(a=>TypeTagSerializer.parseFromStr(a,n))}static tagToString(t){if("bool"in t)return"bool";if("u8"in t)return"u8";if("u16"in t)return"u16";if("u32"in t)return"u32";if("u64"in t)return"u64";if("u128"in t)return"u128";if("u256"in t)return"u256";if("address"in t)return"address";if("signer"in t)return"signer";if("vector"in t)return`vector<${TypeTagSerializer.tagToString(t.vector)}>`;if("struct"in t){const n=t.struct,a=n.typeParams.map(TypeTagSerializer.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${a?`<${a}>`:""}`}throw new Error("Invalid TypeTag")}}function unsafe_u64(e){return bcs.u64({name:"unsafe_u64",...e}).transform({input:t=>t,output:t=>Number(t)})}function optionEnum(e){return bcs.enum("Option",{None:null,Some:e})}const Address=bcs.bytes(SUI_ADDRESS_LENGTH).transform({validate:e=>{const t=typeof e=="string"?e:toHex(e);if(!t||!isValidSuiAddress(normalizeSuiAddress(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>typeof e=="string"?fromHex(normalizeSuiAddress(e)):e,output:e=>normalizeSuiAddress(toHex(e))}),ObjectDigest=bcs.vector(bcs.u8()).transform({name:"ObjectDigest",input:e=>fromBase58(e),output:e=>toBase58(new Uint8Array(e)),validate:e=>{if(fromBase58(e).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),SuiObjectRef=bcs.struct("SuiObjectRef",{objectId:Address,version:bcs.u64(),digest:ObjectDigest}),SharedObjectRef=bcs.struct("SharedObjectRef",{objectId:Address,initialSharedVersion:bcs.u64(),mutable:bcs.bool()}),ObjectArg$3=bcs.enum("ObjectArg",{ImmOrOwnedObject:SuiObjectRef,SharedObject:SharedObjectRef,Receiving:SuiObjectRef}),Owner=bcs.enum("Owner",{AddressOwner:Address,ObjectOwner:Address,Shared:bcs.struct("Shared",{initialSharedVersion:bcs.u64()}),Immutable:null,ConsensusAddressOwner:bcs.struct("ConsensusAddressOwner",{owner:Address,startVersion:bcs.u64()})}),CallArg$2=bcs.enum("CallArg",{Pure:bcs.struct("Pure",{bytes:bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})}),Object:ObjectArg$3}),InnerTypeTag=bcs.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:bcs.lazy(()=>InnerTypeTag),struct:bcs.lazy(()=>StructTag$1),u16:null,u32:null,u256:null}),TypeTag$1=InnerTypeTag.transform({input:e=>typeof e=="string"?TypeTagSerializer.parseFromStr(e,!0):e,output:e=>TypeTagSerializer.tagToString(e)}),Argument$2=bcs.enum("Argument",{GasCoin:null,Input:bcs.u16(),Result:bcs.u16(),NestedResult:bcs.tuple([bcs.u16(),bcs.u16()])}),ProgrammableMoveCall$2=bcs.struct("ProgrammableMoveCall",{package:Address,module:bcs.string(),function:bcs.string(),typeArguments:bcs.vector(TypeTag$1),arguments:bcs.vector(Argument$2)}),Command$2=bcs.enum("Command",{MoveCall:ProgrammableMoveCall$2,TransferObjects:bcs.struct("TransferObjects",{objects:bcs.vector(Argument$2),address:Argument$2}),SplitCoins:bcs.struct("SplitCoins",{coin:Argument$2,amounts:bcs.vector(Argument$2)}),MergeCoins:bcs.struct("MergeCoins",{destination:Argument$2,sources:bcs.vector(Argument$2)}),Publish:bcs.struct("Publish",{modules:bcs.vector(bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})),dependencies:bcs.vector(Address)}),MakeMoveVec:bcs.struct("MakeMoveVec",{type:optionEnum(TypeTag$1).transform({input:e=>e===null?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:bcs.vector(Argument$2)}),Upgrade:bcs.struct("Upgrade",{modules:bcs.vector(bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))})),dependencies:bcs.vector(Address),package:Address,ticket:Argument$2})}),ProgrammableTransaction=bcs.struct("ProgrammableTransaction",{inputs:bcs.vector(CallArg$2),commands:bcs.vector(Command$2)}),TransactionKind=bcs.enum("TransactionKind",{ProgrammableTransaction,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),TransactionExpiration$3=bcs.enum("TransactionExpiration",{None:null,Epoch:unsafe_u64()}),StructTag$1=bcs.struct("StructTag",{address:Address,module:bcs.string(),name:bcs.string(),typeParams:bcs.vector(InnerTypeTag)}),GasData$2=bcs.struct("GasData",{payment:bcs.vector(SuiObjectRef),owner:Address,price:bcs.u64(),budget:bcs.u64()}),TransactionDataV1=bcs.struct("TransactionDataV1",{kind:TransactionKind,sender:Address,gasData:GasData$2,expiration:TransactionExpiration$3}),TransactionData$1=bcs.enum("TransactionData",{V1:TransactionDataV1}),IntentScope=bcs.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),IntentVersion=bcs.enum("IntentVersion",{V0:null}),AppId=bcs.enum("AppId",{Sui:null}),Intent=bcs.struct("Intent",{scope:IntentScope,version:IntentVersion,appId:AppId});function IntentMessage(e){return bcs.struct(`IntentMessage<${e.name}>`,{intent:Intent,value:e})}const CompressedSignature=bcs.enum("CompressedSignature",{ED25519:bcs.fixedArray(64,bcs.u8()),Secp256k1:bcs.fixedArray(64,bcs.u8()),Secp256r1:bcs.fixedArray(64,bcs.u8()),ZkLogin:bcs.vector(bcs.u8()),Passkey:bcs.vector(bcs.u8())}),PublicKey=bcs.enum("PublicKey",{ED25519:bcs.fixedArray(32,bcs.u8()),Secp256k1:bcs.fixedArray(33,bcs.u8()),Secp256r1:bcs.fixedArray(33,bcs.u8()),ZkLogin:bcs.vector(bcs.u8()),Passkey:bcs.fixedArray(33,bcs.u8())}),MultiSigPkMap=bcs.struct("MultiSigPkMap",{pubKey:PublicKey,weight:bcs.u8()}),MultiSigPublicKey=bcs.struct("MultiSigPublicKey",{pk_map:bcs.vector(MultiSigPkMap),threshold:bcs.u16()}),MultiSig=bcs.struct("MultiSig",{sigs:bcs.vector(CompressedSignature),bitmap:bcs.u16(),multisig_pk:MultiSigPublicKey}),base64String=bcs.vector(bcs.u8()).transform({input:e=>typeof e=="string"?fromBase64(e):e,output:e=>toBase64(new Uint8Array(e))}),SenderSignedTransaction=bcs.struct("SenderSignedTransaction",{intentMessage:IntentMessage(TransactionData$1),txSignatures:bcs.vector(base64String)}),SenderSignedData=bcs.vector(SenderSignedTransaction,{name:"SenderSignedData"}),PasskeyAuthenticator=bcs.struct("PasskeyAuthenticator",{authenticatorData:bcs.vector(bcs.u8()),clientDataJson:bcs.string(),userSignature:bcs.vector(bcs.u8())}),PackageUpgradeError=bcs.enum("PackageUpgradeError",{UnableToFetchPackage:bcs.struct("UnableToFetchPackage",{packageId:Address}),NotAPackage:bcs.struct("NotAPackage",{objectId:Address}),IncompatibleUpgrade:null,DigestDoesNotMatch:bcs.struct("DigestDoesNotMatch",{digest:bcs.vector(bcs.u8())}),UnknownUpgradePolicy:bcs.struct("UnknownUpgradePolicy",{policy:bcs.u8()}),PackageIDDoesNotMatch:bcs.struct("PackageIDDoesNotMatch",{packageId:Address,ticketId:Address})}),ModuleId=bcs.struct("ModuleId",{address:Address,name:bcs.string()}),MoveLocation=bcs.struct("MoveLocation",{module:ModuleId,function:bcs.u16(),instruction:bcs.u16(),functionName:bcs.option(bcs.string())}),CommandArgumentError=bcs.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:bcs.struct("IndexOutOfBounds",{idx:bcs.u16()}),SecondaryIndexOutOfBounds:bcs.struct("SecondaryIndexOutOfBounds",{resultIdx:bcs.u16(),secondaryIdx:bcs.u16()}),InvalidResultArity:bcs.struct("InvalidResultArity",{resultIdx:bcs.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),TypeArgumentError=bcs.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),ExecutionFailureStatus=bcs.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:bcs.struct("MoveObjectTooBig",{objectSize:bcs.u64(),maxObjectSize:bcs.u64()}),MovePackageTooBig:bcs.struct("MovePackageTooBig",{objectSize:bcs.u64(),maxObjectSize:bcs.u64()}),CircularObjectOwnership:bcs.struct("CircularObjectOwnership",{object:Address}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:bcs.option(MoveLocation),MoveAbort:bcs.tuple([MoveLocation,bcs.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:bcs.struct("CommandArgumentError",{argIdx:bcs.u16(),kind:CommandArgumentError}),TypeArgumentError:bcs.struct("TypeArgumentError",{argumentIdx:bcs.u16(),kind:TypeArgumentError}),UnusedValueWithoutDrop:bcs.struct("UnusedValueWithoutDrop",{resultIdx:bcs.u16(),secondaryIdx:bcs.u16()}),InvalidPublicFunctionReturnType:bcs.struct("InvalidPublicFunctionReturnType",{idx:bcs.u16()}),InvalidTransferObject:null,EffectsTooLarge:bcs.struct("EffectsTooLarge",{currentSize:bcs.u64(),maxSize:bcs.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:bcs.struct("PackageUpgradeError",{upgradeError:PackageUpgradeError}),WrittenObjectsTooLarge:bcs.struct("WrittenObjectsTooLarge",{currentSize:bcs.u64(),maxSize:bcs.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:bcs.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:bcs.vector(Address)}),AddressDeniedForCoin:bcs.struct("AddressDeniedForCoin",{address:Address,coinType:bcs.string()}),CoinTypeGlobalPause:bcs.struct("CoinTypeGlobalPause",{coinType:bcs.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),ExecutionStatus=bcs.enum("ExecutionStatus",{Success:null,Failed:bcs.struct("ExecutionFailed",{error:ExecutionFailureStatus,command:bcs.option(bcs.u64())})}),GasCostSummary=bcs.struct("GasCostSummary",{computationCost:bcs.u64(),storageCost:bcs.u64(),storageRebate:bcs.u64(),nonRefundableStorageFee:bcs.u64()}),TransactionEffectsV1=bcs.struct("TransactionEffectsV1",{status:ExecutionStatus,executedEpoch:bcs.u64(),gasUsed:GasCostSummary,modifiedAtVersions:bcs.vector(bcs.tuple([Address,bcs.u64()])),sharedObjects:bcs.vector(SuiObjectRef),transactionDigest:ObjectDigest,created:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),mutated:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),unwrapped:bcs.vector(bcs.tuple([SuiObjectRef,Owner])),deleted:bcs.vector(SuiObjectRef),unwrappedThenDeleted:bcs.vector(SuiObjectRef),wrapped:bcs.vector(SuiObjectRef),gasObject:bcs.tuple([SuiObjectRef,Owner]),eventsDigest:bcs.option(ObjectDigest),dependencies:bcs.vector(ObjectDigest)}),VersionDigest=bcs.tuple([bcs.u64(),ObjectDigest]),ObjectIn=bcs.enum("ObjectIn",{NotExist:null,Exist:bcs.tuple([VersionDigest,Owner])}),ObjectOut=bcs.enum("ObjectOut",{NotExist:null,ObjectWrite:bcs.tuple([ObjectDigest,Owner]),PackageWrite:VersionDigest}),IDOperation=bcs.enum("IDOperation",{None:null,Created:null,Deleted:null}),EffectsObjectChange=bcs.struct("EffectsObjectChange",{inputState:ObjectIn,outputState:ObjectOut,idOperation:IDOperation}),UnchangedSharedKind=bcs.enum("UnchangedSharedKind",{ReadOnlyRoot:VersionDigest,MutateDeleted:bcs.u64(),ReadDeleted:bcs.u64(),Cancelled:bcs.u64(),PerEpochConfig:null}),TransactionEffectsV2=bcs.struct("TransactionEffectsV2",{status:ExecutionStatus,executedEpoch:bcs.u64(),gasUsed:GasCostSummary,transactionDigest:ObjectDigest,gasObjectIndex:bcs.option(bcs.u32()),eventsDigest:bcs.option(ObjectDigest),dependencies:bcs.vector(ObjectDigest),lamportVersion:bcs.u64(),changedObjects:bcs.vector(bcs.tuple([Address,EffectsObjectChange])),unchangedSharedObjects:bcs.vector(bcs.tuple([Address,UnchangedSharedKind])),auxDataDigest:bcs.option(ObjectDigest)}),TransactionEffects=bcs.enum("TransactionEffects",{V1:TransactionEffectsV1,V2:TransactionEffectsV2});function pureBcsSchemaFromTypeName(e){switch(e){case"u8":return bcs.u8();case"u16":return bcs.u16();case"u32":return bcs.u32();case"u64":return bcs.u64();case"u128":return bcs.u128();case"u256":return bcs.u256();case"bool":return bcs.bool();case"string":return bcs.string();case"id":case"address":return Address}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[n,a]=t.slice(1);return n==="vector"?bcs.vector(pureBcsSchemaFromTypeName(a)):bcs.option(pureBcsSchemaFromTypeName(a))}throw new Error(`Invalid Pure type name: ${e}`)}const suiBcs={...bcs,U8:bcs.u8(),U16:bcs.u16(),U32:bcs.u32(),U64:bcs.u64(),U128:bcs.u128(),U256:bcs.u256(),ULEB128:bcs.uleb128(),Bool:bcs.bool(),String:bcs.string(),Address,AppId,Argument:Argument$2,CallArg:CallArg$2,Command:Command$2,CompressedSignature,GasData:GasData$2,Intent,IntentMessage,IntentScope,IntentVersion,MultiSig,MultiSigPkMap,MultiSigPublicKey,ObjectArg:ObjectArg$3,ObjectDigest,Owner,PasskeyAuthenticator,ProgrammableMoveCall:ProgrammableMoveCall$2,ProgrammableTransaction,PublicKey,SenderSignedData,SenderSignedTransaction,SharedObjectRef,StructTag:StructTag$1,SuiObjectRef,TransactionData:TransactionData$1,TransactionDataV1,TransactionEffects,TransactionExpiration:TransactionExpiration$3,TransactionKind,TypeTag:TypeTag$1};BigInt(1e9);const MOVE_STDLIB_ADDRESS="0x1",SUI_FRAMEWORK_ADDRESS="0x2",SUI_CLOCK_OBJECT_ID=normalizeSuiObjectId("0x6"),SUI_TYPE_ARG=`${SUI_FRAMEWORK_ADDRESS}::sui::SUI`;normalizeSuiObjectId("0x5");const OBJECT_MODULE_NAME="object",ID_STRUCT_NAME="ID",STD_ASCII_MODULE_NAME="ascii",STD_ASCII_STRUCT_NAME="String",STD_UTF8_MODULE_NAME="string",STD_UTF8_STRUCT_NAME="String",STD_OPTION_MODULE_NAME="option",STD_OPTION_STRUCT_NAME="Option";function isTxContext(e){const t=typeof e.body=="object"&&"datatype"in e.body?e.body.datatype:null;return!!t&&normalizeSuiAddress(t.package)===normalizeSuiAddress("0x2")&&t.module==="tx_context"&&t.type==="TxContext"}function getPureBcsSchema(e){if(typeof e=="string")switch(e){case"address":return suiBcs.Address;case"bool":return suiBcs.Bool;case"u8":return suiBcs.U8;case"u16":return suiBcs.U16;case"u32":return suiBcs.U32;case"u64":return suiBcs.U64;case"u128":return suiBcs.U128;case"u256":return suiBcs.U256;default:throw new Error(`Unknown type signature ${e}`)}if("vector"in e){if(e.vector==="u8")return suiBcs.vector(suiBcs.U8).transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});const t=getPureBcsSchema(e.vector);return t?suiBcs.vector(t):null}if("datatype"in e){const t=normalizeSuiAddress(e.datatype.package);if(t===normalizeSuiAddress(MOVE_STDLIB_ADDRESS)){if(e.datatype.module===STD_ASCII_MODULE_NAME&&e.datatype.type===STD_ASCII_STRUCT_NAME||e.datatype.module===STD_UTF8_MODULE_NAME&&e.datatype.type===STD_UTF8_STRUCT_NAME)return suiBcs.String;if(e.datatype.module===STD_OPTION_MODULE_NAME&&e.datatype.type===STD_OPTION_STRUCT_NAME){const n=getPureBcsSchema(e.datatype.typeParameters[0]);return n?suiBcs.vector(n):null}}if(t===normalizeSuiAddress(SUI_FRAMEWORK_ADDRESS)&&e.datatype.module===OBJECT_MODULE_NAME&&e.datatype.type===ID_STRUCT_NAME)return suiBcs.Address}return null}function normalizedTypeToMoveTypeSignature(e){return typeof e=="object"&&"Reference"in e?{ref:"&",body:normalizedTypeToMoveTypeSignatureBody(e.Reference)}:typeof e=="object"&&"MutableReference"in e?{ref:"&mut",body:normalizedTypeToMoveTypeSignatureBody(e.MutableReference)}:{ref:null,body:normalizedTypeToMoveTypeSignatureBody(e)}}function normalizedTypeToMoveTypeSignatureBody(e){if(typeof e=="string")switch(e){case"Address":return"address";case"Bool":return"bool";case"U8":return"u8";case"U16":return"u16";case"U32":return"u32";case"U64":return"u64";case"U128":return"u128";case"U256":return"u256";default:throw new Error(`Unexpected type ${e}`)}if("Vector"in e)return{vector:normalizedTypeToMoveTypeSignatureBody(e.Vector)};if("Struct"in e)return{datatype:{package:e.Struct.address,module:e.Struct.module,type:e.Struct.name,typeParameters:e.Struct.typeArguments.map(normalizedTypeToMoveTypeSignatureBody)}};if("TypeParameter"in e)return{typeParameter:e.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(e)}`)}function Pure(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?toBase64(e):e.toBase64()}}}const Inputs={Pure,ObjectRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:normalizeSuiAddress(e)}}}},SharedObjectRef({objectId:e,mutable:t,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:normalizeSuiAddress(e)}}}},ReceivingRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:normalizeSuiAddress(e)}}}}};function safeEnum(e){const t=Object.entries(e).map(([n,a])=>platform.object({[n]:a}));return platform.pipe(platform.union(t),platform.transform(n=>({...n,$kind:Object.keys(n)[0]})))}const SuiAddress=platform.pipe(platform.string(),platform.transform(e=>normalizeSuiAddress(e)),platform.check(isValidSuiAddress)),ObjectID=SuiAddress,BCSBytes=platform.string(),JsonU64=platform.pipe(platform.union([platform.string(),platform.pipe(platform.number(),platform.integer())]),platform.check(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),ObjectRef$1=platform.object({objectId:SuiAddress,version:JsonU64,digest:platform.string()}),Argument$1=platform.pipe(platform.union([platform.object({GasCoin:platform.literal(!0)}),platform.object({Input:platform.pipe(platform.number(),platform.integer()),type:platform.optional(platform.literal("pure"))}),platform.object({Input:platform.pipe(platform.number(),platform.integer()),type:platform.optional(platform.literal("object"))}),platform.object({Result:platform.pipe(platform.number(),platform.integer())}),platform.object({NestedResult:platform.tuple([platform.pipe(platform.number(),platform.integer()),platform.pipe(platform.number(),platform.integer())])})]),platform.transform(e=>({...e,$kind:Object.keys(e)[0]}))),GasData$1=platform.object({budget:platform.nullable(JsonU64),price:platform.nullable(JsonU64),owner:platform.nullable(SuiAddress),payment:platform.nullable(platform.array(ObjectRef$1))}),OpenMoveTypeSignatureBody=platform.union([platform.literal("address"),platform.literal("bool"),platform.literal("u8"),platform.literal("u16"),platform.literal("u32"),platform.literal("u64"),platform.literal("u128"),platform.literal("u256"),platform.object({vector:platform.lazy(()=>OpenMoveTypeSignatureBody)}),platform.object({datatype:platform.object({package:platform.string(),module:platform.string(),type:platform.string(),typeParameters:platform.array(platform.lazy(()=>OpenMoveTypeSignatureBody))})}),platform.object({typeParameter:platform.pipe(platform.number(),platform.integer())})]),OpenMoveTypeSignature=platform.object({ref:platform.nullable(platform.union([platform.literal("&"),platform.literal("&mut")])),body:OpenMoveTypeSignatureBody}),ProgrammableMoveCall$1=platform.object({package:ObjectID,module:platform.string(),function:platform.string(),typeArguments:platform.array(platform.string()),arguments:platform.array(Argument$1),_argumentTypes:platform.optional(platform.nullable(platform.array(OpenMoveTypeSignature)))}),$Intent$1=platform.object({name:platform.string(),inputs:platform.record(platform.string(),platform.union([Argument$1,platform.array(Argument$1)])),data:platform.record(platform.string(),platform.unknown())}),Command$1=safeEnum({MoveCall:ProgrammableMoveCall$1,TransferObjects:platform.object({objects:platform.array(Argument$1),address:Argument$1}),SplitCoins:platform.object({coin:Argument$1,amounts:platform.array(Argument$1)}),MergeCoins:platform.object({destination:Argument$1,sources:platform.array(Argument$1)}),Publish:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID)}),MakeMoveVec:platform.object({type:platform.nullable(platform.string()),elements:platform.array(Argument$1)}),Upgrade:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID),package:ObjectID,ticket:Argument$1}),$Intent:$Intent$1}),ObjectArg$2=safeEnum({ImmOrOwnedObject:ObjectRef$1,SharedObject:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef$1}),CallArg$1=safeEnum({Object:ObjectArg$2,Pure:platform.object({bytes:BCSBytes}),UnresolvedPure:platform.object({value:platform.unknown()}),UnresolvedObject:platform.object({objectId:ObjectID,version:platform.optional(platform.nullable(JsonU64)),digest:platform.optional(platform.nullable(platform.string())),initialSharedVersion:platform.optional(platform.nullable(JsonU64))})}),NormalizedCallArg$1=safeEnum({Object:ObjectArg$2,Pure:platform.object({bytes:BCSBytes})}),TransactionExpiration$2=safeEnum({None:platform.literal(!0),Epoch:JsonU64}),TransactionData=platform.object({version:platform.literal(2),sender:platform.nullish(SuiAddress),expiration:platform.nullish(TransactionExpiration$2),gasData:GasData$1,inputs:platform.array(CallArg$1),commands:platform.array(Command$1)}),Commands={MoveCall(e){const[t,n="",a=""]="target"in e?e.target.split("::"):[e.package,e.module,e.function];return{$kind:"MoveCall",MoveCall:{package:t,module:n,function:a,typeArguments:e.typeArguments??[],arguments:e.arguments??[]}}},TransferObjects(e,t){return{$kind:"TransferObjects",TransferObjects:{objects:e.map(n=>platform.parse(Argument$1,n)),address:platform.parse(Argument$1,t)}}},SplitCoins(e,t){return{$kind:"SplitCoins",SplitCoins:{coin:platform.parse(Argument$1,e),amounts:t.map(n=>platform.parse(Argument$1,n))}}},MergeCoins(e,t){return{$kind:"MergeCoins",MergeCoins:{destination:platform.parse(Argument$1,e),sources:t.map(n=>platform.parse(Argument$1,n))}}},Publish({modules:e,dependencies:t}){return{$kind:"Publish",Publish:{modules:e.map(n=>typeof n=="string"?n:toBase64(new Uint8Array(n))),dependencies:t.map(n=>normalizeSuiObjectId(n))}}},Upgrade({modules:e,dependencies:t,package:n,ticket:a}){return{$kind:"Upgrade",Upgrade:{modules:e.map(r=>typeof r=="string"?r:toBase64(new Uint8Array(r))),dependencies:t.map(r=>normalizeSuiObjectId(r)),package:n,ticket:platform.parse(Argument$1,a)}}},MakeMoveVec({type:e,elements:t}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(n=>platform.parse(Argument$1,n))}}},Intent({name:e,inputs:t={},data:n={}}){return{$kind:"$Intent",$Intent:{name:e,inputs:Object.fromEntries(Object.entries(t).map(([a,r])=>[a,Array.isArray(r)?r.map(s=>platform.parse(Argument$1,s)):platform.parse(Argument$1,r)])),data:n}}}},ObjectRef=platform.object({digest:platform.string(),objectId:platform.string(),version:platform.union([platform.pipe(platform.number(),platform.integer()),platform.string(),platform.bigint()])}),ObjectArg$1=safeEnum({ImmOrOwned:ObjectRef,Shared:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef}),NormalizedCallArg=safeEnum({Object:ObjectArg$1,Pure:platform.array(platform.pipe(platform.number(),platform.integer()))}),TransactionInput=platform.union([platform.object({kind:platform.literal("Input"),index:platform.pipe(platform.number(),platform.integer()),value:platform.unknown(),type:platform.optional(platform.literal("object"))}),platform.object({kind:platform.literal("Input"),index:platform.pipe(platform.number(),platform.integer()),value:platform.unknown(),type:platform.literal("pure")})]),TransactionExpiration$1=platform.union([platform.object({Epoch:platform.pipe(platform.number(),platform.integer())}),platform.object({None:platform.nullable(platform.literal(!0))})]),StringEncodedBigint=platform.pipe(platform.union([platform.number(),platform.string(),platform.bigint()]),platform.check(e=>{if(!["string","number","bigint"].includes(typeof e))return!1;try{return BigInt(e),!0}catch{return!1}})),TypeTag=platform.union([platform.object({bool:platform.nullable(platform.literal(!0))}),platform.object({u8:platform.nullable(platform.literal(!0))}),platform.object({u64:platform.nullable(platform.literal(!0))}),platform.object({u128:platform.nullable(platform.literal(!0))}),platform.object({address:platform.nullable(platform.literal(!0))}),platform.object({signer:platform.nullable(platform.literal(!0))}),platform.object({vector:platform.lazy(()=>TypeTag)}),platform.object({struct:platform.lazy(()=>StructTag)}),platform.object({u16:platform.nullable(platform.literal(!0))}),platform.object({u32:platform.nullable(platform.literal(!0))}),platform.object({u256:platform.nullable(platform.literal(!0))})]),StructTag=platform.object({address:platform.string(),module:platform.string(),name:platform.string(),typeParams:platform.array(TypeTag)}),GasConfig=platform.object({budget:platform.optional(StringEncodedBigint),price:platform.optional(StringEncodedBigint),payment:platform.optional(platform.array(ObjectRef)),owner:platform.optional(platform.string())}),TransactionArgumentTypes=[TransactionInput,platform.object({kind:platform.literal("GasCoin")}),platform.object({kind:platform.literal("Result"),index:platform.pipe(platform.number(),platform.integer())}),platform.object({kind:platform.literal("NestedResult"),index:platform.pipe(platform.number(),platform.integer()),resultIndex:platform.pipe(platform.number(),platform.integer())})],TransactionArgument=platform.union([...TransactionArgumentTypes]),MoveCallTransaction=platform.object({kind:platform.literal("MoveCall"),target:platform.pipe(platform.string(),platform.check(e=>e.split("::").length===3)),typeArguments:platform.array(platform.string()),arguments:platform.array(TransactionArgument)}),TransferObjectsTransaction=platform.object({kind:platform.literal("TransferObjects"),objects:platform.array(TransactionArgument),address:TransactionArgument}),SplitCoinsTransaction=platform.object({kind:platform.literal("SplitCoins"),coin:TransactionArgument,amounts:platform.array(TransactionArgument)}),MergeCoinsTransaction=platform.object({kind:platform.literal("MergeCoins"),destination:TransactionArgument,sources:platform.array(TransactionArgument)}),MakeMoveVecTransaction=platform.object({kind:platform.literal("MakeMoveVec"),type:platform.union([platform.object({Some:TypeTag}),platform.object({None:platform.nullable(platform.literal(!0))})]),objects:platform.array(TransactionArgument)}),PublishTransaction=platform.object({kind:platform.literal("Publish"),modules:platform.array(platform.array(platform.pipe(platform.number(),platform.integer()))),dependencies:platform.array(platform.string())}),UpgradeTransaction=platform.object({kind:platform.literal("Upgrade"),modules:platform.array(platform.array(platform.pipe(platform.number(),platform.integer()))),dependencies:platform.array(platform.string()),packageId:platform.string(),ticket:TransactionArgument}),TransactionTypes=[MoveCallTransaction,TransferObjectsTransaction,SplitCoinsTransaction,MergeCoinsTransaction,PublishTransaction,UpgradeTransaction,MakeMoveVecTransaction],TransactionType=platform.union([...TransactionTypes]);platform.object({version:platform.literal(1),sender:platform.optional(platform.string()),expiration:platform.nullish(TransactionExpiration$1),gasConfig:GasConfig,inputs:platform.array(TransactionInput),transactions:platform.array(TransactionType)});function serializeV1TransactionData(e){var n;const t=e.inputs.map((a,r)=>{if(a.Object)return{kind:"Input",index:r,value:{Object:a.Object.ImmOrOwnedObject?{ImmOrOwned:a.Object.ImmOrOwnedObject}:a.Object.Receiving?{Receiving:{digest:a.Object.Receiving.digest,version:a.Object.Receiving.version,objectId:a.Object.Receiving.objectId}}:{Shared:{mutable:a.Object.SharedObject.mutable,initialSharedVersion:a.Object.SharedObject.initialSharedVersion,objectId:a.Object.SharedObject.objectId}}},type:"object"};if(a.Pure)return{kind:"Input",index:r,value:{Pure:Array.from(fromBase64(a.Pure.bytes))},type:"pure"};if(a.UnresolvedPure)return{kind:"Input",type:"pure",index:r,value:a.UnresolvedPure.value};if(a.UnresolvedObject)return{kind:"Input",type:"object",index:r,value:a.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:((n=e.expiration)==null?void 0:n.$kind)==="Epoch"?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(a=>{if(a.MakeMoveVec)return{kind:"MakeMoveVec",type:a.MakeMoveVec.type===null?{None:!0}:{Some:TypeTagSerializer.parseFromStr(a.MakeMoveVec.type)},objects:a.MakeMoveVec.elements.map(r=>convertTransactionArgument(r,t))};if(a.MergeCoins)return{kind:"MergeCoins",destination:convertTransactionArgument(a.MergeCoins.destination,t),sources:a.MergeCoins.sources.map(r=>convertTransactionArgument(r,t))};if(a.MoveCall)return{kind:"MoveCall",target:`${a.MoveCall.package}::${a.MoveCall.module}::${a.MoveCall.function}`,typeArguments:a.MoveCall.typeArguments,arguments:a.MoveCall.arguments.map(r=>convertTransactionArgument(r,t))};if(a.Publish)return{kind:"Publish",modules:a.Publish.modules.map(r=>Array.from(fromBase64(r))),dependencies:a.Publish.dependencies};if(a.SplitCoins)return{kind:"SplitCoins",coin:convertTransactionArgument(a.SplitCoins.coin,t),amounts:a.SplitCoins.amounts.map(r=>convertTransactionArgument(r,t))};if(a.TransferObjects)return{kind:"TransferObjects",objects:a.TransferObjects.objects.map(r=>convertTransactionArgument(r,t)),address:convertTransactionArgument(a.TransferObjects.address,t)};if(a.Upgrade)return{kind:"Upgrade",modules:a.Upgrade.modules.map(r=>Array.from(fromBase64(r))),dependencies:a.Upgrade.dependencies,packageId:a.Upgrade.package,ticket:convertTransactionArgument(a.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(a)}`)})}}function convertTransactionArgument(e,t){if(e.$kind==="GasCoin")return{kind:"GasCoin"};if(e.$kind==="Result")return{kind:"Result",index:e.Result};if(e.$kind==="NestedResult")return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if(e.$kind==="Input")return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function transactionDataFromV1(e){var t,n,a;return platform.parse(TransactionData,{version:2,sender:e.sender??null,expiration:e.expiration?"Epoch"in e.expiration?{Epoch:e.expiration.Epoch}:{None:!0}:null,gasData:{owner:e.gasConfig.owner??null,budget:((t=e.gasConfig.budget)==null?void 0:t.toString())??null,price:((n=e.gasConfig.price)==null?void 0:n.toString())??null,payment:((a=e.gasConfig.payment)==null?void 0:a.map(r=>({digest:r.digest,objectId:r.objectId,version:r.version.toString()})))??null},inputs:e.inputs.map(r=>{if(r.kind==="Input"){if(platform.is(NormalizedCallArg,r.value)){const s=platform.parse(NormalizedCallArg,r.value);if(s.Object){if(s.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:s.Object.ImmOrOwned.objectId,version:String(s.Object.ImmOrOwned.version),digest:s.Object.ImmOrOwned.digest}}};if(s.Object.Shared)return{Object:{SharedObject:{mutable:s.Object.Shared.mutable??null,initialSharedVersion:s.Object.Shared.initialSharedVersion,objectId:s.Object.Shared.objectId}}};if(s.Object.Receiving)return{Object:{Receiving:{digest:s.Object.Receiving.digest,version:String(s.Object.Receiving.version),objectId:s.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:toBase64(new Uint8Array(s.Pure))}}}return r.type==="object"?{UnresolvedObject:{objectId:r.value}}:{UnresolvedPure:{value:r.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(r=>{switch(r.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in r.type?TypeTagSerializer.tagToString(r.type.Some):null,elements:r.objects.map(s=>parseV1TransactionArgument(s))}};case"MergeCoins":return{MergeCoins:{destination:parseV1TransactionArgument(r.destination),sources:r.sources.map(s=>parseV1TransactionArgument(s))}};case"MoveCall":{const[s,o,i]=r.target.split("::");return{MoveCall:{package:s,module:o,function:i,typeArguments:r.typeArguments,arguments:r.arguments.map(l=>parseV1TransactionArgument(l))}}}case"Publish":return{Publish:{modules:r.modules.map(s=>toBase64(Uint8Array.from(s))),dependencies:r.dependencies}};case"SplitCoins":return{SplitCoins:{coin:parseV1TransactionArgument(r.coin),amounts:r.amounts.map(s=>parseV1TransactionArgument(s))}};case"TransferObjects":return{TransferObjects:{objects:r.objects.map(s=>parseV1TransactionArgument(s)),address:parseV1TransactionArgument(r.address)}};case"Upgrade":return{Upgrade:{modules:r.modules.map(s=>toBase64(Uint8Array.from(s))),dependencies:r.dependencies,package:r.packageId,ticket:parseV1TransactionArgument(r.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(r)}`)})})}function parseV1TransactionArgument(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function enumUnion(e){return platform.union(Object.entries(e).map(([t,n])=>platform.object({[t]:n})))}const Argument=enumUnion({GasCoin:platform.literal(!0),Input:platform.pipe(platform.number(),platform.integer()),Result:platform.pipe(platform.number(),platform.integer()),NestedResult:platform.tuple([platform.pipe(platform.number(),platform.integer()),platform.pipe(platform.number(),platform.integer())])}),GasData=platform.object({budget:platform.nullable(JsonU64),price:platform.nullable(JsonU64),owner:platform.nullable(SuiAddress),payment:platform.nullable(platform.array(ObjectRef$1))}),ProgrammableMoveCall=platform.object({package:ObjectID,module:platform.string(),function:platform.string(),typeArguments:platform.array(platform.string()),arguments:platform.array(Argument)}),$Intent=platform.object({name:platform.string(),inputs:platform.record(platform.string(),platform.union([Argument,platform.array(Argument)])),data:platform.record(platform.string(),platform.unknown())}),Command=enumUnion({MoveCall:ProgrammableMoveCall,TransferObjects:platform.object({objects:platform.array(Argument),address:Argument}),SplitCoins:platform.object({coin:Argument,amounts:platform.array(Argument)}),MergeCoins:platform.object({destination:Argument,sources:platform.array(Argument)}),Publish:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID)}),MakeMoveVec:platform.object({type:platform.nullable(platform.string()),elements:platform.array(Argument)}),Upgrade:platform.object({modules:platform.array(BCSBytes),dependencies:platform.array(ObjectID),package:ObjectID,ticket:Argument}),$Intent}),ObjectArg=enumUnion({ImmOrOwnedObject:ObjectRef$1,SharedObject:platform.object({objectId:ObjectID,initialSharedVersion:JsonU64,mutable:platform.boolean()}),Receiving:ObjectRef$1}),CallArg=enumUnion({Object:ObjectArg,Pure:platform.object({bytes:BCSBytes}),UnresolvedPure:platform.object({value:platform.unknown()}),UnresolvedObject:platform.object({objectId:ObjectID,version:platform.optional(platform.nullable(JsonU64)),digest:platform.optional(platform.nullable(platform.string())),initialSharedVersion:platform.optional(platform.nullable(JsonU64))})}),TransactionExpiration=enumUnion({None:platform.literal(!0),Epoch:JsonU64}),SerializedTransactionDataV2=platform.object({version:platform.literal(2),sender:platform.nullish(SuiAddress),expiration:platform.nullish(TransactionExpiration),gasData:GasData,inputs:platform.array(CallArg),commands:platform.array(Command),digest:platform.optional(platform.nullable(platform.string()))}),MAX_OBJECTS_PER_FETCH=50,GAS_SAFE_OVERHEAD=1000n,MAX_GAS=5e10;function suiClientResolveTransactionPlugin(e){return async function(n,a,r){return await normalizeInputs(n,e),await resolveObjectReferences(n,e),a.onlyTransactionKind||(await setGasPrice(n,e),await setGasBudget(n,e),await setGasPayment(n,e)),await r()}}async function setGasPrice(e,t){e.gasConfig.price||(e.gasConfig.price=String(await t.getReferenceGasPrice()))}async function setGasBudget(e,t){if(e.gasConfig.budget)return;const n=await t.dryRunTransactionBlock({transactionBlock:e.build({overrides:{gasData:{budget:String(MAX_GAS),payment:[]}}})});if(n.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${n.effects.status.error}`,{cause:n});const a=GAS_SAFE_OVERHEAD*BigInt(e.gasConfig.price||1n),r=BigInt(n.effects.gasUsed.computationCost)+a,s=r+BigInt(n.effects.gasUsed.storageCost)-BigInt(n.effects.gasUsed.storageRebate);e.gasConfig.budget=String(s>r?s:r)}async function setGasPayment(e,t){if(!e.gasConfig.payment){const a=(await t.getCoins({owner:e.gasConfig.owner||e.sender,coinType:SUI_TYPE_ARG})).data.filter(r=>!e.inputs.find(o=>{var i;return(i=o.Object)!=null&&i.ImmOrOwnedObject?r.coinObjectId===o.Object.ImmOrOwnedObject.objectId:!1})).map(r=>({objectId:r.coinObjectId,digest:r.digest,version:r.version}));if(!a.length)throw new Error("No valid gas coins found for the transaction.");e.gasConfig.payment=a.map(r=>platform.parse(ObjectRef$1,r))}}async function resolveObjectReferences(e,t){const n=e.inputs.filter(c=>{var p;return c.UnresolvedObject&&!(c.UnresolvedObject.version||(p=c.UnresolvedObject)!=null&&p.initialSharedVersion)}),a=[...new Set(n.map(c=>normalizeSuiObjectId(c.UnresolvedObject.objectId)))],r=a.length?chunk(a,MAX_OBJECTS_PER_FETCH):[],s=(await Promise.all(r.map(c=>t.multiGetObjects({ids:c,options:{showOwner:!0}})))).flat(),o=new Map(a.map((c,p)=>[c,s[p]])),i=Array.from(o).filter(([c,p])=>p.error).map(([c,p])=>JSON.stringify(p.error));if(i.length)throw new Error(`The following input objects are invalid: ${i.join(", ")}`);const l=s.map(c=>{if(c.error||!c.data)throw new Error(`Failed to fetch object: ${c.error}`);const p=c.data.owner,f=p&&typeof p=="object"?"Shared"in p?p.Shared.initial_shared_version:"ConsensusAddressOwner"in p?p.ConsensusAddressOwner.start_version:null:null;return{objectId:c.data.objectId,digest:c.data.digest,version:c.data.version,initialSharedVersion:f}}),u=new Map(a.map((c,p)=>[c,l[p]]));for(const[c,p]of e.inputs.entries()){if(!p.UnresolvedObject)continue;let f;const y=normalizeSuiAddress(p.UnresolvedObject.objectId),m=u.get(y);p.UnresolvedObject.initialSharedVersion??(m==null?void 0:m.initialSharedVersion)?f=Inputs.SharedObjectRef({objectId:y,initialSharedVersion:p.UnresolvedObject.initialSharedVersion||(m==null?void 0:m.initialSharedVersion),mutable:isUsedAsMutable(e,c)}):isUsedAsReceiving(e,c)&&(f=Inputs.ReceivingRef({objectId:y,digest:p.UnresolvedObject.digest??(m==null?void 0:m.digest),version:p.UnresolvedObject.version??(m==null?void 0:m.version)})),e.inputs[e.inputs.indexOf(p)]=f??Inputs.ObjectRef({objectId:y,digest:p.UnresolvedObject.digest??(m==null?void 0:m.digest),version:p.UnresolvedObject.version??(m==null?void 0:m.version)})}}async function normalizeInputs(e,t){const{inputs:n,commands:a}=e,r=[],s=new Set;a.forEach(i=>{if(i.MoveCall){if(i.MoveCall._argumentTypes)return;if(i.MoveCall.arguments.map(c=>c.$kind==="Input"?e.inputs[c.Input]:null).some(c=>(c==null?void 0:c.UnresolvedPure)||(c==null?void 0:c.UnresolvedObject))){const c=`${i.MoveCall.package}::${i.MoveCall.module}::${i.MoveCall.function}`;s.add(c),r.push(i.MoveCall)}}});const o=new Map;s.size>0&&await Promise.all([...s].map(async i=>{const[l,u,c]=i.split("::"),p=await t.getNormalizedMoveFunction({package:l,module:u,function:c});o.set(i,p.parameters.map(f=>normalizedTypeToMoveTypeSignature(f)))})),r.length&&await Promise.all(r.map(async i=>{const l=o.get(`${i.package}::${i.module}::${i.function}`);if(!l)return;const c=l.length>0&&isTxContext(l.at(-1))?l.slice(0,l.length-1):l;i._argumentTypes=c})),a.forEach(i=>{if(!i.MoveCall)return;const l=i.MoveCall,u=`${l.package}::${l.module}::${l.function}`,c=l._argumentTypes;if(c){if(c.length!==i.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${u}`);c.forEach((p,f)=>{var T,w;const y=l.arguments[f];if(y.$kind!=="Input")return;const m=n[y.Input];if(!m.UnresolvedPure&&!m.UnresolvedObject)return;const b=((T=m.UnresolvedPure)==null?void 0:T.value)??((w=m.UnresolvedObject)==null?void 0:w.objectId),g=getPureBcsSchema(p.body);if(g){y.type="pure",n[n.indexOf(m)]=Inputs.Pure(g.serialize(b));return}if(typeof b!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(b,null,2)}`);y.type="object";const h=m.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:b}}:m;n[y.Input]=h})}})}function isUsedAsMutable(e,t){let n=!1;return e.getInputUses(t,(a,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const s=r.MoveCall.arguments.indexOf(a);n=r.MoveCall._argumentTypes[s].ref!=="&"||n}(r.$kind==="MakeMoveVec"||r.$kind==="MergeCoins"||r.$kind==="SplitCoins")&&(n=!0)}),n}function isUsedAsReceiving(e,t){let n=!1;return e.getInputUses(t,(a,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const s=r.MoveCall.arguments.indexOf(a);n=isReceivingType(r.MoveCall._argumentTypes[s])||n}}),n}function isReceivingType(e){return typeof e.body!="object"||!("datatype"in e.body)?!1:e.body.datatype.package==="0x2"&&e.body.datatype.module==="transfer"&&e.body.datatype.type==="Receiving"}function needsTransactionResolution(e,t){return!!(e.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!t.onlyTransactionKind&&(!e.gasConfig.price||!e.gasConfig.budget||!e.gasConfig.payment))}async function resolveTransactionPlugin(e,t,n){var s;if(normalizeRawArguments(e),!needsTransactionResolution(e,t))return await validate(e),n();const a=getClient$1(t);return(((s=a.core)==null?void 0:s.resolveTransactionPlugin())??suiClientResolveTransactionPlugin(a))(e,t,async()=>{await validate(e),await n()})}function validate(e){e.inputs.forEach((t,n)=>{if(t.$kind!=="Object"&&t.$kind!=="Pure")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(t)}`)})}function getClient$1(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}function normalizeRawArguments(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(n=>{normalizeRawArgument(n,suiBcs.U64,e)});break;case"TransferObjects":normalizeRawArgument(t.TransferObjects.address,suiBcs.Address,e);break}}function normalizeRawArgument(e,t,n){if(e.$kind!=="Input")return;const a=n.inputs[e.Input];a.$kind==="UnresolvedPure"&&(n.inputs[e.Input]=Inputs.Pure(t.serialize(a.UnresolvedPure.value)))}function createObjectMethods(e){function t(n){return e(n)}return t.system=()=>t("0x5"),t.clock=()=>t("0x6"),t.random=()=>t("0x8"),t.denyList=()=>t("0x403"),t.option=({type:n,value:a})=>r=>r.moveCall({typeArguments:[n],target:`0x1::option::${a===null?"none":"some"}`,arguments:a===null?[]:[r.object(a)]}),t}function createPure(e){function t(n,a){if(typeof n=="string")return e(pureBcsSchemaFromTypeName(n).serialize(a));if(n instanceof Uint8Array||isSerializedBcs(n))return e(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=n=>e(suiBcs.U8.serialize(n)),t.u16=n=>e(suiBcs.U16.serialize(n)),t.u32=n=>e(suiBcs.U32.serialize(n)),t.u64=n=>e(suiBcs.U64.serialize(n)),t.u128=n=>e(suiBcs.U128.serialize(n)),t.u256=n=>e(suiBcs.U256.serialize(n)),t.bool=n=>e(suiBcs.Bool.serialize(n)),t.string=n=>e(suiBcs.String.serialize(n)),t.address=n=>e(suiBcs.Address.serialize(n)),t.id=t.address,t.vector=(n,a)=>e(suiBcs.vector(pureBcsSchemaFromTypeName(n)).serialize(a)),t.option=(n,a)=>e(suiBcs.option(pureBcsSchemaFromTypeName(n)).serialize(a)),t}function hashTypedData(e,t){const n=Array.from(`${e}::`).map(r=>r.charCodeAt(0)),a=new Uint8Array(n.length+t.length);return a.set(n),a.set(t,n.length),blake2b.blake2b(a,{dkLen:32})}function prepareSuiAddress(e){return normalizeSuiAddress(e).replace("0x","")}class TransactionDataBuilder{constructor(t){this.version=2,this.sender=(t==null?void 0:t.sender)??null,this.expiration=(t==null?void 0:t.expiration)??null,this.inputs=(t==null?void 0:t.inputs)??[],this.commands=(t==null?void 0:t.commands)??[],this.gasData=(t==null?void 0:t.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(t){const a=suiBcs.TransactionKind.parse(t).ProgrammableTransaction;if(!a)throw new Error("Unable to deserialize from bytes.");return TransactionDataBuilder.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:a.inputs,commands:a.commands})}static fromBytes(t){const n=suiBcs.TransactionData.parse(t),a=n==null?void 0:n.V1,r=a.kind.ProgrammableTransaction;if(!a||!r)throw new Error("Unable to deserialize from bytes.");return TransactionDataBuilder.restore({version:2,sender:a.sender,expiration:a.expiration,gasData:a.gasData,inputs:r.inputs,commands:r.commands})}static restore(t){return t.version===2?new TransactionDataBuilder(platform.parse(TransactionData,t)):new TransactionDataBuilder(platform.parse(TransactionData,transactionDataFromV1(t)))}static getDigestFromBytes(t){const n=hashTypedData("TransactionData",t);return toBase58(n)}get gasConfig(){return this.gasData}set gasConfig(t){this.gasData=t}build({maxSizeBytes:t=1/0,overrides:n,onlyTransactionKind:a}={}){const r=this.inputs,s=this.commands,o={ProgrammableTransaction:{inputs:r,commands:s}};if(a)return suiBcs.TransactionKind.serialize(o,{maxSize:t}).toBytes();const i=(n==null?void 0:n.expiration)??this.expiration,l=(n==null?void 0:n.sender)??this.sender,u={...this.gasData,...n==null?void 0:n.gasConfig,...n==null?void 0:n.gasData};if(!l)throw new Error("Missing transaction sender");if(!u.budget)throw new Error("Missing gas budget");if(!u.payment)throw new Error("Missing gas payment");if(!u.price)throw new Error("Missing gas price");const c={sender:prepareSuiAddress(l),expiration:i||{None:!0},gasData:{payment:u.payment,owner:prepareSuiAddress(this.gasData.owner??l),price:BigInt(u.price),budget:BigInt(u.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:s}}};return suiBcs.TransactionData.serialize({V1:c},{maxSize:t}).toBytes()}addInput(t,n){const a=this.inputs.length;return this.inputs.push(n),{Input:a,type:t,$kind:"Input"}}getInputUses(t,n){this.mapArguments((a,r)=>(a.$kind==="Input"&&a.Input===t&&n(a,r),a))}mapCommandArguments(t,n){const a=this.commands[t];switch(a.$kind){case"MoveCall":a.MoveCall.arguments=a.MoveCall.arguments.map(s=>n(s,a,t));break;case"TransferObjects":a.TransferObjects.objects=a.TransferObjects.objects.map(s=>n(s,a,t)),a.TransferObjects.address=n(a.TransferObjects.address,a,t);break;case"SplitCoins":a.SplitCoins.coin=n(a.SplitCoins.coin,a,t),a.SplitCoins.amounts=a.SplitCoins.amounts.map(s=>n(s,a,t));break;case"MergeCoins":a.MergeCoins.destination=n(a.MergeCoins.destination,a,t),a.MergeCoins.sources=a.MergeCoins.sources.map(s=>n(s,a,t));break;case"MakeMoveVec":a.MakeMoveVec.elements=a.MakeMoveVec.elements.map(s=>n(s,a,t));break;case"Upgrade":a.Upgrade.ticket=n(a.Upgrade.ticket,a,t);break;case"$Intent":const r=a.$Intent.inputs;a.$Intent.inputs={};for(const[s,o]of Object.entries(r))a.$Intent.inputs[s]=Array.isArray(o)?o.map(i=>n(i,a,t)):n(o,a,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${a.$kind}`)}}mapArguments(t){for(const n of this.commands.keys())this.mapCommandArguments(n,t)}replaceCommand(t,n,a=t){if(!Array.isArray(n)){this.commands[t]=n;return}const r=n.length-1;this.commands.splice(t,1,...n),r!==0&&this.mapArguments((s,o,i)=>{if(i<t+n.length)return s;switch(s.$kind){case"Result":s.Result===t&&(s.Result=a),s.Result>t&&(s.Result+=r);break;case"NestedResult":s.NestedResult[0]===t&&(s.NestedResult[0]=a),s.NestedResult[0]>t&&(s.NestedResult[0]+=r);break}return s})}getDigest(){const t=this.build({onlyTransactionKind:!1});return TransactionDataBuilder.getDigestFromBytes(t)}snapshot(){return platform.parse(TransactionData,this)}shallowClone(){return new TransactionDataBuilder({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}}function getIdFromCallArg(e){if(typeof e=="string")return normalizeSuiAddress(e);if(e.Object)return e.Object.ImmOrOwnedObject?normalizeSuiAddress(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?normalizeSuiAddress(e.Object.Receiving.objectId):normalizeSuiAddress(e.Object.SharedObject.objectId);if(e.UnresolvedObject)return normalizeSuiAddress(e.UnresolvedObject.objectId)}const NAME_SEPARATOR="/";function hasMvrName(e){return e.includes(NAME_SEPARATOR)||e.includes("@")||e.includes(".sui")}function findNamesInTransaction(e){const t=new Set,n=new Set;for(const a of e.commands)switch(a.$kind){case"MakeMoveVec":a.MakeMoveVec.type&&getNamesFromTypeList([a.MakeMoveVec.type]).forEach(o=>{n.add(o)});break;case"MoveCall":const r=a.MoveCall,s=r.package.split("::")[0];if(hasMvrName(s)){if(!isValidNamedPackage(s))throw new Error(`Invalid package name: ${s}`);t.add(s)}getNamesFromTypeList(r.typeArguments??[]).forEach(o=>{n.add(o)});break}return{packages:[...t],types:[...n]}}function replaceNames(e,t){var n;for(const a of e.commands){if((n=a.MakeMoveVec)!=null&&n.type){if(!hasMvrName(a.MakeMoveVec.type))continue;if(!t.types[a.MakeMoveVec.type])throw new Error(`No resolution found for type: ${a.MakeMoveVec.type}`);a.MakeMoveVec.type=t.types[a.MakeMoveVec.type].type}const r=a.MoveCall;if(!r)continue;const s=r.package.split("::"),o=s[0];if(hasMvrName(o)&&!t.packages[o])throw new Error(`No address found for package: ${o}`);hasMvrName(o)&&(s[0]=t.packages[o].package,r.package=s.join("::"));const i=r.typeArguments;if(i){for(let l=0;l<i.length;l++)if(hasMvrName(i[l])){if(!t.types[i[l]])throw new Error(`No resolution found for type: ${i[l]}`);i[l]=t.types[i[l]].type}r.typeArguments=i}}}function getNamesFromTypeList(e){const t=new Set;for(const n of e)if(hasMvrName(n)){if(!isValidNamedType(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}const namedPackagesPlugin=e=>async(t,n,a)=>{const r=findNamesInTransaction(t);if(r.types.length===0&&r.packages.length===0)return a();const s=await getClient(n).core.mvr.resolve({types:r.types,packages:r.packages});replaceNames(t,s),await a()};function getClient(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}var __typeError=e=>{throw TypeError(e)},__accessCheck=(e,t,n)=>t.has(e)||__typeError("Cannot "+n),__privateGet=(e,t,n)=>(__accessCheck(e,t,"read from private field"),n?n.call(e):t.get(e)),__privateAdd=(e,t,n)=>t.has(e)?__typeError("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),__privateSet=(e,t,n,a)=>(__accessCheck(e,t,"write to private field"),t.set(e,n),n),__privateMethod=(e,t,n)=>(__accessCheck(e,t,"access private method"),n),_serializationPlugins,_buildPlugins,_intentResolvers,_inputSection,_commandSection,_availableResults,_pendingPromises,_added,_data,_Transaction_instances,fork_fn,addCommand_fn,addInput_fn,normalizeTransactionArgument_fn,resolveArgument_fn,prepareBuild_fn,runPlugins_fn,waitForPendingTasks_fn,sortCommandsAndInputs_fn;function createTransactionResult(e,t=1/0){const n={$kind:"Result",get Result(){return typeof e=="function"?e():e}},a=[],r=s=>a[s]??(a[s]={$kind:"NestedResult",get NestedResult(){return[typeof e=="function"?e():e,s]}});return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(s,o){if(o in s)return Reflect.get(s,o);if(o===Symbol.iterator)return function*(){let l=0;for(;l<t;)yield r(l),l++};if(typeof o=="symbol")return;const i=parseInt(o,10);if(!(Number.isNaN(i)||i<0))return r(i)}})}const TRANSACTION_BRAND=Symbol.for("@mysten/transaction");function isTransaction(e){return!!e&&typeof e=="object"&&e[TRANSACTION_BRAND]===!0}const modulePluginRegistry={buildPlugins:new Map,serializationPlugins:new Map},TRANSACTION_REGISTRY_KEY=Symbol.for("@mysten/transaction/registry");function getGlobalPluginRegistry(){try{const e=globalThis;return e[TRANSACTION_REGISTRY_KEY]||(e[TRANSACTION_REGISTRY_KEY]=modulePluginRegistry),e[TRANSACTION_REGISTRY_KEY]}catch{return modulePluginRegistry}}const _Transaction=class qe{constructor(){__privateAdd(this,_Transaction_instances),__privateAdd(this,_serializationPlugins),__privateAdd(this,_buildPlugins),__privateAdd(this,_intentResolvers,new Map),__privateAdd(this,_inputSection,[]),__privateAdd(this,_commandSection,[]),__privateAdd(this,_availableResults,new Set),__privateAdd(this,_pendingPromises,new Set),__privateAdd(this,_added,new Map),__privateAdd(this,_data),this.object=createObjectMethods(n=>{var s,o;if(typeof n=="function")return this.object(this.add(n));if(typeof n=="object"&&platform.is(Argument$1,n))return n;const a=getIdFromCallArg(n),r=__privateGet(this,_data).inputs.find(i=>a===getIdFromCallArg(i));return(s=r==null?void 0:r.Object)!=null&&s.SharedObject&&typeof n=="object"&&((o=n.Object)!=null&&o.SharedObject)&&(r.Object.SharedObject.mutable=r.Object.SharedObject.mutable||n.Object.SharedObject.mutable),r?{$kind:"Input",Input:__privateGet(this,_data).inputs.indexOf(r),type:"object"}:__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"object",typeof n=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:normalizeSuiAddress(n)}}:n)});const t=getGlobalPluginRegistry();__privateSet(this,_data,new TransactionDataBuilder),__privateSet(this,_buildPlugins,[...t.buildPlugins.values()]),__privateSet(this,_serializationPlugins,[...t.serializationPlugins.values()])}static fromKind(t){const n=new qe;return __privateSet(n,_data,TransactionDataBuilder.fromKindBytes(typeof t=="string"?fromBase64(t):t)),__privateSet(n,_inputSection,__privateGet(n,_data).inputs.slice()),__privateSet(n,_commandSection,__privateGet(n,_data).commands.slice()),__privateSet(n,_availableResults,new Set(__privateGet(n,_commandSection).map((a,r)=>r))),n}static from(t){const n=new qe;return isTransaction(t)?__privateSet(n,_data,new TransactionDataBuilder(t.getData())):typeof t!="string"||!t.startsWith("{")?__privateSet(n,_data,TransactionDataBuilder.fromBytes(typeof t=="string"?fromBase64(t):t)):__privateSet(n,_data,TransactionDataBuilder.restore(JSON.parse(t))),__privateSet(n,_inputSection,__privateGet(n,_data).inputs.slice()),__privateSet(n,_commandSection,__privateGet(n,_data).commands.slice()),__privateSet(n,_availableResults,new Set(__privateGet(n,_commandSection).map((a,r)=>r))),n}static registerGlobalSerializationPlugin(t,n){getGlobalPluginRegistry().serializationPlugins.set(t,n??t)}static unregisterGlobalSerializationPlugin(t){getGlobalPluginRegistry().serializationPlugins.delete(t)}static registerGlobalBuildPlugin(t,n){getGlobalPluginRegistry().buildPlugins.set(t,n??t)}static unregisterGlobalBuildPlugin(t){getGlobalPluginRegistry().buildPlugins.delete(t)}addSerializationPlugin(t){__privateGet(this,_serializationPlugins).push(t)}addBuildPlugin(t){__privateGet(this,_buildPlugins).push(t)}addIntentResolver(t,n){if(__privateGet(this,_intentResolvers).has(t)&&__privateGet(this,_intentResolvers).get(t)!==n)throw new Error(`Intent resolver for ${t} already exists`);__privateGet(this,_intentResolvers).set(t,n)}setSender(t){__privateGet(this,_data).sender=t}setSenderIfNotSet(t){__privateGet(this,_data).sender||(__privateGet(this,_data).sender=t)}setExpiration(t){__privateGet(this,_data).expiration=t?platform.parse(TransactionExpiration$2,t):null}setGasPrice(t){__privateGet(this,_data).gasConfig.price=String(t)}setGasBudget(t){__privateGet(this,_data).gasConfig.budget=String(t)}setGasBudgetIfNotSet(t){__privateGet(this,_data).gasData.budget==null&&(__privateGet(this,_data).gasConfig.budget=String(t))}setGasOwner(t){__privateGet(this,_data).gasConfig.owner=t}setGasPayment(t){__privateGet(this,_data).gasConfig.payment=t.map(n=>platform.parse(ObjectRef$1,n))}get blockData(){return serializeV1TransactionData(__privateGet(this,_data).snapshot())}getData(){return __privateGet(this,_data).snapshot()}get[TRANSACTION_BRAND](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:createPure(t=>isSerializedBcs(t)?__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"pure",{$kind:"Pure",Pure:{bytes:t.toBase64()}}):__privateMethod(this,_Transaction_instances,addInput_fn).call(this,"pure",platform.is(NormalizedCallArg$1,t)?platform.parse(NormalizedCallArg$1,t):t instanceof Uint8Array?Inputs.Pure(t):{$kind:"UnresolvedPure",UnresolvedPure:{value:t}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...t){return this.object(Inputs.ObjectRef(...t))}receivingRef(...t){return this.object(Inputs.ReceivingRef(...t))}sharedObjectRef(...t){return this.object(Inputs.SharedObjectRef(...t))}add(t){if(typeof t=="function"){if(__privateGet(this,_added).has(t))return __privateGet(this,_added).get(t);const n=__privateMethod(this,_Transaction_instances,fork_fn).call(this),a=t(n);if(!(a&&typeof a=="object"&&"then"in a))return __privateSet(this,_availableResults,__privateGet(n,_availableResults)),__privateGet(this,_added).set(t,a),a;const r=__privateMethod(this,_Transaction_instances,addCommand_fn).call(this,{$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:__privateGet(this,_data).commands.length,result:null}}});__privateGet(this,_pendingPromises).add(Promise.resolve(a).then(o=>{r.$Intent.data.result=o}));const s=createTransactionResult(()=>r.$Intent.data.resultIndex);return __privateGet(this,_added).set(t,s),s}else __privateMethod(this,_Transaction_instances,addCommand_fn).call(this,t);return createTransactionResult(__privateGet(this,_data).commands.length-1)}splitCoins(t,n){const a=Commands.SplitCoins(typeof t=="string"?this.object(t):__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,t),n.map(r=>typeof r=="number"||typeof r=="bigint"||typeof r=="string"?this.pure.u64(r):__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,r)));return __privateMethod(this,_Transaction_instances,addCommand_fn).call(this,a),createTransactionResult(__privateGet(this,_data).commands.length-1,n.length)}mergeCoins(t,n){return this.add(Commands.MergeCoins(this.object(t),n.map(a=>this.object(a))))}publish({modules:t,dependencies:n}){return this.add(Commands.Publish({modules:t,dependencies:n}))}upgrade({modules:t,dependencies:n,package:a,ticket:r}){return this.add(Commands.Upgrade({modules:t,dependencies:n,package:a,ticket:this.object(r)}))}moveCall({arguments:t,...n}){return this.add(Commands.MoveCall({...n,arguments:t==null?void 0:t.map(a=>__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,a))}))}transferObjects(t,n){return this.add(Commands.TransferObjects(t.map(a=>this.object(a)),typeof n=="string"?this.pure.address(n):__privateMethod(this,_Transaction_instances,normalizeTransactionArgument_fn).call(this,n)))}makeMoveVec({type:t,elements:n}){return this.add(Commands.MakeMoveVec({type:t,elements:n.map(a=>this.object(a))}))}serialize(){return JSON.stringify(serializeV1TransactionData(__privateGet(this,_data).snapshot()))}async toJSON(t={}){await this.prepareForSerialization(t);const n=this.isFullyResolved();return JSON.stringify(platform.parse(SerializedTransactionDataV2,n?{...__privateGet(this,_data).snapshot(),digest:__privateGet(this,_data).getDigest()}:__privateGet(this,_data).snapshot()),(a,r)=>typeof r=="bigint"?r.toString():r,2)}async sign(t){const{signer:n,...a}=t,r=await this.build(a);return n.signTransaction(r)}isFullyResolved(){return!(!__privateGet(this,_data).sender||__privateGet(this,_pendingPromises).size>0||__privateGet(this,_data).commands.some(t=>t.$Intent)||needsTransactionResolution(__privateGet(this,_data),{}))}async build(t={}){return await this.prepareForSerialization(t),await __privateMethod(this,_Transaction_instances,prepareBuild_fn).call(this,t),__privateGet(this,_data).build({onlyTransactionKind:t.onlyTransactionKind})}async getDigest(t={}){return await this.prepareForSerialization(t),await __privateMethod(this,_Transaction_instances,prepareBuild_fn).call(this,t),__privateGet(this,_data).getDigest()}async prepareForSerialization(t){var r;await __privateMethod(this,_Transaction_instances,waitForPendingTasks_fn).call(this),__privateMethod(this,_Transaction_instances,sortCommandsAndInputs_fn).call(this);const n=new Set;for(const s of __privateGet(this,_data).commands)s.$Intent&&n.add(s.$Intent.name);const a=[...__privateGet(this,_serializationPlugins)];for(const s of n)if(!((r=t.supportedIntents)!=null&&r.includes(s))){if(!__privateGet(this,_intentResolvers).has(s))throw new Error(`Missing intent resolver for ${s}`);a.push(__privateGet(this,_intentResolvers).get(s))}a.push(namedPackagesPlugin()),await __privateMethod(this,_Transaction_instances,runPlugins_fn).call(this,a,t)}};_serializationPlugins=new WeakMap;_buildPlugins=new WeakMap;_intentResolvers=new WeakMap;_inputSection=new WeakMap;_commandSection=new WeakMap;_availableResults=new WeakMap;_pendingPromises=new WeakMap;_added=new WeakMap;_data=new WeakMap;_Transaction_instances=new WeakSet;fork_fn=function(){const e=new _Transaction;return __privateSet(e,_data,__privateGet(this,_data)),__privateSet(e,_serializationPlugins,__privateGet(this,_serializationPlugins)),__privateSet(e,_buildPlugins,__privateGet(this,_buildPlugins)),__privateSet(e,_intentResolvers,__privateGet(this,_intentResolvers)),__privateSet(e,_pendingPromises,__privateGet(this,_pendingPromises)),__privateSet(e,_availableResults,new Set(__privateGet(this,_availableResults))),__privateSet(e,_added,__privateGet(this,_added)),__privateGet(this,_inputSection).push(__privateGet(e,_inputSection)),__privateGet(this,_commandSection).push(__privateGet(e,_commandSection)),e};addCommand_fn=function(e){const t=__privateGet(this,_data).commands.length;return __privateGet(this,_commandSection).push(e),__privateGet(this,_availableResults).add(t),__privateGet(this,_data).commands.push(e),__privateGet(this,_data).mapCommandArguments(t,n=>{if(n.$kind==="Result"&&!__privateGet(this,_availableResults).has(n.Result))throw new Error(`Result { Result: ${n.Result} } is not available to use the current transaction`);if(n.$kind==="NestedResult"&&!__privateGet(this,_availableResults).has(n.NestedResult[0]))throw new Error(`Result { NestedResult: [${n.NestedResult[0]}, ${n.NestedResult[1]}] } is not available to use the current transaction`);if(n.$kind==="Input"&&n.Input>=__privateGet(this,_data).inputs.length)throw new Error(`Input { Input: ${n.Input} } references an input that does not exist in the current transaction`);return n}),e};addInput_fn=function(e,t){return __privateGet(this,_inputSection).push(t),__privateGet(this,_data).addInput(e,t)};normalizeTransactionArgument_fn=function(e){return isSerializedBcs(e)?this.pure(e):__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,e)};resolveArgument_fn=function(e){if(typeof e=="function"){const t=this.add(e);return typeof t=="function"?__privateMethod(this,_Transaction_instances,resolveArgument_fn).call(this,t):platform.parse(Argument$1,t)}return platform.parse(Argument$1,e)};prepareBuild_fn=async function(e){if(!e.onlyTransactionKind&&!__privateGet(this,_data).sender)throw new Error("Missing transaction sender");await __privateMethod(this,_Transaction_instances,runPlugins_fn).call(this,[...__privateGet(this,_buildPlugins),resolveTransactionPlugin],e)};runPlugins_fn=async function(e,t){const n=a=>{if(a>=e.length)return()=>{};const r=e[a];return async()=>{const s=n(a+1);let o=!1,i=!1;if(await r(__privateGet(this,_data),t,async()=>{if(o)throw new Error(`next() was call multiple times in TransactionPlugin ${a}`);o=!0,await s(),i=!0}),!o)throw new Error(`next() was not called in TransactionPlugin ${a}`);if(!i)throw new Error(`next() was not awaited in TransactionPlugin ${a}`)}};await n(0)(),__privateSet(this,_inputSection,__privateGet(this,_data).inputs.slice()),__privateSet(this,_commandSection,__privateGet(this,_data).commands.slice())};waitForPendingTasks_fn=async function(){for(;__privateGet(this,_pendingPromises).size>0;){const e=Promise.all(__privateGet(this,_pendingPromises));__privateGet(this,_pendingPromises).clear(),__privateGet(this,_pendingPromises).add(e),await e,__privateGet(this,_pendingPromises).delete(e)}};sortCommandsAndInputs_fn=function(){var o;const e=__privateGet(this,_data).commands,t=__privateGet(this,_data).inputs,n=__privateGet(this,_commandSection).flat(1/0),a=__privateGet(this,_inputSection).flat(1/0);if(n.length!==e.length)throw new Error("Unexpected number of commands found in transaction data");if(a.length!==t.length)throw new Error("Unexpected number of inputs found in transaction data");const r=n.filter(i=>{var l;return((l=i.$Intent)==null?void 0:l.name)!=="AsyncTransactionThunk"});__privateGet(this,_data).commands=r,__privateGet(this,_data).inputs=a,__privateSet(this,_commandSection,r),__privateSet(this,_inputSection,a),__privateSet(this,_availableResults,new Set(r.map((i,l)=>l)));function s(i){var c;const l=e[i];if(((c=l.$Intent)==null?void 0:c.name)==="AsyncTransactionThunk"){const p=l.$Intent.data.result;if(p==null)throw new Error("AsyncTransactionThunk has not been resolved");return s(p.Result)}const u=r.indexOf(l);if(u===-1)throw new Error("Unable to find original index for command");return u}__privateGet(this,_data).mapArguments(i=>{if(i.$kind==="Input"){const l=a.indexOf(t[i.Input]);if(l===-1)throw new Error("Input has not been resolved");return{...i,Input:l}}else if(i.$kind==="Result"){const l=s(i.Result);return{...i,Result:l}}else if(i.$kind==="NestedResult"){const l=s(i.NestedResult[0]);return{...i,NestedResult:[l,i.NestedResult[1]]}}return i});for(const[i,l]of e.entries())if(((o=l.$Intent)==null?void 0:o.name)==="AsyncTransactionThunk")try{l.$Intent.data.resultIndex=s(i)}catch{}};let Transaction=_Transaction;var addresses_default$1={MAYAN_FORWARDER_CONTRACT:"0x337685fdaB40D39bd02028545a4FfA7D287cC3E2",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"BLZRi6frs4X4DNLw56V4EXai1b6QVESN1BhHBTYM9VcY",FEE_MANAGER_PROGRAM_ID:"5VtQHnhs2pfVEr68qQsbTRwKh4JV5GTu9mBHgHFxpHeQ",WORMHOLE_PROGRAM_ID:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE:"Ff3yi1meWQQ19VPZMzGg6H8JQQeRudiV7QtVtyzJyoht",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",SUI_CCTP_CORE_PACKAGE_ID:"0x08d87d37ba49e785dde270a83f8e979605b03dc552b5548f26fdf2f49bf7ed1b",SUI_CCTP_CORE_STATE:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",SUI_CCTP_TOKEN_PACKAGE_ID:"0x2aa6c5d56376c371f88a6cc42e852824994993cb9bab8d3e6450cbe3cb32b94e",SUI_CCTP_TOKEN_STATE:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",SUI_WORMHOLE_PACKAGE_ID:"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",SUI_WORMHOLE_STATE:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",SUI_LOGGER_PACKAGE_ID:"0x05680e9030c147b413a489f7891273acc221d49bd061c433e5771bc170fc37ac",EXPLORER_URL:"https://explorer-api.mayan.finance/v3",PRICE_URL:"https://price-api.mayan.finance/v3",RELAYER_URL:"https://relayer-api.mayan.finance/v3",HC_ARBITRUM_BRIDGE:"0x2df1c51e09aecf9cacb7bc98cb1742757f163df7",HC_ARBITRUM_DEPOSIT_PROCESSOR:"0xdDd77e62C848C3334f1148d4F1457FC59ede4E4B",ARBITRUM_USDC_CONTRACT:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",PAYLOAD_WRITER_PROGRAM_ID:"DwMLtdtJqJQkHzNcrdTBuWHJByJfgpKBnvFvzyKdy3cU"},CCTP_TOKEN_DECIMALS$1=6;function getCCTPDomain$1(e){switch(e){case"ethereum":return 0;case"avalanche":return 1;case"optimism":return 2;case"arbitrum":return 3;case"solana":return 5;case"base":return 6;case"polygon":return 7;case"sui":return 8;case"unichain":return 10;case"linea":return 11;case"sonic":return 13;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs$1(e,t){const n=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),a=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),[r]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("message_transmitter")],n),[s]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("sender_authority")],a),[o]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("local_token"),e.toBytes()],a),[i]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("token_messenger")],a),[l]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("token_minter")],a),u=getCCTPDomain$1(t),[c]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("remote_token_messenger"),web3.bufferPolyfill.Buffer.from(u.toString())],a),[p]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("__event_authority")],n),[f]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("__event_authority")],a);return{messageTransmitter:r,senderAuthority:s,remoteTokenMessengerKey:c,tokenMessenger:i,tokenMinter:l,eventAuthToken:f,eventAuthCore:p,localToken:o}}var sha3_2562=sha3Exports.sha3_256,isValidAptosType=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function nativeAddressToHexString$1(e,t){if(t===1)return web3.zeroPadValue(new web3.PublicKey(e).toBytes(),32);if(t===chains$1.ethereum||t===chains$1.bsc||t===chains$1.polygon||t===chains$1.avalanche||t===chains$1.arbitrum||t===chains$1.optimism||t===chains$1.base||t===chains$1.unichain||t===chains$1.linea||t===chains$1.sonic)return web3.zeroPadValue(e,32);if(t===chains$1.aptos&&isValidAptosType(e))return`0x${sha3_2562(e)}`;if(t===chains$1.sui){let n=e.startsWith("0x")?e.substring(2):e;if(web3.bufferPolyfill.Buffer.from(n,"hex").length!==32)throw new Error("Invalid sui address: "+e);return web3.zeroPadValue(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array$1(e){return new Uint8Array(web3.bufferPolyfill.Buffer.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress$1(e,t,n=!1,a=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),r=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!web3.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[s]=web3.PublicKey.findProgramAddressSync([t.toBuffer(),a.toBuffer(),e.toBuffer()],r);return s}function isValidNumericInput(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function getAmountOfFractionalAmount$1(e,t){if(e==null)throw new Error("getAmountOfFractionalAmount: Amount is null or undefined");if(typeof e!="string"&&typeof e!="number")throw new Error("getAmountOfFractionalAmount: Amount is not a string or number");if(typeof e=="string"&&e.length===0)throw new Error("getAmountOfFractionalAmount: Amount is empty");if(!Number.isFinite(Number(e)))throw new Error("getAmountOfFractionalAmount: Amount is not a number");if(!isValidNumericInput(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");const n=Math.min(8,Number(t)),a=Number(e).toFixed(n+1),r=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),s=a.match(r);if(!s)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=s[0];return units.parseUnits(o,Number(t))}var chains$1={solana:1,ethereum:2,bsc:4,polygon:5,avalanche:6,arbitrum:23,optimism:24,base:30,aptos:22,sui:21,unichain:44,linea:38,hypercore:65e3,sonic:52};function getWormholeChainIdByName$1(e){return chains$1[e]}var evmChainIdMap$1={1:2,56:4,137:5,43114:6,42161:23,10:24,8453:30,130:44,59144:38,146:52};function getWormholeChainIdById$1(e){return evmChainIdMap$1[e]}var sdkVersion$1=[10,9,2];function getSdkVersion$1(){return sdkVersion$1.join("_")}function getGasDecimal$1(e){return e==="solana"?9:18}function getGasDecimalsInSolana$1(e){return e==="solana"?9:8}var MAX_U64$1=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob$1(e){if(e<BigInt(0)||e>MAX_U64$1)throw new Error(`Invalid u64: ${e}`);const t=web3.bufferPolyfill.Buffer.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit$1={value:BigInt(0),deadline:0,v:0,r:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress$1(e,t){return!e||!t?null:e.type==="WH"?(t==null?void 0:t.solana)||null:e.type==="MCTP"||e.type==="SWIFT"?e.toChain==="solana"?(t==null?void 0:t.solana)||null:e.toChain==="sui"?(t==null?void 0:t.sui)||null:(t==null?void 0:t.evm)||null:e.type==="FAST_MCTP"&&e.toChain!=="solana"&&e.toChain!=="sui"?(t==null?void 0:t.evm)||null:e.type==="MONO_CHAIN"?e.fromChain==="solana"?(t==null?void 0:t.solana)||null:e.fromChain==="sui"?(t==null?void 0:t.sui)||null:(t==null?void 0:t.evm)||null:null}var MCTP_PAYLOAD_TYPE_DEFAULT$1=1,MCTP_INIT_ORDER_PAYLOAD_ID$1=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1=1,FAST_MCTP_PAYLOAD_TYPE_ORDER$1=3;function getHyperCoreUSDCDepositCustomPayload(e,t,n){const a=web3.bufferPolyfill.Buffer.alloc(109),r=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(t));if(r.length!==20)throw new Error("Invalid destination address length, expected 20 bytes");const s=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(n));if(s.length!==65)throw new Error("Invalid USDC permit signature length, expected 65 bytes");return a.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),0),a.set(r,8),a.writeBigUInt64BE(BigInt(e.hyperCoreParams.depositAmountUSDC64),28),a.writeBigUInt64BE(BigInt(e.deadline64),36),a.set(s,44),a}function toQueryString$1(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function check5xxError$1(e){if(e.status.toString().startsWith("5")){let t;try{const n=await e.json();(n!=null&&n.code||n!=null&&n.statusCode)&&(n!=null&&n.message||n!=null&&n.msg)&&(t={code:(n==null?void 0:n.code)||(n==null?void 0:n.statusCode),message:(n==null?void 0:n.message)||(n==null?void 0:n.msg)})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl$1(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0,fullList:!1,payload:void 0,monoChain:!0}){const{gasDrop:n,referrerBps:a}=e;let r=e.slippageBps;const o={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0,fullList:t.fullList===!0,payload:typeof t.payload=="string"?t.payload:void 0,monoChain:t.monoChain!==!1},solanaProgram:addresses_default$1.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default$1.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:r,referrer:e.referrer,referrerBps:Number.isFinite(a)?a:void 0,gasDrop:Number.isFinite(n)?n:void 0,sdkVersion:getSdkVersion$1()},i=`${addresses_default$1.PRICE_URL}/quote?`,l=toQueryString$1(o);return i+l}async function getSuggestedRelayer$1(){const e=await browserPonyfill.o(`${addresses_default$1.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default$1.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError$1(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana$1(e){const t=toQueryString$1({...e,sdkVersion:getSdkVersion$1()}),n=await browserPonyfill.o(`${addresses_default$1.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError$1(n);const a=await n.json();if(n.status!==200&&n.status!==201)throw a;return a}async function getSwapSui$1(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion$1()}),n=`${addresses_default$1.PRICE_URL}/get-swap/sui`,a=await browserPonyfill.o(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError$1(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}var MayanSwapArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_tokenBridge",type:"address"},{internalType:"address",name:"_weth",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"Redeemed",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"tokenAddr",type:"bytes32"},{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"sourceAddr",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bool",name:"unwrapRedeem",type:"bool"},{internalType:"bool",name:"unwrapRefund",type:"bool"}],internalType:"struct MayanStructs.Swap",name:"s",type:"tuple"}],name:"encodeSwap",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"getWeth",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRedeemPayload",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint64",name:"relayerFee",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanStructs.Redeem",name:"r",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeemAndUnwrap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"swap",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"sweepEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"}],name:"wrapAndSwapETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}]},MayanForwarderArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_guardian",type:"address"},{internalType:"address[]",name:"_swapProtocols",type:"address[]"},{internalType:"address[]",name:"_mayanProtocols",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"UnsupportedProtocol",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedEth",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SwapAndForwarded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenIn",type:"address"},{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedEth",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mayanProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setMayanProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setSwapProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}]},MayanCircleArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_cctpTokenMessenger",type:"address"},{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerAlreadySet",type:"error"},{inputs:[],name:"CallerNotSet",type:"error"},{inputs:[],name:"CctpReceiveFailed",type:"error"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DomainAlreadySet",type:"error"},{inputs:[],name:"DomainNotSet",type:"error"},{inputs:[],name:"EmitterAlreadySet",type:"error"},{inputs:[],name:"EthTransferFailed",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidAmountOut",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"InvalidDestAddr",type:"error"},{inputs:[],name:"InvalidDomain",type:"error"},{inputs:[],name:"InvalidEmitter",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidMintRecipient",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidOrder",type:"error"},{inputs:[],name:"InvalidPayload",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"InvalidRedeemFee",type:"error"},{inputs:[],name:"InvalidReferrerFee",type:"error"},{inputs:[],name:"MintRecipientAlreadySet",type:"error"},{inputs:[],name:"MintRecipientNotSet",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderRefunded",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes",name:"customPayload",type:"bytes"}],name:"bridgeWithFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint256",name:"redeemFee",type:"uint256"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],name:"bridgeWithLockedFee",outputs:[{internalType:"uint64",name:"cctpNonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cctpTokenMessenger",outputs:[{internalType:"contract ITokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"chainIdToEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"params",type:"tuple"}],name:"createOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"domainToCaller",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"feeStorage",outputs:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"redeemFee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"driver",type:"bytes32"}],internalType:"struct MayanCircle.FulfillParams",name:"params",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"}],name:"fulfillOrder",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getDomain",outputs:[{internalType:"uint32",name:"domain",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"keyToMintRecipient",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"burnAmount",type:"uint64"},{internalType:"bytes32",name:"burnToken",type:"bytes32"},{internalType:"bytes32",name:"customPayload",type:"bytes32"}],internalType:"struct MayanCircle.BridgeWithFeeParams",name:"bridgeParams",type:"tuple"}],name:"redeemWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"redeemWithLockedFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"cctpNonce",type:"uint32"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"refineFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"orderParams",type:"tuple"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"}],internalType:"struct MayanCircle.ExtraParams",name:"extraParams",type:"tuple"}],name:"refund",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"setDomain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"caller",type:"bytes32"}],name:"setDomainCaller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"emitter",type:"bytes32"}],name:"setEmitter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"}],name:"setMintRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"}],name:"unlockFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm1",type:"bytes"},{internalType:"bytes",name:"encodedVm2",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],internalType:"struct MayanCircle.UnlockRefinedFeeMsg",name:"refinedMsg",type:"tuple"}],name:"unlockFeeRefined",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function getEvmMctpBridgeParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(n)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${s} !== ${r}`);const i=e.cheaperChain===e.fromChain,l=nativeAddressToHexString$1(t,o),u=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),c=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),p=BigInt(e.effectiveAmountIn64),f=getCCTPDomain$1(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const y=e.mctpMayanContract;if(e.toChain==="solana"&&i)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));return i&&(m=BigInt(0)),{lockFee:i,tokenIn:e.mctpInputContract,amountIn:p,redeemFee:u,gasDrop:c,destAddr:l,destDomain:f,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",bridgeFee:m,contractAddress:y}}function getEvmMctpBridgeTxPayload$1(e,t,n,a){const r=getEvmMctpBridgeParams$1(e,t,n),{contractAddress:s,tokenIn:o,amountIn:i,destAddr:l,lockFee:u,redeemFee:c,gasDrop:p,destDomain:f,customPayload:y,payloadType:m,bridgeFee:b}=r,g=new contract.Contract(s,MayanCircleArtifact_default$1.abi);let h,T;return u?h=g.interface.encodeFunctionData("bridgeWithLockedFee",[o,i,p,c,f,l]):h=g.interface.encodeFunctionData("bridgeWithFee",[o,i,c,p,l,f,m,y]),T=contract.toBeHex(b),{to:s,data:h,value:T,_params:r}}function getEvmMctpCreateOrderParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${r}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.mctpMayanContract,l=nativeAddressToHexString$1(t,o);let u;n?u=nativeAddressToHexString$1(n,o):u=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const c=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),p=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8));let f=BigInt(e.effectiveAmountIn64);const y=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:f,gasDrop:p,destAddr:l,destChain:o,tokenOut:b,minAmountOut:y,deadline:m,redeemFee:c,referrerAddr:u,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain)),contractAddress:i}}function getEvmMctpCreateOrderTxPayload$1(e,t,n,a){const r=getEvmMctpCreateOrderParams$1(e,t,n,a),{contractAddress:s,params:o,bridgeFee:i}=r,u=new contract.Contract(s,MayanCircleArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[o]),c=contract.toBeHex(i);return{to:s,data:u,value:c,_params:r}}function getMctpFromEvmTxPayload$1(e,t,n,a,r,s){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit$1,i=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),l=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));let u=contract.toBeHex(l);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const c=getEvmMctpCreateOrderTxPayload$1(e,t,n,a),p="forwardERC20",f=[e.fromToken.contract,c._params.params.amountIn,o,c._params.contractAddress,c.data];return{data:i.interface.encodeFunctionData(p,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const c=getEvmMctpBridgeTxPayload$1(e,t,a),p="forwardERC20",f=[e.fromToken.contract,c._params.amountIn,o,c._params.contractAddress,c.data];return{data:i.interface.encodeFunctionData(p,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const{minMiddleAmount:c,evmSwapRouterAddress:p,evmSwapRouterCalldata:f}=e;if(!c||!p||!f)throw new Error("MCTP swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const y=getEvmMctpCreateOrderTxPayload$1(e,t,n,a),m=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.params.amountIn;if(b<=l)throw new Error("Amount in is less than bridge fee");l!==BigInt(0)&&(b-=l),u=contract.toBeHex(y._params.params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(b,g),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}else{const y=getEvmMctpBridgeTxPayload$1(e,t,a),m=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.amountIn;if(b<=l)throw new Error("Amount in is less than bridge fee");l!==BigInt(0)&&(b-=l),u=contract.toBeHex(y._params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(b,g),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}}}var MayanSwiftArtifact_default$1={abi:[{inputs:[{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"_solanaEmitter",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DuplicateOrder",type:"error"},{inputs:[],name:"FeesTooHigh",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidAuctionMode",type:"error"},{inputs:[],name:"InvalidBpsFee",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidDestChain",type:"error"},{inputs:[],name:"InvalidEmitterAddress",type:"error"},{inputs:[],name:"InvalidEmitterChain",type:"error"},{inputs:[],name:"InvalidEvmAddr",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidOrderHash",type:"error"},{inputs:[],name:"InvalidOrderStatus",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidSrcChain",type:"error"},{inputs:[],name:"InvalidWormholeFee",type:"error"},{inputs:[],name:"OrderNotExists",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"SmallAmountIn",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"OrderCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderRefunded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderUnlocked",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"canceler",type:"bytes32"}],name:"cancelOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithEth",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"signedOrderHash",type:"bytes"}],name:"createOrderWithSig",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithToken",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillSimple",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"enum MayanSwift.Status",name:"status",type:"uint8"},{internalType:"uint64",name:"amountIn",type:"uint64"},{internalType:"uint16",name:"destChainId",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseFulfillPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"driver",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"}],internalType:"struct MayanSwift.FulfillMsg",name:"fulfillMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRefundPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"canceler",type:"bytes32"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwift.RefundMsg",name:"refundMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUnlockPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct MayanSwift.UnlockMsg",name:"unlockMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"postBatch",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"refundOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"solanaEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"unlockMsgs",outputs:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockSingle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function decodeInstructionArgs(e,t){const n=t.subarray(0,8),a=e.instructions.find(i=>web3.bufferPolyfill.Buffer.from(i.discriminator).toString("hex").toLowerCase()===web3.bufferPolyfill.Buffer.from(n).toString("hex").toLowerCase());if(!a)throw new Error(`Instruction ${web3.bufferPolyfill.Buffer.from(n).toString("hex")} not in IDL`);const r=a.args||[],s={};let o=8;for(const i of r){const[l,u]=decodeType(i.type,t,o,e);s[i.name]=l,o=u}return s}function decodeType(e,t,n,a){var r;if(typeof e=="string")switch(e){case"u8":return[t.readUInt8(n),n+1];case"u16":return[t.readUInt16LE(n),n+2];case"u32":return[t.readUInt32LE(n),n+4];case"u64":return[t.readBigUInt64LE(n),n+8];case"bool":return[t.readUInt8(n)!==0,n+1];case"pubkey":{const s=t.subarray(n,n+32);return[new web3.PublicKey(s),n+32]}default:throw new Error(`Unknown primitive: ${e}`)}if("array"in e){const[s,o]=e.array,i=[];let l=n;for(let u=0;u<o;u++){const[c,p]=decodeType(s,t,l,a);i.push(c),l=p}return[i,l]}if("defined"in e){const s=(r=a.types)==null?void 0:r.find(o=>o.name===e.defined.name);if(!s)throw new Error(`Type ${e.defined} not found`);if(s.type.kind==="struct"){const o={};let i=n;for(const l of s.type.fields){const[u,c]=decodeType(l.type,t,i,a);o[l.name]=u,i=c}return[o,i]}else{const o=t.readUInt8(n),i=s.type.variants[o];if(!i)throw new Error(`Invalid enum index ${o}`);let l=n+1;const u={variant:i.name};if(i.fields&&i.fields.length){const c=[];for(const p of i.fields){const[f,y]=decodeType(p.type,t,l,a);c.push(f),l=y}u.fields=c}return[u,l]}}if("option"in e)return t.readUInt8(n)===0?[null,n+1]:decodeType(e.option,t,n+1,a);if("vec"in e){const s=t.readUInt32LE(n);let o=n+4;const i=[];for(let l=0;l<s;l++){const[u,c]=decodeType(e.vec,t,o,a);i.push(u),o=c}return[i,o]}throw new Error(`Unsupported type shape: ${JSON.stringify(e)}`)}function decodeJupiterV6InsArgs(e){return decodeInstructionArgs(jupV6Idl,web3.bufferPolyfill.Buffer.from(e))}var jupV6Idl={instructions:[{name:"route",docs:["route_plan Topologically sorted trade DAG"],discriminator:[229,23,203,151,122,227,173,42],accounts:[{name:"token_program"},{name:"user_transfer_authority",signer:!0},{name:"user_source_token_account",writable:!0},{name:"user_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0,optional:!0},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"},{name:"shared_accounts_route",docs:["Route by using program owned token accounts and open orders accounts."],discriminator:[193,32,155,51,65,214,156,129],accounts:[{name:"token_program"},{name:"program_authority"},{name:"user_transfer_authority",signer:!0},{name:"source_token_account",writable:!0},{name:"program_source_token_account",writable:!0},{name:"program_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0},{name:"source_mint"},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"token_2022_program",optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"id",type:"u8"},{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"}],types:[{name:"AccountsType",type:{kind:"enum",variants:[{name:"TransferHookA"},{name:"TransferHookB"},{name:"TransferHookReward"},{name:"TransferHookInput"},{name:"TransferHookIntermediate"},{name:"TransferHookOutput"},{name:"SupplementalTickArrays"},{name:"SupplementalTickArraysOne"},{name:"SupplementalTickArraysTwo"}]}},{name:"FeeEvent",type:{kind:"struct",fields:[{name:"account",type:"pubkey"},{name:"mint",type:"pubkey"},{name:"amount",type:"u64"}]}},{name:"RemainingAccountsInfo",type:{kind:"struct",fields:[{name:"slices",type:{vec:{defined:{name:"RemainingAccountsSlice"}}}}]}},{name:"RemainingAccountsSlice",type:{kind:"struct",fields:[{name:"accounts_type",type:{defined:{name:"AccountsType"}}},{name:"length",type:"u8"}]}},{name:"RoutePlanStep",type:{kind:"struct",fields:[{name:"swap",type:{defined:{name:"Swap"}}},{name:"percent",type:"u8"},{name:"input_index",type:"u8"},{name:"output_index",type:"u8"}]}},{name:"Side",type:{kind:"enum",variants:[{name:"Bid"},{name:"Ask"}]}},{name:"Swap",type:{kind:"enum",variants:[{name:"Saber"},{name:"SaberAddDecimalsDeposit"},{name:"SaberAddDecimalsWithdraw"},{name:"TokenSwap"},{name:"Sencha"},{name:"Step"},{name:"Cropper"},{name:"Raydium"},{name:"Crema",fields:[{name:"a_to_b",type:"bool"}]},{name:"Lifinity"},{name:"Mercurial"},{name:"Cykura"},{name:"Serum",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"MarinadeDeposit"},{name:"MarinadeUnstake"},{name:"Aldrin",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"AldrinV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Whirlpool",fields:[{name:"a_to_b",type:"bool"}]},{name:"Invariant",fields:[{name:"x_to_y",type:"bool"}]},{name:"Meteora"},{name:"GooseFX"},{name:"DeltaFi",fields:[{name:"stable",type:"bool"}]},{name:"Balansol"},{name:"MarcoPolo",fields:[{name:"x_to_y",type:"bool"}]},{name:"Dradex",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"LifinityV2"},{name:"RaydiumClmm"},{name:"Openbook",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Phoenix",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Symmetry",fields:[{name:"from_token_id",type:"u64"},{name:"to_token_id",type:"u64"}]},{name:"TokenSwapV2"},{name:"HeliumTreasuryManagementRedeemV0"},{name:"StakeDexStakeWrappedSol"},{name:"StakeDexSwapViaStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"GooseFXV2"},{name:"Perps"},{name:"PerpsAddLiquidity"},{name:"PerpsRemoveLiquidity"},{name:"MeteoraDlmm"},{name:"OpenBookV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumClmmV2"},{name:"StakeDexPrefundWithdrawStakeAndDepositStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"Clone",fields:[{name:"pool_index",type:"u8"},{name:"quantity_is_input",type:"bool"},{name:"quantity_is_collateral",type:"bool"}]},{name:"SanctumS",fields:[{name:"src_lst_value_calc_accs",type:"u8"},{name:"dst_lst_value_calc_accs",type:"u8"},{name:"src_lst_index",type:"u32"},{name:"dst_lst_index",type:"u32"}]},{name:"SanctumSAddLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"SanctumSRemoveLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"RaydiumCP"},{name:"WhirlpoolSwapV2",fields:[{name:"a_to_b",type:"bool"},{name:"remaining_accounts_info",type:{option:{defined:{name:"RemainingAccountsInfo"}}}}]},{name:"OneIntro"},{name:"PumpdotfunWrappedBuy"},{name:"PumpdotfunWrappedSell"},{name:"PerpsV2"},{name:"PerpsV2AddLiquidity"},{name:"PerpsV2RemoveLiquidity"},{name:"MoonshotWrappedBuy"},{name:"MoonshotWrappedSell"},{name:"StabbleStableSwap"},{name:"StabbleWeightedSwap"},{name:"Obric",fields:[{name:"x_to_y",type:"bool"}]},{name:"FoxBuyFromEstimatedCost"},{name:"FoxClaimPartial",fields:[{name:"is_y",type:"bool"}]},{name:"SolFi",fields:[{name:"is_quote_to_base",type:"bool"}]},{name:"SolayerDelegateNoInit"},{name:"SolayerUndelegateNoInit"},{name:"TokenMill",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"DaosFunBuy"},{name:"DaosFunSell"},{name:"ZeroFi"},{name:"StakeDexWithdrawWrappedSol"},{name:"VirtualsBuy"},{name:"VirtualsSell"},{name:"Perena",fields:[{name:"in_index",type:"u8"},{name:"out_index",type:"u8"}]},{name:"PumpdotfunAmmBuy"},{name:"PumpdotfunAmmSell"},{name:"Gamma"},{name:"MeteoraDlmmSwapV2",fields:[{name:"remaining_accounts_info",type:{defined:{name:"RemainingAccountsInfo"}}}]},{name:"Woofi"},{name:"MeteoraDammV2"},{name:"MeteoraDynamicBondingCurveSwap"},{name:"StabbleStableSwapV2"},{name:"StabbleWeightedSwapV2"},{name:"RaydiumLaunchlabBuy",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"RaydiumLaunchlabSell",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"BoopdotfunWrappedBuy"},{name:"BoopdotfunWrappedSell"},{name:"Plasma",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"GoonFi",fields:[{name:"is_bid",type:"bool"},{name:"blacklist_bump",type:"u8"}]},{name:"HumidiFi",fields:[{name:"swap_id",type:"u64"},{name:"is_base_to_quote",type:"bool"}]},{name:"MeteoraDynamicBondingCurveSwapWithRemainingAccounts"},{name:"TesseraV",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumStable"}]}},{name:"SwapEvent",type:{kind:"struct",fields:[{name:"amm",type:"pubkey"},{name:"input_mint",type:"pubkey"},{name:"input_amount",type:"u64"},{name:"output_mint",type:"pubkey"},{name:"output_amount",type:"u64"}]}},{name:"TokenLedger",type:{kind:"struct",fields:[{name:"token_account",type:"pubkey"},{name:"amount",type:"u64"}]}}]};function createAssociatedTokenAccountInstruction$1(e,t,n,a,r=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),s=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new web3.TransactionInstruction({keys:o,programId:s,data:web3.bufferPolyfill.Buffer.from([1])})}var TOKEN_ACCOUNT_LEN$1=165;async function createInitializeRandomTokenAccountInstructions$1(e,t,n,a,r,s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const o=[],i=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN$1);return o.push(web3.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:r.publicKey,lamports:i,space:TOKEN_ACCOUNT_LEN$1,programId:s})),o.push(new web3.TransactionInstruction({keys:[{pubkey:r.publicKey,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:s,data:web3.bufferPolyfill.Buffer.from([1])})),o}var ApproveInstructionData$1=web3.struct([web3.u8("instruction"),web3.blob(8,"amount")]);function createApproveInstruction$1(e,t,n,a,r=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],o=web3.bufferPolyfill.Buffer.alloc(ApproveInstructionData$1.span);return ApproveInstructionData$1.encode({instruction:4,amount:getSafeU64Blob$1(a)},o),new web3.TransactionInstruction({keys:s,programId:r,data:o})}var SyncNativeInstructionData$1=web3.struct([web3.u8("instruction")]);function createSyncNativeInstruction$1(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],n=web3.bufferPolyfill.Buffer.alloc(SyncNativeInstructionData$1.span);return SyncNativeInstructionData$1.encode({instruction:17},n),new web3.TransactionInstruction({keys:t,programId:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),data:n})}web3.struct([web3.u8("instruction")]);var SplTransferInstructionData$1=web3.struct([web3.u8("instruction"),web3.blob(8,"amount")]);function createSplTransferInstruction$1(e,t,n,a,r=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],o=web3.bufferPolyfill.Buffer.alloc(SplTransferInstructionData$1.span);return SplTransferInstructionData$1.encode({instruction:3,amount:getSafeU64Blob$1(a)},o),new web3.TransactionInstruction({keys:s,programId:r,data:o})}var solMint$1=new web3.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo$1(e){return new web3.TransactionInstruction({programId:new web3.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new web3.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:web3.bufferPolyfill.Buffer.from(e.data,"base64")})}async function getAddressLookupTableAccounts$1(e,t){return(await t.getMultipleAccountsInfo(e.map(a=>new web3.PublicKey(a)))).reduce((a,r,s)=>{const o=e[s];if(r){const i=new web3.AddressLookupTableAccount({key:new web3.PublicKey(o),state:web3.AddressLookupTableAccount.deserialize(r.data)});a.push(i)}return a},new Array)}function decentralizeClientSwapInstructions$1(e,t){const n=deserializeInstructionInfo$1(e.swapInstruction),a=e.cleanupInstruction?deserializeInstructionInfo$1(e.cleanupInstruction):null,r=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo$1):[],s=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo$1):[];return{swapInstruction:n,cleanupInstruction:a,computeBudgetInstructions:r,setupInstructions:s,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData$1(e){let t=`global:${e}`;return web3.bufferPolyfill.Buffer.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer$1(){let e;try{const t=await getSuggestedRelayer$1();e=new web3.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=web3.SystemProgram.programId}return e}function validateJupCleanupInstruction$1(e,t){if(e){if(!e.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!e.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid cleanup instruction:: programId");if(Uint8Array.from(e.data).length!==1)throw new Error("Invalid cleanup instruction:: data");if(Uint8Array.from(e.data)[0]!==9)throw new Error("Invalid cleanup instruction:: data");if(t&&!e.keys[1].pubkey.equals(t))throw new Error("Invalid cleanup instruction:: dest account")}}function validateJupSetupInstructions$1(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(n=>{if(!n.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))&&!n.programId.equals(web3.SystemProgram.programId)&&!n.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!n.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(n.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(n.data).length===1){if(Uint8Array.from(n.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(n.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(n.programId.equals(web3.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const a=getAssociatedTokenAddress$1(solMint$1,t,!0);if(n.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!n.keys[1].pubkey.equals(a))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(n.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction$1(e,t,n=!1){const a=new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");if(!e.programId.equals(a))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("shared_accounts_route").toString("hex")){if(!e.keys[6].pubkey.equals(t))throw new Error("Invalid swap instruction shared_accounts_route:: dest account")}else if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("route").toString("hex")){if(n){if(!e.keys[4].pubkey.equals(a)&&!e.keys[3].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else if(!e.keys[4].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else throw new Error("Invalid swap instruction:: ix id")}function validateJupSwapInstructionData(e,t){const n=decodeJupiterV6InsArgs(Uint8Array.from(e.data));if(n.in_amount>BigInt(t.effectiveAmountIn64))throw new Error("Invalid swap instruction:: amount in");const a=getAmountOfFractionalAmount$1(t.minAmountOut,t.toToken.decimals);if(n.quoted_out_amount-n.quoted_out_amount*BigInt(n.slippage_bps)/10000n<a)throw new Error("Invalid swap instruction:: quote expired");if(n.platform_fee_bps!==t.referrerBps)throw new Error("Invalid swap instruction:: platform fee")}function validateJupComputeBudgetInstructions$1(e){e.forEach(t=>{if(!t.programId.equals(web3.ComputeBudgetProgram.programId))throw new Error("Invalid compute budget instruction:: programId");if(Uint8Array.from(t.data)[0]===3&&t.data.readBigUInt64LE(1)>100000000n)throw new Error("Invalid compute budget instruction:: to high tx fee")})}function validateJupSwap$1(e,t,n,a,r=!1){validateJupComputeBudgetInstructions$1(e.computeBudgetInstructions),validateJupSetupInstructions$1(e.setupInstructions,n),validateJupSwapInstruction$1(e.swapInstruction,t,r),validateJupCleanupInstruction$1(e.cleanupInstruction,a)}function createTransferAllAndCloseInstruction$1(e,t,n,a,r,s=new web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new web3.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}],programId:new web3.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData$1("transfer_all_and_close")})}function createPayloadWriterCreateInstruction(e,t,n,a){const r=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1}],s=14+n.length,o=web3.bufferPolyfill.Buffer.alloc(s);return o.set(getAnchorInstructionData$1("create_simple"),0),o.writeUint16LE(a,8),o.writeUint32LE(n.length,10),o.set(n,14),new web3.TransactionInstruction({keys:r,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:o})}function createPayloadWriterCloseInstruction(e,t,n){const a=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],s=web3.bufferPolyfill.Buffer.alloc(10);return s.set(getAnchorInstructionData$1("close"),0),s.writeUint16LE(n,8),new web3.TransactionInstruction({keys:a,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:s})}function getWormholePDAs$1(e){const t=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),n=new web3.PublicKey(e),[a]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("Bridge")],t),[r]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("emitter")],n),[s]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("Sequence"),r.toBuffer()],t),[o]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("fee_collector")],t);return{bridgeConfig:a,sequenceKey:s,feeCollector:o,emitter:r}}var MCTPBridgeWithFeeLayout$1=web3.struct([web3.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction$1(e,t,n,a,r){const s=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),l=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),u=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),c=new web3.PublicKey(a),p=new web3.PublicKey(n),f=getAssociatedTokenAddress$1(p,e,!0);let y;r&&r>BigInt(0)?y=getAssociatedTokenAddress$1(p,c,!1):y=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs$1(p,t),b=getWormholePDAs$1(addresses_default$1.MCTP_PROGRAM_ID),g=web3.Keypair.generate(),h=web3.Keypair.generate(),T=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!0},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],w=web3.bufferPolyfill.Buffer.alloc(MCTPBridgeWithFeeLayout$1.span);return MCTPBridgeWithFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_with_fee")},w),{instruction:new web3.TransactionInstruction({keys:T,data:w,programId:u}),signers:[g,h]}}var MctpBridgeLockFeeLayout$1=web3.struct([web3.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction$1(e,t,n,a,r){const s=[],o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID),l=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),u=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),c=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),p=new web3.PublicKey(a),f=new web3.PublicKey(n),y=getAssociatedTokenAddress$1(f,e,!0),m=getCCTPBridgePDAs$1(f,t),b=web3.Keypair.generate(),[g]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("LOCKED_FEE"),f.toBuffer(),b.publicKey.toBytes()],c);let h;r&&r>BigInt(0)?h=getAssociatedTokenAddress$1(f,p,!1):h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const T=getAssociatedTokenAddress$1(f,g,!0);s.push(createAssociatedTokenAccountInstruction$1(p,T,g,f));const w=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=web3.bufferPolyfill.Buffer.alloc(MctpBridgeLockFeeLayout$1.span);MctpBridgeLockFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_locked_fee")},A);const S=new web3.TransactionInstruction({keys:w,data:A,programId:c});return s.push(S),{instructions:s,signer:b}}var MctpInitSwapLayout$1=web3.struct([web3.blob(8,"instruction")]);function createMctpInitSwapInstruction$1(e,t,n,a,r){const s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),l=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),u=new web3.PublicKey(a),c=new web3.PublicKey(n),p=getAssociatedTokenAddress$1(c,e,!0),f=getCCTPBridgePDAs$1(c,t),y=web3.Keypair.generate(),[m]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],l);let b;r&&r>BigInt(0)?b=getAssociatedTokenAddress$1(c,u,!1):b=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const g=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:y.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=web3.bufferPolyfill.Buffer.alloc(MctpInitSwapLayout$1.span);return MctpInitSwapLayout$1.encode({instruction:getAnchorInstructionData$1("create_order")},h),{instruction:new web3.TransactionInstruction({keys:g,data:h,programId:l}),signer:y}}var MctpBridgeLedgerLayout$1=web3.struct([web3.blob(8,"instruction"),web3.blob(32,"destAddress"),web3.blob(8,"amountInMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeRedeem"),web3.blob(8,"feeSolana"),web3.u16("destinationChain"),web3.blob(32,"keyRnd"),web3.u8("mode")]);function createMctpBridgeLedgerInstruction$1(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new web3.PublicKey(e.swapperAddress),n=new web3.PublicKey(e.mintAddress),a=getAssociatedTokenAddress$1(n,e.ledger,!0),r=getWormholeChainIdByName$1(e.toChain),s=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),o=getSafeU64Blob$1(e.amountInMin64),i=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),l=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),u=getSafeU64Blob$1(e.feeSolana),c=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),p=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(c),isWritable:!1,isSigner:!1}],f=web3.bufferPolyfill.Buffer.alloc(MctpBridgeLedgerLayout$1.span);return MctpBridgeLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_bridge_ledger"),destAddress:s,amountInMin:o,gasDrop:i,feeRedeem:l,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},f),new web3.TransactionInstruction({keys:p,data:f,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout$1=web3.struct([web3.blob(8,"instruction"),web3.blob(32,"destAddress"),web3.blob(8,"amountInMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeRedeem"),web3.blob(8,"feeSolana"),web3.u16("destinationChain"),web3.blob(32,"keyRnd"),web3.u8("mode"),web3.blob(32,"tokenOut"),web3.blob(8,"amountOutMin"),web3.blob(8,"deadline"),web3.blob(32,"refAddress"),web3.u8("feeRateRef")]);function createMctpSwapLedgerInstruction$1(e){const t=new web3.PublicKey(e.swapperAddress),n=new web3.PublicKey(e.mintAddress),a=getAssociatedTokenAddress$1(n,e.ledger,!0),r=getWormholeChainIdByName$1(e.toChain),s=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),o=getSafeU64Blob$1(e.amountInMin64),i=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),l=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),u=getSafeU64Blob$1(e.feeSolana),c=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.tokenOut,r))),p=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),f=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),y=getSafeU64Blob$1(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=web3.bufferPolyfill.Buffer.alloc(MctpSwapLedgerLayout$1.span);return MctpSwapLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_order_ledger"),destAddress:s,amountInMin:o,gasDrop:i,feeRedeem:l,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:c,refAddress:p,amountOutMin:f,deadline:y,feeRateRef:e.feeRateRef},b),new web3.TransactionInstruction({keys:m,data:b,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions$1(e,t,n,a,r,s={}){const o=(s==null?void 0:s.forceSkipCctpInstructions)||!1,i=(s==null?void 0:s.allowSwapperOffCurve)||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let l=[],u=[],c=[],p=[],f=[],y=[],m=[];const b=web3.Keypair.generate();let g=null;l.push(addresses_default$1.LOOKUP_TABLE);const h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),T=new web3.PublicKey(t),w=web3.Keypair.generate(),A=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const S=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[P]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from(S),T.toBytes(),w.publicKey.toBytes()],h),O=getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),P,!0),R=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const C=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&u.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),u.push(createAssociatedTokenAccountInstruction$1(T,O,P,new web3.PublicKey(e.mctpInputContract))),u.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),T,i),O,T,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(u.push(createMctpSwapLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),!o){const{instruction:v,signer:N}=createMctpInitSwapInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(v),c.push(N)}}else if(u.push(createMctpBridgeLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:R,referrerAddress:a})),!o)if(R==="WITH_FEE"){const{instruction:v,signers:N}=createMctpBridgeWithFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(v),c.push(...N)}else{const{instructions:v,signer:N}=createMctpBridgeLockFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,C);u.push(...v),c.push(N)}}else{const C=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:P.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":R,fillMaxAccounts:(s==null?void 0:s.separateSwapTx)||!1,tpmTokenAccount:s!=null&&s.separateSwapTx?b.publicKey.toString():null}),v=decentralizeClientSwapInstructions$1(C);s!=null&&s.separateSwapTx&&C.maxAccountsFilled?(validateJupSwap$1(v,b.publicKey,T),m=await createInitializeRandomTokenAccountInstructions$1(r,T,new web3.PublicKey(e.mctpInputContract),T,b),y.push(...v.computeBudgetInstructions),v.setupInstructions&&y.push(...v.setupInstructions),y.push(v.swapInstruction),v.cleanupInstruction&&y.push(v.cleanupInstruction),f.push(...v.addressLookupTableAddresses),u.push(createAssociatedTokenAccountInstruction$1(T,O,P,new web3.PublicKey(e.mctpInputContract))),u.push(createTransferAllAndCloseInstruction$1(T,new web3.PublicKey(e.mctpInputContract),b.publicKey,O,T))):(validateJupSwap$1(v,O,T),u.push(...v.computeBudgetInstructions),v.setupInstructions&&u.push(...v.setupInstructions),u.push(v.swapInstruction),v.cleanupInstruction&&u.push(v.cleanupInstruction),l.push(...v.addressLookupTableAddresses));const N=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(u.push(createMctpSwapLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),y.length>0){const{instruction:W,signer:U}=createMctpInitSwapInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(W),c.push(U)}}else if(u.push(createMctpBridgeLedgerInstruction$1({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),mode:R,referrerAddress:a})),y.length>0)if(R==="WITH_FEE"){const{instruction:W,signers:U}=createMctpBridgeWithFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(W),c.push(...U)}else{const{instructions:W,signer:U}=createMctpBridgeLockFeeInstruction$1(P,e.toChain,e.mctpInputContract,t,N);u.push(...W),c.push(U)}}const D=await getAddressLookupTableAccounts$1(l.concat(f),r);if(p=D.slice(0,l.length),y.length>0){const C=D.slice(l.length);g={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:C},createTmpTokenAccountIxs:m,tmpTokenAccount:b}}return{instructions:u,signers:c,lookupTables:p,swapMessageV0Params:g}}function createSwiftOrderHash$1(e,t,n,a,r){const o=web3.bufferPolyfill.Buffer.alloc(239);let i=0;const l=getWormholeChainIdByName$1(e.fromChain),u=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(t,l)));o.set(u,0),i+=32,o.writeUInt16BE(l,i),i+=2;const c=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.swiftInputContract,l),p=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(c));o.set(p,i),i+=32;const f=getWormholeChainIdByName$1(e.toChain),y=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(n,f)));o.set(y,i),i+=32,o.writeUInt16BE(f,i),i+=2;const m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,f),b=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(m));o.set(b,i),i+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(e.toToken.decimals,8)),i),i+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),i),i+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),i),i+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),i),i+=8,o.writeBigUInt64BE(BigInt(e.deadline64),i),i+=8;const g=a?web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(a,f))):web3.SystemProgram.programId.toBuffer();o.set(g,i),i+=32,o.writeUInt8(e.referrerBps,i),i+=1;const h=e.protocolBps;o.writeUInt8(h,i),i+=1,o.writeUInt8(e.swiftAuctionMode,i),i+=1;const T=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(r));if(o.set(T,i),i+=32,i!==239)throw new Error(`Invalid order data size: ${i}`);const w=web3.keccak256(o);return web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(w))}var InitSwiftLayout$1=web3.struct([web3.blob(8,"instruction"),web3.blob(8,"amountInMin"),web3.u8("nativeInput"),web3.blob(8,"feeSubmit"),web3.blob(32,"destAddress"),web3.u16("destinationChain"),web3.blob(32,"tokenOut"),web3.blob(8,"amountOutMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeCancel"),web3.blob(8,"feeRefund"),web3.blob(8,"deadline"),web3.blob(32,"refAddress"),web3.u8("feeRateRef"),web3.u8("feeRateMayan"),web3.u8("auctionMode"),web3.blob(32,"randomKey")]);function createSwiftInitInstruction$1(e){const{quote:t}=e,n=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(t.swiftInputContract),a=getWormholeChainIdByName$1(t.toChain);if(a!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${a} != ${t.toToken.wChainId}`);const r=[{pubkey:e.trader,isWritable:!1,isSigner:!0},{pubkey:e.relayer,isWritable:!0,isSigner:!0},{pubkey:e.state,isWritable:!0,isSigner:!1},{pubkey:e.stateAccount,isWritable:!0,isSigner:!1},{pubkey:e.relayerAccount,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],s=web3.bufferPolyfill.Buffer.alloc(InitSwiftLayout$1.span),o=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,a))):web3.SystemProgram.programId.toBuffer(),i=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount$1(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout$1.encode({instruction:getAnchorInstructionData$1("init_order"),amountInMin:getSafeU64Blob$1(i),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob$1(BigInt(t.submitRelayerFee64)),destAddress:web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,a))),destinationChain:a,tokenOut:web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(t.toToken.contract,a))),amountOutMin:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.gasDrop,Math.min(getGasDecimal$1(t.toChain),8))),feeCancel:getSafeU64Blob$1(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob$1(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob$1(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},s),new web3.TransactionInstruction({keys:r,data:s,programId:new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions$1(e,t,n,a,r,s={}){if(e.type!=="SWIFT")throw new Error("Unsupported quote type for Swift: "+e.type);if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const o=s.allowSwapperOffCurve||!1;let i=[],l=[],u=[];u.push(addresses_default$1.LOOKUP_TABLE);let c=[],p=[],f=[];const y=web3.Keypair.generate();let m=null;const b=new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID),g=new web3.PublicKey(t),h=web3.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const T=BigInt(e.deadline64),w=createSwiftOrderHash$1(e,t,n,a,h.publicKey.toBuffer().toString("hex")),[A]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("STATE_SOURCE"),w],b),S=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.swiftInputContract),P=getAssociatedTokenAddress$1(S,A,!0),O=e.gasless?new web3.PublicKey(e.relayer):g,R=getAssociatedTokenAddress$1(S,O,!1);if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(createAssociatedTokenAccountInstruction$1(O,P,A,S)),e.swiftInputContract===providerJsonrpc.ZeroAddress?i.push(web3.SystemProgram.transfer({fromPubkey:g,toPubkey:P,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction$1(P)):i.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(S,g,o),P,g,BigInt(e.effectiveAmountIn64)));else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.swiftInputContract,userWallet:t,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.gasless?"SWIFT_GASLESS":"SWIFT",orderHash:`0x${w.toString("hex")}`,fillMaxAccounts:(s==null?void 0:s.separateSwapTx)||!1,tpmTokenAccount:s!=null&&s.separateSwapTx?y.publicKey.toString():null}),C=decentralizeClientSwapInstructions$1(D);s!=null&&s.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap$1(C,y.publicKey,g),f=await createInitializeRandomTokenAccountInstructions$1(r,O,S,g,y),p.push(...C.computeBudgetInstructions),C.setupInstructions&&p.push(...C.setupInstructions),p.push(C.swapInstruction),C.cleanupInstruction&&p.push(C.cleanupInstruction),c.push(...C.addressLookupTableAddresses),i.push(createAssociatedTokenAccountInstruction$1(O,P,A,S)),i.push(createTransferAllAndCloseInstruction$1(g,S,y.publicKey,P,O))):(i.push(...C.computeBudgetInstructions),C.setupInstructions&&i.push(...C.setupInstructions),i.push(C.swapInstruction),C.cleanupInstruction&&i.push(C.cleanupInstruction),u.push(...C.addressLookupTableAddresses))}i.push(createSwiftInitInstruction$1({quote:e,state:A,trader:g,stateAccount:P,randomKey:h.publicKey,relayerAccount:R,relayer:O,destinationAddress:n,deadline:T,referrerAddress:a}));const $=await getAddressLookupTableAccounts$1(u.concat(c),r);if(l=$.slice(0,u.length),p.length>0){const D=$.slice(u.length);m={messageV0:{payerKey:O,instructions:p,addressLookupTableAccounts:D},createTmpTokenAccountIxs:f,tmpTokenAccount:y}}return{instructions:i,signers:[],lookupTables:l,swapMessageV0Params:m}}async function createHyperCoreDepositFromSolanaInstructions(e,t,n,a,r,s={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!(s!=null&&s.usdcPermitSignature))throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");const o=s.allowSwapperOffCurve||!1;let i=[],l=[],u=[],c=[];c.push(addresses_default$1.LOOKUP_TABLE);let p=[],f=[],y=[];const m=web3.Keypair.generate();let b=null;const g=new web3.PublicKey(t),h=new web3.PublicKey(e.hyperCoreParams.initiateTokenContract),T=Math.floor(Math.random()*65e3),[w]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("PAYLOAD"),g.toBuffer(),(()=>{const D=web3.bufferPolyfill.Buffer.alloc(2);return D.writeUInt16LE(T,0),D})()],new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID)),A=getHyperCoreUSDCDepositCustomPayload(e,n,s.usdcPermitSignature),S=web3.Keypair.generate(),P=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),[O]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("LEDGER_BRIDGE"),g.toBytes(),S.publicKey.toBytes()],P),R=getAssociatedTokenAddress$1(h,O,!0);if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract){e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(createAssociatedTokenAccountInstruction$1(g,R,O,h)),i.push(createSplTransferInstruction$1(getAssociatedTokenAddress$1(h,g,o),R,g,BigInt(e.hyperCoreParams.bridgeAmountUSDC64))),i.push(createPayloadWriterCreateInstruction(g,w,A,T)),i.push(createMctpBridgeLedgerInstruction$1({ledger:O,randomKey:S.publicKey,swapperAddress:g.toString(),mintAddress:h.toString(),mode:"WITH_FEE",feeSolana:BigInt(0),amountInMin64:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),customPayload:w,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:a,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}));const{instruction:D,signers:C}=createMctpBridgeWithFeeInstruction$1(O,"arbitrum",e.hyperCoreParams.initiateTokenContract,g.toString(),BigInt(0));i.push(D),l.push(...C),i.push(createPayloadWriterCloseInstruction(g,w,T))}else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.hyperCoreParams.initiateTokenContract,userWallet:g.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:"HC_USDC",fillMaxAccounts:(s==null?void 0:s.separateSwapTx)||!1,tpmTokenAccount:m.publicKey.toString()}),C=decentralizeClientSwapInstructions$1(D);if(s!=null&&s.separateSwapTx&&D.maxAccountsFilled)validateJupSwap$1(C,m.publicKey,g),y=await createInitializeRandomTokenAccountInstructions$1(r,g,h,g,m),f.push(...C.computeBudgetInstructions),C.setupInstructions&&f.push(...C.setupInstructions),f.push(C.swapInstruction),C.cleanupInstruction&&f.push(C.cleanupInstruction),p.push(...C.addressLookupTableAddresses);else{validateJupSwap$1(C,m.publicKey,g),i.push(...C.computeBudgetInstructions);const L=await createInitializeRandomTokenAccountInstructions$1(r,g,h,g,m);i.push(...L),l.push(m),C.setupInstructions&&i.push(...C.setupInstructions),i.push(C.swapInstruction),C.cleanupInstruction&&i.push(C.cleanupInstruction),c.push(...C.addressLookupTableAddresses)}const v=f.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);let N=BigInt(e.hyperCoreParams.bridgeAmountUSDC64);f.length>0&&(N=N-BigInt(e.solanaRelayerFee64)),i.push(createAssociatedTokenAccountInstruction$1(g,R,O,new web3.PublicKey(e.mctpInputContract))),i.push(createSplTransferInstruction$1(m.publicKey,R,g,N));const W=getAssociatedTokenAddress$1(h,g,o),U=await r.getAccountInfo(W);if((!U||!U.data)&&i.push(createAssociatedTokenAccountInstruction$1(g,W,g,h)),i.push(createTransferAllAndCloseInstruction$1(g,h,m.publicKey,W,g)),i.push(createPayloadWriterCreateInstruction(g,w,A,T)),i.push(createMctpBridgeLedgerInstruction$1({ledger:O,swapperAddress:g.toString(),mintAddress:h.toString(),randomKey:S.publicKey,mode:"WITH_FEE",feeSolana:v,amountInMin64:N,customPayload:w,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:a,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"})),i.push(createPayloadWriterCloseInstruction(g,w,T)),f.length>0){const{instruction:L,signers:V}=createMctpBridgeWithFeeInstruction$1(O,"arbitrum",e.hyperCoreParams.initiateTokenContract,g.toString(),BigInt(0));i.push(L),l.push(...V)}}const $=await getAddressLookupTableAccounts$1(c.concat(p),r);if(u=$.slice(0,c.length),f.length>0){const D=$.slice(c.length);b={messageV0:{payerKey:g,instructions:f,addressLookupTableAccounts:D},createTmpTokenAccountIxs:y,tmpTokenAccount:m}}return{instructions:i,signers:l,lookupTables:u,swapMessageV0Params:b}}async function createMonoChainFromSolanaInstructions(e,t,n,a,r,s={}){if(e.type!=="MONO_CHAIN")throw new Error("Unsupported quote type for mono chain: "+e.type);if(e.fromChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.fromChain);if(e.toChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.toChain);if(e.fromToken.contract===e.toToken.contract)throw new Error("From token and to token are the same: "+e.fromToken.contract);if(n.startsWith("0x"))throw new Error("Destination address should not be EVM address");try{new web3.PublicKey(n)}catch{throw new Error("Invalid destination address: "+n)}let o=[],i=[],l=[];const u=new web3.PublicKey(t),c=new web3.PublicKey(n),p=e.toToken.contract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.toToken.contract),f=getAssociatedTokenAddress$1(p,c,!0,e.toToken.standard==="spl2022"?new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID):new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)),y=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),m=await getSwapSolana$1({userWallet:t,destinationWallet:n,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,middleToken:e.toToken.contract,amountIn64:e.effectiveAmountIn64,expectedAmountOut64:String(y),depositMode:"MONO_CHAIN",referrerAddress:a,referrerBps:e.referrerBps}),b=decentralizeClientSwapInstructions$1(m);return validateJupSwap$1(b,f,u,c,u.equals(c)),validateJupSwapInstructionData(b.swapInstruction,e),o.push(...b.computeBudgetInstructions),b.setupInstructions&&o.push(...b.setupInstructions),o.push(b.swapInstruction),b.cleanupInstruction&&o.push(b.cleanupInstruction),l.push(...b.addressLookupTableAddresses),{instructions:o,signers:[],lookupTables:i,swapMessageV0Params:null}}var STATE_SIZE$1=420,SwapLayout$1=web3.struct([web3.u8("instruction"),web3.u8("stateNonce"),web3.blob(8,"amount"),web3.blob(8,"minAmountOut"),web3.blob(8,"deadline"),web3.blob(8,"feeSwap"),web3.blob(8,"feeReturn"),web3.blob(8,"feeCancel"),web3.blob(8,"gasDrop"),web3.u16("destinationChain"),web3.blob(32,"destinationAddress"),web3.u8("unwrapRedeem"),web3.u8("unwrapRefund"),web3.u8("mayanFeeNonce"),web3.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions$1(e,t,n,a,r,s={}){const o=getQuoteSuitableReferrerAddress$1(e,a);if(e.fromChain==="hypercore")throw new Error("HyperCore as source chain is not supported in Solana");if(e.toChain==="hypercore")return createHyperCoreDepositFromSolanaInstructions(e,t,n,o,r,s);if(e.type==="MCTP")return createMctpFromSolanaInstructions$1(e,t,n,o,r,s);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions$1(e,t,n,o,r,s);if(e.type==="MONO_CHAIN")return createMonoChainFromSolanaInstructions(e,t,n,o,r,s);let i=[];const l=r??new web3.Connection("https://rpc.ankr.com/solana"),u=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),c=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),p=new web3.PublicKey(t),f=new web3.PublicKey(addresses_default$1.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let y;o?y=new web3.PublicKey(o):y=web3.SystemProgram.programId;const[m,b]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("MAYANFEE")],u),[g,h]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("REFERRERFEE"),y.toBuffer()],u),T=web3.Keypair.generate(),w=web3.Keypair.generate(),[A,S]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("V2STATE"),web3.bufferPolyfill.Buffer.from(T.publicKey.toBytes()),web3.bufferPolyfill.Buffer.from(w.publicKey.toBytes())],u),P=new web3.PublicKey(e.fromToken.mint),O=new web3.PublicKey(e.toToken.mint),R=getAssociatedTokenAddress$1(P,p),$=getAssociatedTokenAddress$1(P,A,!0),[[D,C],v,N]=await Promise.all([l.getMultipleAccountsInfo([R,$],"finalized"),l.getMinimumBalanceForRentExemption(STATE_SIZE$1),decideRelayer$1()]);(!D||D.data.length===0)&&i.push(createAssociatedTokenAccountInstruction$1(p,R,p,P)),(!C||C.data.length===0)&&i.push(createAssociatedTokenAccountInstruction$1(p,$,A,P)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(i.push(web3.SystemProgram.transfer({fromPubkey:p,toPubkey:R,lamports:BigInt(e.effectiveAmountIn64)})),i.push(createSyncNativeInstruction$1(R)));const W=BigInt(e.effectiveAmountIn64),U=web3.Keypair.generate();i.push(createApproveInstruction$1(R,U.publicKey,p,W)),i.push(web3.SystemProgram.transfer({fromPubkey:p,toPubkey:U.publicKey,lamports:v}));const L=[{pubkey:U.publicKey,isWritable:!1,isSigner:!0},{pubkey:T.publicKey,isWritable:!1,isSigner:!0},{pubkey:w.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:R,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:P,isWritable:!1,isSigner:!1},{pubkey:O,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:U.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:c,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],V=getWormholeChainIdByName$1(e.toChain);if(V===1){const k=await l.getAccountInfo(new web3.PublicKey(n));if(k&&k.owner&&k.owner.equals(c))throw new Error("Destination address is not about token account. It should be a owner address")}const X=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(nativeAddressToHexString$1(n,V))),Y=getAmountOfFractionalAmount$1(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount$1(e.swapRelayerFee,e.mintDecimals.from),q=getAmountOfFractionalAmount$1(e.redeemRelayerFee,e.mintDecimals.to),j=getAmountOfFractionalAmount$1(e.refundRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount$1(e.gasDrop,getGasDecimalsInSolana$1(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,d=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const _=BigInt(e.deadline64),I=web3.bufferPolyfill.Buffer.alloc(SwapLayout$1.span),M={instruction:101,stateNonce:S,amount:getSafeU64Blob$1(W),minAmountOut:getSafeU64Blob$1(Y),deadline:getSafeU64Blob$1(_),feeSwap:getSafeU64Blob$1(Z),feeReturn:getSafeU64Blob$1(q),feeCancel:getSafeU64Blob$1(j),gasDrop:getSafeU64Blob$1(Q),destinationChain:V,destinationAddress:X,unwrapRedeem:J?1:0,unwrapRefund:d?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout$1.encode(M,I);const E=new web3.TransactionInstruction({keys:L,data:I,programId:u});return i.push(E),{instructions:i,signers:[U,T,w],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams$1(e,t,n,a,r){const s=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain),i=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==i)throw new Error(`Destination chain ID mismatch: ${i} != ${e.toToken.wChainId}`);const l=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const u=BigInt(e.deadline64),c=e.swiftInputContract,p=BigInt(e.effectiveAmountIn64);let f;a?f=nativeAddressToHexString$1(a,i):f=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const y=nativeAddressToHexString$1(web3.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1):nativeAddressToHexString$1(e.toToken.contract,i),b=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),h=nativeAddressToHexString$1(n,i),T={trader:nativeAddressToHexString$1(t,o),tokenOut:m,minAmountOut:b,gasDrop:g,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:u,destAddr:h,destChainId:i,referrerAddr:f,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:y};return{contractAddress:l,tokenIn:c,amountIn:p,order:T}}function getSwiftFromEvmTxPayload$1(e,t,n,a,r,s){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");r=Number(r);const o=ZeroPermit$1,i=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{tokenIn:l,amountIn:u,order:c,contractAddress:p}=getEvmSwiftParams$1(e,t,n,a,r);let f;const y=new contract.Contract(p,MayanSwiftArtifact_default$1.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?f=y.interface.encodeFunctionData("createOrderWithEth",[c]):f=y.interface.encodeFunctionData("createOrderWithToken",[l,u,c]);let m,b,g;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="forwardEth",b=[p,f],g=contract.toBeHex(u)):(m="forwardERC20",b=[l,u,o,p,f],g=contract.toBeHex(0));else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:w}=e;if(!e.minMiddleAmount||!T||!w)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,S=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[u,T,w,e.swiftInputContract,S,p,f],g=contract.toBeHex(u)):(m="swapAndForwardERC20",b=[A,u,o,T,w,e.swiftInputContract,S,p,f],g=contract.toBeHex(0))}return{data:i.interface.encodeFunctionData(m,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:g,chainId:r,_forwarder:{method:m,params:b}}}var ShuttleArtifact_default$1={abi:[{type:"function",name:"batchMaxApprove",inputs:[{name:"approvals",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initiate",inputs:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"overrideAmountIn",type:"uint256",internalType:"uint256"},{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"params",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"error",name:"ChainNotSupported",inputs:[{name:"chain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"DeadlineExpired",inputs:[{name:"blocktime",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"ExceedsMaxGasDropoff",inputs:[{name:"requested",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ExceedsMaxRelayingFee",inputs:[{name:"fee",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InsufficientInputAmount",inputs:[{name:"input",type:"uint256",internalType:"uint256"},{name:"minimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidAddress",inputs:[{name:"addr",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidOverrideAmount",inputs:[{name:"received",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapType",inputs:[{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapTypeForChain",inputs:[{name:"chain",type:"uint16",internalType:"uint16"},{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RelayingDisabledForChain",inputs:[]}]},shuttleConstants$1={FAST_MODE_FLAG:1,RELAY_REDEEM_MODE:2,EXACT_IN_FLAG:1,USDC_INPUT_TOKEN_TYPE:0,PRE_APPROVED_ACQUIRE_MODE:0,OUTPUT_USDC_MODE:0,OUTPUT_NATIVE_MODE:1,OUTPUT_OTHER_MODE:2};function writeBigIntTo16BytesBuffer$1(e){const t=(1n<<128n)-1n;if(e<0n||e>t)throw new RangeError("Value must fit in an unsigned 128-bit integer (0 <= value < 2^128)");const n=web3.bufferPolyfill.Buffer.alloc(16);for(let a=15;a>=0;a--)n[a]=Number(e&0xFFn),e>>=8n;return n}function getShuttleParams$1(e,t,n){const{shuttleParams:a}=e;if(!a)throw new Error("Swap layer params are missing in quote response");const r=getWormholeChainIdById$1(Number(n)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${s} !== ${r}`);let i=[];i.push(shuttleConstants$1.FAST_MODE_FLAG);const l=web3.bufferPolyfill.Buffer.alloc(8);l.writeBigUInt64BE(BigInt(a.maxLLFee));const u=l.subarray(2);i.push(...u);const c=web3.bufferPolyfill.Buffer.alloc(4);c.writeUInt32BE(a.fastTransferDeadline),i.push(...c),i.push(shuttleConstants$1.RELAY_REDEEM_MODE);const p=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(6,getGasDecimal$1(e.toChain))),f=web3.bufferPolyfill.Buffer.alloc(8);f.writeBigUInt64BE(p);const y=f.subarray(4);i.push(...y);const m=web3.bufferPolyfill.Buffer.alloc(8);m.writeBigUInt64BE(BigInt(a.maxRelayingFee));const b=m.subarray(2);i.push(...b),i.push(shuttleConstants$1.EXACT_IN_FLAG),i.push(shuttleConstants$1.USDC_INPUT_TOKEN_TYPE);const g=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){i.push(...Array(8).fill(0));const T=web3.bufferPolyfill.Buffer.alloc(8);T.writeBigUInt64BE(g),i.push(...T)}else i.push(...Array(16).fill(0));if(i.push(shuttleConstants$1.PRE_APPROVED_ACQUIRE_MODE),a.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)i.push(shuttleConstants$1.OUTPUT_NATIVE_MODE);else{i.push(shuttleConstants$1.OUTPUT_OTHER_MODE);const S=web3.bufferPolyfill.Buffer.from(nativeAddressToHexString$1(e.toToken.contract,o).slice(2),"hex");i.push(...S)}const T=web3.bufferPolyfill.Buffer.alloc(4);T.writeUInt32BE(Number(BigInt(e.deadline64))),i.push(...T);const w=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){i.push(...Array(8).fill(0));const S=web3.bufferPolyfill.Buffer.alloc(8);S.writeBigUInt64BE(w),i.push(...S)}else{const S=writeBigIntTo16BytesBuffer$1(w);i.push(...S)}const A=web3.bufferPolyfill.Buffer.from(a.path.slice(2),"hex");i.push(...A)}else i.push(shuttleConstants$1.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString$1(t,o),destChainId:o,serializedParams:`0x${web3.bufferPolyfill.Buffer.from(i).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:g,bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain))}}function getShuttleFromEvmTxPayload$1(e,t,n,a){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const r=ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{destAddr:o,destChainId:i,serializedParams:l,contractAddress:u,amountIn:c,bridgeFee:p}=getShuttleParams$1(e,t,n);let f;f=new contract.Contract(u,ShuttleArtifact_default$1.abi).interface.encodeFunctionData("initiate",[o,c,i,l]);let m,b,g;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",b=[e.shuttleInputContract,c,r,u,f],g=contract.toBeHex(p);else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:w}=e;if(!e.minMiddleAmount||!T||!w)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,S=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[c,T,w,e.shuttleInputContract,S,u,f],g=contract.toBeHex(c)):(m="swapAndForwardERC20",b=[A,c,r,T,w,e.shuttleInputContract,S,u,f],g=contract.toBeHex(p))}return{data:s.interface.encodeFunctionData(m,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:g,chainId:n,_forwarder:{method:m,params:b}}}var MayanFastMctpArtifact_default$1={abi:[{type:"constructor",inputs:[{name:"_cctpTokenMessengerV2",type:"address",internalType:"address"},{name:"_feeManager",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"bridge",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"customPayload",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cctpTokenMessengerV2",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITokenMessengerV2"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createOrder",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"orderPayload",type:"tuple",internalType:"struct FastMCTP.OrderPayload",components:[{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"tokenOut",type:"bytes32",internalType:"bytes32"},{name:"amountOutMin",type:"uint64",internalType:"uint64"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"refundFee",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"referrerAddr",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"domainToCaller",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"feeManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"fulfillOrder",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"},{name:"swapProtocol",type:"address",internalType:"address"},{name:"swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"keyToMintRecipient",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"refund",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"rescueEth",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueRedeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDomainCallers",inputs:[{name:"domain",type:"uint32",internalType:"uint32"},{name:"caller",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeManager",inputs:[{name:"_feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMintRecipient",inputs:[{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"tokenIn",type:"address",internalType:"address"},{name:"mintRecipient",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPause",inputs:[{name:"_pause",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedMsgSenders",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedSwapProtocols",inputs:[{name:"protocol",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"whitelistedMsgSenders",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"whitelistedSwapProtocols",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OrderFulfilled",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OrderRefunded",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"CallerNotSet",inputs:[]},{type:"error",name:"CctpReceiveFailed",inputs:[]},{type:"error",name:"DeadlineViolation",inputs:[]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"InvalidAddress",inputs:[]},{type:"error",name:"InvalidAmountOut",inputs:[]},{type:"error",name:"InvalidGasDrop",inputs:[]},{type:"error",name:"InvalidMintRecipient",inputs:[]},{type:"error",name:"InvalidPayload",inputs:[]},{type:"error",name:"InvalidPayloadType",inputs:[]},{type:"error",name:"InvalidRedeemFee",inputs:[]},{type:"error",name:"InvalidRefundFee",inputs:[]},{type:"error",name:"MintRecipientNotSet",inputs:[]},{type:"error",name:"Paused",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnauthorizedMsgSender",inputs:[]},{type:"error",name:"UnauthorizedSwapProtocol",inputs:[]}]};function getEvmFastMctpBridgeParams$1(e,t,n,a,r){const s=getWormholeChainIdById$1(Number(a)),o=getWormholeChainIdByName$1(e.fromChain),i=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${s}`);const l=nativeAddressToHexString$1(t,i),u=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),c=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),p=BigInt(e.circleMaxFee64),f=BigInt(e.effectiveAmountIn64),y=getCCTPDomain$1(e.toChain);let m;if(n?m=nativeAddressToHexString$1(n,i):m=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:f,redeemFee:u,gasDrop:c,destAddr:l,destDomain:y,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:p,contractAddress:b}}function getEvmFastMctpBridgeTxPayload$1(e,t,n,a,r){const s=getEvmFastMctpBridgeParams$1(e,t,n,a),{contractAddress:o,tokenIn:i,amountIn:l,destAddr:u,redeemFee:c,gasDrop:p,circleMaxFee:f,referrerAddr:y,referrerBps:m,destDomain:b,customPayload:g,minFinalityThreshold:h,payloadType:T}=s,w=new contract.Contract(o,MayanFastMctpArtifact_default$1.abi);let A,S;return A=w.interface.encodeFunctionData("bridge",[i,l,c,f,p,u,b,y,m,T,h,g]),S=contract.toBeHex(0),{to:o,data:A,value:S,_params:s}}function getEvmFastMctpCreateOrderParams$1(e,t,n,a){const r=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${r}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.fastMctpMayanContract,l=nativeAddressToHexString$1(t,o);let u;n?u=nativeAddressToHexString$1(n,o):u=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const c=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),p=BigInt(e.refundRelayerFee64),f=BigInt(e.circleMaxFee64),y=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),m=getCCTPDomain$1(e.toChain),b=BigInt(e.effectiveAmountIn64),g=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),T=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:f,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER$1,destAddr:l,tokenOut:T,amountOutMin:g,gasDrop:y,redeemFee:c,refundFee:p,deadline:h,referrerAddr:u,referrerBps:e.referrerBps||0},contractAddress:i}}function getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a){const r=getEvmFastMctpCreateOrderParams$1(e,t,n,a),{contractAddress:s,orderPayload:o,tokenIn:i,amountIn:l,circleMaxFee:u,destDomain:c,minFinalityThreshold:p}=r,y=new contract.Contract(s,MayanFastMctpArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[i,l,u,c,p,o]),m=contract.toBeHex(0);return{to:s,data:y,value:m,_params:r}}function getFastMctpFromEvmTxPayload$1(e,t,n,a,r,s){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit$1,i=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const l=getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a),u="forwardERC20",c=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:i.interface.encodeFunctionData(u,c),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:c}}}else{const l=getEvmFastMctpBridgeTxPayload$1(e,t,n,a),u="forwardERC20",c=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:i.interface.encodeFunctionData(u,c),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:c}}}else{const{minMiddleAmount:l,evmSwapRouterAddress:u,evmSwapRouterCalldata:c}=e;if(!l||!u||!c)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload$1(e,t,n,a),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}else{const p=getEvmFastMctpBridgeTxPayload$1(e,t,n,a),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}}}var HCDepositInitiatorArtifact_default={abi:[{type:"constructor",inputs:[{name:"_hcProcessor",type:"address",internalType:"address"},{name:"_usdc",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastDeposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastMCTP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"mayanCircle",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setFastMCTP",inputs:[{name:"_fastMCTP",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMayanCircle",inputs:[{name:"_mayanCircle",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"InsufficientAmount",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function getUsdcDepositInitiatorMctpTxPayload(e,t,n,a){if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const r=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),s=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(a));if(s.length!==65)throw new Error("Invalid USDC permit signature length");const o="0x"+s.subarray(0,32).toString("hex"),i="0x"+s.subarray(32,64).toString("hex"),l=s[64];let u,c;return u=r.interface.encodeFunctionData("deposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:o,s:i,v:l}}}]),c=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:u,value:c,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getUsdcDepositInitiatorFastMctpTxPayload(e,t,n,a,r){const s=getWormholeChainIdByName$1("arbitrum");if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const o=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),i=web3.bufferPolyfill.Buffer.from(hexToUint8Array$1(r));if(i.length!==65)throw new Error("Invalid USDC permit signature length");const l="0x"+i.subarray(0,32).toString("hex"),u="0x"+i.subarray(32,64).toString("hex"),c=i[64];let p;a?p=nativeAddressToHexString$1(a,s):p=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));let f,y;return f=o.interface.encodeFunctionData("fastDeposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,BigInt(e.circleMaxFee64),getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),p,e.referrerBps,Number(e.fastMctpMinFinality),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:l,s:u,v:c}}}]),y=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:f,value:y,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getHyperCoreDepositFromEvmTxPayload(e,t,n,a,r,s,o,i={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP"&&e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!(i!=null&&i.usdcPermitSignature))throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");const l=getWormholeChainIdById$1(Number(r)),u=getWormholeChainIdByName$1(e.fromChain);if(u!==l)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${u} !== ${l}`);const c=s||ZeroPermit$1,p=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);let f;if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");if(e.type==="MCTP")f=getUsdcDepositInitiatorMctpTxPayload(e,t,n,i.usdcPermitSignature);else if(e.type==="FAST_MCTP")f=getUsdcDepositInitiatorFastMctpTxPayload(e,t,n,a,i.usdcPermitSignature);else throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);if(e.fromToken.contract.toLowerCase()===e.hyperCoreParams.initiateTokenContract.toLowerCase()){const y="forwardERC20",m=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),c,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:y,params:m}}}else{const{evmSwapRouterAddress:y,evmSwapRouterCalldata:m}=e;if(!e.minMiddleAmount||!y||!m)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");const b=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const g="swapAndForwardEth",h=[BigInt(e.effectiveAmountIn64),y,m,e.hyperCoreParams.initiateTokenContract,b,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(BigInt(e.effectiveAmountIn64)),chainId:r,_forwarder:{method:g,params:h}}}else{const g="swapAndForwardERC20",h=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),c,y,m,e.hyperCoreParams.initiateTokenContract,b,f._params.contractAddress,f.data];return{data:p.interface.encodeFunctionData(g,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:g,params:h}}}}}var MayanMonoChainArtifact_default={abi:[{type:"constructor",inputs:[{name:"_forwarderAddress",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"ForwarderAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"MAX_REFERRER_BPS",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"rescueETH",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferEth",inputs:[{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"payable"},{type:"function",name:"transferToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"EthTransferred",inputs:[{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TokenTransferred",inputs:[{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"InvalidReferrerBps",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function getEvmMonoChainTxPayload(e,t,n){const a=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),r=new contract.Contract(e.monoChainMayanContract,MayanMonoChainArtifact_default.abi),s=n&&e.referrerBps||0;let o,i;return e.toToken.contract===providerJsonrpc.ZeroAddress?o=r.interface.encodeFunctionData("transferEth",[t,n||providerJsonrpc.ZeroAddress,s]):o=r.interface.encodeFunctionData("transferToken",[e.toToken.contract,a,t,n||providerJsonrpc.ZeroAddress,s]),e.fromToken.contract===providerJsonrpc.ZeroAddress?i=contract.toBeHex(e.effectiveAmountIn64):i=contract.toBeHex(0),{to:e.monoChainMayanContract,data:o,value:i,_params:{amountIn:BigInt(e.effectiveAmountIn64),tokenIn:e.fromToken.contract}}}function getMonoChainFromEvmTxPayload(e,t,n,a,r){if(e.type!=="MONO_CHAIN")throw new Error("Quote type is not MONO_CHAIN");if(e.fromChain!==e.toChain)throw new Error("Quote chains are not equal");if(e.fromToken.contract.toLowerCase()===e.toToken.contract.toLowerCase())throw new Error(`From token and to token are the same: ${e.fromToken.contract}`);if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");const s=getWormholeChainIdById$1(Number(a)),o=getWormholeChainIdByName$1(e.fromChain);if(o!==s)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${s}`);a=Number(a);const i=r||ZeroPermit$1,l=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{evmSwapRouterAddress:u,evmSwapRouterCalldata:c}=e;if(!u||!c)throw new Error("Mono chain swap requires router address and calldata");const p=getEvmMonoChainTxPayload(e,t,n),f=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,c,e.toToken.contract,f,e.monoChainMayanContract,p.data];return{data:l.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,i,u,c,e.toToken.contract,f,e.monoChainMayanContract,p.data];return{data:l.interface.encodeFunctionData(y,m),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}function getEvmSwapParams$1(e,t,n,a,r,s){const o=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),[i]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("MAIN")],o),l=getAssociatedTokenAddress$1(new web3.PublicKey(e.fromToken.mint),i,!0),u=BigInt(e.effectiveAmountIn64),c=nativeAddressToHexString$1(l.toString(),1),p=nativeAddressToHexString$1(addresses_default$1.AUCTION_PROGRAM_ID,1);let f;n?f=nativeAddressToHexString$1(n,1):f=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const y=getWormholeChainIdById$1(Number(r)),m=getWormholeChainIdByName$1(e.fromChain),b=getWormholeChainIdByName$1(e.toChain);if(m!==y)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${m} !== ${y}`);const g=e.whMayanContract,h={mayanAddr:c,mayanChainId:1,destAddr:nativeAddressToHexString$1(t,b),destChainId:b,auctionAddr:p,referrer:f,refundAddr:nativeAddressToHexString$1(a,y)},T=e.toToken.contract===providerJsonrpc.ZeroAddress,w={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),unwrap:T,customPayload:"0x"},A={swapFee:getAmountOfFractionalAmount$1(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount$1(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},S=nativeAddressToHexString$1(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),P=getAmountOfFractionalAmount$1(e.bridgeFee,18);return{amountIn:u,tokenIn:e.fromToken.contract,tokenOut:S,tokenOutWChainId:e.toToken.realOriginChainId,criteria:w,recipient:h,relayerFees:A,contractAddress:g,bridgeFee:P}}function getSwapFromEvmTxPayload$1(e,t,n,a,r,s,o,i,l){const u=getWormholeChainIdById$1(Number(s)),c=getWormholeChainIdByName$1(e.fromChain);if(c!==u)throw new Error(`Signer chain id(${Number(s)}) and quote from chain are not same! ${c} !== ${u}`);const p=getQuoteSuitableReferrerAddress$1(e,a);if(e.toChain==="hypercore")return getHyperCoreDepositFromEvmTxPayload(e,t,n,p,s,i,o,l);if(e.type==="MCTP")return getMctpFromEvmTxPayload$1(e,n,p,s,i);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload$1(e,t,n,p,s);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload$1(e,n,s);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload$1(e,n,p,s,i);if(e.type==="MONO_CHAIN")return getMonoChainFromEvmTxPayload(e,n,p,s,i);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:f,recipient:y,tokenOut:m,tokenOutWChainId:b,criteria:g,tokenIn:h,amountIn:T,contractAddress:w,bridgeFee:A}=getEvmSwapParams$1(e,n,p,r,s),S=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),P=new contract.Contract(w,MayanSwapArtifact_default$1.abi);let O,R,$;const D=ZeroPermit$1;if(h===providerJsonrpc.ZeroAddress){const v=P.interface.encodeFunctionData("wrapAndSwapETH",[f,y,m,b,g]);O="forwardEth",R=[w,v],$=contract.toBeHex(T)}else{const v=P.interface.encodeFunctionData("swap",[f,y,m,b,g,h,T]);O="forwardERC20",R=[h,T,D,w,v],$=contract.toBeHex(A)}const C=S.interface.encodeFunctionData(O,R);return{to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,data:C,value:$,chainId:s,_forwarder:{method:O,params:R}}}async function assertArgumentIsImmutable$1(e,t){var a;let n;try{n=await t.getMoveFunctionArgTypes({package:e.package,module:e.module,function:e.function})}catch{throw new Error(`Failed to fetch ${e.package}::${e.module}::${e.function} ArgTypes`)}if(n){if(n[e.argumentIndex]!=="Pure"&&((a=n[e.argumentIndex])==null?void 0:a.Object)!=="ByImmutableReference")throw new Error(`Argument ${e.argumentIndex} of ${e.module}::${e.function} is not immutable`)}else throw new Error(`Failed to fetch package::${e.module}::${e.function} ArgTypes`)}async function fetchAllCoins$1(e,t){let n=[],a=BigInt(0),r;do{const s=await t.getCoins({...e,owner:e.walletAddress,cursor:r}),o=s.data.filter(i=>BigInt(i.balance)>BigInt(0));if(n=[...n,...o],o.forEach(i=>{a+=BigInt(i.balance)}),s.data.length===0||!s.hasNextPage||!s.nextCursor||a>=e.coinAmount)return{coins:n.sort((i,l)=>Number(BigInt(i.coinObjectId)-BigInt(l.coinObjectId))),sum:a};r=s.nextCursor}while(!0)}async function fetchMayanSuiPackageId$1(e,t){var a,r,s;let n;try{n=await t.getObject({id:e,options:{showContent:!0}})}catch(o){throw new Error(`Failed to fetch Mayan Sui package ID:
2
2
 
3
- ${o}`)}if((i=(r=(a=n.data)==null?void 0:a.content)==null?void 0:r.fields)!=null&&i.latest_package_id)return n.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function resolveInputCoin$1(e,t,n,a,r,i){let o;if(i!=null&&i.result)o=i.result;else if(i!=null&&i.objectId)o=r.object(i.objectId);else{const{coins:s,sum:d}=await fetchAllCoins$1({walletAddress:t,coinType:n,coinAmount:e},a);if(d<e)throw new Error(`Insufficient funds to create Coin ${n} with amount ${e}`);s.length>1&&r.mergeCoins(s[0].coinObjectId,s.slice(1).map(l=>l.coinObjectId));const[u]=r.splitCoins(s[0].coinObjectId,[e]);o=u}return o}async function createMctpFromSuiMoveCalls$1(e,t,n,a,r,i,o){const[s,d]=await Promise.all([fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_STATE,i),e.hasAuction?fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE,i):null]),u=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);let l,p,f;if(e.fromToken.contract===e.mctpInputContract)l=new Transaction,p=await resolveInputCoin$1(u,t,e.mctpInputContract,i,l,o==null?void 0:o.inputCoin);else{const{tx:b,outCoin:g,whFeeCoin:h}=await getSwapSui$1({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:a,inputCoin:o==null?void 0:o.inputCoin,transaction:void 0});l=Transaction.from(b),p=g,f=h?{result:h}:null}e.hasAuction?await addInitOrderMoveCalls$1(e,t,n,a,s,d,i,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:l}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls$1(e,t,n,s,i,{inputCoin:{result:p},builtTransaction:l}):await addBridgeWithFeeMoveCalls$1(e,t,n,s,r,i,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:l});const y=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);l.moveCall({package:s,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[l.pure.u64(y),l.object(e.fromToken.verifiedAddress),l.pure.vector("u8",m)]});try{let b;a?b=nativeAddressToHexString$1(a,getWormholeChainIdByName$1(e.toChain)):b=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),l.moveCall({package:addresses_default$1.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[l.pure.address(b),l.pure.u8(e.referrerBps||0)]})}catch(b){console.error("Failed to log referrer",b)}return l}async function addBridgeWithFeeMoveCalls$1(e,t,n,a,r,i,o){return addBridgeWithFeeMoveCalls2({swapperAddress:t,destinationAddress:n,toChain:e.toChain,minMiddleAmount:e.minMiddleAmount,mctpPackageId:a,mctpInputContract:e.mctpInputContract,gasDrop:e.gasDrop,redeemRelayerFee:e.redeemRelayerFee,mctpVerifiedInputAddress:e.mctpVerifiedInputAddress,mctpInputTreasury:e.mctpInputTreasury,bridgeFee:e.bridgeFee,suiClient:i,options:o})}async function addBridgeLockedFeeMoveCalls$1(e,t,n,a,r,i){const o=getWormholeChainIdByName$1(e.toChain),s=(i==null?void 0:i.builtTransaction)??new Transaction,d=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),u=await resolveInputCoin$1(d,t,e.mctpInputContract,r,s,i==null?void 0:i.inputCoin),l=nativeAddressToHexString$1(n,o),p=getCCTPDomain$1(e.toChain),f=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),y=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),[m]=s.moveCall({package:a,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[u,s.pure.u64(d),s.pure.address(l),s.pure.u32(p),s.pure.u64(f),s.pure.u64(y)]}),[b,g]=s.moveCall({package:a,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default$1.SUI_MCTP_STATE),s.object(addresses_default$1.SUI_CCTP_CORE_STATE),s.object(e.mctpVerifiedInputAddress),m]}),[h,T]=s.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_locked_fee::CircleAuth`],arguments:[g,s.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),s.object(addresses_default$1.SUI_CCTP_CORE_STATE),s.object("0x403"),s.object(e.mctpInputTreasury)]});return s.moveCall({package:a,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default$1.SUI_MCTP_STATE),s.object(e.mctpVerifiedInputAddress),b,T]}),s}async function addInitOrderMoveCalls$1(e,t,n,a,r,i,o,s){const d=getWormholeChainIdByName$1(e.toChain),u=(s==null?void 0:s.builtTransaction)??new Transaction,l=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),[p]=await Promise.all([resolveInputCoin$1(l,t,e.mctpInputContract,o,u,s==null?void 0:s.inputCoin),assertArgumentIsImmutable$1({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},o)]),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,e.toToken.wChainId),y=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString$1(n,d),b=getCCTPDomain$1(e.toChain),g=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),h=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),T=BigInt(e.deadline64);let A;a?A=nativeAddressToHexString$1(a,d):A=nativeAddressToHexString$1(address.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const S=[u.object(e.mctpVerifiedInputAddress),u.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID$1),u.pure.address(t),p,u.pure.address(m),u.pure.u16(d),u.pure.address(f),u.pure.u64(y),u.pure.u64(g),u.pure.u64(h),u.pure.u64(T),u.pure.address(A),u.pure.u8(e.referrerBps)],[w]=u.moveCall({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:S}),[P]=u.moveCall({package:i,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[u.object(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE),w]}),[O]=u.moveCall({package:r,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...S.slice(1),u.pure.u32(b),u.pure.u64(l)]}),[R,$]=u.moveCall({package:r,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[u.object(addresses_default$1.SUI_MCTP_STATE),u.object(addresses_default$1.SUI_CCTP_CORE_STATE),u.object(e.mctpVerifiedInputAddress),O,P]}),[D,C]=u.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::init_order::CircleAuth`],arguments:[$,u.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),u.object(addresses_default$1.SUI_CCTP_CORE_STATE),u.object("0x403"),u.object(e.mctpInputTreasury)]}),[v]=u.moveCall({package:r,module:"init_order",function:"publish_init_order",arguments:[u.object(addresses_default$1.SUI_MCTP_STATE),R,C]});return await addPublishWormholeMessage$1(u,v,o,BigInt(e.bridgeFee),t,s==null?void 0:s.whFeeCoin),u}async function addPublishWormholeMessage$1(e,t,n,a,r,i){let o;if(i!=null&&i.result)o=i.result;else if(i!=null&&i.objectId)o=e.object(i.objectId);else if(a>BigInt(0)){const{coins:s,sum:d}=await fetchAllCoins$1({walletAddress:r,coinType:SUI_TYPE_ARG,coinAmount:a},n);if(d<a)throw new Error("Insufficient funds to pay Wormhole message fee");s.length>1&&e.mergeCoins(s[0].coinObjectId,s.slice(1).map(l=>l.coinObjectId));const[u]=e.splitCoins(s[0].coinObjectId,[a]);o=u}else{const[s]=e.splitCoins(e.gas,[e.pure.u64(0)]);o=s}return e.moveCall({package:addresses_default$1.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default$1.SUI_WORMHOLE_STATE),o,t,e.object(SUI_CLOCK_OBJECT_ID)]}),e}async function addBridgeWithFeeMoveCalls2(e){const{swapperAddress:t,destinationAddress:n,mctpPackageId:a,suiClient:r,options:i}=e,o=getWormholeChainIdByName$1(e.toChain),s=(i==null?void 0:i.builtTransaction)??new Transaction,d=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),u=await resolveInputCoin$1(d,t,e.mctpInputContract,r,s,i==null?void 0:i.inputCoin),l=MCTP_PAYLOAD_TYPE_DEFAULT$1,p=nativeAddressToHexString$1(n,o),f=getCCTPDomain$1(e.toChain),y=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),m=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),b=Uint8Array.from([]),[g]=s.moveCall({package:a,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[s.pure.u8(l),u,s.pure.u64(d),s.pure.address(p),s.pure.u32(f),s.pure.u64(y),s.pure.u64(m),s.pure.vector("u8",b)]}),[h,T]=s.moveCall({package:a,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default$1.SUI_MCTP_STATE),s.object(addresses_default$1.SUI_CCTP_CORE_STATE),s.object(e.mctpVerifiedInputAddress),g]}),[A,S]=s.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_with_fee::CircleAuth`],arguments:[T,s.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),s.object(addresses_default$1.SUI_CCTP_CORE_STATE),s.object("0x403"),s.object(e.mctpInputTreasury)]}),[w]=s.moveCall({package:a,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[s.object(addresses_default$1.SUI_MCTP_STATE),h,S]});return await addPublishWormholeMessage$1(s,w,r,BigInt(e.bridgeFee),t,i==null?void 0:i.whFeeCoin),s}async function createSwapFromSuiMoveCalls$1(e,t,n,a,r,i,o){const s=getQuoteSuitableReferrerAddress$1(e,a);if(e.toChain==="hypercore")throw e.hyperCoreParams?new Error("USDC permit signature is required for this quote"):new Error("HyperCore parameters are required for this quote");if(e.type==="MCTP")return createMctpFromSuiMoveCalls$1(e,t,n,s,r,i,o);throw new Error("Unsupported quote type from Sui chain")}function base(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let u=0;u<t.length;u++)t[u]=255;for(let u=0;u<e.length;u++){const l=e.charAt(u),p=l.charCodeAt(0);if(t[p]!==255)throw new TypeError(l+" is ambiguous");t[p]=u}const n=e.length,a=e.charAt(0),r=Math.log(n)/Math.log(256),i=Math.log(256)/Math.log(n);function o(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";let l=0,p=0,f=0;const y=u.length;for(;f!==y&&u[f]===0;)f++,l++;const m=(y-f)*i+1>>>0,b=new Uint8Array(m);for(;f!==y;){let T=u[f],A=0;for(let S=m-1;(T!==0||A<p)&&S!==-1;S--,A++)T+=256*b[S]>>>0,b[S]=T%n>>>0,T=T/n>>>0;if(T!==0)throw new Error("Non-zero carry");p=A,f++}let g=m-p;for(;g!==m&&b[g]===0;)g++;let h=a.repeat(l);for(;g<m;++g)h+=e.charAt(b[g]);return h}function s(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;let l=0,p=0,f=0;for(;u[l]===a;)p++,l++;const y=(u.length-l)*r+1>>>0,m=new Uint8Array(y);for(;l<u.length;){const T=u.charCodeAt(l);if(T>255)return;let A=t[T];if(A===255)return;let S=0;for(let w=y-1;(A!==0||S<f)&&w!==-1;w--,S++)A+=n*m[w]>>>0,m[w]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");f=S,l++}let b=y-f;for(;b!==y&&m[b]===0;)b++;const g=new Uint8Array(p+(y-b));let h=p;for(;b!==y;)g[h++]=m[b++];return g}function d(u){const l=s(u);if(l)return l;throw new Error("Non-base"+n+" character")}return{encode:o,decodeUnsafe:s,decode:d}}var ALPHABET="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base(ALPHABET);var addresses_default={MAYAN_FORWARDER_CONTRACT:"0x076baB2Bf1aa0a06F47BD32245527f6D84d62Fd1",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"92peaC8g5ANAxpK2aCfLTC12JgPncRKCGULQNB2DMvRH",FEE_MANAGER_PROGRAM_ID:"EyQnmCoLDaFDuNdGYJuYNjFPorohwPuvUzhewg9nGej1",WORMHOLE_PROGRAM_ID:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE:"8fVCtaFqfEAtGtqcoVyawy1Mytj461T4Ti4YjHZqfF47",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",SUI_CCTP_CORE_PACKAGE_ID:"0x08d87d37ba49e785dde270a83f8e979605b03dc552b5548f26fdf2f49bf7ed1b",SUI_CCTP_CORE_STATE:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",SUI_CCTP_TOKEN_PACKAGE_ID:"0x2aa6c5d56376c371f88a6cc42e852824994993cb9bab8d3e6450cbe3cb32b94e",SUI_CCTP_TOKEN_STATE:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",SUI_WORMHOLE_PACKAGE_ID:"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",SUI_WORMHOLE_STATE:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",SUI_LOGGER_PACKAGE_ID:"0x05680e9030c147b413a489f7891273acc221d49bd061c433e5771bc170fc37ac",EXPLORER_URL:"https://testnet-explorer-api.mayan.finance/v3",PRICE_URL:"https://testnet-price-api.mayan.finance/v3",RELAYER_URL:"https://testnet-relayer-api.mayan.finance/v3"};function nativeAddressToHexString(e,t){if(t===1)return address.zeroPadValue(new address.PublicKey(e).toBytes(),32);if(t===chains.ethereum||t===chains.base||t===chains.monad)return address.zeroPadValue(e,32);throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array(e){return new Uint8Array(address.bufferPolyfillExports.Buffer.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress(e,t,n=!1,a=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),r=new address.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!address.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[i]=address.PublicKey.findProgramAddressSync([t.toBuffer(),a.toBuffer(),e.toBuffer()],r);return i}function getAmountOfFractionalAmount(e,t){if(e==null)throw new Error("getAmountOfFractionalAmount: Amount is null or undefined");if(typeof e!="string"&&typeof e!="number")throw new Error("getAmountOfFractionalAmount: Amount is not a string or number");if(typeof e=="string"&&e.length===0)throw new Error("getAmountOfFractionalAmount: Amount is empty");if(!Number.isFinite(Number(e)))throw new Error("getAmountOfFractionalAmount: Amount is not a number");const n=Math.min(8,Number(t)),a=Number(e).toFixed(n+1),r=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),i=a.match(r);if(!i)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=i[0];return units.parseUnits(o,Number(t))}var chains={solana:1,ethereum:10002,base:10004,monad:48,sui:21};function getWormholeChainIdByName(e){return chains[e]}var evmChainIdMap={11155111:10002,84532:10004,10143:48};function getWormholeChainIdById(e){return evmChainIdMap[e]}var sdkVersion=[10,5,0];function getSdkVersion(){return sdkVersion.join("_")}function getGasDecimal(e){return e==="solana"?9:18}function getGasDecimalsInSolana(e){return e==="solana"?9:8}var MAX_U64=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob(e){if(e<BigInt(0)||e>MAX_U64)throw new Error(`Invalid u64: ${e}`);const t=address.bufferPolyfillExports.Buffer.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit={value:BigInt(0),deadline:0,v:0,r:`0x${address.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${address.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress(e,t){return!e||!t?null:e.type==="WH"?(t==null?void 0:t.solana)||null:e.type==="MCTP"||e.type==="SWIFT"?e.toChain==="solana"?(t==null?void 0:t.solana)||null:e.toChain==="sui"?(t==null?void 0:t.sui)||null:(t==null?void 0:t.evm)||null:null}var MCTP_PAYLOAD_TYPE_DEFAULT=1,MCTP_INIT_ORDER_PAYLOAD_ID=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT=1,FAST_MCTP_PAYLOAD_TYPE_ORDER=3;function toQueryString(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function check5xxError(e){if(e.status.toString().startsWith("5")){let t;try{const n=await e.json();(n!=null&&n.code||n!=null&&n.statusCode)&&(n!=null&&n.message||n!=null&&n.msg)&&(t={code:(n==null?void 0:n.code)||(n==null?void 0:n.statusCode),message:(n==null?void 0:n.message)||(n==null?void 0:n.msg)})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0}){const{gasDrop:n,referrerBps:a}=e;let r=e.slippageBps;r!=="auto"&&!Number.isFinite(r)&&(r=e.slippage*100);const o={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0},solanaProgram:addresses_default.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:r,referrer:e.referrer,referrerBps:Number.isFinite(a)?a:void 0,gasDrop:Number.isFinite(n)?n:void 0,sdkVersion:getSdkVersion()},s=`${addresses_default.PRICE_URL}/quote?`,d=toQueryString(o);return s+d}async function getSuggestedRelayer(){const e=await browserPonyfill.o(`${addresses_default.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana(e){const t=toQueryString({...e,sdkVersion:getSdkVersion()}),n=await browserPonyfill.o(`${addresses_default.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError(n);const a=await n.json();if(n.status!==200&&n.status!==201)throw a;return a}async function getSwapSui(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion()}),n=`${addresses_default.PRICE_URL}/get-swap/sui`,a=await browserPonyfill.o(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}var MayanSwapArtifact_default={abi:[{inputs:[{internalType:"address",name:"_tokenBridge",type:"address"},{internalType:"address",name:"_weth",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"Redeemed",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"tokenAddr",type:"bytes32"},{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"sourceAddr",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bool",name:"unwrapRedeem",type:"bool"},{internalType:"bool",name:"unwrapRefund",type:"bool"}],internalType:"struct MayanStructs.Swap",name:"s",type:"tuple"}],name:"encodeSwap",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"getWeth",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRedeemPayload",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint64",name:"relayerFee",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanStructs.Redeem",name:"r",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeemAndUnwrap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"swap",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"sweepEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"}],name:"wrapAndSwapETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}]},MayanForwarderArtifact_default={abi:[{inputs:[{internalType:"address",name:"_guardian",type:"address"},{internalType:"address[]",name:"_swapProtocols",type:"address[]"},{internalType:"address[]",name:"_mayanProtocols",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"UnsupportedProtocol",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedEth",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SwapAndForwarded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenIn",type:"address"},{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedEth",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mayanProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setMayanProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setSwapProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}]},MayanCircleArtifact_default={abi:[{inputs:[{internalType:"address",name:"_cctpTokenMessenger",type:"address"},{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerAlreadySet",type:"error"},{inputs:[],name:"CallerNotSet",type:"error"},{inputs:[],name:"CctpReceiveFailed",type:"error"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DomainAlreadySet",type:"error"},{inputs:[],name:"DomainNotSet",type:"error"},{inputs:[],name:"EmitterAlreadySet",type:"error"},{inputs:[],name:"EthTransferFailed",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidAmountOut",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"InvalidDestAddr",type:"error"},{inputs:[],name:"InvalidDomain",type:"error"},{inputs:[],name:"InvalidEmitter",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidMintRecipient",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidOrder",type:"error"},{inputs:[],name:"InvalidPayload",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"InvalidRedeemFee",type:"error"},{inputs:[],name:"InvalidReferrerFee",type:"error"},{inputs:[],name:"MintRecipientAlreadySet",type:"error"},{inputs:[],name:"MintRecipientNotSet",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderRefunded",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes",name:"customPayload",type:"bytes"}],name:"bridgeWithFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint256",name:"redeemFee",type:"uint256"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],name:"bridgeWithLockedFee",outputs:[{internalType:"uint64",name:"cctpNonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cctpTokenMessenger",outputs:[{internalType:"contract ITokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"chainIdToEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"params",type:"tuple"}],name:"createOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"domainToCaller",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"feeStorage",outputs:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"redeemFee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"driver",type:"bytes32"}],internalType:"struct MayanCircle.FulfillParams",name:"params",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"}],name:"fulfillOrder",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getDomain",outputs:[{internalType:"uint32",name:"domain",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"keyToMintRecipient",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"burnAmount",type:"uint64"},{internalType:"bytes32",name:"burnToken",type:"bytes32"},{internalType:"bytes32",name:"customPayload",type:"bytes32"}],internalType:"struct MayanCircle.BridgeWithFeeParams",name:"bridgeParams",type:"tuple"}],name:"redeemWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"redeemWithLockedFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"cctpNonce",type:"uint32"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"refineFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"orderParams",type:"tuple"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"}],internalType:"struct MayanCircle.ExtraParams",name:"extraParams",type:"tuple"}],name:"refund",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"setDomain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"caller",type:"bytes32"}],name:"setDomainCaller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"emitter",type:"bytes32"}],name:"setEmitter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"}],name:"setMintRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"}],name:"unlockFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm1",type:"bytes"},{internalType:"bytes",name:"encodedVm2",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],internalType:"struct MayanCircle.UnlockRefinedFeeMsg",name:"refinedMsg",type:"tuple"}],name:"unlockFeeRefined",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]},CCTP_TOKEN_DECIMALS=6;function getCCTPDomain(e){switch(e){case"ethereum":return 0;case"avalanche":return 1;case"optimism":return 2;case"arbitrum":return 3;case"solana":return 5;case"base":return 6;case"polygon":return 7;case"sui":return 8;case"unichain":return 10;case"linea":return 11;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs(e,t){const n=new address.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),a=new address.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),[r]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("message_transmitter")],n),[i]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("sender_authority")],a),[o]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("local_token"),e.toBytes()],a),[s]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("token_messenger")],a),[d]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("token_minter")],a),u=getCCTPDomain(t),[l]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("remote_token_messenger"),address.bufferPolyfillExports.Buffer.from(u.toString())],a),[p]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("__event_authority")],n),[f]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("__event_authority")],a);return{messageTransmitter:r,senderAuthority:i,remoteTokenMessengerKey:l,tokenMessenger:s,tokenMinter:d,eventAuthToken:f,eventAuthCore:p,localToken:o}}function getEvmMctpBridgeParams(e,t,n,a){const r=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${r}`);const s=e.cheaperChain===e.fromChain,d=nativeAddressToHexString(t,o),u=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),l=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),p=BigInt(e.effectiveAmountIn64),f=getCCTPDomain(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const y=e.mctpMayanContract;if(e.toChain==="solana"&&s)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));return s&&(m=BigInt(0)),{lockFee:s,tokenIn:e.mctpInputContract,amountIn:p,redeemFee:u,gasDrop:l,destAddr:d,destDomain:f,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",bridgeFee:m,contractAddress:y}}function getEvmMctpBridgeTxPayload(e,t,n,a){const r=getEvmMctpBridgeParams(e,t,n),{contractAddress:i,tokenIn:o,amountIn:s,destAddr:d,lockFee:u,redeemFee:l,gasDrop:p,destDomain:f,customPayload:y,payloadType:m,bridgeFee:b}=r,g=new contract.Contract(i,MayanCircleArtifact_default.abi);let h,T;return u?h=g.interface.encodeFunctionData("bridgeWithLockedFee",[o,s,p,l,f,d]):h=g.interface.encodeFunctionData("bridgeWithFee",[o,s,l,p,d,f,m,y]),T=contract.toBeHex(b),{to:i,data:h,value:T,_params:r}}function getEvmMctpCreateOrderParams(e,t,n,a){const r=getWormholeChainIdById(Number(a)),i=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${i} !== ${r}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const s=e.mctpMayanContract,d=nativeAddressToHexString(t,o);let u;n?u=nativeAddressToHexString(n,o):u=nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const l=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),p=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8));let f=BigInt(e.effectiveAmountIn64);const y=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:f,gasDrop:p,destAddr:d,destChain:o,tokenOut:b,minAmountOut:y,deadline:m,redeemFee:l,referrerAddr:u,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain)),contractAddress:s}}function getEvmMctpCreateOrderTxPayload(e,t,n,a){const r=getEvmMctpCreateOrderParams(e,t,n,a),{contractAddress:i,params:o,bridgeFee:s}=r,u=new contract.Contract(i,MayanCircleArtifact_default.abi).interface.encodeFunctionData("createOrder",[o]),l=contract.toBeHex(s);return{to:i,data:u,value:l,_params:r}}function getMctpFromEvmTxPayload(e,t,n,a,r,i){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit,s=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),d=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));let u=contract.toBeHex(d);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const l=getEvmMctpCreateOrderTxPayload(e,t,n,a),p="forwardERC20",f=[e.fromToken.contract,l._params.params.amountIn,o,l._params.contractAddress,l.data];return{data:s.interface.encodeFunctionData(p,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const l=getEvmMctpBridgeTxPayload(e,t,a),p="forwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:s.interface.encodeFunctionData(p,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const{minMiddleAmount:l,evmSwapRouterAddress:p,evmSwapRouterCalldata:f}=e;if(!l||!p||!f)throw new Error("MCTP swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const y=getEvmMctpCreateOrderTxPayload(e,t,n,a),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.params.amountIn;if(b<=d)throw new Error("Amount in is less than bridge fee");d!==BigInt(0)&&(b-=d),u=contract.toBeHex(y._params.params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(g,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(b,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}else{const y=getEvmMctpBridgeTxPayload(e,t,a),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.amountIn;if(b<=d)throw new Error("Amount in is less than bridge fee");d!==BigInt(0)&&(b-=d),u=contract.toBeHex(y._params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(g,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:s.interface.encodeFunctionData(b,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}}}var MayanSwiftArtifact_default={abi:[{inputs:[{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"_solanaEmitter",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DuplicateOrder",type:"error"},{inputs:[],name:"FeesTooHigh",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidAuctionMode",type:"error"},{inputs:[],name:"InvalidBpsFee",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidDestChain",type:"error"},{inputs:[],name:"InvalidEmitterAddress",type:"error"},{inputs:[],name:"InvalidEmitterChain",type:"error"},{inputs:[],name:"InvalidEvmAddr",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidOrderHash",type:"error"},{inputs:[],name:"InvalidOrderStatus",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidSrcChain",type:"error"},{inputs:[],name:"InvalidWormholeFee",type:"error"},{inputs:[],name:"OrderNotExists",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"SmallAmountIn",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"OrderCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderRefunded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderUnlocked",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"canceler",type:"bytes32"}],name:"cancelOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithEth",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"signedOrderHash",type:"bytes"}],name:"createOrderWithSig",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithToken",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillSimple",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"enum MayanSwift.Status",name:"status",type:"uint8"},{internalType:"uint64",name:"amountIn",type:"uint64"},{internalType:"uint16",name:"destChainId",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseFulfillPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"driver",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"}],internalType:"struct MayanSwift.FulfillMsg",name:"fulfillMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRefundPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"canceler",type:"bytes32"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwift.RefundMsg",name:"refundMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUnlockPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct MayanSwift.UnlockMsg",name:"unlockMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"postBatch",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"refundOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"solanaEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"unlockMsgs",outputs:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockSingle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function createAssociatedTokenAccountInstruction(e,t,n,a,r=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),i=new address.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:address.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new address.TransactionInstruction({keys:o,programId:i,data:address.bufferPolyfillExports.Buffer.alloc(0)})}var TOKEN_ACCOUNT_LEN=165;async function createInitializeRandomTokenAccountInstructions(e,t,n,a,r,i=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const o=[],s=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN);return o.push(address.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:r.publicKey,lamports:s,space:TOKEN_ACCOUNT_LEN,programId:i})),o.push(new address.TransactionInstruction({keys:[{pubkey:r.publicKey,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:i,data:address.bufferPolyfillExports.Buffer.from([1])})),o}var ApproveInstructionData=address.struct([address.u8("instruction"),address.blob(8,"amount")]);function createApproveInstruction(e,t,n,a,r=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],o=address.bufferPolyfillExports.Buffer.alloc(ApproveInstructionData.span);return ApproveInstructionData.encode({instruction:4,amount:getSafeU64Blob(a)},o),new address.TransactionInstruction({keys:i,programId:r,data:o})}var SyncNativeInstructionData=address.struct([address.u8("instruction")]);function createSyncNativeInstruction(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],n=address.bufferPolyfillExports.Buffer.alloc(SyncNativeInstructionData.span);return SyncNativeInstructionData.encode({instruction:17},n),new address.TransactionInstruction({keys:t,programId:new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),data:n})}address.struct([address.u8("instruction")]);var SplTransferInstructionData=address.struct([address.u8("instruction"),address.blob(8,"amount")]);function createSplTransferInstruction(e,t,n,a,r=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],o=address.bufferPolyfillExports.Buffer.alloc(SplTransferInstructionData.span);return SplTransferInstructionData.encode({instruction:3,amount:getSafeU64Blob(a)},o),new address.TransactionInstruction({keys:i,programId:r,data:o})}var solMint=new address.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo(e){return new address.TransactionInstruction({programId:new address.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new address.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:address.bufferPolyfillExports.Buffer.from(e.data,"base64")})}async function getAddressLookupTableAccounts(e,t){return(await t.getMultipleAccountsInfo(e.map(a=>new address.PublicKey(a)))).reduce((a,r,i)=>{const o=e[i];if(r){const s=new address.AddressLookupTableAccount({key:new address.PublicKey(o),state:address.AddressLookupTableAccount.deserialize(r.data)});a.push(s)}return a},new Array)}function decentralizeClientSwapInstructions(e,t){const n=deserializeInstructionInfo(e.swapInstruction),a=e.cleanupInstruction?deserializeInstructionInfo(e.cleanupInstruction):null,r=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo):[],i=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo):[];return{swapInstruction:n,cleanupInstruction:a,computeBudgetInstructions:r,setupInstructions:i,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData(e){let t=`global:${e}`;return address.bufferPolyfillExports.Buffer.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer(){let e;try{const t=await getSuggestedRelayer();e=new address.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=address.SystemProgram.programId}return e}function validateJupCleanupInstruction(e){if(e){if(!e.programId.equals(new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!e.programId.equals(new address.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid cleanup instruction:: programId");if(Uint8Array.from(e.data).length!==1)throw new Error("Invalid cleanup instruction:: data");if(Uint8Array.from(e.data)[0]!==9)throw new Error("Invalid cleanup instruction:: data")}}function validateJupSetupInstructions(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(n=>{if(!n.programId.equals(new address.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))&&!n.programId.equals(address.SystemProgram.programId)&&!n.programId.equals(new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!n.programId.equals(new address.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(n.programId.equals(new address.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(n.data).length===1){if(Uint8Array.from(n.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(n.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(n.programId.equals(address.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const a=getAssociatedTokenAddress(solMint,t,!0);if(n.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!n.keys[1].pubkey.equals(a))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(n.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction(e,t){if(!e.programId.equals(new address.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4")))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData("shared_accounts_route").toString("hex")){if(!e.keys[6].pubkey.equals(t))throw new Error("Invalid swap instruction shared_accounts_route:: dest account")}else if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData("route").toString("hex")){if(!e.keys[4].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else throw new Error("Invalid swap instruction:: ix id")}function validateJupComputeBudgetInstructions(e){e.forEach(t=>{if(!t.programId.equals(address.ComputeBudgetProgram.programId))throw new Error("Invalid compute budget instruction:: programId");if(Uint8Array.from(t.data)[0]===3&&t.data.readBigUInt64LE(1)>100000000n)throw new Error("Invalid compute budget instruction:: to high tx fee")})}function validateJupSwap(e,t,n){validateJupComputeBudgetInstructions(e.computeBudgetInstructions),validateJupSetupInstructions(e.setupInstructions,n),validateJupSwapInstruction(e.swapInstruction,t),validateJupCleanupInstruction(e.cleanupInstruction)}function createTransferAllAndCloseInstruction(e,t,n,a,r,i=new address.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new address.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}],programId:new address.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData("transfer_all_and_close")})}function getWormholePDAs(e){const t=new address.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),n=new address.PublicKey(e),[a]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("Bridge")],t),[r]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("emitter")],n),[i]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("Sequence"),r.toBuffer()],t),[o]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("fee_collector")],t);return{bridgeConfig:a,sequenceKey:i,feeCollector:o,emitter:r}}var MCTPBridgeWithFeeLayout=address.struct([address.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction(e,t,n,a,r){const i=new address.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),o=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),s=new address.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),d=new address.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),u=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID),l=new address.PublicKey(a),p=new address.PublicKey(n),f=getAssociatedTokenAddress(p,e,!0);let y;r&&r>BigInt(0)?y=getAssociatedTokenAddress(p,l,!1):y=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs(p,t),b=getWormholePDAs(addresses_default.MCTP_PROGRAM_ID),g=address.Keypair.generate(),h=address.Keypair.generate(),T=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=address.bufferPolyfillExports.Buffer.alloc(MCTPBridgeWithFeeLayout.span);return MCTPBridgeWithFeeLayout.encode({instruction:getAnchorInstructionData("bridge_with_fee")},A),{instruction:new address.TransactionInstruction({keys:T,data:A,programId:u}),signers:[g,h]}}var MctpBridgeLockFeeLayout=address.struct([address.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction(e,t,n,a,r){const i=[],o=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),s=new address.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID),d=new address.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),u=new address.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),l=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID),p=new address.PublicKey(a),f=new address.PublicKey(n),y=getAssociatedTokenAddress(f,e,!0),m=getCCTPBridgePDAs(f,t),b=address.Keypair.generate(),[g]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("LOCKED_FEE"),f.toBuffer(),b.publicKey.toBytes()],l);let h;r&&r>BigInt(0)?h=getAssociatedTokenAddress(f,p,!1):h=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID);const T=getAssociatedTokenAddress(f,g,!0);i.push(createAssociatedTokenAccountInstruction(p,T,g,f));const A=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],S=address.bufferPolyfillExports.Buffer.alloc(MctpBridgeLockFeeLayout.span);MctpBridgeLockFeeLayout.encode({instruction:getAnchorInstructionData("bridge_locked_fee")},S);const w=new address.TransactionInstruction({keys:A,data:S,programId:l});return i.push(w),{instructions:i,signer:b}}var MctpInitSwapLayout=address.struct([address.blob(8,"instruction")]);function createMctpInitSwapInstruction(e,t,n,a,r){const i=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),o=new address.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),s=new address.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),d=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID),u=new address.PublicKey(a),l=new address.PublicKey(n),p=getAssociatedTokenAddress(l,e,!0),f=getCCTPBridgePDAs(l,t),y=address.Keypair.generate(),[m]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],d);let b;r&&r>BigInt(0)?b=getAssociatedTokenAddress(l,u,!1):b=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID);const g=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:y.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=address.bufferPolyfillExports.Buffer.alloc(MctpInitSwapLayout.span);return MctpInitSwapLayout.encode({instruction:getAnchorInstructionData("create_order")},h),{instruction:new address.TransactionInstruction({keys:g,data:h,programId:d}),signer:y}}var MctpBridgeLedgerLayout=address.struct([address.blob(8,"instruction"),address.blob(32,"destAddress"),address.blob(8,"amountInMin"),address.blob(8,"gasDrop"),address.blob(8,"feeRedeem"),address.blob(8,"feeSolana"),address.u16("destinationChain"),address.blob(32,"keyRnd"),address.u8("mode")]);function createMctpBridgeLedgerInstruction(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new address.PublicKey(e.swapperAddress),n=new address.PublicKey(e.mintAddress),a=getAssociatedTokenAddress(n,e.ledger,!0),r=getWormholeChainIdByName(e.toChain),i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,r))),o=getSafeU64Blob(e.amountInMin64),s=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),d=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),u=getSafeU64Blob(e.feeSolana),l=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,r))):address.SystemProgram.programId.toBuffer(),p=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new address.PublicKey(addresses_default.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(l),isWritable:!1,isSigner:!1}],f=address.bufferPolyfillExports.Buffer.alloc(MctpBridgeLedgerLayout.span);return MctpBridgeLedgerLayout.encode({instruction:getAnchorInstructionData("init_bridge_ledger"),destAddress:i,amountInMin:o,gasDrop:s,feeRedeem:d,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},f),new address.TransactionInstruction({keys:p,data:f,programId:new address.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout=address.struct([address.blob(8,"instruction"),address.blob(32,"destAddress"),address.blob(8,"amountInMin"),address.blob(8,"gasDrop"),address.blob(8,"feeRedeem"),address.blob(8,"feeSolana"),address.u16("destinationChain"),address.blob(32,"keyRnd"),address.u8("mode"),address.blob(32,"tokenOut"),address.blob(8,"amountOutMin"),address.blob(8,"deadline"),address.blob(32,"refAddress"),address.u8("feeRateRef")]);function createMctpSwapLedgerInstruction(e){const t=new address.PublicKey(e.swapperAddress),n=new address.PublicKey(e.mintAddress),a=getAssociatedTokenAddress(n,e.ledger,!0),r=getWormholeChainIdByName(e.toChain),i=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,r))),o=getSafeU64Blob(e.amountInMin64),s=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),d=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),u=getSafeU64Blob(e.feeSolana),l=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.tokenOut,r))),p=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,r))):address.SystemProgram.programId.toBuffer(),f=getSafeU64Blob(getAmountOfFractionalAmount(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),y=getSafeU64Blob(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=address.bufferPolyfillExports.Buffer.alloc(MctpSwapLedgerLayout.span);return MctpSwapLedgerLayout.encode({instruction:getAnchorInstructionData("init_order_ledger"),destAddress:i,amountInMin:o,gasDrop:s,feeRedeem:d,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:l,refAddress:p,amountOutMin:f,deadline:y,feeRateRef:e.feeRateRef},b),new address.TransactionInstruction({keys:m,data:b,programId:new address.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions(e,t,n,a,r,i={}){const o=(i==null?void 0:i.forceSkipCctpInstructions)||!1,s=(i==null?void 0:i.allowSwapperOffCurve)||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let d=[],u=[],l=[],p=[],f=[],y=[],m=[];const b=address.Keypair.generate();let g=null;d.push(addresses_default.LOOKUP_TABLE);const h=new address.PublicKey(addresses_default.MCTP_PROGRAM_ID),T=new address.PublicKey(t),A=address.Keypair.generate(),S=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const w=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[P]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from(w),T.toBytes(),A.publicKey.toBytes()],h),O=getAssociatedTokenAddress(new address.PublicKey(e.mctpInputContract),P,!0),R=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const C=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&u.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),u.push(createAssociatedTokenAccountInstruction(T,O,P,new address.PublicKey(e.mctpInputContract))),u.push(createSplTransferInstruction(getAssociatedTokenAddress(new address.PublicKey(e.mctpInputContract),T,s),O,T,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(u.push(createMctpSwapLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:S,feeRateRef:e.referrerBps})),!o){const{instruction:v,signer:N}=createMctpInitSwapInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(v),l.push(N)}}else if(u.push(createMctpBridgeLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:R,referrerAddress:a})),!o)if(R==="WITH_FEE"){const{instruction:v,signers:N}=createMctpBridgeWithFeeInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(v),l.push(...N)}else{const{instructions:v,signer:N}=createMctpBridgeLockFeeInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(...v),l.push(N)}}else{const C=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:P.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":R,fillMaxAccounts:(i==null?void 0:i.separateSwapTx)||!1,tpmTokenAccount:i!=null&&i.separateSwapTx?b.publicKey.toString():null}),v=decentralizeClientSwapInstructions(C);i!=null&&i.separateSwapTx&&C.maxAccountsFilled?(validateJupSwap(v,b.publicKey,T),m=await createInitializeRandomTokenAccountInstructions(r,T,new address.PublicKey(e.mctpInputContract),T,b),y.push(...v.computeBudgetInstructions),v.setupInstructions&&y.push(...v.setupInstructions),y.push(v.swapInstruction),v.cleanupInstruction&&y.push(v.cleanupInstruction),f.push(...v.addressLookupTableAddresses),u.push(createAssociatedTokenAccountInstruction(T,O,P,new address.PublicKey(e.mctpInputContract))),u.push(createTransferAllAndCloseInstruction(T,new address.PublicKey(e.mctpInputContract),b.publicKey,O,T))):(validateJupSwap(v,O,T),u.push(...v.computeBudgetInstructions),v.setupInstructions&&u.push(...v.setupInstructions),u.push(v.swapInstruction),v.cleanupInstruction&&u.push(v.cleanupInstruction),d.push(...v.addressLookupTableAddresses));const N=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(u.push(createMctpSwapLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:S,feeRateRef:e.referrerBps})),y.length>0){const{instruction:W,signer:U}=createMctpInitSwapInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(W),l.push(U)}}else if(u.push(createMctpBridgeLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:A.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),mode:R,referrerAddress:a})),y.length>0)if(R==="WITH_FEE"){const{instruction:W,signers:U}=createMctpBridgeWithFeeInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(W),l.push(...U)}else{const{instructions:W,signer:U}=createMctpBridgeLockFeeInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(...W),l.push(U)}}const D=await getAddressLookupTableAccounts(d.concat(f),r);if(p=D.slice(0,d.length),y.length>0){const C=D.slice(d.length);g={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:C},createTmpTokenAccountIxs:m,tmpTokenAccount:b}}return{instructions:u,signers:l,lookupTables:p,swapMessageV0Params:g}}function createSwiftOrderHash(e,t,n,a,r){const o=address.bufferPolyfillExports.Buffer.alloc(239);let s=0;const d=getWormholeChainIdByName(e.fromChain),u=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(t,d)));o.set(u,0),s+=32,o.writeUInt16BE(d,s),s+=2;const l=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.swiftInputContract,d),p=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(l));o.set(p,s),s+=32;const f=getWormholeChainIdByName(e.toChain),y=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(n,f)));o.set(y,s),s+=32,o.writeUInt16BE(f,s),s+=2;const m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,f),b=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(m));o.set(b,s),s+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.minAmountOut,Math.min(e.toToken.decimals,8)),s),s+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),s),s+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),s),s+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),s),s+=8,o.writeBigUInt64BE(BigInt(e.deadline64),s),s+=8;const g=a?address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(a,f))):address.SystemProgram.programId.toBuffer();o.set(g,s),s+=32,o.writeUInt8(e.referrerBps,s),s+=1;const h=e.protocolBps;o.writeUInt8(h,s),s+=1,o.writeUInt8(e.swiftAuctionMode,s),s+=1;const T=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(r));if(o.set(T,s),s+=32,s!==239)throw new Error(`Invalid order data size: ${s}`);const A=address.keccak256(o);return address.bufferPolyfillExports.Buffer.from(hexToUint8Array(A))}var InitSwiftLayout=address.struct([address.blob(8,"instruction"),address.blob(8,"amountInMin"),address.u8("nativeInput"),address.blob(8,"feeSubmit"),address.blob(32,"destAddress"),address.u16("destinationChain"),address.blob(32,"tokenOut"),address.blob(8,"amountOutMin"),address.blob(8,"gasDrop"),address.blob(8,"feeCancel"),address.blob(8,"feeRefund"),address.blob(8,"deadline"),address.blob(32,"refAddress"),address.u8("feeRateRef"),address.u8("feeRateMayan"),address.u8("auctionMode"),address.blob(32,"randomKey")]);function createSwiftInitInstruction(e){const{quote:t}=e,n=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new address.PublicKey(t.swiftInputContract),a=getWormholeChainIdByName(t.toChain);if(a!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${a} != ${t.toToken.wChainId}`);const r=[{pubkey:e.trader,isWritable:!1,isSigner:!0},{pubkey:e.relayer,isWritable:!0,isSigner:!0},{pubkey:e.state,isWritable:!0,isSigner:!1},{pubkey:e.stateAccount,isWritable:!0,isSigner:!1},{pubkey:e.relayerAccount,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],i=address.bufferPolyfillExports.Buffer.alloc(InitSwiftLayout.span),o=e.referrerAddress?address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,a))):address.SystemProgram.programId.toBuffer(),s=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout.encode({instruction:getAnchorInstructionData("init_order"),amountInMin:getSafeU64Blob(s),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob(BigInt(t.submitRelayerFee64)),destAddress:address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,a))),destinationChain:a,tokenOut:address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(t.toToken.contract,a))),amountOutMin:getSafeU64Blob(getAmountOfFractionalAmount(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob(getAmountOfFractionalAmount(t.gasDrop,Math.min(getGasDecimal(t.toChain),8))),feeCancel:getSafeU64Blob(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},i),new address.TransactionInstruction({keys:r,data:i,programId:new address.PublicKey(addresses_default.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions(e,t,n,a,r,i={}){if(e.type!=="SWIFT")throw new Error("Unsupported quote type for Swift: "+e.type);if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const o=i.allowSwapperOffCurve||!1;let s=[],d=[],u=[];u.push(addresses_default.LOOKUP_TABLE);let l=[],p=[],f=[];const y=address.Keypair.generate();let m=null;const b=new address.PublicKey(addresses_default.SWIFT_PROGRAM_ID),g=new address.PublicKey(t),h=address.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const T=BigInt(e.deadline64),A=createSwiftOrderHash(e,t,n,a,h.publicKey.toBuffer().toString("hex")),[S]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("STATE_SOURCE"),A],b),w=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new address.PublicKey(e.swiftInputContract),P=getAssociatedTokenAddress(w,S,!0),O=e.gasless?new address.PublicKey(e.relayer):g,R=BigInt(e.submitRelayerFee64)>0n?getAssociatedTokenAddress(w,O,!1):b;if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&s.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),s.push(createAssociatedTokenAccountInstruction(O,P,S,w)),e.swiftInputContract===providerJsonrpc.ZeroAddress?s.push(address.SystemProgram.transfer({fromPubkey:g,toPubkey:P,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction(P)):s.push(createSplTransferInstruction(getAssociatedTokenAddress(w,g,o),P,g,BigInt(e.effectiveAmountIn64)));else{const D=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.swiftInputContract,userWallet:t,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.gasless?"SWIFT_GASLESS":"SWIFT",orderHash:`0x${A.toString("hex")}`,fillMaxAccounts:(i==null?void 0:i.separateSwapTx)||!1,tpmTokenAccount:i!=null&&i.separateSwapTx?y.publicKey.toString():null}),C=decentralizeClientSwapInstructions(D);i!=null&&i.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap(C,y.publicKey,g),f=await createInitializeRandomTokenAccountInstructions(r,O,w,g,y),p.push(...C.computeBudgetInstructions),C.setupInstructions&&p.push(...C.setupInstructions),p.push(C.swapInstruction),C.cleanupInstruction&&p.push(C.cleanupInstruction),l.push(...C.addressLookupTableAddresses),s.push(createAssociatedTokenAccountInstruction(O,P,S,w)),s.push(createTransferAllAndCloseInstruction(g,w,y.publicKey,P,O))):(s.push(...C.computeBudgetInstructions),C.setupInstructions&&s.push(...C.setupInstructions),s.push(C.swapInstruction),C.cleanupInstruction&&s.push(C.cleanupInstruction),u.push(...C.addressLookupTableAddresses))}s.push(createSwiftInitInstruction({quote:e,state:S,trader:g,stateAccount:P,randomKey:h.publicKey,relayerAccount:R,relayer:O,destinationAddress:n,deadline:T,referrerAddress:a}));const $=await getAddressLookupTableAccounts(u.concat(l),r);if(d=$.slice(0,u.length),p.length>0){const D=$.slice(u.length);m={messageV0:{payerKey:O,instructions:p,addressLookupTableAccounts:D},createTmpTokenAccountIxs:f,tmpTokenAccount:y}}return{instructions:s,signers:[],lookupTables:d,swapMessageV0Params:m}}var STATE_SIZE=420,SwapLayout=address.struct([address.u8("instruction"),address.u8("stateNonce"),address.blob(8,"amount"),address.blob(8,"minAmountOut"),address.blob(8,"deadline"),address.blob(8,"feeSwap"),address.blob(8,"feeReturn"),address.blob(8,"feeCancel"),address.blob(8,"gasDrop"),address.u16("destinationChain"),address.blob(32,"destinationAddress"),address.u8("unwrapRedeem"),address.u8("unwrapRefund"),address.u8("mayanFeeNonce"),address.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions(e,t,n,a,r,i={}){const o=getQuoteSuitableReferrerAddress(e,a);if(e.type==="MCTP")return createMctpFromSolanaInstructions(e,t,n,o,r,i);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions(e,t,n,o,r,i);let s=[];const d=r??new address.Connection("https://rpc.ankr.com/solana"),u=new address.PublicKey(addresses_default.MAYAN_PROGRAM_ID),l=new address.PublicKey(addresses_default.TOKEN_PROGRAM_ID),p=new address.PublicKey(t),f=new address.PublicKey(addresses_default.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&s.push(address.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let y;o?y=new address.PublicKey(o):y=address.SystemProgram.programId;const[m,b]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("MAYANFEE")],u),[g,h]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("REFERRERFEE"),y.toBuffer()],u),T=address.Keypair.generate(),A=address.Keypair.generate(),[S,w]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("V2STATE"),address.bufferPolyfillExports.Buffer.from(T.publicKey.toBytes()),address.bufferPolyfillExports.Buffer.from(A.publicKey.toBytes())],u),P=new address.PublicKey(e.fromToken.mint),O=new address.PublicKey(e.toToken.mint),R=getAssociatedTokenAddress(P,p),$=getAssociatedTokenAddress(P,S,!0),[[D,C],v,N]=await Promise.all([d.getMultipleAccountsInfo([R,$],"finalized"),d.getMinimumBalanceForRentExemption(STATE_SIZE),decideRelayer()]);(!D||D.data.length===0)&&s.push(createAssociatedTokenAccountInstruction(p,R,p,P)),(!C||C.data.length===0)&&s.push(createAssociatedTokenAccountInstruction(p,$,S,P)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(s.push(address.SystemProgram.transfer({fromPubkey:p,toPubkey:R,lamports:BigInt(e.effectiveAmountIn64)})),s.push(createSyncNativeInstruction(R)));const W=BigInt(e.effectiveAmountIn64),U=address.Keypair.generate();s.push(createApproveInstruction(R,U.publicKey,p,W)),s.push(address.SystemProgram.transfer({fromPubkey:p,toPubkey:U.publicKey,lamports:v}));const L=[{pubkey:U.publicKey,isWritable:!1,isSigner:!0},{pubkey:T.publicKey,isWritable:!1,isSigner:!0},{pubkey:A.publicKey,isWritable:!1,isSigner:!0},{pubkey:S,isWritable:!0,isSigner:!1},{pubkey:R,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:P,isWritable:!1,isSigner:!1},{pubkey:O,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:U.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:address.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:address.SystemProgram.programId,isWritable:!1,isSigner:!1}],V=getWormholeChainIdByName(e.toChain);if(V===1){const k=await d.getAccountInfo(new address.PublicKey(n));if(k&&k.owner&&k.owner.equals(l))throw new Error("Destination address is not about token account. It should be a owner address")}const X=address.bufferPolyfillExports.Buffer.from(hexToUint8Array(nativeAddressToHexString(n,V))),Y=getAmountOfFractionalAmount(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount(e.swapRelayerFee,e.mintDecimals.from),q=getAmountOfFractionalAmount(e.redeemRelayerFee,e.mintDecimals.to),j=getAmountOfFractionalAmount(e.refundRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount(e.gasDrop,getGasDecimalsInSolana(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,c=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const _=BigInt(e.deadline64),I=address.bufferPolyfillExports.Buffer.alloc(SwapLayout.span),M={instruction:101,stateNonce:w,amount:getSafeU64Blob(W),minAmountOut:getSafeU64Blob(Y),deadline:getSafeU64Blob(_),feeSwap:getSafeU64Blob(Z),feeReturn:getSafeU64Blob(q),feeCancel:getSafeU64Blob(j),gasDrop:getSafeU64Blob(Q),destinationChain:V,destinationAddress:X,unwrapRedeem:J?1:0,unwrapRefund:c?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout.encode(M,I);const E=new address.TransactionInstruction({keys:L,data:I,programId:u});return s.push(E),{instructions:s,signers:[U,T,A],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams(e,t,n,a,r){const i=getWormholeChainIdById(Number(r)),o=getWormholeChainIdByName(e.fromChain),s=getWormholeChainIdByName(e.toChain);if(o!==i)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${i}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==s)throw new Error(`Destination chain ID mismatch: ${s} != ${e.toToken.wChainId}`);const d=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const u=BigInt(e.deadline64),l=e.swiftInputContract,p=BigInt(e.effectiveAmountIn64);let f;a?f=nativeAddressToHexString(a,s):f=nativeAddressToHexString(address.SystemProgram.programId.toString(),1);const y=nativeAddressToHexString(address.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),1):nativeAddressToHexString(e.toToken.contract,s),b=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),h=nativeAddressToHexString(n,s),T={trader:nativeAddressToHexString(t,o),tokenOut:m,minAmountOut:b,gasDrop:g,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:u,destAddr:h,destChainId:s,referrerAddr:f,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:y};return{contractAddress:d,tokenIn:l,amountIn:p,order:T}}function getSwiftFromEvmTxPayload(e,t,n,a,r,i){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");r=Number(r);const o=ZeroPermit,s=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{tokenIn:d,amountIn:u,order:l,contractAddress:p}=getEvmSwiftParams(e,t,n,a,r);let f;const y=new contract.Contract(p,MayanSwiftArtifact_default.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?f=y.interface.encodeFunctionData("createOrderWithEth",[l]):f=y.interface.encodeFunctionData("createOrderWithToken",[d,u,l]);let m,b,g;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="forwardEth",b=[p,f],g=contract.toBeHex(u)):(m="forwardERC20",b=[d,u,o,p,f],g=contract.toBeHex(0));else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:A}=e;if(!e.minMiddleAmount||!T||!A)throw new Error("Swift swap requires middle amount, router address and calldata");const S=e.fromToken.contract,w=getAmountOfFractionalAmount(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[u,T,A,e.swiftInputContract,w,p,f],g=contract.toBeHex(u)):(m="swapAndForwardERC20",b=[S,u,o,T,A,e.swiftInputContract,w,p,f],g=contract.toBeHex(0))}return{data:s.interface.encodeFunctionData(m,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:g,chainId:r,_forwarder:{method:m,params:b}}}var ShuttleArtifact_default={abi:[{type:"function",name:"batchMaxApprove",inputs:[{name:"approvals",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initiate",inputs:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"overrideAmountIn",type:"uint256",internalType:"uint256"},{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"params",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"error",name:"ChainNotSupported",inputs:[{name:"chain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"DeadlineExpired",inputs:[{name:"blocktime",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"ExceedsMaxGasDropoff",inputs:[{name:"requested",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ExceedsMaxRelayingFee",inputs:[{name:"fee",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InsufficientInputAmount",inputs:[{name:"input",type:"uint256",internalType:"uint256"},{name:"minimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidAddress",inputs:[{name:"addr",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidOverrideAmount",inputs:[{name:"received",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapType",inputs:[{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapTypeForChain",inputs:[{name:"chain",type:"uint16",internalType:"uint16"},{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RelayingDisabledForChain",inputs:[]}]},shuttleConstants={FAST_MODE_FLAG:1,RELAY_REDEEM_MODE:2,EXACT_IN_FLAG:1,USDC_INPUT_TOKEN_TYPE:0,PRE_APPROVED_ACQUIRE_MODE:0,OUTPUT_USDC_MODE:0,OUTPUT_NATIVE_MODE:1,OUTPUT_OTHER_MODE:2};function writeBigIntTo16BytesBuffer(e){const t=(1n<<128n)-1n;if(e<0n||e>t)throw new RangeError("Value must fit in an unsigned 128-bit integer (0 <= value < 2^128)");const n=address.bufferPolyfillExports.Buffer.alloc(16);for(let a=15;a>=0;a--)n[a]=Number(e&0xFFn),e>>=8n;return n}function getShuttleParams(e,t,n){const{shuttleParams:a}=e;if(!a)throw new Error("Swap layer params are missing in quote response");const r=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${r}`);let s=[];s.push(shuttleConstants.FAST_MODE_FLAG);const d=address.bufferPolyfillExports.Buffer.alloc(8);d.writeBigUInt64BE(BigInt(a.maxLLFee));const u=d.subarray(2);s.push(...u);const l=address.bufferPolyfillExports.Buffer.alloc(4);l.writeUInt32BE(a.fastTransferDeadline),s.push(...l),s.push(shuttleConstants.RELAY_REDEEM_MODE);const p=getAmountOfFractionalAmount(e.gasDrop,Math.min(6,getGasDecimal(e.toChain))),f=address.bufferPolyfillExports.Buffer.alloc(8);f.writeBigUInt64BE(p);const y=f.subarray(4);s.push(...y);const m=address.bufferPolyfillExports.Buffer.alloc(8);m.writeBigUInt64BE(BigInt(a.maxRelayingFee));const b=m.subarray(2);s.push(...b),s.push(shuttleConstants.EXACT_IN_FLAG),s.push(shuttleConstants.USDC_INPUT_TOKEN_TYPE);const g=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){s.push(...Array(8).fill(0));const T=address.bufferPolyfillExports.Buffer.alloc(8);T.writeBigUInt64BE(g),s.push(...T)}else s.push(...Array(16).fill(0));if(s.push(shuttleConstants.PRE_APPROVED_ACQUIRE_MODE),a.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)s.push(shuttleConstants.OUTPUT_NATIVE_MODE);else{s.push(shuttleConstants.OUTPUT_OTHER_MODE);const w=address.bufferPolyfillExports.Buffer.from(nativeAddressToHexString(e.toToken.contract,o).slice(2),"hex");s.push(...w)}const T=address.bufferPolyfillExports.Buffer.alloc(4);T.writeUInt32BE(Number(BigInt(e.deadline64))),s.push(...T);const A=getAmountOfFractionalAmount(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){s.push(...Array(8).fill(0));const w=address.bufferPolyfillExports.Buffer.alloc(8);w.writeBigUInt64BE(A),s.push(...w)}else{const w=writeBigIntTo16BytesBuffer(A);s.push(...w)}const S=address.bufferPolyfillExports.Buffer.from(a.path.slice(2),"hex");s.push(...S)}else s.push(shuttleConstants.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString(t,o),destChainId:o,serializedParams:`0x${address.bufferPolyfillExports.Buffer.from(s).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:g,bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain))}}function getShuttleFromEvmTxPayload(e,t,n,a){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const r=ZeroPermit,i=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{destAddr:o,destChainId:s,serializedParams:d,contractAddress:u,amountIn:l,bridgeFee:p}=getShuttleParams(e,t,n);let f;f=new contract.Contract(u,ShuttleArtifact_default.abi).interface.encodeFunctionData("initiate",[o,l,s,d]);let m,b,g;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",b=[e.shuttleInputContract,l,r,u,f],g=contract.toBeHex(p);else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:A}=e;if(!e.minMiddleAmount||!T||!A)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const S=e.fromToken.contract,w=getAmountOfFractionalAmount(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[l,T,A,e.shuttleInputContract,w,u,f],g=contract.toBeHex(l)):(m="swapAndForwardERC20",b=[S,l,r,T,A,e.shuttleInputContract,w,u,f],g=contract.toBeHex(p))}return{data:i.interface.encodeFunctionData(m,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:g,chainId:n,_forwarder:{method:m,params:b}}}var MayanFastMctpArtifact_default={abi:[{type:"constructor",inputs:[{name:"_cctpTokenMessengerV2",type:"address",internalType:"address"},{name:"_feeManager",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"bridge",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"customPayload",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cctpTokenMessengerV2",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITokenMessengerV2"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createOrder",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"orderPayload",type:"tuple",internalType:"struct FastMCTP.OrderPayload",components:[{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"tokenOut",type:"bytes32",internalType:"bytes32"},{name:"amountOutMin",type:"uint64",internalType:"uint64"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"refundFee",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"referrerAddr",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"domainToCaller",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"feeManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"fulfillOrder",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"},{name:"swapProtocol",type:"address",internalType:"address"},{name:"swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"keyToMintRecipient",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"refund",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"rescueEth",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueRedeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDomainCallers",inputs:[{name:"domain",type:"uint32",internalType:"uint32"},{name:"caller",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeManager",inputs:[{name:"_feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMintRecipient",inputs:[{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"tokenIn",type:"address",internalType:"address"},{name:"mintRecipient",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPause",inputs:[{name:"_pause",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedMsgSenders",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedSwapProtocols",inputs:[{name:"protocol",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"whitelistedMsgSenders",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"whitelistedSwapProtocols",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OrderFulfilled",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OrderRefunded",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"CallerNotSet",inputs:[]},{type:"error",name:"CctpReceiveFailed",inputs:[]},{type:"error",name:"DeadlineViolation",inputs:[]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"InvalidAddress",inputs:[]},{type:"error",name:"InvalidAmountOut",inputs:[]},{type:"error",name:"InvalidGasDrop",inputs:[]},{type:"error",name:"InvalidMintRecipient",inputs:[]},{type:"error",name:"InvalidPayload",inputs:[]},{type:"error",name:"InvalidPayloadType",inputs:[]},{type:"error",name:"InvalidRedeemFee",inputs:[]},{type:"error",name:"InvalidRefundFee",inputs:[]},{type:"error",name:"MintRecipientNotSet",inputs:[]},{type:"error",name:"Paused",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnauthorizedMsgSender",inputs:[]},{type:"error",name:"UnauthorizedSwapProtocol",inputs:[]}]};function getEvmFastMctpBridgeParams(e,t,n,a,r){const i=getWormholeChainIdById(Number(a)),o=getWormholeChainIdByName(e.fromChain),s=getWormholeChainIdByName(e.toChain);if(o!==i)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${i}`);const d=nativeAddressToHexString(t,s),u=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),l=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),p=BigInt(e.circleMaxFee64),f=BigInt(e.effectiveAmountIn64),y=getCCTPDomain(e.toChain);let m;if(n?m=nativeAddressToHexString(n,s):m=nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:f,redeemFee:u,gasDrop:l,destAddr:d,destDomain:y,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:p,contractAddress:b}}function getEvmFastMctpBridgeTxPayload(e,t,n,a,r){const i=getEvmFastMctpBridgeParams(e,t,n,a),{contractAddress:o,tokenIn:s,amountIn:d,destAddr:u,redeemFee:l,gasDrop:p,circleMaxFee:f,referrerAddr:y,referrerBps:m,destDomain:b,customPayload:g,minFinalityThreshold:h,payloadType:T}=i,A=new contract.Contract(o,MayanFastMctpArtifact_default.abi);let S,w;return S=A.interface.encodeFunctionData("bridge",[s,d,l,f,p,u,b,y,m,T,h,g]),w=contract.toBeHex(0),{to:o,data:S,value:w,_params:i}}function getEvmFastMctpCreateOrderParams(e,t,n,a){const r=getWormholeChainIdById(Number(a)),i=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(i!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${i} !== ${r}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const s=e.fastMctpMayanContract,d=nativeAddressToHexString(t,o);let u;n?u=nativeAddressToHexString(n,o):u=nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const l=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),p=BigInt(e.refundRelayerFee64),f=BigInt(e.circleMaxFee64),y=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),m=getCCTPDomain(e.toChain),b=BigInt(e.effectiveAmountIn64),g=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),T=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:f,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER,destAddr:d,tokenOut:T,amountOutMin:g,gasDrop:y,redeemFee:l,refundFee:p,deadline:h,referrerAddr:u,referrerBps:e.referrerBps||0},contractAddress:s}}function getEvmFastMctpCreateOrderTxPayload(e,t,n,a){const r=getEvmFastMctpCreateOrderParams(e,t,n,a),{contractAddress:i,orderPayload:o,tokenIn:s,amountIn:d,circleMaxFee:u,destDomain:l,minFinalityThreshold:p}=r,y=new contract.Contract(i,MayanFastMctpArtifact_default.abi).interface.encodeFunctionData("createOrder",[s,d,u,l,p,o]),m=contract.toBeHex(0);return{to:i,data:y,value:m,_params:r}}function getFastMctpFromEvmTxPayload(e,t,n,a,r,i){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit,s=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const d=getEvmFastMctpCreateOrderTxPayload(e,t,n,a),u="forwardERC20",l=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:s.interface.encodeFunctionData(u,l),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:l}}}else{const d=getEvmFastMctpBridgeTxPayload(e,t,n,a),u="forwardERC20",l=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:s.interface.encodeFunctionData(u,l),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:l}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:u,evmSwapRouterCalldata:l}=e;if(!d||!u||!l)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload(e,t,n,a),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}else{const p=getEvmFastMctpBridgeTxPayload(e,t,n,a),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,l,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:s.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}}}function getEvmSwapParams(e,t,n,a,r,i){const o=new address.PublicKey(addresses_default.MAYAN_PROGRAM_ID),[s]=address.PublicKey.findProgramAddressSync([address.bufferPolyfillExports.Buffer.from("MAIN")],o),d=getAssociatedTokenAddress(new address.PublicKey(e.fromToken.mint),s,!0),u=BigInt(e.effectiveAmountIn64),l=nativeAddressToHexString(d.toString(),1),p=nativeAddressToHexString(addresses_default.AUCTION_PROGRAM_ID,1);let f;n?f=nativeAddressToHexString(n,1):f=nativeAddressToHexString(address.SystemProgram.programId.toString(),1);const y=getWormholeChainIdById(Number(r)),m=getWormholeChainIdByName(e.fromChain),b=getWormholeChainIdByName(e.toChain);if(m!==y)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${m} !== ${y}`);const g=e.whMayanContract,h={mayanAddr:l,mayanChainId:1,destAddr:nativeAddressToHexString(t,b),destChainId:b,auctionAddr:p,referrer:f,refundAddr:nativeAddressToHexString(a,y)},T=e.toToken.contract===providerJsonrpc.ZeroAddress,A={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),unwrap:T,customPayload:"0x"},S={swapFee:getAmountOfFractionalAmount(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},w=nativeAddressToHexString(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),P=getAmountOfFractionalAmount(e.bridgeFee,18);return{amountIn:u,tokenIn:e.fromToken.contract,tokenOut:w,tokenOutWChainId:e.toToken.realOriginChainId,criteria:A,recipient:h,relayerFees:S,contractAddress:g,bridgeFee:P}}function getSwapFromEvmTxPayload(e,t,n,a,r,i,o,s){const d=getWormholeChainIdById(Number(i)),u=getWormholeChainIdByName(e.fromChain);if(u!==d)throw new Error(`Signer chain id(${Number(i)}) and quote from chain are not same! ${u} !== ${d}`);const l=getQuoteSuitableReferrerAddress(e,a);if(e.type==="MCTP")return getMctpFromEvmTxPayload(e,n,l,i,s);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload(e,t,n,l,i);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload(e,n,i);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload(e,n,l,i,s);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:p,recipient:f,tokenOut:y,tokenOutWChainId:m,criteria:b,tokenIn:g,amountIn:h,contractAddress:T,bridgeFee:A}=getEvmSwapParams(e,n,l,r,i),S=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),w=new contract.Contract(T,MayanSwapArtifact_default.abi);let P,O,R;const $=ZeroPermit;if(g===providerJsonrpc.ZeroAddress){const C=w.interface.encodeFunctionData("wrapAndSwapETH",[p,f,y,m,b]);P="forwardEth",O=[T,C],R=contract.toBeHex(h)}else{const C=w.interface.encodeFunctionData("swap",[p,f,y,m,b,g,h]);P="forwardERC20",O=[g,h,$,T,C],R=contract.toBeHex(A)}const D=S.interface.encodeFunctionData(P,O);return{to:addresses_default.MAYAN_FORWARDER_CONTRACT,data:D,value:R,chainId:i,_forwarder:{method:P,params:O}}}async function assertArgumentIsImmutable(e,t){var a;let n;try{n=await t.getMoveFunctionArgTypes({package:e.package,module:e.module,function:e.function})}catch{throw new Error(`Failed to fetch ${e.package}::${e.module}::${e.function} ArgTypes`)}if(n){if(n[e.argumentIndex]!=="Pure"&&((a=n[e.argumentIndex])==null?void 0:a.Object)!=="ByImmutableReference")throw new Error(`Argument ${e.argumentIndex} of ${e.module}::${e.function} is not immutable`)}else throw new Error(`Failed to fetch package::${e.module}::${e.function} ArgTypes`)}async function fetchAllCoins(e,t){let n=[],a=BigInt(0),r;do{const i=await t.getCoins({...e,owner:e.walletAddress,cursor:r}),o=i.data.filter(s=>BigInt(s.balance)>BigInt(0));if(n=[...n,...o],o.forEach(s=>{a+=BigInt(s.balance)}),i.data.length===0||!i.hasNextPage||!i.nextCursor||a>=e.coinAmount)return{coins:n.sort((s,d)=>Number(BigInt(s.coinObjectId)-BigInt(d.coinObjectId))),sum:a};r=i.nextCursor}while(!0)}async function fetchMayanSuiPackageId(e,t){var a,r,i;let n;try{n=await t.getObject({id:e,options:{showContent:!0}})}catch(o){throw new Error(`Failed to fetch Mayan Sui package ID:
3
+ ${o}`)}if((s=(r=(a=n.data)==null?void 0:a.content)==null?void 0:r.fields)!=null&&s.latest_package_id)return n.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function resolveInputCoin$1(e,t,n,a,r,s){let o;if(s!=null&&s.result)o=s.result;else if(s!=null&&s.objectId)o=r.object(s.objectId);else{const{coins:i,sum:l}=await fetchAllCoins$1({walletAddress:t,coinType:n,coinAmount:e},a);if(l<e)throw new Error(`Insufficient funds to create Coin ${n} with amount ${e}`);i.length>1&&r.mergeCoins(i[0].coinObjectId,i.slice(1).map(c=>c.coinObjectId));const[u]=r.splitCoins(i[0].coinObjectId,[e]);o=u}return o}async function createMctpFromSuiMoveCalls$1(e,t,n,a,r,s,o){const[i,l]=await Promise.all([fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_STATE,s),e.hasAuction?fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE,s):null]),u=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);let c,p,f;if(e.fromToken.contract===e.mctpInputContract)c=new Transaction,p=await resolveInputCoin$1(u,t,e.mctpInputContract,s,c,o==null?void 0:o.inputCoin);else{const{tx:b,outCoin:g,whFeeCoin:h}=await getSwapSui$1({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:a,inputCoin:o==null?void 0:o.inputCoin,transaction:void 0});c=Transaction.from(b),p=g,f=h?{result:h}:null}e.hasAuction?await addInitOrderMoveCalls$1(e,t,n,a,i,l,s,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:c}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls$1(e,t,n,i,s,{inputCoin:{result:p},builtTransaction:c}):await addBridgeWithFeeMoveCalls$1(e,t,n,i,r,s,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:c});const y=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);c.moveCall({package:i,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[c.pure.u64(y),c.object(e.fromToken.verifiedAddress),c.pure.vector("u8",m)]});try{let b;a?b=nativeAddressToHexString$1(a,getWormholeChainIdByName$1(e.toChain)):b=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),c.moveCall({package:addresses_default$1.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[c.pure.address(b),c.pure.u8(e.referrerBps||0)]})}catch(b){console.error("Failed to log referrer",b)}return c}async function addBridgeWithFeeMoveCalls$1(e,t,n,a,r,s,o){return addBridgeWithFeeMoveCalls2({swapperAddress:t,destinationAddress:n,toChain:e.toChain,minMiddleAmount:e.minMiddleAmount,mctpPackageId:a,mctpInputContract:e.mctpInputContract,gasDrop:e.gasDrop,redeemRelayerFee:e.redeemRelayerFee,mctpVerifiedInputAddress:e.mctpVerifiedInputAddress,mctpInputTreasury:e.mctpInputTreasury,bridgeFee:e.bridgeFee,suiClient:s,options:o})}async function addBridgeLockedFeeMoveCalls$1(e,t,n,a,r,s){const o=getWormholeChainIdByName$1(e.toChain),i=(s==null?void 0:s.builtTransaction)??new Transaction,l=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),u=await resolveInputCoin$1(l,t,e.mctpInputContract,r,i,s==null?void 0:s.inputCoin),c=nativeAddressToHexString$1(n,o),p=getCCTPDomain$1(e.toChain),f=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),y=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),[m]=i.moveCall({package:a,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[u,i.pure.u64(l),i.pure.address(c),i.pure.u32(p),i.pure.u64(f),i.pure.u64(y)]}),[b,g]=i.moveCall({package:a,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object(e.mctpVerifiedInputAddress),m]}),[h,T]=i.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_locked_fee::CircleAuth`],arguments:[g,i.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object("0x403"),i.object(e.mctpInputTreasury)]});return i.moveCall({package:a,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),i.object(e.mctpVerifiedInputAddress),b,T]}),i}async function addInitOrderMoveCalls$1(e,t,n,a,r,s,o,i){const l=getWormholeChainIdByName$1(e.toChain),u=(i==null?void 0:i.builtTransaction)??new Transaction,c=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),[p]=await Promise.all([resolveInputCoin$1(c,t,e.mctpInputContract,o,u,i==null?void 0:i.inputCoin),assertArgumentIsImmutable$1({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},o)]),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,e.toToken.wChainId),y=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString$1(n,l),b=getCCTPDomain$1(e.toChain),g=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),h=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),T=BigInt(e.deadline64);let w;a?w=nativeAddressToHexString$1(a,l):w=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const A=[u.object(e.mctpVerifiedInputAddress),u.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID$1),u.pure.address(t),p,u.pure.address(m),u.pure.u16(l),u.pure.address(f),u.pure.u64(y),u.pure.u64(g),u.pure.u64(h),u.pure.u64(T),u.pure.address(w),u.pure.u8(e.referrerBps)],[S]=u.moveCall({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:A}),[P]=u.moveCall({package:s,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[u.object(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE),S]}),[O]=u.moveCall({package:r,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...A.slice(1),u.pure.u32(b),u.pure.u64(c)]}),[R,$]=u.moveCall({package:r,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[u.object(addresses_default$1.SUI_MCTP_STATE),u.object(addresses_default$1.SUI_CCTP_CORE_STATE),u.object(e.mctpVerifiedInputAddress),O,P]}),[D,C]=u.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::init_order::CircleAuth`],arguments:[$,u.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),u.object(addresses_default$1.SUI_CCTP_CORE_STATE),u.object("0x403"),u.object(e.mctpInputTreasury)]}),[v]=u.moveCall({package:r,module:"init_order",function:"publish_init_order",arguments:[u.object(addresses_default$1.SUI_MCTP_STATE),R,C]});return await addPublishWormholeMessage$1(u,v,o,BigInt(e.bridgeFee),t,i==null?void 0:i.whFeeCoin),u}async function addPublishWormholeMessage$1(e,t,n,a,r,s){let o;if(s!=null&&s.result)o=s.result;else if(s!=null&&s.objectId)o=e.object(s.objectId);else if(a>BigInt(0)){const{coins:i,sum:l}=await fetchAllCoins$1({walletAddress:r,coinType:SUI_TYPE_ARG,coinAmount:a},n);if(l<a)throw new Error("Insufficient funds to pay Wormhole message fee");i.length>1&&e.mergeCoins(i[0].coinObjectId,i.slice(1).map(c=>c.coinObjectId));const[u]=e.splitCoins(i[0].coinObjectId,[a]);o=u}else{const[i]=e.splitCoins(e.gas,[e.pure.u64(0)]);o=i}return e.moveCall({package:addresses_default$1.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default$1.SUI_WORMHOLE_STATE),o,t,e.object(SUI_CLOCK_OBJECT_ID)]}),e}async function addBridgeWithFeeMoveCalls2(e){const{swapperAddress:t,destinationAddress:n,mctpPackageId:a,suiClient:r,options:s}=e,o=getWormholeChainIdByName$1(e.toChain),i=(s==null?void 0:s.builtTransaction)??new Transaction,l=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),u=await resolveInputCoin$1(l,t,e.mctpInputContract,r,i,s==null?void 0:s.inputCoin),c=MCTP_PAYLOAD_TYPE_DEFAULT$1,p=nativeAddressToHexString$1(n,o),f=getCCTPDomain$1(e.toChain),y=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),m=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),b=Uint8Array.from([]),[g]=i.moveCall({package:a,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[i.pure.u8(c),u,i.pure.u64(l),i.pure.address(p),i.pure.u32(f),i.pure.u64(y),i.pure.u64(m),i.pure.vector("u8",b)]}),[h,T]=i.moveCall({package:a,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object(e.mctpVerifiedInputAddress),g]}),[w,A]=i.moveCall({package:addresses_default$1.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_with_fee::CircleAuth`],arguments:[T,i.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object("0x403"),i.object(e.mctpInputTreasury)]}),[S]=i.moveCall({package:a,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),h,A]});return await addPublishWormholeMessage$1(i,S,r,BigInt(e.bridgeFee),t,s==null?void 0:s.whFeeCoin),i}async function createSwapFromSuiMoveCalls$1(e,t,n,a,r,s,o){const i=getQuoteSuitableReferrerAddress$1(e,a);if(e.toChain==="hypercore")throw e.hyperCoreParams?new Error("USDC permit signature is required for this quote"):new Error("HyperCore parameters are required for this quote");if(e.type==="MCTP")return createMctpFromSuiMoveCalls$1(e,t,n,i,r,s,o);throw new Error("Unsupported quote type from Sui chain")}function base(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let u=0;u<t.length;u++)t[u]=255;for(let u=0;u<e.length;u++){const c=e.charAt(u),p=c.charCodeAt(0);if(t[p]!==255)throw new TypeError(c+" is ambiguous");t[p]=u}const n=e.length,a=e.charAt(0),r=Math.log(n)/Math.log(256),s=Math.log(256)/Math.log(n);function o(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";let c=0,p=0,f=0;const y=u.length;for(;f!==y&&u[f]===0;)f++,c++;const m=(y-f)*s+1>>>0,b=new Uint8Array(m);for(;f!==y;){let T=u[f],w=0;for(let A=m-1;(T!==0||w<p)&&A!==-1;A--,w++)T+=256*b[A]>>>0,b[A]=T%n>>>0,T=T/n>>>0;if(T!==0)throw new Error("Non-zero carry");p=w,f++}let g=m-p;for(;g!==m&&b[g]===0;)g++;let h=a.repeat(c);for(;g<m;++g)h+=e.charAt(b[g]);return h}function i(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;let c=0,p=0,f=0;for(;u[c]===a;)p++,c++;const y=(u.length-c)*r+1>>>0,m=new Uint8Array(y);for(;c<u.length;){const T=u.charCodeAt(c);if(T>255)return;let w=t[T];if(w===255)return;let A=0;for(let S=y-1;(w!==0||A<f)&&S!==-1;S--,A++)w+=n*m[S]>>>0,m[S]=w%256>>>0,w=w/256>>>0;if(w!==0)throw new Error("Non-zero carry");f=A,c++}let b=y-f;for(;b!==y&&m[b]===0;)b++;const g=new Uint8Array(p+(y-b));let h=p;for(;b!==y;)g[h++]=m[b++];return g}function l(u){const c=i(u);if(c)return c;throw new Error("Non-base"+n+" character")}return{encode:o,decodeUnsafe:i,decode:l}}var ALPHABET="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base(ALPHABET);var addresses_default={MAYAN_FORWARDER_CONTRACT:"0x076baB2Bf1aa0a06F47BD32245527f6D84d62Fd1",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"92peaC8g5ANAxpK2aCfLTC12JgPncRKCGULQNB2DMvRH",FEE_MANAGER_PROGRAM_ID:"EyQnmCoLDaFDuNdGYJuYNjFPorohwPuvUzhewg9nGej1",WORMHOLE_PROGRAM_ID:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE:"8fVCtaFqfEAtGtqcoVyawy1Mytj461T4Ti4YjHZqfF47",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",SUI_CCTP_CORE_PACKAGE_ID:"0x08d87d37ba49e785dde270a83f8e979605b03dc552b5548f26fdf2f49bf7ed1b",SUI_CCTP_CORE_STATE:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",SUI_CCTP_TOKEN_PACKAGE_ID:"0x2aa6c5d56376c371f88a6cc42e852824994993cb9bab8d3e6450cbe3cb32b94e",SUI_CCTP_TOKEN_STATE:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",SUI_WORMHOLE_PACKAGE_ID:"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",SUI_WORMHOLE_STATE:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",SUI_LOGGER_PACKAGE_ID:"0x05680e9030c147b413a489f7891273acc221d49bd061c433e5771bc170fc37ac",EXPLORER_URL:"https://testnet-explorer-api.mayan.finance/v3",PRICE_URL:"https://testnet-price-api.mayan.finance/v3",RELAYER_URL:"https://testnet-relayer-api.mayan.finance/v3"};function nativeAddressToHexString(e,t){if(t===1)return web3.zeroPadValue(new web3.PublicKey(e).toBytes(),32);if(t===chains.ethereum||t===chains.base||t===chains.monad)return web3.zeroPadValue(e,32);throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array(e){return new Uint8Array(web3.bufferPolyfill.Buffer.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress(e,t,n=!1,a=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),r=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!web3.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[s]=web3.PublicKey.findProgramAddressSync([t.toBuffer(),a.toBuffer(),e.toBuffer()],r);return s}function getAmountOfFractionalAmount(e,t){if(e==null)throw new Error("getAmountOfFractionalAmount: Amount is null or undefined");if(typeof e!="string"&&typeof e!="number")throw new Error("getAmountOfFractionalAmount: Amount is not a string or number");if(typeof e=="string"&&e.length===0)throw new Error("getAmountOfFractionalAmount: Amount is empty");if(!Number.isFinite(Number(e)))throw new Error("getAmountOfFractionalAmount: Amount is not a number");const n=Math.min(8,Number(t)),a=Number(e).toFixed(n+1),r=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),s=a.match(r);if(!s)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=s[0];return units.parseUnits(o,Number(t))}var chains={solana:1,ethereum:10002,base:10004,monad:48,sui:21};function getWormholeChainIdByName(e){return chains[e]}var evmChainIdMap={11155111:10002,84532:10004,10143:48};function getWormholeChainIdById(e){return evmChainIdMap[e]}var sdkVersion=[10,5,0];function getSdkVersion(){return sdkVersion.join("_")}function getGasDecimal(e){return e==="solana"?9:18}function getGasDecimalsInSolana(e){return e==="solana"?9:8}var MAX_U64=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob(e){if(e<BigInt(0)||e>MAX_U64)throw new Error(`Invalid u64: ${e}`);const t=web3.bufferPolyfill.Buffer.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit={value:BigInt(0),deadline:0,v:0,r:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress(e,t){return null}var MCTP_PAYLOAD_TYPE_DEFAULT=1,MCTP_INIT_ORDER_PAYLOAD_ID=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT=1,FAST_MCTP_PAYLOAD_TYPE_ORDER=3;function toQueryString(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function check5xxError(e){if(e.status.toString().startsWith("5")){let t;try{const n=await e.json();(n!=null&&n.code||n!=null&&n.statusCode)&&(n!=null&&n.message||n!=null&&n.msg)&&(t={code:(n==null?void 0:n.code)||(n==null?void 0:n.statusCode),message:(n==null?void 0:n.message)||(n==null?void 0:n.msg)})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0}){const{gasDrop:n,referrerBps:a}=e;let r=e.slippageBps;r!=="auto"&&!Number.isFinite(r)&&(r=e.slippage*100);const o={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0},solanaProgram:addresses_default.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:r,referrer:e.referrer,referrerBps:Number.isFinite(a)?a:void 0,gasDrop:Number.isFinite(n)?n:void 0,sdkVersion:getSdkVersion()},i=`${addresses_default.PRICE_URL}/quote?`,l=toQueryString(o);return i+l}async function getSuggestedRelayer(){const e=await browserPonyfill.o(`${addresses_default.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana(e){const t=toQueryString({...e,sdkVersion:getSdkVersion()}),n=await browserPonyfill.o(`${addresses_default.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError(n);const a=await n.json();if(n.status!==200&&n.status!==201)throw a;return a}async function getSwapSui(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion()}),n=`${addresses_default.PRICE_URL}/get-swap/sui`,a=await browserPonyfill.o(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}var MayanSwapArtifact_default={abi:[{inputs:[{internalType:"address",name:"_tokenBridge",type:"address"},{internalType:"address",name:"_weth",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"Redeemed",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"tokenAddr",type:"bytes32"},{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"sourceAddr",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bool",name:"unwrapRedeem",type:"bool"},{internalType:"bool",name:"unwrapRefund",type:"bool"}],internalType:"struct MayanStructs.Swap",name:"s",type:"tuple"}],name:"encodeSwap",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"getWeth",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRedeemPayload",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint64",name:"relayerFee",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanStructs.Redeem",name:"r",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeemAndUnwrap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"swap",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"sweepEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"}],name:"wrapAndSwapETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}]},MayanForwarderArtifact_default={abi:[{inputs:[{internalType:"address",name:"_guardian",type:"address"},{internalType:"address[]",name:"_swapProtocols",type:"address[]"},{internalType:"address[]",name:"_mayanProtocols",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"UnsupportedProtocol",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedEth",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SwapAndForwarded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenIn",type:"address"},{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedEth",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mayanProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setMayanProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setSwapProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}]},MayanCircleArtifact_default={abi:[{inputs:[{internalType:"address",name:"_cctpTokenMessenger",type:"address"},{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerAlreadySet",type:"error"},{inputs:[],name:"CallerNotSet",type:"error"},{inputs:[],name:"CctpReceiveFailed",type:"error"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DomainAlreadySet",type:"error"},{inputs:[],name:"DomainNotSet",type:"error"},{inputs:[],name:"EmitterAlreadySet",type:"error"},{inputs:[],name:"EthTransferFailed",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidAmountOut",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"InvalidDestAddr",type:"error"},{inputs:[],name:"InvalidDomain",type:"error"},{inputs:[],name:"InvalidEmitter",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidMintRecipient",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidOrder",type:"error"},{inputs:[],name:"InvalidPayload",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"InvalidRedeemFee",type:"error"},{inputs:[],name:"InvalidReferrerFee",type:"error"},{inputs:[],name:"MintRecipientAlreadySet",type:"error"},{inputs:[],name:"MintRecipientNotSet",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderRefunded",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes",name:"customPayload",type:"bytes"}],name:"bridgeWithFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint256",name:"redeemFee",type:"uint256"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],name:"bridgeWithLockedFee",outputs:[{internalType:"uint64",name:"cctpNonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cctpTokenMessenger",outputs:[{internalType:"contract ITokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"chainIdToEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"params",type:"tuple"}],name:"createOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"domainToCaller",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"feeStorage",outputs:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"redeemFee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"driver",type:"bytes32"}],internalType:"struct MayanCircle.FulfillParams",name:"params",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"}],name:"fulfillOrder",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getDomain",outputs:[{internalType:"uint32",name:"domain",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"keyToMintRecipient",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"burnAmount",type:"uint64"},{internalType:"bytes32",name:"burnToken",type:"bytes32"},{internalType:"bytes32",name:"customPayload",type:"bytes32"}],internalType:"struct MayanCircle.BridgeWithFeeParams",name:"bridgeParams",type:"tuple"}],name:"redeemWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"redeemWithLockedFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"cctpNonce",type:"uint32"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"refineFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"orderParams",type:"tuple"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"}],internalType:"struct MayanCircle.ExtraParams",name:"extraParams",type:"tuple"}],name:"refund",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"setDomain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"caller",type:"bytes32"}],name:"setDomainCaller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"emitter",type:"bytes32"}],name:"setEmitter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"}],name:"setMintRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"}],name:"unlockFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm1",type:"bytes"},{internalType:"bytes",name:"encodedVm2",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],internalType:"struct MayanCircle.UnlockRefinedFeeMsg",name:"refinedMsg",type:"tuple"}],name:"unlockFeeRefined",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]},CCTP_TOKEN_DECIMALS=6;function getCCTPDomain(e){switch(e){case"ethereum":return 0;case"avalanche":return 1;case"optimism":return 2;case"arbitrum":return 3;case"solana":return 5;case"base":return 6;case"polygon":return 7;case"sui":return 8;case"unichain":return 10;case"linea":return 11;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs(e,t){const n=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),a=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),[r]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("message_transmitter")],n),[s]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("sender_authority")],a),[o]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("local_token"),e.toBytes()],a),[i]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("token_messenger")],a),[l]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("token_minter")],a),u=getCCTPDomain(t),[c]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("remote_token_messenger"),web3.bufferPolyfill.Buffer.from(u.toString())],a),[p]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("__event_authority")],n),[f]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("__event_authority")],a);return{messageTransmitter:r,senderAuthority:s,remoteTokenMessengerKey:c,tokenMessenger:i,tokenMinter:l,eventAuthToken:f,eventAuthCore:p,localToken:o}}function getEvmMctpBridgeParams(e,t,n,a){const r=getWormholeChainIdById(Number(n)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${s} !== ${r}`);const i=e.cheaperChain===e.fromChain,l=nativeAddressToHexString(t,o),u=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),p=BigInt(e.effectiveAmountIn64),f=getCCTPDomain(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const y=e.mctpMayanContract;if(e.toChain==="solana"&&i)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));return i&&(m=BigInt(0)),{lockFee:i,tokenIn:e.mctpInputContract,amountIn:p,redeemFee:u,gasDrop:c,destAddr:l,destDomain:f,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",bridgeFee:m,contractAddress:y}}function getEvmMctpBridgeTxPayload(e,t,n,a){const r=getEvmMctpBridgeParams(e,t,n),{contractAddress:s,tokenIn:o,amountIn:i,destAddr:l,lockFee:u,redeemFee:c,gasDrop:p,destDomain:f,customPayload:y,payloadType:m,bridgeFee:b}=r,g=new contract.Contract(s,MayanCircleArtifact_default.abi);let h,T;return u?h=g.interface.encodeFunctionData("bridgeWithLockedFee",[o,i,p,c,f,l]):h=g.interface.encodeFunctionData("bridgeWithFee",[o,i,c,p,l,f,m,y]),T=contract.toBeHex(b),{to:s,data:h,value:T,_params:r}}function getEvmMctpCreateOrderParams(e,t,n,a){const r=getWormholeChainIdById(Number(a)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${r}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.mctpMayanContract,l=nativeAddressToHexString(t,o);let u;n?u=nativeAddressToHexString(n,o):u=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),p=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8));let f=BigInt(e.effectiveAmountIn64);const y=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:f,gasDrop:p,destAddr:l,destChain:o,tokenOut:b,minAmountOut:y,deadline:m,redeemFee:c,referrerAddr:u,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain)),contractAddress:i}}function getEvmMctpCreateOrderTxPayload(e,t,n,a){const r=getEvmMctpCreateOrderParams(e,t,n,a),{contractAddress:s,params:o,bridgeFee:i}=r,u=new contract.Contract(s,MayanCircleArtifact_default.abi).interface.encodeFunctionData("createOrder",[o]),c=contract.toBeHex(i);return{to:s,data:u,value:c,_params:r}}function getMctpFromEvmTxPayload(e,t,n,a,r,s){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit,i=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),l=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));let u=contract.toBeHex(l);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const c=getEvmMctpCreateOrderTxPayload(e,t,n,a),p="forwardERC20",f=[e.fromToken.contract,c._params.params.amountIn,o,c._params.contractAddress,c.data];return{data:i.interface.encodeFunctionData(p,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const c=getEvmMctpBridgeTxPayload(e,t,a),p="forwardERC20",f=[e.fromToken.contract,c._params.amountIn,o,c._params.contractAddress,c.data];return{data:i.interface.encodeFunctionData(p,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:p,params:f}}}else{const{minMiddleAmount:c,evmSwapRouterAddress:p,evmSwapRouterCalldata:f}=e;if(!c||!p||!f)throw new Error("MCTP swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const y=getEvmMctpCreateOrderTxPayload(e,t,n,a),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.params.amountIn;if(b<=l)throw new Error("Amount in is less than bridge fee");l!==BigInt(0)&&(b-=l),u=contract.toBeHex(y._params.params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(g,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(b,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}else{const y=getEvmMctpBridgeTxPayload(e,t,a),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=y._params.amountIn;if(b<=l)throw new Error("Amount in is less than bridge fee");l!==BigInt(0)&&(b-=l),u=contract.toBeHex(y._params.amountIn);const g="swapAndForwardEth",h=[b,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(g,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:g,params:h}}}else{const b="swapAndForwardERC20",g=[e.fromToken.contract,y._params.amountIn,o,p,f,e.mctpInputContract,m,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(b,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(u),chainId:a,_forwarder:{method:b,params:g}}}}}}var MayanSwiftArtifact_default={abi:[{inputs:[{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"_solanaEmitter",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DuplicateOrder",type:"error"},{inputs:[],name:"FeesTooHigh",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidAuctionMode",type:"error"},{inputs:[],name:"InvalidBpsFee",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidDestChain",type:"error"},{inputs:[],name:"InvalidEmitterAddress",type:"error"},{inputs:[],name:"InvalidEmitterChain",type:"error"},{inputs:[],name:"InvalidEvmAddr",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidOrderHash",type:"error"},{inputs:[],name:"InvalidOrderStatus",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidSrcChain",type:"error"},{inputs:[],name:"InvalidWormholeFee",type:"error"},{inputs:[],name:"OrderNotExists",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"SmallAmountIn",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"OrderCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderRefunded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderUnlocked",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"canceler",type:"bytes32"}],name:"cancelOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithEth",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"signedOrderHash",type:"bytes"}],name:"createOrderWithSig",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithToken",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillSimple",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"enum MayanSwift.Status",name:"status",type:"uint8"},{internalType:"uint64",name:"amountIn",type:"uint64"},{internalType:"uint16",name:"destChainId",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseFulfillPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"driver",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"}],internalType:"struct MayanSwift.FulfillMsg",name:"fulfillMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRefundPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"canceler",type:"bytes32"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwift.RefundMsg",name:"refundMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUnlockPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct MayanSwift.UnlockMsg",name:"unlockMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"postBatch",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"refundOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"solanaEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"unlockMsgs",outputs:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockSingle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function createAssociatedTokenAccountInstruction(e,t,n,a,r=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),s=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new web3.TransactionInstruction({keys:o,programId:s,data:web3.bufferPolyfill.Buffer.alloc(0)})}var TOKEN_ACCOUNT_LEN=165;async function createInitializeRandomTokenAccountInstructions(e,t,n,a,r,s=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const o=[],i=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN);return o.push(web3.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:r.publicKey,lamports:i,space:TOKEN_ACCOUNT_LEN,programId:s})),o.push(new web3.TransactionInstruction({keys:[{pubkey:r.publicKey,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:s,data:web3.bufferPolyfill.Buffer.from([1])})),o}var ApproveInstructionData=web3.struct([web3.u8("instruction"),web3.blob(8,"amount")]);function createApproveInstruction(e,t,n,a,r=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],o=web3.bufferPolyfill.Buffer.alloc(ApproveInstructionData.span);return ApproveInstructionData.encode({instruction:4,amount:getSafeU64Blob(a)},o),new web3.TransactionInstruction({keys:s,programId:r,data:o})}var SyncNativeInstructionData=web3.struct([web3.u8("instruction")]);function createSyncNativeInstruction(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],n=web3.bufferPolyfill.Buffer.alloc(SyncNativeInstructionData.span);return SyncNativeInstructionData.encode({instruction:17},n),new web3.TransactionInstruction({keys:t,programId:new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),data:n})}web3.struct([web3.u8("instruction")]);var SplTransferInstructionData=web3.struct([web3.u8("instruction"),web3.blob(8,"amount")]);function createSplTransferInstruction(e,t,n,a,r=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],o=web3.bufferPolyfill.Buffer.alloc(SplTransferInstructionData.span);return SplTransferInstructionData.encode({instruction:3,amount:getSafeU64Blob(a)},o),new web3.TransactionInstruction({keys:s,programId:r,data:o})}var solMint=new web3.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo(e){return new web3.TransactionInstruction({programId:new web3.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new web3.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:web3.bufferPolyfill.Buffer.from(e.data,"base64")})}async function getAddressLookupTableAccounts(e,t){return(await t.getMultipleAccountsInfo(e.map(a=>new web3.PublicKey(a)))).reduce((a,r,s)=>{const o=e[s];if(r){const i=new web3.AddressLookupTableAccount({key:new web3.PublicKey(o),state:web3.AddressLookupTableAccount.deserialize(r.data)});a.push(i)}return a},new Array)}function decentralizeClientSwapInstructions(e,t){const n=deserializeInstructionInfo(e.swapInstruction),a=e.cleanupInstruction?deserializeInstructionInfo(e.cleanupInstruction):null,r=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo):[],s=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo):[];return{swapInstruction:n,cleanupInstruction:a,computeBudgetInstructions:r,setupInstructions:s,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData(e){let t=`global:${e}`;return web3.bufferPolyfill.Buffer.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer(){let e;try{const t=await getSuggestedRelayer();e=new web3.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=web3.SystemProgram.programId}return e}function validateJupCleanupInstruction(e){if(e){if(!e.programId.equals(new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!e.programId.equals(new web3.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid cleanup instruction:: programId");if(Uint8Array.from(e.data).length!==1)throw new Error("Invalid cleanup instruction:: data");if(Uint8Array.from(e.data)[0]!==9)throw new Error("Invalid cleanup instruction:: data")}}function validateJupSetupInstructions(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(n=>{if(!n.programId.equals(new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))&&!n.programId.equals(web3.SystemProgram.programId)&&!n.programId.equals(new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!n.programId.equals(new web3.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(n.programId.equals(new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(n.data).length===1){if(Uint8Array.from(n.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(n.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(n.programId.equals(web3.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const a=getAssociatedTokenAddress(solMint,t,!0);if(n.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!n.keys[1].pubkey.equals(a))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(n.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction(e,t){if(!e.programId.equals(new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4")))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData("shared_accounts_route").toString("hex")){if(!e.keys[6].pubkey.equals(t))throw new Error("Invalid swap instruction shared_accounts_route:: dest account")}else if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData("route").toString("hex")){if(!e.keys[4].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else throw new Error("Invalid swap instruction:: ix id")}function validateJupComputeBudgetInstructions(e){e.forEach(t=>{if(!t.programId.equals(web3.ComputeBudgetProgram.programId))throw new Error("Invalid compute budget instruction:: programId");if(Uint8Array.from(t.data)[0]===3&&t.data.readBigUInt64LE(1)>100000000n)throw new Error("Invalid compute budget instruction:: to high tx fee")})}function validateJupSwap(e,t,n){validateJupComputeBudgetInstructions(e.computeBudgetInstructions),validateJupSetupInstructions(e.setupInstructions,n),validateJupSwapInstruction(e.swapInstruction,t),validateJupCleanupInstruction(e.cleanupInstruction)}function createTransferAllAndCloseInstruction(e,t,n,a,r,s=new web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new web3.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}],programId:new web3.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData("transfer_all_and_close")})}function getWormholePDAs(e){const t=new web3.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),n=new web3.PublicKey(e),[a]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("Bridge")],t),[r]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("emitter")],n),[s]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("Sequence"),r.toBuffer()],t),[o]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("fee_collector")],t);return{bridgeConfig:a,sequenceKey:s,feeCollector:o,emitter:r}}var MCTPBridgeWithFeeLayout=web3.struct([web3.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction(e,t,n,a,r){const s=new web3.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),o=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),l=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),u=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),c=new web3.PublicKey(a),p=new web3.PublicKey(n),f=getAssociatedTokenAddress(p,e,!0);let y;r&&r>BigInt(0)?y=getAssociatedTokenAddress(p,c,!1):y=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs(p,t),b=getWormholePDAs(addresses_default.MCTP_PROGRAM_ID),g=web3.Keypair.generate(),h=web3.Keypair.generate(),T=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!0},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],w=web3.bufferPolyfill.Buffer.alloc(MCTPBridgeWithFeeLayout.span);return MCTPBridgeWithFeeLayout.encode({instruction:getAnchorInstructionData("bridge_with_fee")},w),{instruction:new web3.TransactionInstruction({keys:T,data:w,programId:u}),signers:[g,h]}}var MctpBridgeLockFeeLayout=web3.struct([web3.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction(e,t,n,a,r){const s=[],o=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID),l=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),u=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),c=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),p=new web3.PublicKey(a),f=new web3.PublicKey(n),y=getAssociatedTokenAddress(f,e,!0),m=getCCTPBridgePDAs(f,t),b=web3.Keypair.generate(),[g]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("LOCKED_FEE"),f.toBuffer(),b.publicKey.toBytes()],c);let h;r&&r>BigInt(0)?h=getAssociatedTokenAddress(f,p,!1):h=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const T=getAssociatedTokenAddress(f,g,!0);s.push(createAssociatedTokenAccountInstruction(p,T,g,f));const w=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:m.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:m.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:m.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:m.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:m.localToken,isWritable:!0,isSigner:!1},{pubkey:m.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:m.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=web3.bufferPolyfill.Buffer.alloc(MctpBridgeLockFeeLayout.span);MctpBridgeLockFeeLayout.encode({instruction:getAnchorInstructionData("bridge_locked_fee")},A);const S=new web3.TransactionInstruction({keys:w,data:A,programId:c});return s.push(S),{instructions:s,signer:b}}var MctpInitSwapLayout=web3.struct([web3.blob(8,"instruction")]);function createMctpInitSwapInstruction(e,t,n,a,r){const s=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),o=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),i=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),l=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),u=new web3.PublicKey(a),c=new web3.PublicKey(n),p=getAssociatedTokenAddress(c,e,!0),f=getCCTPBridgePDAs(c,t),y=web3.Keypair.generate(),[m]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],l);let b;r&&r>BigInt(0)?b=getAssociatedTokenAddress(c,u,!1):b=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const g=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:y.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=web3.bufferPolyfill.Buffer.alloc(MctpInitSwapLayout.span);return MctpInitSwapLayout.encode({instruction:getAnchorInstructionData("create_order")},h),{instruction:new web3.TransactionInstruction({keys:g,data:h,programId:l}),signer:y}}var MctpBridgeLedgerLayout=web3.struct([web3.blob(8,"instruction"),web3.blob(32,"destAddress"),web3.blob(8,"amountInMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeRedeem"),web3.blob(8,"feeSolana"),web3.u16("destinationChain"),web3.blob(32,"keyRnd"),web3.u8("mode")]);function createMctpBridgeLedgerInstruction(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new web3.PublicKey(e.swapperAddress),n=new web3.PublicKey(e.mintAddress),a=getAssociatedTokenAddress(n,e.ledger,!0),r=getWormholeChainIdByName(e.toChain),s=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,r))),o=getSafeU64Blob(e.amountInMin64),i=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),l=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),u=getSafeU64Blob(e.feeSolana),c=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),p=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(c),isWritable:!1,isSigner:!1}],f=web3.bufferPolyfill.Buffer.alloc(MctpBridgeLedgerLayout.span);return MctpBridgeLedgerLayout.encode({instruction:getAnchorInstructionData("init_bridge_ledger"),destAddress:s,amountInMin:o,gasDrop:i,feeRedeem:l,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},f),new web3.TransactionInstruction({keys:p,data:f,programId:new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout=web3.struct([web3.blob(8,"instruction"),web3.blob(32,"destAddress"),web3.blob(8,"amountInMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeRedeem"),web3.blob(8,"feeSolana"),web3.u16("destinationChain"),web3.blob(32,"keyRnd"),web3.u8("mode"),web3.blob(32,"tokenOut"),web3.blob(8,"amountOutMin"),web3.blob(8,"deadline"),web3.blob(32,"refAddress"),web3.u8("feeRateRef")]);function createMctpSwapLedgerInstruction(e){const t=new web3.PublicKey(e.swapperAddress),n=new web3.PublicKey(e.mintAddress),a=getAssociatedTokenAddress(n,e.ledger,!0),r=getWormholeChainIdByName(e.toChain),s=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,r))),o=getSafeU64Blob(e.amountInMin64),i=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),l=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),u=getSafeU64Blob(e.feeSolana),c=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.tokenOut,r))),p=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),f=getSafeU64Blob(getAmountOfFractionalAmount(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),y=getSafeU64Blob(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=web3.bufferPolyfill.Buffer.alloc(MctpSwapLedgerLayout.span);return MctpSwapLedgerLayout.encode({instruction:getAnchorInstructionData("init_order_ledger"),destAddress:s,amountInMin:o,gasDrop:i,feeRedeem:l,feeSolana:u,destinationChain:r,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:c,refAddress:p,amountOutMin:f,deadline:y,feeRateRef:e.feeRateRef},b),new web3.TransactionInstruction({keys:m,data:b,programId:new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions(e,t,n,a,r,s={}){const o=(s==null?void 0:s.forceSkipCctpInstructions)||!1,i=(s==null?void 0:s.allowSwapperOffCurve)||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let l=[],u=[],c=[],p=[],f=[],y=[],m=[];const b=web3.Keypair.generate();let g=null;l.push(addresses_default.LOOKUP_TABLE);const h=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),T=new web3.PublicKey(t),w=web3.Keypair.generate(),A=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const S=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[P]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from(S),T.toBytes(),w.publicKey.toBytes()],h),O=getAssociatedTokenAddress(new web3.PublicKey(e.mctpInputContract),P,!0),R=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const C=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&u.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),u.push(createAssociatedTokenAccountInstruction(T,O,P,new web3.PublicKey(e.mctpInputContract))),u.push(createSplTransferInstruction(getAssociatedTokenAddress(new web3.PublicKey(e.mctpInputContract),T,i),O,T,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(u.push(createMctpSwapLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),!o){const{instruction:v,signer:N}=createMctpInitSwapInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(v),c.push(N)}}else if(u.push(createMctpBridgeLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:C,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:R,referrerAddress:a})),!o)if(R==="WITH_FEE"){const{instruction:v,signers:N}=createMctpBridgeWithFeeInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(v),c.push(...N)}else{const{instructions:v,signer:N}=createMctpBridgeLockFeeInstruction(P,e.toChain,e.mctpInputContract,t,C);u.push(...v),c.push(N)}}else{const C=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:P.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":R,fillMaxAccounts:(s==null?void 0:s.separateSwapTx)||!1,tpmTokenAccount:s!=null&&s.separateSwapTx?b.publicKey.toString():null}),v=decentralizeClientSwapInstructions(C);s!=null&&s.separateSwapTx&&C.maxAccountsFilled?(validateJupSwap(v,b.publicKey,T),m=await createInitializeRandomTokenAccountInstructions(r,T,new web3.PublicKey(e.mctpInputContract),T,b),y.push(...v.computeBudgetInstructions),v.setupInstructions&&y.push(...v.setupInstructions),y.push(v.swapInstruction),v.cleanupInstruction&&y.push(v.cleanupInstruction),f.push(...v.addressLookupTableAddresses),u.push(createAssociatedTokenAccountInstruction(T,O,P,new web3.PublicKey(e.mctpInputContract))),u.push(createTransferAllAndCloseInstruction(T,new web3.PublicKey(e.mctpInputContract),b.publicKey,O,T))):(validateJupSwap(v,O,T),u.push(...v.computeBudgetInstructions),v.setupInstructions&&u.push(...v.setupInstructions),u.push(v.swapInstruction),v.cleanupInstruction&&u.push(v.cleanupInstruction),l.push(...v.addressLookupTableAddresses));const N=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(u.push(createMctpSwapLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:a,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),y.length>0){const{instruction:W,signer:U}=createMctpInitSwapInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(W),c.push(U)}}else if(u.push(createMctpBridgeLedgerInstruction({ledger:P,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:w.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),mode:R,referrerAddress:a})),y.length>0)if(R==="WITH_FEE"){const{instruction:W,signers:U}=createMctpBridgeWithFeeInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(W),c.push(...U)}else{const{instructions:W,signer:U}=createMctpBridgeLockFeeInstruction(P,e.toChain,e.mctpInputContract,t,N);u.push(...W),c.push(U)}}const D=await getAddressLookupTableAccounts(l.concat(f),r);if(p=D.slice(0,l.length),y.length>0){const C=D.slice(l.length);g={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:C},createTmpTokenAccountIxs:m,tmpTokenAccount:b}}return{instructions:u,signers:c,lookupTables:p,swapMessageV0Params:g}}function createSwiftOrderHash(e,t,n,a,r){const o=web3.bufferPolyfill.Buffer.alloc(239);let i=0;const l=getWormholeChainIdByName(e.fromChain),u=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(t,l)));o.set(u,0),i+=32,o.writeUInt16BE(l,i),i+=2;const c=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.swiftInputContract,l),p=web3.bufferPolyfill.Buffer.from(hexToUint8Array(c));o.set(p,i),i+=32;const f=getWormholeChainIdByName(e.toChain),y=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(n,f)));o.set(y,i),i+=32,o.writeUInt16BE(f,i),i+=2;const m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,f),b=web3.bufferPolyfill.Buffer.from(hexToUint8Array(m));o.set(b,i),i+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.minAmountOut,Math.min(e.toToken.decimals,8)),i),i+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),i),i+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),i),i+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),i),i+=8,o.writeBigUInt64BE(BigInt(e.deadline64),i),i+=8;const g=a?web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(a,f))):web3.SystemProgram.programId.toBuffer();o.set(g,i),i+=32,o.writeUInt8(e.referrerBps,i),i+=1;const h=e.protocolBps;o.writeUInt8(h,i),i+=1,o.writeUInt8(e.swiftAuctionMode,i),i+=1;const T=web3.bufferPolyfill.Buffer.from(hexToUint8Array(r));if(o.set(T,i),i+=32,i!==239)throw new Error(`Invalid order data size: ${i}`);const w=web3.keccak256(o);return web3.bufferPolyfill.Buffer.from(hexToUint8Array(w))}var InitSwiftLayout=web3.struct([web3.blob(8,"instruction"),web3.blob(8,"amountInMin"),web3.u8("nativeInput"),web3.blob(8,"feeSubmit"),web3.blob(32,"destAddress"),web3.u16("destinationChain"),web3.blob(32,"tokenOut"),web3.blob(8,"amountOutMin"),web3.blob(8,"gasDrop"),web3.blob(8,"feeCancel"),web3.blob(8,"feeRefund"),web3.blob(8,"deadline"),web3.blob(32,"refAddress"),web3.u8("feeRateRef"),web3.u8("feeRateMayan"),web3.u8("auctionMode"),web3.blob(32,"randomKey")]);function createSwiftInitInstruction(e){const{quote:t}=e,n=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new web3.PublicKey(t.swiftInputContract),a=getWormholeChainIdByName(t.toChain);if(a!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${a} != ${t.toToken.wChainId}`);const r=[{pubkey:e.trader,isWritable:!1,isSigner:!0},{pubkey:e.relayer,isWritable:!0,isSigner:!0},{pubkey:e.state,isWritable:!0,isSigner:!1},{pubkey:e.stateAccount,isWritable:!0,isSigner:!1},{pubkey:e.relayerAccount,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],s=web3.bufferPolyfill.Buffer.alloc(InitSwiftLayout.span),o=e.referrerAddress?web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,a))):web3.SystemProgram.programId.toBuffer(),i=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout.encode({instruction:getAnchorInstructionData("init_order"),amountInMin:getSafeU64Blob(i),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob(BigInt(t.submitRelayerFee64)),destAddress:web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,a))),destinationChain:a,tokenOut:web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(t.toToken.contract,a))),amountOutMin:getSafeU64Blob(getAmountOfFractionalAmount(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob(getAmountOfFractionalAmount(t.gasDrop,Math.min(getGasDecimal(t.toChain),8))),feeCancel:getSafeU64Blob(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},s),new web3.TransactionInstruction({keys:r,data:s,programId:new web3.PublicKey(addresses_default.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions(e,t,n,a,r,s={}){if(e.type!=="SWIFT")throw new Error("Unsupported quote type for Swift: "+e.type);if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const o=s.allowSwapperOffCurve||!1;let i=[],l=[],u=[];u.push(addresses_default.LOOKUP_TABLE);let c=[],p=[],f=[];const y=web3.Keypair.generate();let m=null;const b=new web3.PublicKey(addresses_default.SWIFT_PROGRAM_ID),g=new web3.PublicKey(t),h=web3.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const T=BigInt(e.deadline64),w=createSwiftOrderHash(e,t,n,a,h.publicKey.toBuffer().toString("hex")),[A]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("STATE_SOURCE"),w],b),S=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new web3.PublicKey(e.swiftInputContract),P=getAssociatedTokenAddress(S,A,!0),O=e.gasless?new web3.PublicKey(e.relayer):g,R=BigInt(e.submitRelayerFee64)>0n?getAssociatedTokenAddress(S,O,!1):b;if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(createAssociatedTokenAccountInstruction(O,P,A,S)),e.swiftInputContract===providerJsonrpc.ZeroAddress?i.push(web3.SystemProgram.transfer({fromPubkey:g,toPubkey:P,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction(P)):i.push(createSplTransferInstruction(getAssociatedTokenAddress(S,g,o),P,g,BigInt(e.effectiveAmountIn64)));else{const D=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.swiftInputContract,userWallet:t,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.gasless?"SWIFT_GASLESS":"SWIFT",orderHash:`0x${w.toString("hex")}`,fillMaxAccounts:(s==null?void 0:s.separateSwapTx)||!1,tpmTokenAccount:s!=null&&s.separateSwapTx?y.publicKey.toString():null}),C=decentralizeClientSwapInstructions(D);s!=null&&s.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap(C,y.publicKey,g),f=await createInitializeRandomTokenAccountInstructions(r,O,S,g,y),p.push(...C.computeBudgetInstructions),C.setupInstructions&&p.push(...C.setupInstructions),p.push(C.swapInstruction),C.cleanupInstruction&&p.push(C.cleanupInstruction),c.push(...C.addressLookupTableAddresses),i.push(createAssociatedTokenAccountInstruction(O,P,A,S)),i.push(createTransferAllAndCloseInstruction(g,S,y.publicKey,P,O))):(i.push(...C.computeBudgetInstructions),C.setupInstructions&&i.push(...C.setupInstructions),i.push(C.swapInstruction),C.cleanupInstruction&&i.push(C.cleanupInstruction),u.push(...C.addressLookupTableAddresses))}i.push(createSwiftInitInstruction({quote:e,state:A,trader:g,stateAccount:P,randomKey:h.publicKey,relayerAccount:R,relayer:O,destinationAddress:n,deadline:T,referrerAddress:a}));const $=await getAddressLookupTableAccounts(u.concat(c),r);if(l=$.slice(0,u.length),p.length>0){const D=$.slice(u.length);m={messageV0:{payerKey:O,instructions:p,addressLookupTableAccounts:D},createTmpTokenAccountIxs:f,tmpTokenAccount:y}}return{instructions:i,signers:[],lookupTables:l,swapMessageV0Params:m}}var STATE_SIZE=420,SwapLayout=web3.struct([web3.u8("instruction"),web3.u8("stateNonce"),web3.blob(8,"amount"),web3.blob(8,"minAmountOut"),web3.blob(8,"deadline"),web3.blob(8,"feeSwap"),web3.blob(8,"feeReturn"),web3.blob(8,"feeCancel"),web3.blob(8,"gasDrop"),web3.u16("destinationChain"),web3.blob(32,"destinationAddress"),web3.u8("unwrapRedeem"),web3.u8("unwrapRefund"),web3.u8("mayanFeeNonce"),web3.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions(e,t,n,a,r,s={}){const o=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSolanaInstructions(e,t,n,o,r,s);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions(e,t,n,o,r,s);let i=[];const l=r??new web3.Connection("https://rpc.ankr.com/solana"),u=new web3.PublicKey(addresses_default.MAYAN_PROGRAM_ID),c=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),p=new web3.PublicKey(t),f=new web3.PublicKey(addresses_default.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let y;o?y=new web3.PublicKey(o):y=web3.SystemProgram.programId;const[m,b]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("MAYANFEE")],u),[g,h]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("REFERRERFEE"),y.toBuffer()],u),T=web3.Keypair.generate(),w=web3.Keypair.generate(),[A,S]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("V2STATE"),web3.bufferPolyfill.Buffer.from(T.publicKey.toBytes()),web3.bufferPolyfill.Buffer.from(w.publicKey.toBytes())],u),P=new web3.PublicKey(e.fromToken.mint),O=new web3.PublicKey(e.toToken.mint),R=getAssociatedTokenAddress(P,p),$=getAssociatedTokenAddress(P,A,!0),[[D,C],v,N]=await Promise.all([l.getMultipleAccountsInfo([R,$],"finalized"),l.getMinimumBalanceForRentExemption(STATE_SIZE),decideRelayer()]);(!D||D.data.length===0)&&i.push(createAssociatedTokenAccountInstruction(p,R,p,P)),(!C||C.data.length===0)&&i.push(createAssociatedTokenAccountInstruction(p,$,A,P)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(i.push(web3.SystemProgram.transfer({fromPubkey:p,toPubkey:R,lamports:BigInt(e.effectiveAmountIn64)})),i.push(createSyncNativeInstruction(R)));const W=BigInt(e.effectiveAmountIn64),U=web3.Keypair.generate();i.push(createApproveInstruction(R,U.publicKey,p,W)),i.push(web3.SystemProgram.transfer({fromPubkey:p,toPubkey:U.publicKey,lamports:v}));const L=[{pubkey:U.publicKey,isWritable:!1,isSigner:!0},{pubkey:T.publicKey,isWritable:!1,isSigner:!0},{pubkey:w.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:R,isWritable:!0,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:P,isWritable:!1,isSigner:!1},{pubkey:O,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:U.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:c,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],V=getWormholeChainIdByName(e.toChain);if(V===1){const k=await l.getAccountInfo(new web3.PublicKey(n));if(k&&k.owner&&k.owner.equals(c))throw new Error("Destination address is not about token account. It should be a owner address")}const X=web3.bufferPolyfill.Buffer.from(hexToUint8Array(nativeAddressToHexString(n,V))),Y=getAmountOfFractionalAmount(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount(e.swapRelayerFee,e.mintDecimals.from),q=getAmountOfFractionalAmount(e.redeemRelayerFee,e.mintDecimals.to),j=getAmountOfFractionalAmount(e.refundRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount(e.gasDrop,getGasDecimalsInSolana(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,d=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const _=BigInt(e.deadline64),I=web3.bufferPolyfill.Buffer.alloc(SwapLayout.span),M={instruction:101,stateNonce:S,amount:getSafeU64Blob(W),minAmountOut:getSafeU64Blob(Y),deadline:getSafeU64Blob(_),feeSwap:getSafeU64Blob(Z),feeReturn:getSafeU64Blob(q),feeCancel:getSafeU64Blob(j),gasDrop:getSafeU64Blob(Q),destinationChain:V,destinationAddress:X,unwrapRedeem:J?1:0,unwrapRefund:d?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout.encode(M,I);const E=new web3.TransactionInstruction({keys:L,data:I,programId:u});return i.push(E),{instructions:i,signers:[U,T,w],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams(e,t,n,a,r){const s=getWormholeChainIdById(Number(r)),o=getWormholeChainIdByName(e.fromChain),i=getWormholeChainIdByName(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==i)throw new Error(`Destination chain ID mismatch: ${i} != ${e.toToken.wChainId}`);const l=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const u=BigInt(e.deadline64),c=e.swiftInputContract,p=BigInt(e.effectiveAmountIn64);let f;a?f=nativeAddressToHexString(a,i):f=nativeAddressToHexString(web3.SystemProgram.programId.toString(),1);const y=nativeAddressToHexString(web3.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),1):nativeAddressToHexString(e.toToken.contract,i),b=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),h=nativeAddressToHexString(n,i),T={trader:nativeAddressToHexString(t,o),tokenOut:m,minAmountOut:b,gasDrop:g,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:u,destAddr:h,destChainId:i,referrerAddr:f,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:y};return{contractAddress:l,tokenIn:c,amountIn:p,order:T}}function getSwiftFromEvmTxPayload(e,t,n,a,r,s){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");r=Number(r);const o=ZeroPermit,i=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{tokenIn:l,amountIn:u,order:c,contractAddress:p}=getEvmSwiftParams(e,t,n,a,r);let f;const y=new contract.Contract(p,MayanSwiftArtifact_default.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?f=y.interface.encodeFunctionData("createOrderWithEth",[c]):f=y.interface.encodeFunctionData("createOrderWithToken",[l,u,c]);let m,b,g;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="forwardEth",b=[p,f],g=contract.toBeHex(u)):(m="forwardERC20",b=[l,u,o,p,f],g=contract.toBeHex(0));else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:w}=e;if(!e.minMiddleAmount||!T||!w)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,S=getAmountOfFractionalAmount(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[u,T,w,e.swiftInputContract,S,p,f],g=contract.toBeHex(u)):(m="swapAndForwardERC20",b=[A,u,o,T,w,e.swiftInputContract,S,p,f],g=contract.toBeHex(0))}return{data:i.interface.encodeFunctionData(m,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:g,chainId:r,_forwarder:{method:m,params:b}}}var ShuttleArtifact_default={abi:[{type:"function",name:"batchMaxApprove",inputs:[{name:"approvals",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initiate",inputs:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"overrideAmountIn",type:"uint256",internalType:"uint256"},{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"params",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"error",name:"ChainNotSupported",inputs:[{name:"chain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"DeadlineExpired",inputs:[{name:"blocktime",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"ExceedsMaxGasDropoff",inputs:[{name:"requested",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ExceedsMaxRelayingFee",inputs:[{name:"fee",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InsufficientInputAmount",inputs:[{name:"input",type:"uint256",internalType:"uint256"},{name:"minimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidAddress",inputs:[{name:"addr",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidOverrideAmount",inputs:[{name:"received",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapType",inputs:[{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapTypeForChain",inputs:[{name:"chain",type:"uint16",internalType:"uint16"},{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RelayingDisabledForChain",inputs:[]}]},shuttleConstants={FAST_MODE_FLAG:1,RELAY_REDEEM_MODE:2,EXACT_IN_FLAG:1,USDC_INPUT_TOKEN_TYPE:0,PRE_APPROVED_ACQUIRE_MODE:0,OUTPUT_USDC_MODE:0,OUTPUT_NATIVE_MODE:1,OUTPUT_OTHER_MODE:2};function writeBigIntTo16BytesBuffer(e){const t=(1n<<128n)-1n;if(e<0n||e>t)throw new RangeError("Value must fit in an unsigned 128-bit integer (0 <= value < 2^128)");const n=web3.bufferPolyfill.Buffer.alloc(16);for(let a=15;a>=0;a--)n[a]=Number(e&0xFFn),e>>=8n;return n}function getShuttleParams(e,t,n){const{shuttleParams:a}=e;if(!a)throw new Error("Swap layer params are missing in quote response");const r=getWormholeChainIdById(Number(n)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${s} !== ${r}`);let i=[];i.push(shuttleConstants.FAST_MODE_FLAG);const l=web3.bufferPolyfill.Buffer.alloc(8);l.writeBigUInt64BE(BigInt(a.maxLLFee));const u=l.subarray(2);i.push(...u);const c=web3.bufferPolyfill.Buffer.alloc(4);c.writeUInt32BE(a.fastTransferDeadline),i.push(...c),i.push(shuttleConstants.RELAY_REDEEM_MODE);const p=getAmountOfFractionalAmount(e.gasDrop,Math.min(6,getGasDecimal(e.toChain))),f=web3.bufferPolyfill.Buffer.alloc(8);f.writeBigUInt64BE(p);const y=f.subarray(4);i.push(...y);const m=web3.bufferPolyfill.Buffer.alloc(8);m.writeBigUInt64BE(BigInt(a.maxRelayingFee));const b=m.subarray(2);i.push(...b),i.push(shuttleConstants.EXACT_IN_FLAG),i.push(shuttleConstants.USDC_INPUT_TOKEN_TYPE);const g=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){i.push(...Array(8).fill(0));const T=web3.bufferPolyfill.Buffer.alloc(8);T.writeBigUInt64BE(g),i.push(...T)}else i.push(...Array(16).fill(0));if(i.push(shuttleConstants.PRE_APPROVED_ACQUIRE_MODE),a.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)i.push(shuttleConstants.OUTPUT_NATIVE_MODE);else{i.push(shuttleConstants.OUTPUT_OTHER_MODE);const S=web3.bufferPolyfill.Buffer.from(nativeAddressToHexString(e.toToken.contract,o).slice(2),"hex");i.push(...S)}const T=web3.bufferPolyfill.Buffer.alloc(4);T.writeUInt32BE(Number(BigInt(e.deadline64))),i.push(...T);const w=getAmountOfFractionalAmount(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){i.push(...Array(8).fill(0));const S=web3.bufferPolyfill.Buffer.alloc(8);S.writeBigUInt64BE(w),i.push(...S)}else{const S=writeBigIntTo16BytesBuffer(w);i.push(...S)}const A=web3.bufferPolyfill.Buffer.from(a.path.slice(2),"hex");i.push(...A)}else i.push(shuttleConstants.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString(t,o),destChainId:o,serializedParams:`0x${web3.bufferPolyfill.Buffer.from(i).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:g,bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain))}}function getShuttleFromEvmTxPayload(e,t,n,a){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const r=ZeroPermit,s=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{destAddr:o,destChainId:i,serializedParams:l,contractAddress:u,amountIn:c,bridgeFee:p}=getShuttleParams(e,t,n);let f;f=new contract.Contract(u,ShuttleArtifact_default.abi).interface.encodeFunctionData("initiate",[o,c,i,l]);let m,b,g;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",b=[e.shuttleInputContract,c,r,u,f],g=contract.toBeHex(p);else{const{evmSwapRouterAddress:T,evmSwapRouterCalldata:w}=e;if(!e.minMiddleAmount||!T||!w)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,S=getAmountOfFractionalAmount(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(m="swapAndForwardEth",b=[c,T,w,e.shuttleInputContract,S,u,f],g=contract.toBeHex(c)):(m="swapAndForwardERC20",b=[A,c,r,T,w,e.shuttleInputContract,S,u,f],g=contract.toBeHex(p))}return{data:s.interface.encodeFunctionData(m,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:g,chainId:n,_forwarder:{method:m,params:b}}}var MayanFastMctpArtifact_default={abi:[{type:"constructor",inputs:[{name:"_cctpTokenMessengerV2",type:"address",internalType:"address"},{name:"_feeManager",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"bridge",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"customPayload",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cctpTokenMessengerV2",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITokenMessengerV2"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createOrder",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"orderPayload",type:"tuple",internalType:"struct FastMCTP.OrderPayload",components:[{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"tokenOut",type:"bytes32",internalType:"bytes32"},{name:"amountOutMin",type:"uint64",internalType:"uint64"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"refundFee",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"referrerAddr",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"domainToCaller",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"feeManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"fulfillOrder",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"},{name:"swapProtocol",type:"address",internalType:"address"},{name:"swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"keyToMintRecipient",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"refund",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"rescueEth",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueRedeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDomainCallers",inputs:[{name:"domain",type:"uint32",internalType:"uint32"},{name:"caller",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeManager",inputs:[{name:"_feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMintRecipient",inputs:[{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"tokenIn",type:"address",internalType:"address"},{name:"mintRecipient",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPause",inputs:[{name:"_pause",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedMsgSenders",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedSwapProtocols",inputs:[{name:"protocol",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"whitelistedMsgSenders",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"whitelistedSwapProtocols",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OrderFulfilled",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OrderRefunded",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"CallerNotSet",inputs:[]},{type:"error",name:"CctpReceiveFailed",inputs:[]},{type:"error",name:"DeadlineViolation",inputs:[]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"InvalidAddress",inputs:[]},{type:"error",name:"InvalidAmountOut",inputs:[]},{type:"error",name:"InvalidGasDrop",inputs:[]},{type:"error",name:"InvalidMintRecipient",inputs:[]},{type:"error",name:"InvalidPayload",inputs:[]},{type:"error",name:"InvalidPayloadType",inputs:[]},{type:"error",name:"InvalidRedeemFee",inputs:[]},{type:"error",name:"InvalidRefundFee",inputs:[]},{type:"error",name:"MintRecipientNotSet",inputs:[]},{type:"error",name:"Paused",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnauthorizedMsgSender",inputs:[]},{type:"error",name:"UnauthorizedSwapProtocol",inputs:[]}]};function getEvmFastMctpBridgeParams(e,t,n,a,r){const s=getWormholeChainIdById(Number(a)),o=getWormholeChainIdByName(e.fromChain),i=getWormholeChainIdByName(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${o} !== ${s}`);const l=nativeAddressToHexString(t,i),u=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),p=BigInt(e.circleMaxFee64),f=BigInt(e.effectiveAmountIn64),y=getCCTPDomain(e.toChain);let m;if(n?m=nativeAddressToHexString(n,i):m=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:f,redeemFee:u,gasDrop:c,destAddr:l,destDomain:y,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:p,contractAddress:b}}function getEvmFastMctpBridgeTxPayload(e,t,n,a,r){const s=getEvmFastMctpBridgeParams(e,t,n,a),{contractAddress:o,tokenIn:i,amountIn:l,destAddr:u,redeemFee:c,gasDrop:p,circleMaxFee:f,referrerAddr:y,referrerBps:m,destDomain:b,customPayload:g,minFinalityThreshold:h,payloadType:T}=s,w=new contract.Contract(o,MayanFastMctpArtifact_default.abi);let A,S;return A=w.interface.encodeFunctionData("bridge",[i,l,c,f,p,u,b,y,m,T,h,g]),S=contract.toBeHex(0),{to:o,data:A,value:S,_params:s}}function getEvmFastMctpCreateOrderParams(e,t,n,a){const r=getWormholeChainIdById(Number(a)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==r)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${r}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.fastMctpMayanContract,l=nativeAddressToHexString(t,o);let u;n?u=nativeAddressToHexString(n,o):u=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),p=BigInt(e.refundRelayerFee64),f=BigInt(e.circleMaxFee64),y=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),m=getCCTPDomain(e.toChain),b=BigInt(e.effectiveAmountIn64),g=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),T=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:f,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER,destAddr:l,tokenOut:T,amountOutMin:g,gasDrop:y,redeemFee:c,refundFee:p,deadline:h,referrerAddr:u,referrerBps:e.referrerBps||0},contractAddress:i}}function getEvmFastMctpCreateOrderTxPayload(e,t,n,a){const r=getEvmFastMctpCreateOrderParams(e,t,n,a),{contractAddress:s,orderPayload:o,tokenIn:i,amountIn:l,circleMaxFee:u,destDomain:c,minFinalityThreshold:p}=r,y=new contract.Contract(s,MayanFastMctpArtifact_default.abi).interface.encodeFunctionData("createOrder",[i,l,u,c,p,o]),m=contract.toBeHex(0);return{to:s,data:y,value:m,_params:r}}function getFastMctpFromEvmTxPayload(e,t,n,a,r,s){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const o=r||ZeroPermit,i=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const l=getEvmFastMctpCreateOrderTxPayload(e,t,n,a),u="forwardERC20",c=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:i.interface.encodeFunctionData(u,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:c}}}else{const l=getEvmFastMctpBridgeTxPayload(e,t,n,a),u="forwardERC20",c=[e.fromToken.contract,l._params.amountIn,o,l._params.contractAddress,l.data];return{data:i.interface.encodeFunctionData(u,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:u,params:c}}}else{const{minMiddleAmount:l,evmSwapRouterAddress:u,evmSwapRouterCalldata:c}=e;if(!l||!u||!c)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload(e,t,n,a),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}else{const p=getEvmFastMctpBridgeTxPayload(e,t,n,a),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const y="swapAndForwardEth",m=[p._params.amountIn,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(p._params.amountIn),chainId:a,_forwarder:{method:y,params:m}}}else{const y="swapAndForwardERC20",m=[e.fromToken.contract,p._params.amountIn,o,u,c,e.fastMctpInputContract,f,p._params.contractAddress,p.data];return{data:i.interface.encodeFunctionData(y,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:a,_forwarder:{method:y,params:m}}}}}}function getEvmSwapParams(e,t,n,a,r,s){const o=new web3.PublicKey(addresses_default.MAYAN_PROGRAM_ID),[i]=web3.PublicKey.findProgramAddressSync([web3.bufferPolyfill.Buffer.from("MAIN")],o),l=getAssociatedTokenAddress(new web3.PublicKey(e.fromToken.mint),i,!0),u=BigInt(e.effectiveAmountIn64),c=nativeAddressToHexString(l.toString(),1),p=nativeAddressToHexString(addresses_default.AUCTION_PROGRAM_ID,1);let f;n?f=nativeAddressToHexString(n,1):f=nativeAddressToHexString(web3.SystemProgram.programId.toString(),1);const y=getWormholeChainIdById(Number(r)),m=getWormholeChainIdByName(e.fromChain),b=getWormholeChainIdByName(e.toChain);if(m!==y)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${m} !== ${y}`);const g=e.whMayanContract,h={mayanAddr:c,mayanChainId:1,destAddr:nativeAddressToHexString(t,b),destChainId:b,auctionAddr:p,referrer:f,refundAddr:nativeAddressToHexString(a,y)},T=e.toToken.contract===providerJsonrpc.ZeroAddress,w={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),unwrap:T,customPayload:"0x"},A={swapFee:getAmountOfFractionalAmount(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},S=nativeAddressToHexString(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),P=getAmountOfFractionalAmount(e.bridgeFee,18);return{amountIn:u,tokenIn:e.fromToken.contract,tokenOut:S,tokenOutWChainId:e.toToken.realOriginChainId,criteria:w,recipient:h,relayerFees:A,contractAddress:g,bridgeFee:P}}function getSwapFromEvmTxPayload(e,t,n,a,r,s,o,i){const l=getWormholeChainIdById(Number(s)),u=getWormholeChainIdByName(e.fromChain);if(u!==l)throw new Error(`Signer chain id(${Number(s)}) and quote from chain are not same! ${u} !== ${l}`);const c=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return getMctpFromEvmTxPayload(e,n,c,s,i);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload(e,t,n,c,s);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload(e,n,s);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload(e,n,c,s,i);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:p,recipient:f,tokenOut:y,tokenOutWChainId:m,criteria:b,tokenIn:g,amountIn:h,contractAddress:T,bridgeFee:w}=getEvmSwapParams(e,n,c,r,s),A=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),S=new contract.Contract(T,MayanSwapArtifact_default.abi);let P,O,R;const $=ZeroPermit;if(g===providerJsonrpc.ZeroAddress){const C=S.interface.encodeFunctionData("wrapAndSwapETH",[p,f,y,m,b]);P="forwardEth",O=[T,C],R=contract.toBeHex(h)}else{const C=S.interface.encodeFunctionData("swap",[p,f,y,m,b,g,h]);P="forwardERC20",O=[g,h,$,T,C],R=contract.toBeHex(w)}const D=A.interface.encodeFunctionData(P,O);return{to:addresses_default.MAYAN_FORWARDER_CONTRACT,data:D,value:R,chainId:s,_forwarder:{method:P,params:O}}}async function assertArgumentIsImmutable(e,t){var a;let n;try{n=await t.getMoveFunctionArgTypes({package:e.package,module:e.module,function:e.function})}catch{throw new Error(`Failed to fetch ${e.package}::${e.module}::${e.function} ArgTypes`)}if(n){if(n[e.argumentIndex]!=="Pure"&&((a=n[e.argumentIndex])==null?void 0:a.Object)!=="ByImmutableReference")throw new Error(`Argument ${e.argumentIndex} of ${e.module}::${e.function} is not immutable`)}else throw new Error(`Failed to fetch package::${e.module}::${e.function} ArgTypes`)}async function fetchAllCoins(e,t){let n=[],a=BigInt(0),r;do{const s=await t.getCoins({...e,owner:e.walletAddress,cursor:r}),o=s.data.filter(i=>BigInt(i.balance)>BigInt(0));if(n=[...n,...o],o.forEach(i=>{a+=BigInt(i.balance)}),s.data.length===0||!s.hasNextPage||!s.nextCursor||a>=e.coinAmount)return{coins:n.sort((i,l)=>Number(BigInt(i.coinObjectId)-BigInt(l.coinObjectId))),sum:a};r=s.nextCursor}while(!0)}async function fetchMayanSuiPackageId(e,t){var a,r,s;let n;try{n=await t.getObject({id:e,options:{showContent:!0}})}catch(o){throw new Error(`Failed to fetch Mayan Sui package ID:
4
4
 
5
- ${o}`)}if((i=(r=(a=n.data)==null?void 0:a.content)==null?void 0:r.fields)!=null&&i.latest_package_id)return n.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function createMctpFromSuiMoveCalls(e,t,n,a,r,i,o){const[s,d]=await Promise.all([fetchMayanSuiPackageId(addresses_default.SUI_MCTP_STATE,i),e.hasAuction?fetchMayanSuiPackageId(addresses_default.SUI_MCTP_FEE_MANAGER_STATE,i):null]),u=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);let l,p,f;if(e.fromToken.contract===e.mctpInputContract)l=new platform.Transaction,p=await resolveInputCoin(u,t,e.mctpInputContract,i,l,o==null?void 0:o.inputCoin);else{const{tx:b,outCoin:g,whFeeCoin:h}=await getSwapSui({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:a,inputCoin:o==null?void 0:o.inputCoin,transaction:void 0});l=platform.Transaction.from(b),p=g,f=h?{result:h}:null}e.hasAuction?await addInitOrderMoveCalls(e,t,n,a,s,d,i,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:l}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls(e,t,n,s,i,{inputCoin:{result:p},builtTransaction:l}):await addBridgeWithFeeMoveCalls(e,t,n,s,r,i,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:l});const y=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);l.moveCall({package:s,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[l.pure.u64(y),l.object(e.fromToken.verifiedAddress),l.pure.vector("u8",m)]});try{let b;a?b=nativeAddressToHexString(a,getWormholeChainIdByName(e.toChain)):b=nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),l.moveCall({package:addresses_default.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[l.pure.address(b),l.pure.u8(e.referrerBps||0)]})}catch(b){console.error("Failed to log referrer",b)}return l}async function addBridgeWithFeeMoveCalls(e,t,n,a,r,i,o){const s=getWormholeChainIdByName(e.toChain),d=(o==null?void 0:o.builtTransaction)??new platform.Transaction,u=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),l=await resolveInputCoin(u,t,e.mctpInputContract,i,d,o==null?void 0:o.inputCoin),p=MCTP_PAYLOAD_TYPE_DEFAULT,f=nativeAddressToHexString(n,s),y=getCCTPDomain(e.toChain),m=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),b=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),g=Uint8Array.from([]),[h]=d.moveCall({package:a,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[d.pure.u8(p),l,d.pure.u64(u),d.pure.address(f),d.pure.u32(y),d.pure.u64(m),d.pure.u64(b),d.pure.vector("u8",g)]}),[T,A]=d.moveCall({package:a,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[d.object(addresses_default.SUI_MCTP_STATE),d.object(addresses_default.SUI_CCTP_CORE_STATE),d.object(e.mctpVerifiedInputAddress),h]}),[S,w]=d.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_with_fee::CircleAuth`],arguments:[A,d.object(addresses_default.SUI_CCTP_TOKEN_STATE),d.object(addresses_default.SUI_CCTP_CORE_STATE),d.object("0x403"),d.object(e.mctpInputTreasury)]}),[P]=d.moveCall({package:a,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[d.object(addresses_default.SUI_MCTP_STATE),T,w]});return await addPublishWormholeMessage(d,P,i,BigInt(e.bridgeFee),t,o==null?void 0:o.whFeeCoin),d}async function addBridgeLockedFeeMoveCalls(e,t,n,a,r,i){const o=getWormholeChainIdByName(e.toChain),s=(i==null?void 0:i.builtTransaction)??new platform.Transaction,d=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),u=await resolveInputCoin(d,t,e.mctpInputContract,r,s,i==null?void 0:i.inputCoin),l=nativeAddressToHexString(n,o),p=getCCTPDomain(e.toChain),f=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),y=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),[m]=s.moveCall({package:a,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[u,s.pure.u64(d),s.pure.address(l),s.pure.u32(p),s.pure.u64(f),s.pure.u64(y)]}),[b,g]=s.moveCall({package:a,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default.SUI_MCTP_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object(e.mctpVerifiedInputAddress),m]}),[h,T]=s.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_locked_fee::CircleAuth`],arguments:[g,s.object(addresses_default.SUI_CCTP_TOKEN_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object("0x403"),s.object(e.mctpInputTreasury)]});return s.moveCall({package:a,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default.SUI_MCTP_STATE),s.object(e.mctpVerifiedInputAddress),b,T]}),s}async function addInitOrderMoveCalls(e,t,n,a,r,i,o,s){const d=getWormholeChainIdByName(e.toChain),u=(s==null?void 0:s.builtTransaction)??new platform.Transaction,l=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),[p]=await Promise.all([resolveInputCoin(l,t,e.mctpInputContract,o,u,s==null?void 0:s.inputCoin),assertArgumentIsImmutable({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},o)]),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,e.toToken.wChainId),y=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString(n,d),b=getCCTPDomain(e.toChain),g=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),h=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),T=BigInt(e.deadline64);let A;a?A=nativeAddressToHexString(a,d):A=nativeAddressToHexString(address.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const S=[u.object(e.mctpVerifiedInputAddress),u.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID),u.pure.address(t),p,u.pure.address(m),u.pure.u16(d),u.pure.address(f),u.pure.u64(y),u.pure.u64(g),u.pure.u64(h),u.pure.u64(T),u.pure.address(A),u.pure.u8(e.referrerBps)],[w]=u.moveCall({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:S}),[P]=u.moveCall({package:i,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[u.object(addresses_default.SUI_MCTP_FEE_MANAGER_STATE),w]}),[O]=u.moveCall({package:r,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...S.slice(1),u.pure.u32(b),u.pure.u64(l)]}),[R,$]=u.moveCall({package:r,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[u.object(addresses_default.SUI_MCTP_STATE),u.object(addresses_default.SUI_CCTP_CORE_STATE),u.object(e.mctpVerifiedInputAddress),O,P]}),[D,C]=u.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::init_order::CircleAuth`],arguments:[$,u.object(addresses_default.SUI_CCTP_TOKEN_STATE),u.object(addresses_default.SUI_CCTP_CORE_STATE),u.object("0x403"),u.object(e.mctpInputTreasury)]}),[v]=u.moveCall({package:r,module:"init_order",function:"publish_init_order",arguments:[u.object(addresses_default.SUI_MCTP_STATE),R,C]});return await addPublishWormholeMessage(u,v,o,BigInt(e.bridgeFee),t,s==null?void 0:s.whFeeCoin),u}async function addPublishWormholeMessage(e,t,n,a,r,i){let o;if(i!=null&&i.result)o=i.result;else if(i!=null&&i.objectId)o=e.object(i.objectId);else if(a>BigInt(0)){const{coins:s,sum:d}=await fetchAllCoins({walletAddress:r,coinType:platform.SUI_TYPE_ARG,coinAmount:a},n);if(d<a)throw new Error("Insufficient funds to pay Wormhole message fee");s.length>1&&e.mergeCoins(s[0].coinObjectId,s.slice(1).map(l=>l.coinObjectId));const[u]=e.splitCoins(s[0].coinObjectId,[a]);o=u}else{const[s]=e.splitCoins(e.gas,[e.pure.u64(0)]);o=s}return e.moveCall({package:addresses_default.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default.SUI_WORMHOLE_STATE),o,t,e.object(platform.SUI_CLOCK_OBJECT_ID)]}),e}async function resolveInputCoin(e,t,n,a,r,i){let o;if(i!=null&&i.result)o=i.result;else if(i!=null&&i.objectId)o=r.object(i.objectId);else{const{coins:s,sum:d}=await fetchAllCoins({walletAddress:t,coinType:n,coinAmount:e},a);if(d<e)throw new Error(`Insufficient funds to create Coin ${n} with amount ${e}`);s.length>1&&r.mergeCoins(s[0].coinObjectId,s.slice(1).map(l=>l.coinObjectId));const[u]=r.splitCoins(s[0].coinObjectId,[e]);o=u}return o}async function createSwapFromSuiMoveCalls(e,t,n,a,r,i,o){const s=getQuoteSuitableReferrerAddress(e,a);if(e.type==="MCTP")return createMctpFromSuiMoveCalls(e,t,n,s,r,i,o);throw new Error("Unsupported quote type from Sui chain")}function getNativeContractAddress(e){return e==="Sui"?"0x2::sui::SUI":"0x0000000000000000000000000000000000000000"}const chainNameMap={Solana:"solana",Ethereum:"ethereum",Bsc:"bsc",Polygon:"polygon",Avalanche:"avalanche",Arbitrum:"arbitrum",Aptos:"aptos",Base:"base",Optimism:"optimism",Unichain:"unichain",Sui:"sui"},testnetSupportedChainMap={Solana:"solana",Ethereum:"ethereum",Base:"base",Sui:"sui",Monad:"monad"};function toMayanChainName(e,t){if(e==="Mainnet"){if(!chainNameMap[t])throw new Error(`Chain ${t} not supported`);return chainNameMap[t]}else if(e==="Testnet"){if(!testnetSupportedChainMap[t])throw new Error(`Chain ${t} not supported`);return testnetSupportedChainMap[t]}throw new Error(`Unsupported network: ${e}`)}function isTestnetSupportedChain(e){return testnetSupportedChainMap[e]!==void 0}function toWormholeChainName(e){return address.toChain(Number(e))}function supportedChains(e){return Object.keys(e==="Testnet"?testnetSupportedChainMap:chainNameMap)}var MayanClientStatus;(function(e){e.INPROGRESS="INPROGRESS",e.COMPLETED="COMPLETED",e.REFUNDED="REFUNDED",e.CANCELED="CANCELED"})(MayanClientStatus||(MayanClientStatus={}));const possibleVaaTypes=["transfer","swap","redeem","refund"];var MayanTransactionGoal;(function(e){e.Send="SEND",e.Bridge="BRIDGE",e.Swap="SWAP",e.Register="REGISTER",e.Settle="SETTLE"})(MayanTransactionGoal||(MayanTransactionGoal={}));function txStatusToReceipt(e){const t=toWormholeChainName(e.sourceChain),n=toWormholeChainName(e.destChain),a=e.txs.filter(u=>u.goals.includes(MayanTransactionGoal.Send)||u.goals.includes(MayanTransactionGoal.Register)).map(u=>({chain:t,txid:u.txHash})),r=e.txs.filter(u=>u.goals.includes(MayanTransactionGoal.Settle)).map(u=>({chain:n,txid:u.txHash}));let i=[];e.refundTxHash&&i.push({chain:toWormholeChainName(e.refundChain),txid:e.refundTxHash});const o={};for(const u of possibleVaaTypes){const l=`${u}SignedVaa`;if(l in e&&e[l]!==null){const p=address.deserialize("Uint8Array",address.hex.decode(e[l]));o[u]={id:{emitter:p.emitterAddress,sequence:p.sequence,chain:p.emitterChain},attestation:p}}}let s={},d=!1;if("redeem"in o?(s=o.redeem,d=!0):"transfer"in o&&(s=o.transfer,d=!0),e.clientStatus===MayanClientStatus.COMPLETED)return{from:t,to:n,originTxs:a,destinationTxs:r,state:address.TransferState.DestinationFinalized,attestation:s};if(e.clientStatus===MayanClientStatus.REFUNDED||e.clientStatus===MayanClientStatus.CANCELED)return{from:t,to:n,originTxs:a,refundTxs:i,state:address.TransferState.Refunded,attestation:o.refund};if(e.clientStatus===MayanClientStatus.INPROGRESS)return d&&r.length>0?{from:t,to:n,originTxs:a,destinationTxs:r,state:address.TransferState.DestinationInitiated,attestation:s}:{from:t,to:n,originTxs:a,state:address.TransferState.SourceInitiated};throw new Error(`Unknown Mayan clientStatus ${e.clientStatus}`)}async function getTransactionStatus(e,t){var a;const n=`https://${{Mainnet:"",Testnet:"testnet-",Devnet:""}[e]}explorer-api.mayan.finance/v3/swap/trx/${t.txid}`;try{const r=await address.axios.get(n);if(r.data.id)return r.data}catch(r){if(!r||typeof r=="object"&&(address.axios.isAxiosError(r)&&((a=r.response)==null?void 0:a.status)===404||"status"in r&&r.status===404))return null;throw r}return null}class MayanRouteBase extends address.AutomaticRoute{constructor(){super(...arguments);z(this,"MAX_SLIPPAGE",1);z(this,"protocols",["WH","MCTP","SWIFT","MONO_CHAIN"])}isTestnetRequest(n){return n.fromChain.network==="Testnet"||n.toChain.network==="Testnet"}normalizeQuoteForTestnet(n){const{hyperCoreParams:a,...r}=n;return r}getDefaultOptions(){return{gasDrop:0,slippageBps:"auto",optimizeFor:"speed"}}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(n){return supportedChains(n)}static async supportedSourceTokens(n){return[]}static isProtocolSupported(n){return supportedChains(n.network).includes(n.chain)}static async supportedDestinationTokens(n,a,r){return[]}async isAvailable(){return!0}async validate(n,a){try{return a.options=a.options??this.getDefaultOptions(),{valid:!0,params:{...a,normalizedParams:{slippageBps:a.options.slippageBps}}}}catch(r){return{valid:!1,params:a,error:r}}}toMayanAddress(n){return address.isNative(n.address)?getNativeContractAddress(n.chain):address.canonicalAddress(n)}async fetchQuote(n,a){var p,f;const{fromChain:r,toChain:i}=n;if(this.isTestnetRequest(n)){if(!isTestnetSupportedChain(r.chain))throw new Error(`Chain ${r.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`);if(!isTestnetSupportedChain(i.chain))throw new Error(`Chain ${i.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`)}const o={amount:Number(a.amount),fromToken:this.toMayanAddress(n.source.id),toToken:this.toMayanAddress(n.destination.id),fromChain:toMayanChainName(r.network,r.chain),toChain:toMayanChainName(i.network,i.chain),...this.getDefaultOptions(),...a.options,...this.getReferralParameters(n),slippageBps:"auto"},s={swift:this.protocols.includes("SWIFT"),mctp:this.protocols.includes("MCTP"),monoChain:this.protocols.includes("MONO_CHAIN")},d=new URL(this.isTestnetRequest(n)?generateFetchQuoteUrl({...o,fromChain:toMayanChainName(r.network,r.chain),toChain:toMayanChainName(i.network,i.chain)},s):generateFetchQuoteUrl$1(o,s));if(!d)throw new Error("Unable to generate fetch quote URL");d.searchParams.has("fullList")||d.searchParams.append("fullList","true");const u=await address.axios.get(d.toString());if(u.status!==200)throw new Error("Unable to fetch quote",{cause:u});const l=(f=(p=u.data)==null?void 0:p.quotes)==null?void 0:f.filter(y=>this.protocols.includes(y.type));if(!(!l||l.length===0))return l.length===1||l.sort((y,m)=>a.options.optimizeFor==="cost"?m.expectedAmountOut===y.expectedAmountOut?y.etaSeconds-m.etaSeconds:m.expectedAmountOut-y.expectedAmountOut:a.options.optimizeFor==="speed"?y.etaSeconds===m.etaSeconds?m.expectedAmountOut-y.expectedAmountOut:y.etaSeconds-m.etaSeconds:0),l[0]}async quote(n,a){var r,i;try{const o=await this.fetchQuote(n,a);if(!o)return{success:!1,error:new address.UnavailableError(new Error("Couldn't fetch a quote"))};const s={token:{chain:"Solana",address:address.Wormhole.parseAddress("Solana",address.usdcContract.get(n.fromChain.network,"Solana"))},amount:address.parse(address.denoise(o.clientRelayerFeeSuccess||"0",6),6)},d=o.deadline64?new Date(parseInt(o.deadline64,10)*1e3):void 0;return{success:!0,params:a,sourceToken:{token:n.source.id,amount:address.parse(address.denoise(o.effectiveAmountIn,o.fromToken.decimals),o.fromToken.decimals)},destinationToken:{token:n.destination.id,amount:address.parse(address.denoise(o.expectedAmountOut,o.toToken.decimals),o.toToken.decimals)},relayFee:s,destinationNativeGas:address.parse(address.denoise(o.gasDrop,o.toToken.decimals),o.toToken.decimals),eta:o.etaSeconds*1e3,details:o,expires:d}}catch(o){if(address.axios.isAxiosError(o)){const s=(r=o==null?void 0:o.response)==null?void 0:r.data;if((s==null?void 0:s.code)==="AMOUNT_TOO_SMALL"){const d=(i=s==null?void 0:s.data)==null?void 0:i.minAmountIn;if(typeof d=="number"){const u=address.parse(d,n.source.decimals);return{success:!1,error:new address.MinAmountError(u)}}}if(s!=null&&s.msg)return{success:!1,error:Error(s==null?void 0:s.msg,{cause:s})}}return{success:!1,error:o}}}async initiate(n,a,r,i){const o=a.address(),s=address.canonicalAddress(i);try{const d=await n.fromChain.getRpc(),u=[];if(n.fromChain.chain==="Solana"){const{instructions:l,signers:p,lookupTables:f}=await(this.isTestnetRequest(n)?createSwapFromSolanaInstructions(this.normalizeQuoteForTestnet(r.details),o,s,this.referrerAddress(),d,{allowSwapperOffCurve:!0}):createSwapFromSolanaInstructions$1(r.details,o,s,this.referrerAddress(),d,{allowSwapperOffCurve:!0})),y=address.MessageV0.compile({instructions:l,payerKey:new address.PublicKey(o),recentBlockhash:"",addressLookupTableAccounts:f}),m=[new unsignedTransaction.SolanaUnsignedTransaction({transaction:new address.VersionedTransaction(y),signers:p},n.fromChain.network,n.fromChain.chain,"Execute Swap")];if(address.isSignAndSendSigner(a)){const b=await a.signAndSend(m);u.push(...b.map(g=>({chain:n.fromChain.chain,txid:g})))}else if(address.isSignOnlySigner(a)){const b=await a.sign(m),g=await unsignedTransaction.SolanaPlatform.sendWait(n.fromChain.chain,d,b);u.push(...g.map(h=>({chain:n.fromChain.chain,txid:h})))}}else if(n.fromChain.chain==="Sui"){const l=await(this.isTestnetRequest(n)?createSwapFromSuiMoveCalls(this.normalizeQuoteForTestnet(r.details),o,s,this.referrerAddress(),void 0,d):createSwapFromSuiMoveCalls$1(r.details,o,s,this.referrerAddress(),void 0,d)),p=[new unsignedTransaction$1.SuiUnsignedTransaction(l,n.fromChain.network,n.fromChain.chain,"Execute Swap")];if(address.isSignAndSendSigner(a)){const f=await a.signAndSend(p);u.push(...f.map(y=>({chain:n.fromChain.chain,txid:y})))}else if(address.isSignOnlySigner(a)){const f=await a.sign(p),y=await platform.SuiPlatform.sendWait(n.fromChain.chain,d,f);u.push(...y.map(m=>({chain:n.fromChain.chain,txid:m})))}}else{const l=[],p=address.networkChainToNativeChainId.get(n.fromChain.network,n.fromChain.chain);if(!address.isNative(n.source.id.address)){const y=platform$1.EvmPlatform.getTokenImplementation(await n.fromChain.getRpc(),this.toMayanAddress(n.source.id)),m=addresses_default$1.MAYAN_FORWARDER_CONTRACT,b=await y.allowance(o,m),g=address.units(r.sourceToken.amount);if(b<g){const h=await y.approve.populateTransaction(m,g);l.push(new unsignedTransaction$2.EvmUnsignedTransaction({from:a.address(),chainId:p,...h},n.fromChain.network,n.fromChain.chain,"Approve Allowance"))}}const f=this.isTestnetRequest(n)?getSwapFromEvmTxPayload(this.normalizeQuoteForTestnet(r.details),o,s,this.referrerAddress(),o,Number(p),void 0,void 0):getSwapFromEvmTxPayload$1(r.details,o,s,this.referrerAddress(),o,Number(p),void 0,void 0);if(l.push(new unsignedTransaction$2.EvmUnsignedTransaction({from:a.address(),chainId:p,...f},n.fromChain.network,n.fromChain.chain,"Execute Swap")),address.isSignAndSendSigner(a)){const y=await a.signAndSend(l);u.push(...y.map(m=>({chain:n.fromChain.chain,txid:m})))}else if(address.isSignOnlySigner(a)){const y=await a.sign(l),m=await platform$1.EvmPlatform.sendWait(n.fromChain.chain,d,y);u.push(...m.map(b=>({chain:n.fromChain.chain,txid:b})))}}return{from:n.fromChain.chain,to:n.toChain.chain,state:address.TransferState.SourceInitiated,originTxs:u}}catch(d){throw console.error(d),d}}async*track(n,a){if(address.isCompleted(n)||address.isRedeemed(n)||address.isRefunded(n))return n;let r=a||60*60*1e3;for(;r>0;){const i=Date.now();if(address.isSourceInitiated(n)||address.isSourceFinalized(n)||address.isAttested(n)){const o=await getTransactionStatus(this.wh.network,n.originTxs[n.originTxs.length-1]);if(o&&(n=txStatusToReceipt(o),yield{...n,txstatus:o},address.isCompleted(n)||address.isRedeemed(n)||address.isRefunded(n)))return n}else throw new Error("Transfer must have been initiated");await new Promise(o=>setTimeout(o,1e3)),r-=Date.now()-i}return n}transferUrl(n){return`https://explorer.mayan.finance/swap/${n}`}referrerAddress(){const{referrers:n}=this.constructor;if(!(!n||Object.keys(n).length<1))return{solana:n.Solana||null,evm:n.Ethereum||null,sui:n.Sui||null}}getReferralParameters(n){const{referrers:a,getReferrerBps:r}=this.constructor;return!!(a!=null&&a.Solana)&&typeof r=="function"?{referrer:a.Solana,referrerBps:r(n)}:{}}}z(MayanRouteBase,"NATIVE_GAS_DROPOFF_SUPPORTED",!1),z(MayanRouteBase,"IS_AUTOMATIC",!0);class MayanRoute extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["WH","MCTP","SWIFT","MONO_CHAIN"])}}z(MayanRoute,"meta",{name:"MayanSwap",provider:"Mayan"});class MayanRouteSWIFT extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["SWIFT"])}}z(MayanRouteSWIFT,"meta",{name:"MayanSwapSWIFT",provider:"Mayan Swift"});class MayanRouteMCTP extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["MCTP"])}}z(MayanRouteMCTP,"meta",{name:"MayanSwapMCTP",provider:"Mayan MCTP"});class MayanRouteWH extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["WH"])}}z(MayanRouteWH,"meta",{name:"MayanSwapWH",provider:"Mayan"});function createMayanRouteWithReferrerFee(e,t={}){return t!=null&&t.referrers&&typeof(t==null?void 0:t.getReferrerBps)=="function"&&Object.assign(e,t),e}exports.MayanRoute=MayanRoute;exports.MayanRouteMCTP=MayanRouteMCTP;exports.MayanRouteSWIFT=MayanRouteSWIFT;exports.MayanRouteWH=MayanRouteWH;exports.createMayanRouteWithReferrerFee=createMayanRouteWithReferrerFee;
5
+ ${o}`)}if((s=(r=(a=n.data)==null?void 0:a.content)==null?void 0:r.fields)!=null&&s.latest_package_id)return n.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function createMctpFromSuiMoveCalls(e,t,n,a,r,s,o){const[i,l]=await Promise.all([fetchMayanSuiPackageId(addresses_default.SUI_MCTP_STATE,s),e.hasAuction?fetchMayanSuiPackageId(addresses_default.SUI_MCTP_FEE_MANAGER_STATE,s):null]),u=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);let c,p,f;if(e.fromToken.contract===e.mctpInputContract)c=new platform.Transaction,p=await resolveInputCoin(u,t,e.mctpInputContract,s,c,o==null?void 0:o.inputCoin);else{const{tx:b,outCoin:g,whFeeCoin:h}=await getSwapSui({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:a,inputCoin:o==null?void 0:o.inputCoin,transaction:void 0});c=platform.Transaction.from(b),p=g,f=h?{result:h}:null}e.hasAuction?await addInitOrderMoveCalls(e,t,n,a,i,l,s,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:c}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls(e,t,n,i,s,{inputCoin:{result:p},builtTransaction:c}):await addBridgeWithFeeMoveCalls(e,t,n,i,r,s,{inputCoin:{result:p},whFeeCoin:f,builtTransaction:c});const y=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);c.moveCall({package:i,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[c.pure.u64(y),c.object(e.fromToken.verifiedAddress),c.pure.vector("u8",m)]});try{let b;a?b=nativeAddressToHexString(a,getWormholeChainIdByName(e.toChain)):b=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),c.moveCall({package:addresses_default.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[c.pure.address(b),c.pure.u8(e.referrerBps||0)]})}catch(b){console.error("Failed to log referrer",b)}return c}async function addBridgeWithFeeMoveCalls(e,t,n,a,r,s,o){const i=getWormholeChainIdByName(e.toChain),l=(o==null?void 0:o.builtTransaction)??new platform.Transaction,u=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),c=await resolveInputCoin(u,t,e.mctpInputContract,s,l,o==null?void 0:o.inputCoin),p=MCTP_PAYLOAD_TYPE_DEFAULT,f=nativeAddressToHexString(n,i),y=getCCTPDomain(e.toChain),m=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),b=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),g=Uint8Array.from([]),[h]=l.moveCall({package:a,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[l.pure.u8(p),c,l.pure.u64(u),l.pure.address(f),l.pure.u32(y),l.pure.u64(m),l.pure.u64(b),l.pure.vector("u8",g)]}),[T,w]=l.moveCall({package:a,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[l.object(addresses_default.SUI_MCTP_STATE),l.object(addresses_default.SUI_CCTP_CORE_STATE),l.object(e.mctpVerifiedInputAddress),h]}),[A,S]=l.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_with_fee::CircleAuth`],arguments:[w,l.object(addresses_default.SUI_CCTP_TOKEN_STATE),l.object(addresses_default.SUI_CCTP_CORE_STATE),l.object("0x403"),l.object(e.mctpInputTreasury)]}),[P]=l.moveCall({package:a,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[l.object(addresses_default.SUI_MCTP_STATE),T,S]});return await addPublishWormholeMessage(l,P,s,BigInt(e.bridgeFee),t,o==null?void 0:o.whFeeCoin),l}async function addBridgeLockedFeeMoveCalls(e,t,n,a,r,s){const o=getWormholeChainIdByName(e.toChain),i=(s==null?void 0:s.builtTransaction)??new platform.Transaction,l=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),u=await resolveInputCoin(l,t,e.mctpInputContract,r,i,s==null?void 0:s.inputCoin),c=nativeAddressToHexString(n,o),p=getCCTPDomain(e.toChain),f=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),y=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),[m]=i.moveCall({package:a,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[u,i.pure.u64(l),i.pure.address(c),i.pure.u32(p),i.pure.u64(f),i.pure.u64(y)]}),[b,g]=i.moveCall({package:a,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default.SUI_MCTP_STATE),i.object(addresses_default.SUI_CCTP_CORE_STATE),i.object(e.mctpVerifiedInputAddress),m]}),[h,T]=i.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${a}::bridge_locked_fee::CircleAuth`],arguments:[g,i.object(addresses_default.SUI_CCTP_TOKEN_STATE),i.object(addresses_default.SUI_CCTP_CORE_STATE),i.object("0x403"),i.object(e.mctpInputTreasury)]});return i.moveCall({package:a,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default.SUI_MCTP_STATE),i.object(e.mctpVerifiedInputAddress),b,T]}),i}async function addInitOrderMoveCalls(e,t,n,a,r,s,o,i){const l=getWormholeChainIdByName(e.toChain),u=(i==null?void 0:i.builtTransaction)??new platform.Transaction,c=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),[p]=await Promise.all([resolveInputCoin(c,t,e.mctpInputContract,o,u,i==null?void 0:i.inputCoin),assertArgumentIsImmutable({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},o)]),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,e.toToken.wChainId),y=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString(n,l),b=getCCTPDomain(e.toChain),g=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),h=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),T=BigInt(e.deadline64);let w;a?w=nativeAddressToHexString(a,l):w=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const A=[u.object(e.mctpVerifiedInputAddress),u.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID),u.pure.address(t),p,u.pure.address(m),u.pure.u16(l),u.pure.address(f),u.pure.u64(y),u.pure.u64(g),u.pure.u64(h),u.pure.u64(T),u.pure.address(w),u.pure.u8(e.referrerBps)],[S]=u.moveCall({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:A}),[P]=u.moveCall({package:s,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[u.object(addresses_default.SUI_MCTP_FEE_MANAGER_STATE),S]}),[O]=u.moveCall({package:r,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...A.slice(1),u.pure.u32(b),u.pure.u64(c)]}),[R,$]=u.moveCall({package:r,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[u.object(addresses_default.SUI_MCTP_STATE),u.object(addresses_default.SUI_CCTP_CORE_STATE),u.object(e.mctpVerifiedInputAddress),O,P]}),[D,C]=u.moveCall({package:addresses_default.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::init_order::CircleAuth`],arguments:[$,u.object(addresses_default.SUI_CCTP_TOKEN_STATE),u.object(addresses_default.SUI_CCTP_CORE_STATE),u.object("0x403"),u.object(e.mctpInputTreasury)]}),[v]=u.moveCall({package:r,module:"init_order",function:"publish_init_order",arguments:[u.object(addresses_default.SUI_MCTP_STATE),R,C]});return await addPublishWormholeMessage(u,v,o,BigInt(e.bridgeFee),t,i==null?void 0:i.whFeeCoin),u}async function addPublishWormholeMessage(e,t,n,a,r,s){let o;if(s!=null&&s.result)o=s.result;else if(s!=null&&s.objectId)o=e.object(s.objectId);else if(a>BigInt(0)){const{coins:i,sum:l}=await fetchAllCoins({walletAddress:r,coinType:platform.SUI_TYPE_ARG,coinAmount:a},n);if(l<a)throw new Error("Insufficient funds to pay Wormhole message fee");i.length>1&&e.mergeCoins(i[0].coinObjectId,i.slice(1).map(c=>c.coinObjectId));const[u]=e.splitCoins(i[0].coinObjectId,[a]);o=u}else{const[i]=e.splitCoins(e.gas,[e.pure.u64(0)]);o=i}return e.moveCall({package:addresses_default.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default.SUI_WORMHOLE_STATE),o,t,e.object(platform.SUI_CLOCK_OBJECT_ID)]}),e}async function resolveInputCoin(e,t,n,a,r,s){let o;if(s!=null&&s.result)o=s.result;else if(s!=null&&s.objectId)o=r.object(s.objectId);else{const{coins:i,sum:l}=await fetchAllCoins({walletAddress:t,coinType:n,coinAmount:e},a);if(l<e)throw new Error(`Insufficient funds to create Coin ${n} with amount ${e}`);i.length>1&&r.mergeCoins(i[0].coinObjectId,i.slice(1).map(c=>c.coinObjectId));const[u]=r.splitCoins(i[0].coinObjectId,[e]);o=u}return o}async function createSwapFromSuiMoveCalls(e,t,n,a,r,s,o){const i=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSuiMoveCalls(e,t,n,i,r,s,o);throw new Error("Unsupported quote type from Sui chain")}function getNativeContractAddress(e){return e==="Sui"?"0x2::sui::SUI":"0x0000000000000000000000000000000000000000"}const chainNameMap={Solana:"solana",Ethereum:"ethereum",Bsc:"bsc",Polygon:"polygon",Avalanche:"avalanche",Arbitrum:"arbitrum",Aptos:"aptos",Base:"base",Optimism:"optimism",Unichain:"unichain",Sui:"sui"},testnetSupportedChainMap={Solana:"solana",Sepolia:"ethereum",BaseSepolia:"base",Sui:"sui",Monad:"monad"};function toMayanChainName(e,t){if(e==="Mainnet"){if(!chainNameMap[t])throw new Error(`Chain ${t} not supported`);return chainNameMap[t]}else if(e==="Testnet"){if(!testnetSupportedChainMap[t])throw new Error(`Chain ${t} not supported`);return testnetSupportedChainMap[t]}throw new Error(`Unsupported network: ${e}`)}function isTestnetSupportedChain(e){return testnetSupportedChainMap[e]!==void 0}function toWormholeChainName(e){return web3.toChain(Number(e))}function supportedChains(e){return Object.keys(e==="Testnet"?testnetSupportedChainMap:chainNameMap)}var MayanClientStatus;(function(e){e.INPROGRESS="INPROGRESS",e.COMPLETED="COMPLETED",e.REFUNDED="REFUNDED",e.CANCELED="CANCELED"})(MayanClientStatus||(MayanClientStatus={}));const possibleVaaTypes=["transfer","swap","redeem","refund"];var MayanTransactionGoal;(function(e){e.Send="SEND",e.Bridge="BRIDGE",e.Swap="SWAP",e.Register="REGISTER",e.Settle="SETTLE"})(MayanTransactionGoal||(MayanTransactionGoal={}));function txStatusToReceipt(e){const t=toWormholeChainName(e.sourceChain),n=toWormholeChainName(e.destChain),a=e.txs.filter(u=>u.goals.includes(MayanTransactionGoal.Send)||u.goals.includes(MayanTransactionGoal.Register)).map(u=>({chain:t,txid:u.txHash})),r=e.txs.filter(u=>u.goals.includes(MayanTransactionGoal.Settle)).map(u=>({chain:n,txid:u.txHash}));let s=[];e.refundTxHash&&s.push({chain:toWormholeChainName(e.refundChain),txid:e.refundTxHash});const o={};for(const u of possibleVaaTypes){const c=`${u}SignedVaa`;if(c in e&&e[c]!==null){const p=web3.deserialize("Uint8Array",web3.hex.decode(e[c]));o[u]={id:{emitter:p.emitterAddress,sequence:p.sequence,chain:p.emitterChain},attestation:p}}}let i={},l=!1;if("redeem"in o?(i=o.redeem,l=!0):"transfer"in o&&(i=o.transfer,l=!0),e.clientStatus===MayanClientStatus.COMPLETED)return{from:t,to:n,originTxs:a,destinationTxs:r,state:web3.TransferState.DestinationFinalized,attestation:i};if(e.clientStatus===MayanClientStatus.REFUNDED||e.clientStatus===MayanClientStatus.CANCELED)return{from:t,to:n,originTxs:a,refundTxs:s,state:web3.TransferState.Refunded,attestation:o.refund};if(e.clientStatus===MayanClientStatus.INPROGRESS)return l&&r.length>0?{from:t,to:n,originTxs:a,destinationTxs:r,state:web3.TransferState.DestinationInitiated,attestation:i}:{from:t,to:n,originTxs:a,state:web3.TransferState.SourceInitiated};throw new Error(`Unknown Mayan clientStatus ${e.clientStatus}`)}async function getTransactionStatus(e,t){var a;const n=`https://${{Mainnet:"",Testnet:"testnet-",Devnet:""}[e]}explorer-api.mayan.finance/v3/swap/trx/${t.txid}`;try{const r=await web3.axios.get(n);if(r.data.id)return r.data}catch(r){if(!r||typeof r=="object"&&(web3.axios.isAxiosError(r)&&((a=r.response)==null?void 0:a.status)===404||"status"in r&&r.status===404))return null;throw r}return null}class MayanRouteBase extends web3.AutomaticRoute{constructor(){super(...arguments);z(this,"MAX_SLIPPAGE",1);z(this,"protocols",["WH","MCTP","SWIFT","MONO_CHAIN"])}isTestnetRequest(n){return n.fromChain.network==="Testnet"||n.toChain.network==="Testnet"}normalizeQuoteForTestnet(n){const{hyperCoreParams:a,...r}=n;return r}getDefaultOptions(){return{gasDrop:0,slippageBps:"auto",optimizeFor:"speed"}}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(n){return supportedChains(n)}static async supportedSourceTokens(n){return[]}static isProtocolSupported(n){return supportedChains(n.network).includes(n.chain)}static async supportedDestinationTokens(n,a,r){return[]}async isAvailable(){return!0}async validate(n,a){try{return a.options=a.options??this.getDefaultOptions(),{valid:!0,params:{...a,normalizedParams:{slippageBps:a.options.slippageBps}}}}catch(r){return{valid:!1,params:a,error:r}}}toMayanAddress(n){return web3.isNative(n.address)?getNativeContractAddress(n.chain):web3.canonicalAddress(n)}getFeeInBaseUnits(n,a){const{fromChain:r,source:s}=n,o=this.getReferralParameters(n),{referrerBps:i,referrer:l,isV2:u}=o,c=r.chain==="Solana";if(!i||!l||!c||!u)return 0n;const p=web3.parse(a,s.decimals),f=65535n,y=BigInt(10*i);if(y>f)throw new Error("bps exceeds max u16");const m=web3.getDeciBps(p,y);return web3.units(m)}getQuoteAmountIn64(n,a){const r=n.source.decimals,s=web3.parse(a,r),o=this.getFeeInBaseUnits(n,a);if(o<=0n)return s.amount;const l=web3.units(s)-o;return web3.fromBaseUnits(l,r).amount}async injectReferralInstructionsForSolana(n,a,r,s,o){var g;const{fromChain:i,source:l}=a,u=this.getReferralParameters(a),{isV2:c}=u,p=(g=this.referrerAddress())==null?void 0:g.solana,f=this.getFeeInBaseUnits(a,o);if(!p||!f||i.network!=="Mainnet"||!c)return r;const y=[],m=new web3.PublicKey(p);if(web3.isNative(l.id.address))y.push(web3.SystemProgram.transfer({fromPubkey:s,toPubkey:m,lamports:f}));else{const h=new web3.PublicKey(l.id.address.toString()),T=await unsignedTransaction.SolanaPlatform.getTokenProgramId(n,h),w=mint.getAssociatedTokenAddressSync(h,m,!0,T),A=mint.getAssociatedTokenAddressSync(h,s,!0,T);await n.getAccountInfo(w)||y.push(transfer.createAssociatedTokenAccountIdempotentInstruction(s,w,m,h,T)),y.push(transfer.createTransferInstruction(A,w,s,f,void 0,T))}return y.push(...r),y}async fetchQuote(n,a){var y,m;const{fromChain:r,toChain:s}=n;if(this.isTestnetRequest(n)){if(!isTestnetSupportedChain(r.chain))throw new Error(`Chain ${r.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`);if(!isTestnetSupportedChain(s.chain))throw new Error(`Chain ${s.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`)}const o={amountIn64:this.getQuoteAmountIn64(n,a.amount),fromToken:this.toMayanAddress(n.source.id),toToken:this.toMayanAddress(n.destination.id),fromChain:toMayanChainName(r.network,r.chain),toChain:toMayanChainName(s.network,s.chain),...this.getDefaultOptions(),...a.options,slippageBps:"auto"},i=this.getReferralParameters(n),l=r.chain==="Solana";(!l||l&&!i.isV2)&&(o.referrer=i.referrer,o.referrerBps=i.referrerBps);const u={swift:this.protocols.includes("SWIFT"),mctp:this.protocols.includes("MCTP"),monoChain:this.protocols.includes("MONO_CHAIN")},c=new URL(this.isTestnetRequest(n)?generateFetchQuoteUrl({...o,fromChain:toMayanChainName(r.network,r.chain),toChain:toMayanChainName(s.network,s.chain)},u):generateFetchQuoteUrl$1(o,u));if(!c)throw new Error("Unable to generate fetch quote URL");c.searchParams.has("fullList")||c.searchParams.append("fullList","true");const p=await web3.axios.get(c.toString());if(p.status!==200)throw new Error("Unable to fetch quote",{cause:p});const f=(m=(y=p.data)==null?void 0:y.quotes)==null?void 0:m.filter(b=>this.protocols.includes(b.type));if(!(!f||f.length===0))return f.length===1||f.sort((b,g)=>a.options.optimizeFor==="cost"?g.expectedAmountOut===b.expectedAmountOut?b.etaSeconds-g.etaSeconds:g.expectedAmountOut-b.expectedAmountOut:a.options.optimizeFor==="speed"?b.etaSeconds===g.etaSeconds?g.expectedAmountOut-b.expectedAmountOut:b.etaSeconds-g.etaSeconds:0),f[0]}getMinAmount(n,a){try{return web3.parse(n,a)}catch{return null}}async quote(n,a){var r,s;try{const o=await this.fetchQuote(n,a);if(!o)return{success:!1,error:new web3.UnavailableError(new Error("Couldn't fetch a quote"))};const i={token:{chain:"Solana",address:web3.Wormhole.parseAddress("Solana",web3.usdcContract.get(n.fromChain.network,"Solana"))},amount:web3.parse(web3.denoise(o.clientRelayerFeeSuccess||"0",6),6)},l=parseInt(o.deadline64,10)*1e3,u=l?new Date(l):void 0;return{success:!0,params:a,sourceToken:{token:n.source.id,amount:web3.fromBaseUnits(BigInt(o.effectiveAmountIn64),o.fromToken.decimals)},destinationToken:{token:n.destination.id,amount:web3.parse(web3.denoise(o.expectedAmountOut,o.toToken.decimals),o.toToken.decimals)},relayFee:i,destinationNativeGas:web3.parse(web3.denoise(o.gasDrop,o.toToken.decimals),o.toToken.decimals),eta:o.etaSeconds*1e3,details:o,expires:u}}catch(o){if(web3.axios.isAxiosError(o)){const i=(r=o==null?void 0:o.response)==null?void 0:r.data;if((i==null?void 0:i.code)==="AMOUNT_TOO_SMALL"){const l=(s=i==null?void 0:i.data)==null?void 0:s.minAmountIn,u=this.getMinAmount(l,n.source.decimals);if(u)return{success:!1,error:new web3.MinAmountError(u)}}if(i!=null&&i.msg)return{success:!1,error:Error(i==null?void 0:i.msg,{cause:i})}}return{success:!1,error:o}}}async initiate(n,a,r,s){const o=this.getReferralParameters(n),{isV2:i}=o,l=this.referrerAddress(),u=a.address(),c=web3.canonicalAddress(s);try{const p=await n.fromChain.getRpc(),f=[];if(n.fromChain.chain==="Solana"){const{instructions:y,signers:m,lookupTables:b}=await(this.isTestnetRequest(n)?createSwapFromSolanaInstructions(this.normalizeQuoteForTestnet(r.details),u,c,null,p,{allowSwapperOffCurve:!0}):createSwapFromSolanaInstructions$1(r.details,u,c,i?null:l,p,{allowSwapperOffCurve:!0})),g=new web3.PublicKey(u),h=web3.MessageV0.compile({instructions:await this.injectReferralInstructionsForSolana(p,n,y,g,r.params.amount),payerKey:new web3.PublicKey(u),recentBlockhash:"",addressLookupTableAccounts:b}),T=[new unsignedTransaction.SolanaUnsignedTransaction({transaction:new web3.VersionedTransaction(h),signers:m},n.fromChain.network,n.fromChain.chain,"Execute Swap")];if(web3.isSignAndSendSigner(a)){const w=await a.signAndSend(T);f.push(...w.map(A=>({chain:n.fromChain.chain,txid:A})))}else if(web3.isSignOnlySigner(a)){const w=await a.sign(T),A=await unsignedTransaction.SolanaPlatform.sendWait(n.fromChain.chain,p,w);f.push(...A.map(S=>({chain:n.fromChain.chain,txid:S})))}}else if(n.fromChain.chain==="Sui"){const y=await(this.isTestnetRequest(n)?createSwapFromSuiMoveCalls(this.normalizeQuoteForTestnet(r.details),u,c,null,void 0,p):createSwapFromSuiMoveCalls$1(r.details,u,c,l,void 0,p)),m=[new unsignedTransaction$1.SuiUnsignedTransaction(y,n.fromChain.network,n.fromChain.chain,"Execute Swap")];if(web3.isSignAndSendSigner(a)){const b=await a.signAndSend(m);f.push(...b.map(g=>({chain:n.fromChain.chain,txid:g})))}else if(web3.isSignOnlySigner(a)){const b=await a.sign(m),g=await platform.SuiPlatform.sendWait(n.fromChain.chain,p,b);f.push(...g.map(h=>({chain:n.fromChain.chain,txid:h})))}}else{const y=[],m=web3.networkChainToNativeChainId.get(n.fromChain.network,n.fromChain.chain);if(!web3.isNative(n.source.id.address)){const g=platform$1.EvmPlatform.getTokenImplementation(await n.fromChain.getRpc(),this.toMayanAddress(n.source.id)),h=addresses_default$1.MAYAN_FORWARDER_CONTRACT,T=await g.allowance(u,h),w=web3.units(r.sourceToken.amount);if(T<w){const A=await g.approve.populateTransaction(h,w);y.push(new unsignedTransaction$2.EvmUnsignedTransaction({from:a.address(),chainId:m,...A},n.fromChain.network,n.fromChain.chain,"Approve Allowance"))}}const b=this.isTestnetRequest(n)?getSwapFromEvmTxPayload(this.normalizeQuoteForTestnet(r.details),u,c,null,u,Number(m),void 0,void 0):getSwapFromEvmTxPayload$1(r.details,u,c,l,u,Number(m),void 0,void 0);if(y.push(new unsignedTransaction$2.EvmUnsignedTransaction({from:a.address(),chainId:m,...b},n.fromChain.network,n.fromChain.chain,"Execute Swap")),web3.isSignAndSendSigner(a)){const g=await a.signAndSend(y);f.push(...g.map(h=>({chain:n.fromChain.chain,txid:h})))}else if(web3.isSignOnlySigner(a)){const g=await a.sign(y),h=await platform$1.EvmPlatform.sendWait(n.fromChain.chain,p,g);f.push(...h.map(T=>({chain:n.fromChain.chain,txid:T})))}}return{from:n.fromChain.chain,to:n.toChain.chain,state:web3.TransferState.SourceInitiated,originTxs:f}}catch(p){throw console.error(p),p}}async*track(n,a){if(web3.isCompleted(n)||web3.isRedeemed(n)||web3.isRefunded(n))return n;let r=a||60*60*1e3;for(;r>0;){const s=Date.now();if(web3.isSourceInitiated(n)||web3.isSourceFinalized(n)||web3.isAttested(n)){const o=await getTransactionStatus(this.wh.network,n.originTxs[n.originTxs.length-1]);if(o&&(n=txStatusToReceipt(o),yield{...n,txstatus:o},web3.isCompleted(n)||web3.isRedeemed(n)||web3.isRefunded(n)))return n}else throw new Error("Transfer must have been initiated");await new Promise(o=>setTimeout(o,1e3)),r-=Date.now()-s}return n}transferUrl(n){return`https://explorer.mayan.finance/swap/${n}`}referrerAddress(){const{referrers:n}=this.constructor;if(!(!n||Object.keys(n).length<1))return{solana:n.Solana||null,evm:n.Ethereum||null,sui:n.Sui||null}}getReferralParameters(n){const{referrers:a,getReferrerBps:r,isV2:s}=this.constructor;return!!(a!=null&&a.Solana)&&typeof r=="function"?{referrer:a.Solana,referrerBps:r(n),isV2:s}:{}}}z(MayanRouteBase,"NATIVE_GAS_DROPOFF_SUPPORTED",!1),z(MayanRouteBase,"IS_AUTOMATIC",!0);class MayanRoute extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["WH","MCTP","SWIFT","MONO_CHAIN"])}}z(MayanRoute,"meta",{name:"MayanSwap",provider:"Mayan"});class MayanRouteSWIFT extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["SWIFT"])}}z(MayanRouteSWIFT,"meta",{name:"MayanSwapSWIFT",provider:"Mayan Swift"});class MayanRouteMCTP extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["MCTP"])}}z(MayanRouteMCTP,"meta",{name:"MayanSwapMCTP",provider:"Mayan MCTP"});class MayanRouteWH extends MayanRouteBase{constructor(){super(...arguments);z(this,"protocols",["WH"])}}z(MayanRouteWH,"meta",{name:"MayanSwapWH",provider:"Mayan"});function createMayanRouteWithReferrerFee(e,t={}){return t!=null&&t.referrers&&typeof(t==null?void 0:t.getReferrerBps)=="function"&&Object.assign(e,t),e}exports.MayanRoute=MayanRoute;exports.MayanRouteMCTP=MayanRouteMCTP;exports.MayanRouteSWIFT=MayanRouteSWIFT;exports.MayanRouteWH=MayanRouteWH;exports.createMayanRouteWithReferrerFee=createMayanRouteWithReferrerFee;