@wormhole-foundation/wormhole-connect 4.1.0-beta.1-development → 5.0.0

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 (352) hide show
  1. package/dist/assets/{aptos-C9pj8h2Q.js → aptos-DgUCX7ng.js} +3 -3
  2. package/dist/assets/{evm-DCydYqBI.js → evm-B6bqAPTR.js} +4 -4
  3. package/dist/assets/{evm-CJXv6IQV.js → evm-Ve5nG8Fs.js} +1 -1
  4. package/dist/assets/{index-LvDsy6wR.js → index-BJokXZAc.js} +1 -1
  5. package/dist/assets/{index-BqxX-Ey7.js → index-BJv9sngo.js} +1 -1
  6. package/dist/assets/{index-C9cy4cDs.js → index-BjZMFLjq.js} +1 -1
  7. package/dist/assets/{index-FJ-n91Op.js → index-BwbPlAQZ.js} +1 -1
  8. package/dist/assets/{index-Clu5I99l.js → index-Bzg4DNh9.js} +1 -1
  9. package/dist/assets/{index-ezhfpCvx.js → index-CKXa657f.js} +1 -1
  10. package/dist/assets/index-CXiuP738.js +1 -0
  11. package/dist/assets/{index-CNExx9Zb.js → index-CvTvoHH-.js} +1 -1
  12. package/dist/assets/{index-C25bHdOM.js → index-D1ULRVbZ.js} +1 -1
  13. package/dist/assets/{index-DpabQJOX.js → index-DlH9IMQl.js} +1 -1
  14. package/dist/assets/{index-C8u74RER.js → index-Dsb-5apv.js} +1 -1
  15. package/dist/assets/{index-D9ApKauA.js → index-_YFUWLUM.js} +1 -1
  16. package/dist/assets/{index-CoIvdDsX.js → index-jg26xdEi.js} +1 -1
  17. package/dist/assets/{provider-jsonrpc-DuMpLBV0.js → provider-jsonrpc-DNgUKjG6.js} +1 -1
  18. package/dist/assets/{solana-DWuIx6gK.js → solana-D4RepnSA.js} +2 -2
  19. package/dist/assets/{sui-BcTGBE_4.js → sui-Du5h-f8S.js} +3 -3
  20. package/dist/main.mjs +185 -140
  21. package/dist/src/components/ConfigurablePageHeader.d.ts +1 -1
  22. package/dist/src/components/ConfigurablePageHeader.d.ts.map +1 -1
  23. package/dist/src/components/Header.d.ts +1 -0
  24. package/dist/src/components/Header.d.ts.map +1 -1
  25. package/dist/src/components/PageHeader.d.ts +1 -3
  26. package/dist/src/components/PageHeader.d.ts.map +1 -1
  27. package/dist/src/components/SampleApp/index.d.ts.map +1 -1
  28. package/dist/src/components/v3/BackButton.d.ts +6 -0
  29. package/dist/src/components/v3/BackButton.d.ts.map +1 -0
  30. package/dist/src/components/v3/FormContent.d.ts +5 -0
  31. package/dist/src/components/v3/FormContent.d.ts.map +1 -0
  32. package/dist/src/config/constants.d.ts.map +1 -1
  33. package/dist/src/config/events.d.ts +2 -1
  34. package/dist/src/config/events.d.ts.map +1 -1
  35. package/dist/src/config/mainnet/chains.d.ts.map +1 -1
  36. package/dist/src/config/mainnet/rpcs.d.ts.map +1 -1
  37. package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
  38. package/dist/src/config/mainnet/wrappedTokens.d.ts +6 -0
  39. package/dist/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
  40. package/dist/src/config/types.d.ts +6 -11
  41. package/dist/src/config/types.d.ts.map +1 -1
  42. package/dist/src/config/ui.d.ts +9 -0
  43. package/dist/src/config/ui.d.ts.map +1 -1
  44. package/dist/src/consts/wallet.d.ts.map +1 -1
  45. package/dist/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
  46. package/dist/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
  47. package/dist/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
  48. package/dist/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
  49. package/dist/src/hooks/useTransactionHistory.d.ts.map +1 -1
  50. package/dist/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
  51. package/dist/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
  52. package/dist/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
  53. package/dist/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
  54. package/dist/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
  55. package/dist/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
  56. package/dist/src/icons/PoweredBy.d.ts.map +1 -1
  57. package/dist/src/icons/TokenIcons.d.ts.map +1 -1
  58. package/dist/src/icons/Tokens/AUSD.d.ts +4 -0
  59. package/dist/src/icons/Tokens/AUSD.d.ts.map +1 -0
  60. package/dist/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
  61. package/dist/src/routes/mayan/utils.d.ts.map +1 -1
  62. package/dist/src/routes/monad/consts.d.ts +1 -0
  63. package/dist/src/routes/monad/consts.d.ts.map +1 -1
  64. package/dist/src/routes/monad/monad.test.d.ts +1 -0
  65. package/dist/src/routes/monad/monad.test.d.ts.map +1 -0
  66. package/dist/src/routes/monad/utils.d.ts.map +1 -1
  67. package/dist/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  68. package/dist/src/telemetry/types.d.ts +5 -2
  69. package/dist/src/telemetry/types.d.ts.map +1 -1
  70. package/dist/src/theme.d.ts +4 -3
  71. package/dist/src/theme.d.ts.map +1 -1
  72. package/dist/src/utils/errors.d.ts +1 -0
  73. package/dist/src/utils/errors.d.ts.map +1 -1
  74. package/dist/src/utils/fees.d.ts.map +1 -1
  75. package/dist/src/utils/index.d.ts.map +1 -1
  76. package/dist/src/utils/sdkv2.d.ts.map +1 -1
  77. package/dist/src/utils/wallet/index.d.ts +1 -0
  78. package/dist/src/utils/wallet/index.d.ts.map +1 -1
  79. package/dist/src/views/Terms.d.ts.map +1 -1
  80. package/dist/src/views/TxSearch.d.ts.map +1 -1
  81. package/dist/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
  82. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
  83. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
  84. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
  85. package/dist/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
  86. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
  87. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
  88. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
  89. package/dist/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
  90. package/dist/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  91. package/dist/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  92. package/dist/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  93. package/dist/src/views/v3/Bridge/Routes/index.d.ts +2 -1
  94. package/dist/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  95. package/dist/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
  96. package/dist/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
  97. package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
  98. package/dist/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
  99. package/dist/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
  100. package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
  101. package/dist/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
  102. package/dist/src/views/v3/Bridge/index.d.ts.map +1 -1
  103. package/dist/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  104. package/dist/src/views/v3/Redeem/index.d.ts.map +1 -1
  105. package/dist/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
  106. package/dist/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
  107. package/lib/{account-cIQhxn1E.js → account-K005OXgL.js} +1 -1
  108. package/lib/{account-BVl6Reot.mjs → account-TXlxMyv4.mjs} +2 -2
  109. package/lib/{address-rVHWlcKQ.mjs → address-CX0E32ut.mjs} +1 -1
  110. package/lib/{address-W9jn6Qdk.js → address-DqbIfKOu.js} +1 -1
  111. package/lib/{aptos-DWDR5o78.js → aptos-BnjZOhUE.js} +1 -1
  112. package/lib/{aptos-CNHYHK9c.js → aptos-CnswqE-C.js} +2 -2
  113. package/lib/{aptos-D1WFzBMy.mjs → aptos-DRfXJ8Ba.mjs} +7 -7
  114. package/lib/{aptos-B84P9rJZ.mjs → aptos-fTiHvXXE.mjs} +5 -5
  115. package/lib/{associatedTokenAccount-C4vEEbG5.js → associatedTokenAccount-CeqdaO2m.js} +1 -1
  116. package/lib/{associatedTokenAccount-DF6phO3l.mjs → associatedTokenAccount-Dsm4Hq32.mjs} +3 -3
  117. package/lib/{basic-BERCwt2M.mjs → basic-BqusrmRE.mjs} +3 -3
  118. package/lib/{basic-NhXxxbR1.js → basic-BrW22Cj9.js} +1 -1
  119. package/lib/{basic-CukRIaOD.mjs → basic-CK5Bsf0B.mjs} +3 -3
  120. package/lib/{basic-DJXXfABO.js → basic-ChOmeQQk.js} +1 -1
  121. package/lib/{chunk-KJH4KKG6-Brt4fyqz.mjs → chunk-KJH4KKG6-BfVMUPsB.mjs} +3 -3
  122. package/lib/{chunk-KJH4KKG6-BbF5W1_N.js → chunk-KJH4KKG6-CJx-rDa6.js} +1 -1
  123. package/lib/constants-C1w_RyOP.js +1 -0
  124. package/lib/{constants-VaoVbllu.mjs → constants-DcDpDarO.mjs} +6 -5
  125. package/lib/{core-BCZrVb_s.mjs → core-DQ-6Q1F1.mjs} +6 -6
  126. package/lib/{core-BE6SS7Ye.js → core-FA2gBc-s.js} +3 -3
  127. package/lib/{create-CChLkbGc.mjs → create-C5dhTMHL.mjs} +1 -1
  128. package/lib/{create-4w0DrcRO.js → create-bA3Gyivs.js} +1 -1
  129. package/lib/{evm-CmmnpcFD.mjs → evm-BJ4Lx-r9.mjs} +5 -5
  130. package/lib/{evm--K7mr7Kr.js → evm-BTgO_HRP.js} +2 -2
  131. package/lib/{evm-DKaWm7eC.mjs → evm-C-vXMfGr.mjs} +7 -7
  132. package/lib/{evm-C5BixKBn.js → evm-qxndAh3z.js} +1 -1
  133. package/lib/executor.js +1 -1
  134. package/lib/executor.mjs +13 -15
  135. package/lib/hosted.js +1 -1
  136. package/lib/hosted.mjs +1 -1
  137. package/lib/hypercore-D7kZiwbe.js +4 -0
  138. package/lib/{hypercore-birmbh9T.mjs → hypercore-DKqayfki.mjs} +4858 -3107
  139. package/lib/{index-qL4D-cpk.js → index-1T4sIL8n.js} +1 -1
  140. package/lib/{index-Ap7250Gf.mjs → index-39tU5Y5t.mjs} +6 -6
  141. package/lib/{index-BUbUhbMe.js → index-3Zg1AdoI.js} +1 -1
  142. package/lib/{index-D7gCsil9.js → index-6m7yero0.js} +1 -1
  143. package/lib/{index-CH0iw38J.mjs → index-B1URQBlH.mjs} +3 -3
  144. package/lib/{index-C5I7QiZ7.mjs → index-B6Ppg6EZ.mjs} +3 -3
  145. package/lib/{index-CED5jdrg.js → index-B7b8sctd.js} +1 -1
  146. package/lib/{index-xvG6cxNx.js → index-BEIFBxtP.js} +1 -1
  147. package/lib/{index-zIzzPp6D.mjs → index-BHpJUZne.mjs} +3 -3
  148. package/lib/{index-BTcij9Np.js → index-BJ0xVutl.js} +1 -1
  149. package/lib/{index-C61IKE_V.mjs → index-BSIPYyeZ.mjs} +2 -2
  150. package/lib/{index-EbSw7SbC.js → index-BTjUHY0e.js} +1 -1
  151. package/lib/{index-C8YhpD9T.mjs → index-BVciucyT.mjs} +4 -4
  152. package/lib/{index-BuHdMHLz.mjs → index-Ba1zbu3Q.mjs} +2 -2
  153. package/lib/{index-BU35GfG0.mjs → index-Bdtj4LUz.mjs} +2 -2
  154. package/lib/{index-Bs28m4ya.js → index-BfzaCmg7.js} +1 -1
  155. package/lib/{index-CN7M4gwf.mjs → index-BviSNDV7.mjs} +5 -5
  156. package/lib/{index-BRFbmsc_.js → index-C-F8_8dY.js} +1 -1
  157. package/lib/{index-Cys9e11O.js → index-C-SMuVS3.js} +1 -1
  158. package/lib/{index-pYTU7pQK.mjs → index-C6MalNd5.mjs} +4 -3
  159. package/lib/{index-Cg1Xo1eZ.js → index-C85u3Gj5.js} +1 -1
  160. package/lib/{index-Da9rvmCc.js → index-Cb0UWLGI.js} +1 -1
  161. package/lib/{index-HrZv1SyT.js → index-Cb_8WAm1.js} +8 -8
  162. package/lib/{index-DHnmtpvA.mjs → index-CcbY14s5.mjs} +4 -4
  163. package/lib/{index-CR1itkLl.mjs → index-CgqBQ88K.mjs} +3248 -3055
  164. package/lib/{index-Txz5xwr6.mjs → index-CowAVUcg.mjs} +1 -1
  165. package/lib/{index-BKgliEPZ.mjs → index-CrWTw0Se.mjs} +2 -2
  166. package/lib/{index-B_JJ50Y-.mjs → index-D-HUNEka.mjs} +4 -4
  167. package/lib/{index-BhMcIAHt.js → index-DJ2w1fz1.js} +1 -1
  168. package/lib/{index-BN_2mA2n.mjs → index-DcFL403C.mjs} +1 -1
  169. package/lib/{index-CO4ZoIAU.mjs → index-DjmVBSGQ.mjs} +4 -4
  170. package/lib/{index-Co3mm7UN.mjs → index-DrJE8udd.mjs} +1 -1
  171. package/lib/{index-fTUcaKb4.js → index-DuhYwr0t.js} +1 -1
  172. package/lib/{index-BQ0lWQfT.mjs → index-DwEx1Hn-.mjs} +2 -2
  173. package/lib/{index-DBofyYkS.js → index-DziujHu1.js} +1 -1
  174. package/lib/{index-Dou5sFku.js → index-JWbF-m3e.js} +1 -1
  175. package/lib/index-Oxm0y6-t.js +1 -0
  176. package/lib/{index-D1odbjeH.mjs → index-VnJcNK62.mjs} +3 -3
  177. package/lib/{index-DVxmRy4C.js → index-WrXSs0ic.js} +1 -1
  178. package/lib/{index-Cw0jWBks.js → index-XjDX4fWv.js} +1 -1
  179. package/lib/{index-CsdD1TNi.js → index-aMKUba1k.js} +1 -1
  180. package/lib/{index-DSnylejH.mjs → index-dufPAW5T.mjs} +292 -269
  181. package/lib/{index-lZY5fTXF.js → index-lAqXlt-a.js} +1 -1
  182. package/lib/{index-N4FkpEh9.mjs → index-mNO1mk2F.mjs} +4 -4
  183. package/lib/{index-BScgBddV.mjs → index-o1SAPXm_.mjs} +3 -3
  184. package/lib/{index-DNZ-Pkpm.mjs → index-rxQSA9t0.mjs} +6 -6
  185. package/lib/{index-DALvn9lg.js → index-v7w8krM0.js} +1 -1
  186. package/lib/{index-japympio.js → index-wadjmD_G.js} +1 -1
  187. package/lib/{index.es-DmmqAOLD.js → index.es-B9kBDkCQ.js} +3 -3
  188. package/lib/{index.es-Dg6IFrL4.js → index.es-BZRO-bNH.js} +1 -1
  189. package/lib/{index.es-B0fk_42a.mjs → index.es-CF3YY88z.mjs} +4 -4
  190. package/lib/{index.es-CDqFguL5.mjs → index.es-CaAL5X4E.mjs} +4 -4
  191. package/lib/index.js +78 -33
  192. package/lib/index.mjs +9158 -8833
  193. package/lib/{keypair-DWucLGoA.js → keypair-DCgXFOw5.js} +1 -1
  194. package/lib/{keypair-CP7syX9B.mjs → keypair-vpG2fl-q.mjs} +3 -3
  195. package/lib/lifi.js +1 -1
  196. package/lib/lifi.mjs +75 -76
  197. package/lib/mayan.js +2 -2
  198. package/lib/mayan.mjs +11 -10
  199. package/lib/{mint-CoNdQTGM.mjs → mint-BPrKG-Zc.mjs} +3 -3
  200. package/lib/{mint-CxQ6P5lT.js → mint-DW-XgF68.js} +1 -1
  201. package/lib/monad.js +1 -1
  202. package/lib/monad.mjs +91 -58
  203. package/lib/multiToken-B9BoSxdr.js +1 -0
  204. package/lib/{multiToken-Bm-K5dRJ.mjs → multiToken-DMllgxzT.mjs} +4 -3
  205. package/lib/ntt.js +2 -2
  206. package/lib/ntt.mjs +77 -86
  207. package/lib/{platform-Cil_UtAQ.mjs → platform-CSpAb386.mjs} +2788 -2748
  208. package/lib/{platform-BMKYxqvv.js → platform-Csj1Outc.js} +1 -1
  209. package/lib/platform-DCcL7jHP.js +11 -0
  210. package/lib/{platform-vRQufc6j.mjs → platform-YzJZdSCf.mjs} +3 -3
  211. package/lib/{secp256k1-LTcmQEQ5.mjs → secp256k1-1o6o1kFy.mjs} +1 -1
  212. package/lib/{secp256k1-DzRCmd6a.mjs → secp256k1-BjlnTj1_.mjs} +1 -1
  213. package/lib/{secp256k1-CglUNI04.js → secp256k1-CeYT4ndf.js} +1 -1
  214. package/lib/{secp256k1-DROP2Lhv.mjs → secp256k1-Cw_BiEuN.mjs} +1 -1
  215. package/lib/{secp256k1-BkoM1Jum.js → secp256k1-D5cKS6q_.js} +1 -1
  216. package/lib/{secp256k1-CcVQkYNr.js → secp256k1-_QlJc7sK.js} +1 -1
  217. package/lib/{signer-0hWrZ5BZ.mjs → signer-D2GRgRrw.mjs} +2 -2
  218. package/lib/{signer-DyqulDUM.js → signer-gjSiV5v3.js} +1 -1
  219. package/lib/solana-DfW5T_64.mjs +18 -0
  220. package/lib/{solana-C4k_Yg7w.js → solana-DvHFhri3.js} +4 -4
  221. package/lib/solana-Edd9tIkX.js +1 -0
  222. package/lib/{solana-D1LVIhGd.mjs → solana-TgPr9kpk.mjs} +10 -10
  223. package/lib/{solanaEmbed.esm-AvWQUA9e.mjs → solanaEmbed.esm-Bh1-aAL4.mjs} +4 -4
  224. package/lib/{solanaEmbed.esm--Ac-IlRA.js → solanaEmbed.esm-C8TjRcIV.js} +1 -1
  225. package/lib/{solidity-CbDkqHjE.js → solidity-BW7c8rFv.js} +1 -1
  226. package/lib/{solidity-Dk_mvceo.mjs → solidity-D9gSgFcp.mjs} +1 -1
  227. package/lib/src/components/ConfigurablePageHeader.d.ts +1 -1
  228. package/lib/src/components/ConfigurablePageHeader.d.ts.map +1 -1
  229. package/lib/src/components/Header.d.ts +1 -0
  230. package/lib/src/components/Header.d.ts.map +1 -1
  231. package/lib/src/components/PageHeader.d.ts +1 -3
  232. package/lib/src/components/PageHeader.d.ts.map +1 -1
  233. package/lib/src/components/SampleApp/index.d.ts.map +1 -1
  234. package/lib/src/components/v3/BackButton.d.ts +6 -0
  235. package/lib/src/components/v3/BackButton.d.ts.map +1 -0
  236. package/lib/src/components/v3/FormContent.d.ts +5 -0
  237. package/lib/src/components/v3/FormContent.d.ts.map +1 -0
  238. package/lib/src/config/constants.d.ts.map +1 -1
  239. package/lib/src/config/events.d.ts +2 -1
  240. package/lib/src/config/events.d.ts.map +1 -1
  241. package/lib/src/config/mainnet/chains.d.ts.map +1 -1
  242. package/lib/src/config/mainnet/rpcs.d.ts.map +1 -1
  243. package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
  244. package/lib/src/config/mainnet/wrappedTokens.d.ts +6 -0
  245. package/lib/src/config/mainnet/wrappedTokens.d.ts.map +1 -1
  246. package/lib/src/config/types.d.ts +6 -11
  247. package/lib/src/config/types.d.ts.map +1 -1
  248. package/lib/src/config/ui.d.ts +9 -0
  249. package/lib/src/config/ui.d.ts.map +1 -1
  250. package/lib/src/consts/wallet.d.ts.map +1 -1
  251. package/lib/src/hooks/useAutoEnableGasDropoff.d.ts +3 -1
  252. package/lib/src/hooks/useAutoEnableGasDropoff.d.ts.map +1 -1
  253. package/lib/src/hooks/useConnectToLastUsedWallet.d.ts.map +1 -1
  254. package/lib/src/hooks/useSortedRoutesWithQuotes.d.ts.map +1 -1
  255. package/lib/src/hooks/useTransactionHistory.d.ts.map +1 -1
  256. package/lib/src/hooks/useTransactionHistoryLiFi.d.ts +2 -0
  257. package/lib/src/hooks/useTransactionHistoryLiFi.d.ts.map +1 -1
  258. package/lib/src/hooks/useTransactionHistoryMayan.d.ts +2 -0
  259. package/lib/src/hooks/useTransactionHistoryMayan.d.ts.map +1 -1
  260. package/lib/src/hooks/useTransactionHistoryWHScan.d.ts +2 -1
  261. package/lib/src/hooks/useTransactionHistoryWHScan.d.ts.map +1 -1
  262. package/lib/src/icons/PoweredBy.d.ts.map +1 -1
  263. package/lib/src/icons/TokenIcons.d.ts.map +1 -1
  264. package/lib/src/icons/Tokens/AUSD.d.ts +4 -0
  265. package/lib/src/icons/Tokens/AUSD.d.ts.map +1 -0
  266. package/lib/src/routes/lifi/LiFiRoute.d.ts.map +1 -1
  267. package/lib/src/routes/mayan/utils.d.ts.map +1 -1
  268. package/lib/src/routes/monad/consts.d.ts +1 -0
  269. package/lib/src/routes/monad/consts.d.ts.map +1 -1
  270. package/lib/src/routes/monad/monad.test.d.ts +1 -0
  271. package/lib/src/routes/monad/monad.test.d.ts.map +1 -0
  272. package/lib/src/routes/monad/utils.d.ts.map +1 -1
  273. package/lib/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  274. package/lib/src/telemetry/types.d.ts +5 -2
  275. package/lib/src/telemetry/types.d.ts.map +1 -1
  276. package/lib/src/theme.d.ts +4 -3
  277. package/lib/src/theme.d.ts.map +1 -1
  278. package/lib/src/utils/errors.d.ts +1 -0
  279. package/lib/src/utils/errors.d.ts.map +1 -1
  280. package/lib/src/utils/fees.d.ts.map +1 -1
  281. package/lib/src/utils/index.d.ts.map +1 -1
  282. package/lib/src/utils/sdkv2.d.ts.map +1 -1
  283. package/lib/src/utils/wallet/index.d.ts +1 -0
  284. package/lib/src/utils/wallet/index.d.ts.map +1 -1
  285. package/lib/src/views/Terms.d.ts.map +1 -1
  286. package/lib/src/views/TxSearch.d.ts.map +1 -1
  287. package/lib/src/views/v3/Bridge/AssetPicker/PickerModal.d.ts.map +1 -1
  288. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts +17 -0
  289. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButton.d.ts.map +1 -0
  290. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts +8 -0
  291. package/lib/src/views/v3/Bridge/AssetPicker/TokenPickerButtonContent.d.ts.map +1 -0
  292. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts +2 -0
  293. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButton.test.d.ts.map +1 -0
  294. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts +2 -0
  295. package/lib/src/views/v3/Bridge/AssetPicker/__tests__/TokenPickerButtonContent.test.d.ts.map +1 -0
  296. package/lib/src/views/v3/Bridge/AssetPicker/index.d.ts.map +1 -1
  297. package/lib/src/views/v3/Bridge/GasSlider/index.d.ts.map +1 -1
  298. package/lib/src/views/v3/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  299. package/lib/src/views/v3/Bridge/Routes/index.d.ts +2 -1
  300. package/lib/src/views/v3/Bridge/Routes/index.d.ts.map +1 -1
  301. package/lib/src/views/v3/Bridge/WalletConnector/Controller.d.ts.map +1 -1
  302. package/lib/src/views/v3/Bridge/WalletConnector/ExplorerLink.d.ts.map +1 -1
  303. package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts +9 -0
  304. package/lib/src/views/v3/Bridge/WalletConnector/WalletAddress.d.ts.map +1 -0
  305. package/lib/src/views/v3/Bridge/WalletConnector/WalletPickerContent.d.ts.map +1 -1
  306. package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts +2 -0
  307. package/lib/src/views/v3/Bridge/WalletConnector/__tests__/WalletAddress.test.d.ts.map +1 -0
  308. package/lib/src/views/v3/Bridge/index.d.ts.map +1 -1
  309. package/lib/src/views/v3/Redeem/TransactionDetails/index.d.ts.map +1 -1
  310. package/lib/src/views/v3/Redeem/index.d.ts.map +1 -1
  311. package/lib/src/views/v3/TxHistory/Item/index.d.ts.map +1 -1
  312. package/lib/src/views/v3/TxHistory/Widget/Item.d.ts.map +1 -1
  313. package/lib/{sui-LiXjD27c.js → sui-BtyZE8YC.js} +1 -1
  314. package/lib/{sui-BPAb7kcs.mjs → sui-CoWRa3vr.mjs} +4 -4
  315. package/lib/{sui-CgmDTkXK.js → sui-DwFrGd2Y.js} +1 -1
  316. package/lib/{sui-cpCvd7RC.mjs → sui-QP4AZGNc.mjs} +6 -6
  317. package/lib/{tokenHelpers-CbE0g9BP.js → tokenHelpers-CeTyb4rG.js} +1 -1
  318. package/lib/{tokenHelpers-DvWQs1tu.mjs → tokenHelpers-VYjmKUxj.mjs} +1 -1
  319. package/lib/{tokens-BJDttoCp.mjs → tokens-D6uJqrsR.mjs} +3 -3
  320. package/lib/{tokens-CvZuVW-g.js → tokens-mXZqt-qL.js} +1 -1
  321. package/lib/types-CgveSjsw.js +1 -0
  322. package/lib/{types-iFgwQ7vG.mjs → types-Dxx2g1wS.mjs} +170 -168
  323. package/lib/{unsignedTransaction-DCDxTFq8.mjs → unsignedTransaction-D2Ja0SuN.mjs} +2 -2
  324. package/lib/{unsignedTransaction-DA4tlY5u.js → unsignedTransaction-qRBv5Cnd.js} +2 -2
  325. package/lib/{utils-DMf7wRGI.js → utils-BEljbqMf.js} +1 -1
  326. package/lib/{utils-BSxsyW2c.mjs → utils-mBHX3Jpu.mjs} +4 -4
  327. package/lib/{w3m-modal-DM5Pf8SH.mjs → w3m-modal-BEe8ji9_.mjs} +2 -2
  328. package/lib/{w3m-modal-CtQ0TPA4.mjs → w3m-modal-D3eqrCT1.mjs} +2 -2
  329. package/lib/{w3m-modal-k23UDiov.js → w3m-modal-Duc13ei7.js} +1 -1
  330. package/lib/{w3m-modal-ByamyZny.js → w3m-modal-f_sUVzPx.js} +1 -1
  331. package/lib/{wallet-CMTEE6Oa.mjs → wallet-Cyosy4Hc.mjs} +1 -1
  332. package/lib/{wallet-BMli0fbu.js → wallet-a0_jwP8j.js} +1 -1
  333. package/lib/{web3-CUwFm9Lx.mjs → web3-CdErAVj5.mjs} +2 -2
  334. package/lib/{web3-DdUeM7iQ.js → web3-x1WCGDiy.js} +1 -1
  335. package/package.json +49 -47
  336. package/dist/assets/index-_UMHESh0.js +0 -1
  337. package/dist/src/components/Button.d.ts +0 -13
  338. package/dist/src/components/Button.d.ts.map +0 -1
  339. package/dist/src/icons/Down.d.ts +0 -5
  340. package/dist/src/icons/Down.d.ts.map +0 -1
  341. package/lib/constants-B9TBfA4z.js +0 -1
  342. package/lib/hypercore-4R7JGmbr.js +0 -4
  343. package/lib/index-C8eqQ_7p.js +0 -1
  344. package/lib/multiToken-YoNvxjur.js +0 -1
  345. package/lib/platform-CCG_jgOO.js +0 -11
  346. package/lib/solana-DKFJvqX8.mjs +0 -18
  347. package/lib/solana-Dmje_Si8.js +0 -1
  348. package/lib/src/components/Button.d.ts +0 -13
  349. package/lib/src/components/Button.d.ts.map +0 -1
  350. package/lib/src/icons/Down.d.ts +0 -5
  351. package/lib/src/icons/Down.d.ts.map +0 -1
  352. package/lib/types-CjNs2oB0.js +0 -1
package/lib/mayan.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const hypercore=require("./hypercore-4R7JGmbr.js"),unsignedTransaction=require("./unsignedTransaction-DA4tlY5u.js"),platform=require("./platform-CCG_jgOO.js"),tokenHelpers=require("./tokenHelpers-CbE0g9BP.js"),associatedTokenAccount=require("./associatedTokenAccount-C4vEEbG5.js"),mint=require("./mint-CxQ6P5lT.js"),web3=require("./web3-DdUeM7iQ.js"),transferCheckedInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),web3.u64("amount"),unsignedTransaction.LayoutExports.u8("decimals")]);function createTransferCheckedInstruction(e,t,r,n,o,i,u=[],a=mint.TOKEN_PROGRAM_ID){const p=associatedTokenAccount.addSigners([{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0}],n,u),s=platform.Buffer.alloc(transferCheckedInstructionData.span);return transferCheckedInstructionData.encode({instruction:associatedTokenAccount.TokenInstruction.TransferChecked,amount:BigInt(o),decimals:i},s),new unsignedTransaction.TransactionInstruction({keys:p,programId:a,data:s})}var sha256={exports:{}},hasRequiredSha256;function requireSha256(){return hasRequiredSha256||(hasRequiredSha256=1,(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 platform.process$1=="object"&&platform.process$1.versions&&platform.process$1.versions.node;NODE_JS?root=unsignedTransaction.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(r){return new Sha256(t,!0).update(r)[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(o){return t.create().update(o)};for(var r=0;r<OUTPUT_TYPES.length;++r){var n=OUTPUT_TYPES[r];t[n]=createOutputMethod(n,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(r,n){return new HmacSha256(r,t,!0).update(n)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(o){return new HmacSha256(o,e)},t.update=function(o,i){return t.create(o).update(i)};for(var r=0;r<OUTPUT_TYPES.length;++r){var n=OUTPUT_TYPES[r];t[n]=createHmacOutputMethod(n,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,r=typeof e;if(r!=="string"){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);t=!0}for(var n,o=0,i,u=e.length,a=this.blocks;o<u;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),t)for(i=this.start;o<u&&i<64;++o)a[i>>2]|=e[o]<<SHIFT[i++&3];else for(i=this.start;o<u&&i<64;++o)n=e.charCodeAt(o),n<128?a[i>>2]|=n<<SHIFT[i++&3]:n<2048?(a[i>>2]|=(192|n>>6)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]):n<55296||n>=57344?(a[i>>2]|=(224|n>>12)<<SHIFT[i++&3],a[i>>2]|=(128|n>>6&63)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]):(n=65536+((n&1023)<<10|e.charCodeAt(++o)&1023),a[i>>2]|=(240|n>>18)<<SHIFT[i++&3],a[i>>2]|=(128|n>>12&63)<<SHIFT[i++&3],a[i>>2]|=(128|n>>6&63)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=a[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,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=this.blocks,s,c,d,y,l,m,f,T,g,b,h;for(s=16;s<64;++s)l=p[s-15],c=(l>>>7|l<<25)^(l>>>18|l<<14)^l>>>3,l=p[s-2],d=(l>>>17|l<<15)^(l>>>19|l<<13)^l>>>10,p[s]=p[s-16]+c+p[s-7]+d<<0;for(h=t&r,s=0;s<64;s+=4)this.first?(this.is224?(T=300032,l=p[0]-1413257819,a=l-150054599<<0,n=l+24177077<<0):(T=704751109,l=p[0]-210244248,a=l-1521486534<<0,n=l+143694565<<0),this.first=!1):(c=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),d=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),T=e&t,y=T^e&r^h,f=o&i^~o&u,l=a+d+f+K[s]+p[s],m=c+y,a=n+l<<0,n=l+m<<0),c=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),d=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),g=n&e,y=g^n&t^T,f=a&o^~a&i,l=u+d+f+K[s+1]+p[s+1],m=c+y,u=r+l<<0,r=l+m<<0,c=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),d=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),b=r&n,y=b^r&e^g,f=u&a^~u&o,l=i+d+f+K[s+2]+p[s+2],m=c+y,i=t+l<<0,t=l+m<<0,c=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),d=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),h=t&r,y=h^t&n^b,f=i&u^~i&a,l=o+d+f+K[s+3]+p[s+3],m=c+y,o=e+l<<0,e=l+m<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+o<<0,this.h5=this.h5+i<<0,this.h6=this.h6+u<<0,this.h7=this.h7+a<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=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[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[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[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]+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[u>>28&15]+HEX_CHARS[u>>24&15]+HEX_CHARS[u>>20&15]+HEX_CHARS[u>>16&15]+HEX_CHARS[u>>12&15]+HEX_CHARS[u>>8&15]+HEX_CHARS[u>>4&15]+HEX_CHARS[u&15];return this.is224||(p+=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]),p},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,o>>24&255,o>>16&255,o>>8&255,o&255,i>>24&255,i>>16&255,i>>8&255,i&255,u>>24&255,u>>16&255,u>>8&255,u&255];return this.is224||p.push(a>>24&255,a>>16&255,a>>8&255,a&255),p},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,r){var n,o=typeof e;if(o==="string"){var i=[],u=e.length,a=0,p;for(n=0;n<u;++n)p=e.charCodeAt(n),p<128?i[a++]=p:p<2048?(i[a++]=192|p>>6,i[a++]=128|p&63):p<55296||p>=57344?(i[a++]=224|p>>12,i[a++]=128|p>>6&63,i[a++]=128|p&63):(p=65536+((p&1023)<<10|e.charCodeAt(++n)&1023),i[a++]=240|p>>18,i[a++]=128|p>>12&63,i[a++]=128|p>>6&63,i[a++]=128|p&63);e=i}else if(o==="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 s=[],c=[];for(n=0;n<64;++n){var d=e[n]||0;s[n]=92^d,c[n]=54^d}Sha256.call(this,t,r),this.update(c),this.oKeyPad=s,this.inner=!0,this.sharedMemory=r}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)),sha256.exports}var sha256Exports=requireSha256();function base(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let s=0;s<t.length;s++)t[s]=255;for(let s=0;s<e.length;s++){const c=e.charAt(s),d=c.charCodeAt(0);if(t[d]!==255)throw new TypeError(c+" is ambiguous");t[d]=s}const r=e.length,n=e.charAt(0),o=Math.log(r)/Math.log(256),i=Math.log(256)/Math.log(r);function u(s){if(s instanceof Uint8Array||(ArrayBuffer.isView(s)?s=new Uint8Array(s.buffer,s.byteOffset,s.byteLength):Array.isArray(s)&&(s=Uint8Array.from(s))),!(s instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(s.length===0)return"";let c=0,d=0,y=0;const l=s.length;for(;y!==l&&s[y]===0;)y++,c++;const m=(l-y)*i+1>>>0,f=new Uint8Array(m);for(;y!==l;){let b=s[y],h=0;for(let A=m-1;(b!==0||h<d)&&A!==-1;A--,h++)b+=256*f[A]>>>0,f[A]=b%r>>>0,b=b/r>>>0;if(b!==0)throw new Error("Non-zero carry");d=h,y++}let T=m-d;for(;T!==m&&f[T]===0;)T++;let g=n.repeat(c);for(;T<m;++T)g+=e.charAt(f[T]);return g}function a(s){if(typeof s!="string")throw new TypeError("Expected String");if(s.length===0)return new Uint8Array;let c=0,d=0,y=0;for(;s[c]===n;)d++,c++;const l=(s.length-c)*o+1>>>0,m=new Uint8Array(l);for(;c<s.length;){const b=s.charCodeAt(c);if(b>255)return;let h=t[b];if(h===255)return;let A=0;for(let C=l-1;(h!==0||A<y)&&C!==-1;C--,A++)h+=r*m[C]>>>0,m[C]=h%256>>>0,h=h/256>>>0;if(h!==0)throw new Error("Non-zero carry");y=A,c++}let f=l-y;for(;f!==l&&m[f]===0;)f++;const T=new Uint8Array(d+(l-f));let g=d;for(;f!==l;)T[g++]=m[f++];return T}function p(s){const c=a(s);if(c)return c;throw new Error("Non-base"+r+" character")}return{encode:u,decodeUnsafe:a,decode:p}}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 platform.zeroPadValue(new unsignedTransaction.PublicKey(e).toBytes(),32);if(t===chains.ethereum||t===chains.base||t===chains.monad)return platform.zeroPadValue(e,32);throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array(e){return new Uint8Array(platform.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress(e,t,r=!1,n=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),o=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!r&&!unsignedTransaction.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[i]=unsignedTransaction.PublicKey.findProgramAddressSync([t.toBuffer(),n.toBuffer(),e.toBuffer()],o);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 r=Math.min(8,Number(t)),n=Number(e).toFixed(r+1),o=new RegExp(`^-?\\d+(?:\\.\\d{0,${r}})?`),i=n.match(o);if(!i)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const u=i[0];return hypercore.parseUnits(u,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=platform.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit={value:BigInt(0),deadline:0,v:0,r:`0x${unsignedTransaction.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${unsignedTransaction.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,r])=>r!=null&&!Array.isArray(r)).map(([t,r])=>`${encodeURIComponent(t)}=${encodeURIComponent(r)}`).join("&")}async function check5xxError(e){if(e.status.toString().startsWith("5")){let t;try{const r=await e.json();(r?.code||r?.statusCode)&&(r?.message||r?.msg)&&(t={code:r?.code||r?.statusCode,message:r?.message||r?.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:r,referrerBps:n}=e;let o=e.slippageBps;o!=="auto"&&!Number.isFinite(o)&&(o=e.slippage*100);const u={...{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:o,referrer:e.referrer,referrerBps:Number.isFinite(n)?n:void 0,gasDrop:Number.isFinite(r)?r:void 0,sdkVersion:getSdkVersion()},a=`${addresses_default.PRICE_URL}/quote?`,p=toQueryString(u);return a+p}async function getSuggestedRelayer(){const e=await hypercore.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()}),r=await hypercore.o(`${addresses_default.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError(r);const n=await r.json();if(r.status!==200&&r.status!==201)throw n;return n}async function getSwapSui(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion()}),r=`${addresses_default.PRICE_URL}/get-swap/sui`,n=await hypercore.o(r,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError(n);const o=await n.json();if(n.status!==200&&n.status!==201)throw o;return o}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 r=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),n=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),[o]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("message_transmitter")],r),[i]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("sender_authority")],n),[u]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("local_token"),e.toBytes()],n),[a]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("token_messenger")],n),[p]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("token_minter")],n),s=getCCTPDomain(t),[c]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("remote_token_messenger"),platform.Buffer$1.from(s.toString())],n),[d]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("__event_authority")],r),[y]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("__event_authority")],n);return{messageTransmitter:o,senderAuthority:i,remoteTokenMessengerKey:c,tokenMessenger:a,tokenMinter:p,eventAuthToken:y,eventAuthCore:d,localToken:u}}function getEvmMctpBridgeParams(e,t,r,n){const o=getWormholeChainIdById(Number(r)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${i} !== ${o}`);const a=e.cheaperChain===e.fromChain,p=nativeAddressToHexString(t,u),s=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),d=BigInt(e.effectiveAmountIn64),y=getCCTPDomain(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const l=e.mctpMayanContract;if(e.toChain==="solana"&&a)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));return a&&(m=BigInt(0)),{lockFee:a,tokenIn:e.mctpInputContract,amountIn:d,redeemFee:s,gasDrop:c,destAddr:p,destDomain:y,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",bridgeFee:m,contractAddress:l}}function getEvmMctpBridgeTxPayload(e,t,r,n){const o=getEvmMctpBridgeParams(e,t,r),{contractAddress:i,tokenIn:u,amountIn:a,destAddr:p,lockFee:s,redeemFee:c,gasDrop:d,destDomain:y,customPayload:l,payloadType:m,bridgeFee:f}=o,T=new platform.Contract(i,MayanCircleArtifact_default.abi);let g,b;return s?g=T.interface.encodeFunctionData("bridgeWithLockedFee",[u,a,d,c,y,p]):g=T.interface.encodeFunctionData("bridgeWithFee",[u,a,c,d,p,y,m,l]),b=platform.toBeHex(f),{to:i,data:g,value:b,_params:o}}function getEvmMctpCreateOrderParams(e,t,r,n){const o=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${o}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const a=e.mctpMayanContract,p=nativeAddressToHexString(t,u);let s;r?s=nativeAddressToHexString(r,u):s=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8));let y=BigInt(e.effectiveAmountIn64);const l=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),f=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:y,gasDrop:d,destAddr:p,destChain:u,tokenOut:f,minAmountOut:l,deadline:m,redeemFee:c,referrerAddr:s,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain)),contractAddress:a}}function getEvmMctpCreateOrderTxPayload(e,t,r,n){const o=getEvmMctpCreateOrderParams(e,t,r,n),{contractAddress:i,params:u,bridgeFee:a}=o,s=new platform.Contract(i,MayanCircleArtifact_default.abi).interface.encodeFunctionData("createOrder",[u]),c=platform.toBeHex(a);return{to:i,data:s,value:c,_params:o}}function getMctpFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const u=o||ZeroPermit,a=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),p=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));let s=platform.toBeHex(p);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,r,n),d="forwardERC20",y=[e.fromToken.contract,c._params.params.amountIn,u,c._params.contractAddress,c.data];return{data:a.interface.encodeFunctionData(d,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:d,params:y}}}else{const c=getEvmMctpBridgeTxPayload(e,t,n),d="forwardERC20",y=[e.fromToken.contract,c._params.amountIn,u,c._params.contractAddress,c.data];return{data:a.interface.encodeFunctionData(d,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:d,params:y}}}else{const{minMiddleAmount:c,evmSwapRouterAddress:d,evmSwapRouterCalldata:y}=e;if(!c||!d||!y)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 l=getEvmMctpCreateOrderTxPayload(e,t,r,n),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){let f=l._params.params.amountIn;if(f<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(f-=p),s=platform.toBeHex(l._params.params.amountIn);const T="swapAndForwardEth",g=[f,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(T,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:T,params:g}}}else{const f="swapAndForwardERC20",T=[e.fromToken.contract,l._params.params.amountIn,u,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(f,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:f,params:T}}}}else{const l=getEvmMctpBridgeTxPayload(e,t,n),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){let f=l._params.amountIn;if(f<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(f-=p),s=platform.toBeHex(l._params.amountIn);const T="swapAndForwardEth",g=[f,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(T,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:T,params:g}}}else{const f="swapAndForwardERC20",T=[e.fromToken.contract,l._params.amountIn,u,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(f,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:f,params:T}}}}}}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,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),i=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){const u=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new unsignedTransaction.TransactionInstruction({keys:u,programId:i,data:platform.Buffer$1.alloc(0)})}var TOKEN_ACCOUNT_LEN=165;async function createInitializeRandomTokenAccountInstructions(e,t,r,n,o,i=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const u=[],a=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN);return u.push(unsignedTransaction.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:o.publicKey,lamports:a,space:TOKEN_ACCOUNT_LEN,programId:i})),u.push(new unsignedTransaction.TransactionInstruction({keys:[{pubkey:o.publicKey,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:i,data:platform.Buffer$1.from([1])})),u}var ApproveInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.blob(8,"amount")]);function createApproveInstruction(e,t,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],u=platform.Buffer$1.alloc(ApproveInstructionData.span);return ApproveInstructionData.encode({instruction:4,amount:getSafeU64Blob(n)},u),new unsignedTransaction.TransactionInstruction({keys:i,programId:o,data:u})}var SyncNativeInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction")]);function createSyncNativeInstruction(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],r=platform.Buffer$1.alloc(SyncNativeInstructionData.span);return SyncNativeInstructionData.encode({instruction:17},r),new unsignedTransaction.TransactionInstruction({keys:t,programId:new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),data:r})}unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction")]);var SplTransferInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.blob(8,"amount")]);function createSplTransferInstruction(e,t,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],u=platform.Buffer$1.alloc(SplTransferInstructionData.span);return SplTransferInstructionData.encode({instruction:3,amount:getSafeU64Blob(n)},u),new unsignedTransaction.TransactionInstruction({keys:i,programId:o,data:u})}var solMint=new unsignedTransaction.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo(e){return new unsignedTransaction.TransactionInstruction({programId:new unsignedTransaction.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new unsignedTransaction.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:platform.Buffer$1.from(e.data,"base64")})}async function getAddressLookupTableAccounts(e,t){return(await t.getMultipleAccountsInfo(e.map(n=>new unsignedTransaction.PublicKey(n)))).reduce((n,o,i)=>{const u=e[i];if(o){const a=new unsignedTransaction.AddressLookupTableAccount({key:new unsignedTransaction.PublicKey(u),state:unsignedTransaction.AddressLookupTableAccount.deserialize(o.data)});n.push(a)}return n},new Array)}function decentralizeClientSwapInstructions(e,t){const r=deserializeInstructionInfo(e.swapInstruction),n=e.cleanupInstruction?deserializeInstructionInfo(e.cleanupInstruction):null,o=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo):[],i=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo):[];return{swapInstruction:r,cleanupInstruction:n,computeBudgetInstructions:o,setupInstructions:i,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData(e){let t=`global:${e}`;return platform.Buffer$1.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer(){let e;try{const t=await getSuggestedRelayer();e=new unsignedTransaction.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=unsignedTransaction.SystemProgram.programId}return e}function validateJupCleanupInstruction(e){if(e){if(!e.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!e.programId.equals(new unsignedTransaction.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(r=>{if(!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))&&!r.programId.equals(unsignedTransaction.SystemProgram.programId)&&!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(r.data).length===1){if(Uint8Array.from(r.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(r.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(r.programId.equals(unsignedTransaction.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const n=getAssociatedTokenAddress(solMint,t,!0);if(r.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!r.keys[1].pubkey.equals(n))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(r.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction(e,t){if(!e.programId.equals(new unsignedTransaction.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(unsignedTransaction.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,r){validateJupComputeBudgetInstructions(e.computeBudgetInstructions),validateJupSetupInstructions(e.setupInstructions,r),validateJupSwapInstruction(e.swapInstruction,t),validateJupCleanupInstruction(e.cleanupInstruction)}function createTransferAllAndCloseInstruction(e,t,r,n,o,i=new unsignedTransaction.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new unsignedTransaction.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}],programId:new unsignedTransaction.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData("transfer_all_and_close")})}function getWormholePDAs(e){const t=new unsignedTransaction.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),r=new unsignedTransaction.PublicKey(e),[n]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("Bridge")],t),[o]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("emitter")],r),[i]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("Sequence"),o.toBuffer()],t),[u]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("fee_collector")],t);return{bridgeConfig:n,sequenceKey:i,feeCollector:u,emitter:o}}var MCTPBridgeWithFeeLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction(e,t,r,n,o){const i=new unsignedTransaction.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),u=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),s=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),c=new unsignedTransaction.PublicKey(n),d=new unsignedTransaction.PublicKey(r),y=getAssociatedTokenAddress(d,e,!0);let l;o&&o>BigInt(0)?l=getAssociatedTokenAddress(d,c,!1):l=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs(d,t),f=getWormholePDAs(addresses_default.MCTP_PROGRAM_ID),T=unsignedTransaction.Keypair.generate(),g=unsignedTransaction.Keypair.generate(),b=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:d,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:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:f.emitter,isWritable:!1,isSigner:!1},{pubkey:f.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:f.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:f.feeCollector,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=platform.Buffer$1.alloc(MCTPBridgeWithFeeLayout.span);return MCTPBridgeWithFeeLayout.encode({instruction:getAnchorInstructionData("bridge_with_fee")},h),{instruction:new unsignedTransaction.TransactionInstruction({keys:b,data:h,programId:s}),signers:[T,g]}}var MctpBridgeLockFeeLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction(e,t,r,n,o){const i=[],u=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),s=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),c=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),d=new unsignedTransaction.PublicKey(n),y=new unsignedTransaction.PublicKey(r),l=getAssociatedTokenAddress(y,e,!0),m=getCCTPBridgePDAs(y,t),f=unsignedTransaction.Keypair.generate(),[T]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("LOCKED_FEE"),y.toBuffer(),f.publicKey.toBytes()],c);let g;o&&o>BigInt(0)?g=getAssociatedTokenAddress(y,d,!1):g=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const b=getAssociatedTokenAddress(y,T,!0);i.push(createAssociatedTokenAccountInstruction(d,b,T,y));const h=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!0},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:y,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:f.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=platform.Buffer$1.alloc(MctpBridgeLockFeeLayout.span);MctpBridgeLockFeeLayout.encode({instruction:getAnchorInstructionData("bridge_locked_fee")},A);const C=new unsignedTransaction.TransactionInstruction({keys:h,data:A,programId:c});return i.push(C),{instructions:i,signer:f}}var MctpInitSwapLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpInitSwapInstruction(e,t,r,n,o){const i=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),u=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),s=new unsignedTransaction.PublicKey(n),c=new unsignedTransaction.PublicKey(r),d=getAssociatedTokenAddress(c,e,!0),y=getCCTPBridgePDAs(c,t),l=unsignedTransaction.Keypair.generate(),[m]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],p);let f;o&&o>BigInt(0)?f=getAssociatedTokenAddress(c,s,!1):f=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const T=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!0},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:y.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:y.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:y.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:y.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:y.localToken,isWritable:!0,isSigner:!1},{pubkey:y.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:y.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:l.publicKey,isWritable:!0,isSigner:!0},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],g=platform.Buffer$1.alloc(MctpInitSwapLayout.span);return MctpInitSwapLayout.encode({instruction:getAnchorInstructionData("create_order")},g),{instruction:new unsignedTransaction.TransactionInstruction({keys:T,data:g,programId:p}),signer:l}}var MctpBridgeLedgerLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeRedeem"),unsignedTransaction.LayoutExports.blob(8,"feeSolana"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"keyRnd"),unsignedTransaction.LayoutExports.u8("mode")]);function createMctpBridgeLedgerInstruction(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new unsignedTransaction.PublicKey(e.swapperAddress),r=new unsignedTransaction.PublicKey(e.mintAddress),n=getAssociatedTokenAddress(r,e.ledger,!0),o=getWormholeChainIdByName(e.toChain),i=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,o))),u=getSafeU64Blob(e.amountInMin64),a=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),s=getSafeU64Blob(e.feeSolana),c=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,o))):unsignedTransaction.SystemProgram.programId.toBuffer(),d=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(c),isWritable:!1,isSigner:!1}],y=platform.Buffer$1.alloc(MctpBridgeLedgerLayout.span);return MctpBridgeLedgerLayout.encode({instruction:getAnchorInstructionData("init_bridge_ledger"),destAddress:i,amountInMin:u,gasDrop:a,feeRedeem:p,feeSolana:s,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},y),new unsignedTransaction.TransactionInstruction({keys:d,data:y,programId:new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeRedeem"),unsignedTransaction.LayoutExports.blob(8,"feeSolana"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"keyRnd"),unsignedTransaction.LayoutExports.u8("mode"),unsignedTransaction.LayoutExports.blob(32,"tokenOut"),unsignedTransaction.LayoutExports.blob(8,"amountOutMin"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(32,"refAddress"),unsignedTransaction.LayoutExports.u8("feeRateRef")]);function createMctpSwapLedgerInstruction(e){const t=new unsignedTransaction.PublicKey(e.swapperAddress),r=new unsignedTransaction.PublicKey(e.mintAddress),n=getAssociatedTokenAddress(r,e.ledger,!0),o=getWormholeChainIdByName(e.toChain),i=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,o))),u=getSafeU64Blob(e.amountInMin64),a=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),s=getSafeU64Blob(e.feeSolana),c=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.tokenOut,o))),d=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,o))):unsignedTransaction.SystemProgram.programId.toBuffer(),y=getSafeU64Blob(getAmountOfFractionalAmount(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),l=getSafeU64Blob(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],f=platform.Buffer$1.alloc(MctpSwapLedgerLayout.span);return MctpSwapLedgerLayout.encode({instruction:getAnchorInstructionData("init_order_ledger"),destAddress:i,amountInMin:u,gasDrop:a,feeRedeem:p,feeSolana:s,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:c,refAddress:d,amountOutMin:y,deadline:l,feeRateRef:e.feeRateRef},f),new unsignedTransaction.TransactionInstruction({keys:m,data:f,programId:new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions(e,t,r,n,o,i={}){const u=i?.forceSkipCctpInstructions||!1,a=i?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let p=[],s=[],c=[],d=[],y=[],l=[],m=[];const f=unsignedTransaction.Keypair.generate();let T=null;p.push(addresses_default.LOOKUP_TABLE);const g=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),b=new unsignedTransaction.PublicKey(t),h=unsignedTransaction.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 C=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[I]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from(C),b.toBytes(),h.publicKey.toBytes()],g),w=getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.mctpInputContract),I,!0),M=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",E=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const S=BigInt(u?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&s.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),s.push(createAssociatedTokenAccountInstruction(b,w,I,new unsignedTransaction.PublicKey(e.mctpInputContract))),s.push(createSplTransferInstruction(getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.mctpInputContract),b,a),w,b,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(s.push(createMctpSwapLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:E,tokenOutDecimals:e.toToken.decimals,referrerAddress:n,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),!u){const{instruction:_,signer:F}=createMctpInitSwapInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(_),c.push(F)}}else if(s.push(createMctpBridgeLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:M,referrerAddress:n})),!u)if(M==="WITH_FEE"){const{instruction:_,signers:F}=createMctpBridgeWithFeeInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(_),c.push(...F)}else{const{instructions:_,signer:F}=createMctpBridgeLockFeeInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(..._),c.push(F)}}else{const S=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:I.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":M,fillMaxAccounts:i?.separateSwapTx||!1,tpmTokenAccount:i?.separateSwapTx?f.publicKey.toString():null}),_=decentralizeClientSwapInstructions(S);i?.separateSwapTx&&S.maxAccountsFilled?(validateJupSwap(_,f.publicKey,b),m=await createInitializeRandomTokenAccountInstructions(o,b,new unsignedTransaction.PublicKey(e.mctpInputContract),b,f),l.push(..._.computeBudgetInstructions),_.setupInstructions&&l.push(..._.setupInstructions),l.push(_.swapInstruction),_.cleanupInstruction&&l.push(_.cleanupInstruction),y.push(..._.addressLookupTableAddresses),s.push(createAssociatedTokenAccountInstruction(b,w,I,new unsignedTransaction.PublicKey(e.mctpInputContract))),s.push(createTransferAllAndCloseInstruction(b,new unsignedTransaction.PublicKey(e.mctpInputContract),f.publicKey,w,b))):(validateJupSwap(_,w,b),s.push(..._.computeBudgetInstructions),_.setupInstructions&&s.push(..._.setupInstructions),s.push(_.swapInstruction),_.cleanupInstruction&&s.push(_.cleanupInstruction),p.push(..._.addressLookupTableAddresses));const F=l.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(s.push(createMctpSwapLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:F,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),tokenOut:E,tokenOutDecimals:e.toToken.decimals,referrerAddress:n,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),l.length>0){const{instruction:x,signer:R}=createMctpInitSwapInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(x),c.push(R)}}else if(s.push(createMctpBridgeLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:F,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),mode:M,referrerAddress:n})),l.length>0)if(M==="WITH_FEE"){const{instruction:x,signers:R}=createMctpBridgeWithFeeInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(x),c.push(...R)}else{const{instructions:x,signer:R}=createMctpBridgeLockFeeInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(...x),c.push(R)}}const P=await getAddressLookupTableAccounts(p.concat(y),o);if(d=P.slice(0,p.length),l.length>0){const S=P.slice(p.length);T={messageV0:{payerKey:b,instructions:l,addressLookupTableAccounts:S},createTmpTokenAccountIxs:m,tmpTokenAccount:f}}return{instructions:s,signers:c,lookupTables:d,swapMessageV0Params:T}}function createSwiftOrderHash(e,t,r,n,o){const u=platform.Buffer$1.alloc(239);let a=0;const p=getWormholeChainIdByName(e.fromChain),s=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t,p)));u.set(s,0),a+=32,u.writeUInt16BE(p,a),a+=2;const c=e.swiftInputContract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.swiftInputContract,p),d=platform.Buffer$1.from(hexToUint8Array(c));u.set(d,a),a+=32;const y=getWormholeChainIdByName(e.toChain),l=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(r,y)));u.set(l,a),a+=32,u.writeUInt16BE(y,a),a+=2;const m=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,y),f=platform.Buffer$1.from(hexToUint8Array(m));u.set(f,a),a+=32,u.writeBigUInt64BE(getAmountOfFractionalAmount(e.minAmountOut,Math.min(e.toToken.decimals,8)),a),a+=8,u.writeBigUInt64BE(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),a),a+=8,u.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),a),a+=8,u.writeBigUInt64BE(BigInt(e.refundRelayerFee64),a),a+=8,u.writeBigUInt64BE(BigInt(e.deadline64),a),a+=8;const T=n?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(n,y))):unsignedTransaction.SystemProgram.programId.toBuffer();u.set(T,a),a+=32,u.writeUInt8(e.referrerBps,a),a+=1;const g=e.protocolBps;u.writeUInt8(g,a),a+=1,u.writeUInt8(e.swiftAuctionMode,a),a+=1;const b=platform.Buffer$1.from(hexToUint8Array(o));if(u.set(b,a),a+=32,a!==239)throw new Error(`Invalid order data size: ${a}`);const h=platform.keccak256(u);return platform.Buffer$1.from(hexToUint8Array(h))}var InitSwiftLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.u8("nativeInput"),unsignedTransaction.LayoutExports.blob(8,"feeSubmit"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"tokenOut"),unsignedTransaction.LayoutExports.blob(8,"amountOutMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeCancel"),unsignedTransaction.LayoutExports.blob(8,"feeRefund"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(32,"refAddress"),unsignedTransaction.LayoutExports.u8("feeRateRef"),unsignedTransaction.LayoutExports.u8("feeRateMayan"),unsignedTransaction.LayoutExports.u8("auctionMode"),unsignedTransaction.LayoutExports.blob(32,"randomKey")]);function createSwiftInitInstruction(e){const{quote:t}=e,r=t.swiftInputContract===platform.ZeroAddress?solMint:new unsignedTransaction.PublicKey(t.swiftInputContract),n=getWormholeChainIdByName(t.toChain);if(n!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${n} != ${t.toToken.wChainId}`);const o=[{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:r,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],i=platform.Buffer$1.alloc(InitSwiftLayout.span),u=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,n))):unsignedTransaction.SystemProgram.programId.toBuffer(),a=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout.encode({instruction:getAnchorInstructionData("init_order"),amountInMin:getSafeU64Blob(a),nativeInput:t.swiftInputContract===platform.ZeroAddress?1:0,feeSubmit:getSafeU64Blob(BigInt(t.submitRelayerFee64)),destAddress:platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,n))),destinationChain:n,tokenOut:platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t.toToken.contract,n))),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:u,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},i),new unsignedTransaction.TransactionInstruction({keys:o,data:i,programId:new unsignedTransaction.PublicKey(addresses_default.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions(e,t,r,n,o,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 u=i.allowSwapperOffCurve||!1;let a=[],p=[],s=[];s.push(addresses_default.LOOKUP_TABLE);let c=[],d=[],y=[];const l=unsignedTransaction.Keypair.generate();let m=null;const f=new unsignedTransaction.PublicKey(addresses_default.SWIFT_PROGRAM_ID),T=new unsignedTransaction.PublicKey(t),g=unsignedTransaction.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const b=BigInt(e.deadline64),h=createSwiftOrderHash(e,t,r,n,g.publicKey.toBuffer().toString("hex")),[A]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("STATE_SOURCE"),h],f),C=e.swiftInputContract===platform.ZeroAddress?solMint:new unsignedTransaction.PublicKey(e.swiftInputContract),I=getAssociatedTokenAddress(C,A,!0),w=e.gasless?new unsignedTransaction.PublicKey(e.relayer):T,M=BigInt(e.submitRelayerFee64)>0n?getAssociatedTokenAddress(C,w,!1):f;if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&a.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),a.push(createAssociatedTokenAccountInstruction(w,I,A,C)),e.swiftInputContract===platform.ZeroAddress?a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:T,toPubkey:I,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction(I)):a.push(createSplTransferInstruction(getAssociatedTokenAddress(C,T,u),I,T,BigInt(e.effectiveAmountIn64)));else{const P=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${h.toString("hex")}`,fillMaxAccounts:i?.separateSwapTx||!1,tpmTokenAccount:i?.separateSwapTx?l.publicKey.toString():null}),S=decentralizeClientSwapInstructions(P);i?.separateSwapTx&&P.maxAccountsFilled?(validateJupSwap(S,l.publicKey,T),y=await createInitializeRandomTokenAccountInstructions(o,w,C,T,l),d.push(...S.computeBudgetInstructions),S.setupInstructions&&d.push(...S.setupInstructions),d.push(S.swapInstruction),S.cleanupInstruction&&d.push(S.cleanupInstruction),c.push(...S.addressLookupTableAddresses),a.push(createAssociatedTokenAccountInstruction(w,I,A,C)),a.push(createTransferAllAndCloseInstruction(T,C,l.publicKey,I,w))):(a.push(...S.computeBudgetInstructions),S.setupInstructions&&a.push(...S.setupInstructions),a.push(S.swapInstruction),S.cleanupInstruction&&a.push(S.cleanupInstruction),s.push(...S.addressLookupTableAddresses))}a.push(createSwiftInitInstruction({quote:e,state:A,trader:T,stateAccount:I,randomKey:g.publicKey,relayerAccount:M,relayer:w,destinationAddress:r,deadline:b,referrerAddress:n}));const E=await getAddressLookupTableAccounts(s.concat(c),o);if(p=E.slice(0,s.length),d.length>0){const P=E.slice(s.length);m={messageV0:{payerKey:w,instructions:d,addressLookupTableAccounts:P},createTmpTokenAccountIxs:y,tmpTokenAccount:l}}return{instructions:a,signers:[],lookupTables:p,swapMessageV0Params:m}}var STATE_SIZE=420,SwapLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.u8("stateNonce"),unsignedTransaction.LayoutExports.blob(8,"amount"),unsignedTransaction.LayoutExports.blob(8,"minAmountOut"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(8,"feeSwap"),unsignedTransaction.LayoutExports.blob(8,"feeReturn"),unsignedTransaction.LayoutExports.blob(8,"feeCancel"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"destinationAddress"),unsignedTransaction.LayoutExports.u8("unwrapRedeem"),unsignedTransaction.LayoutExports.u8("unwrapRefund"),unsignedTransaction.LayoutExports.u8("mayanFeeNonce"),unsignedTransaction.LayoutExports.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions(e,t,r,n,o,i={}){const u=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSolanaInstructions(e,t,r,u,o,i);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions(e,t,r,u,o,i);let a=[];const p=o??new unsignedTransaction.Connection("https://rpc.ankr.com/solana"),s=new unsignedTransaction.PublicKey(addresses_default.MAYAN_PROGRAM_ID),c=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),d=new unsignedTransaction.PublicKey(t),y=new unsignedTransaction.PublicKey(addresses_default.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&a.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let l;u?l=new unsignedTransaction.PublicKey(u):l=unsignedTransaction.SystemProgram.programId;const[m,f]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("MAYANFEE")],s),[T,g]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("REFERRERFEE"),l.toBuffer()],s),b=unsignedTransaction.Keypair.generate(),h=unsignedTransaction.Keypair.generate(),[A,C]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("V2STATE"),platform.Buffer$1.from(b.publicKey.toBytes()),platform.Buffer$1.from(h.publicKey.toBytes())],s),I=new unsignedTransaction.PublicKey(e.fromToken.mint),w=new unsignedTransaction.PublicKey(e.toToken.mint),M=getAssociatedTokenAddress(I,d),E=getAssociatedTokenAddress(I,A,!0),[[P,S],_,F]=await Promise.all([p.getMultipleAccountsInfo([M,E],"finalized"),p.getMinimumBalanceForRentExemption(STATE_SIZE),decideRelayer()]);(!P||P.data.length===0)&&a.push(createAssociatedTokenAccountInstruction(d,M,d,I)),(!S||S.data.length===0)&&a.push(createAssociatedTokenAccountInstruction(d,E,A,I)),e.fromToken.contract===platform.ZeroAddress&&(a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:d,toPubkey:M,lamports:BigInt(e.effectiveAmountIn64)})),a.push(createSyncNativeInstruction(M)));const x=BigInt(e.effectiveAmountIn64),R=unsignedTransaction.Keypair.generate();a.push(createApproveInstruction(M,R.publicKey,d,x)),a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:d,toPubkey:R.publicKey,lamports:_}));const B=[{pubkey:R.publicKey,isWritable:!1,isSigner:!0},{pubkey:b.publicKey,isWritable:!1,isSigner:!0},{pubkey:h.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:M,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:E,isWritable:!0,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:w,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:R.publicKey,isWritable:!0,isSigner:!0},{pubkey:F,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:c,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],k=getWormholeChainIdByName(e.toChain);if(k===1){const O=await p.getAccountInfo(new unsignedTransaction.PublicKey(r));if(O&&O.owner&&O.owner.equals(c))throw new Error("Destination address is not about token account. It should be a owner address")}const D=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(r,k))),N=getAmountOfFractionalAmount(e.minAmountOut,e.mintDecimals.to),H=getAmountOfFractionalAmount(e.swapRelayerFee,e.mintDecimals.from),W=getAmountOfFractionalAmount(e.redeemRelayerFee,e.mintDecimals.to),L=getAmountOfFractionalAmount(e.refundRelayerFee,e.mintDecimals.from),U=getAmountOfFractionalAmount(e.gasDrop,getGasDecimalsInSolana(e.toChain)),G=e.toToken.contract===platform.ZeroAddress,$=e.fromToken.contract===platform.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const j=BigInt(e.deadline64),v=platform.Buffer$1.alloc(SwapLayout.span),Y={instruction:101,stateNonce:C,amount:getSafeU64Blob(x),minAmountOut:getSafeU64Blob(N),deadline:getSafeU64Blob(j),feeSwap:getSafeU64Blob(H),feeReturn:getSafeU64Blob(W),feeCancel:getSafeU64Blob(L),gasDrop:getSafeU64Blob(U),destinationChain:k,destinationAddress:D,unwrapRedeem:G?1:0,unwrapRefund:$?1:0,mayanFeeNonce:f,referrerFeeNonce:g};SwapLayout.encode(Y,v);const V=new unsignedTransaction.TransactionInstruction({keys:B,data:v,programId:s});return a.push(V),{instructions:a,signers:[R,b,h],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams(e,t,r,n,o){const i=getWormholeChainIdById(Number(o)),u=getWormholeChainIdByName(e.fromChain),a=getWormholeChainIdByName(e.toChain);if(u!==i)throw new Error(`Signer chain id(${Number(o)}) and quote from chain are not same! ${u} !== ${i}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==a)throw new Error(`Destination chain ID mismatch: ${a} != ${e.toToken.wChainId}`);const p=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const s=BigInt(e.deadline64),c=e.swiftInputContract,d=BigInt(e.effectiveAmountIn64);let y;n?y=nativeAddressToHexString(n,a):y=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1);const l=nativeAddressToHexString(unsignedTransaction.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1):nativeAddressToHexString(e.toToken.contract,a),f=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),T=getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),g=nativeAddressToHexString(r,a),b={trader:nativeAddressToHexString(t,u),tokenOut:m,minAmountOut:f,gasDrop:T,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:s,destAddr:g,destChainId:a,referrerAddr:y,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:l};return{contractAddress:p,tokenIn:c,amountIn:d,order:b}}function getSwiftFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(o)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");o=Number(o);const u=ZeroPermit,a=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{tokenIn:p,amountIn:s,order:c,contractAddress:d}=getEvmSwiftParams(e,t,r,n,o);let y;const l=new platform.Contract(d,MayanSwiftArtifact_default.abi);e.swiftInputContract===platform.ZeroAddress?y=l.interface.encodeFunctionData("createOrderWithEth",[c]):y=l.interface.encodeFunctionData("createOrderWithToken",[p,s,c]);let m,f,T;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===platform.ZeroAddress?(m="forwardEth",f=[d,y],T=platform.toBeHex(s)):(m="forwardERC20",f=[p,s,u,d,y],T=platform.toBeHex(0));else{const{evmSwapRouterAddress:b,evmSwapRouterCalldata:h}=e;if(!e.minMiddleAmount||!b||!h)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,C=getAmountOfFractionalAmount(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===platform.ZeroAddress?(m="swapAndForwardEth",f=[s,b,h,e.swiftInputContract,C,d,y],T=platform.toBeHex(s)):(m="swapAndForwardERC20",f=[A,s,u,b,h,e.swiftInputContract,C,d,y],T=platform.toBeHex(0))}return{data:a.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:o,_forwarder:{method:m,params:f}}}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 r=platform.Buffer$1.alloc(16);for(let n=15;n>=0;n--)r[n]=Number(e&0xFFn),e>>=8n;return r}function getShuttleParams(e,t,r){const{shuttleParams:n}=e;if(!n)throw new Error("Swap layer params are missing in quote response");const o=getWormholeChainIdById(Number(r)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${i} !== ${o}`);let a=[];a.push(shuttleConstants.FAST_MODE_FLAG);const p=platform.Buffer$1.alloc(8);p.writeBigUInt64BE(BigInt(n.maxLLFee));const s=p.subarray(2);a.push(...s);const c=platform.Buffer$1.alloc(4);c.writeUInt32BE(n.fastTransferDeadline),a.push(...c),a.push(shuttleConstants.RELAY_REDEEM_MODE);const d=getAmountOfFractionalAmount(e.gasDrop,Math.min(6,getGasDecimal(e.toChain))),y=platform.Buffer$1.alloc(8);y.writeBigUInt64BE(d);const l=y.subarray(4);a.push(...l);const m=platform.Buffer$1.alloc(8);m.writeBigUInt64BE(BigInt(n.maxRelayingFee));const f=m.subarray(2);a.push(...f),a.push(shuttleConstants.EXACT_IN_FLAG),a.push(shuttleConstants.USDC_INPUT_TOKEN_TYPE);const T=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){a.push(...Array(8).fill(0));const b=platform.Buffer$1.alloc(8);b.writeBigUInt64BE(T),a.push(...b)}else a.push(...Array(16).fill(0));if(a.push(shuttleConstants.PRE_APPROVED_ACQUIRE_MODE),n.hasDestSwap){if(e.toToken.contract===platform.ZeroAddress)a.push(shuttleConstants.OUTPUT_NATIVE_MODE);else{a.push(shuttleConstants.OUTPUT_OTHER_MODE);const C=platform.Buffer$1.from(nativeAddressToHexString(e.toToken.contract,u).slice(2),"hex");a.push(...C)}const b=platform.Buffer$1.alloc(4);b.writeUInt32BE(Number(BigInt(e.deadline64))),a.push(...b);const h=getAmountOfFractionalAmount(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){a.push(...Array(8).fill(0));const C=platform.Buffer$1.alloc(8);C.writeBigUInt64BE(h),a.push(...C)}else{const C=writeBigIntTo16BytesBuffer(h);a.push(...C)}const A=platform.Buffer$1.from(n.path.slice(2),"hex");a.push(...A)}else a.push(shuttleConstants.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString(t,u),destChainId:u,serializedParams:`0x${platform.Buffer$1.from(a).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:T,bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain))}}function getShuttleFromEvmTxPayload(e,t,r,n){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");r=Number(r);const o=ZeroPermit,i=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{destAddr:u,destChainId:a,serializedParams:p,contractAddress:s,amountIn:c,bridgeFee:d}=getShuttleParams(e,t,r);let y;y=new platform.Contract(s,ShuttleArtifact_default.abi).interface.encodeFunctionData("initiate",[u,c,a,p]);let m,f,T;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",f=[e.shuttleInputContract,c,o,s,y],T=platform.toBeHex(d);else{const{evmSwapRouterAddress:b,evmSwapRouterCalldata:h}=e;if(!e.minMiddleAmount||!b||!h)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,C=getAmountOfFractionalAmount(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===platform.ZeroAddress?(m="swapAndForwardEth",f=[c,b,h,e.shuttleInputContract,C,s,y],T=platform.toBeHex(c)):(m="swapAndForwardERC20",f=[A,c,o,b,h,e.shuttleInputContract,C,s,y],T=platform.toBeHex(d))}return{data:i.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:r,_forwarder:{method:m,params:f}}}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,r,n,o){const i=getWormholeChainIdById(Number(n)),u=getWormholeChainIdByName(e.fromChain),a=getWormholeChainIdByName(e.toChain);if(u!==i)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${u} !== ${i}`);const p=nativeAddressToHexString(t,a),s=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),d=BigInt(e.circleMaxFee64),y=BigInt(e.effectiveAmountIn64),l=getCCTPDomain(e.toChain);let m;if(r?m=nativeAddressToHexString(r,a):m=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const f=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:y,redeemFee:s,gasDrop:c,destAddr:p,destDomain:l,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:d,contractAddress:f}}function getEvmFastMctpBridgeTxPayload(e,t,r,n,o){const i=getEvmFastMctpBridgeParams(e,t,r,n),{contractAddress:u,tokenIn:a,amountIn:p,destAddr:s,redeemFee:c,gasDrop:d,circleMaxFee:y,referrerAddr:l,referrerBps:m,destDomain:f,customPayload:T,minFinalityThreshold:g,payloadType:b}=i,h=new platform.Contract(u,MayanFastMctpArtifact_default.abi);let A,C;return A=h.interface.encodeFunctionData("bridge",[a,p,c,y,d,s,f,l,m,b,g,T]),C=platform.toBeHex(0),{to:u,data:A,value:C,_params:i}}function getEvmFastMctpCreateOrderParams(e,t,r,n){const o=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${o}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const a=e.fastMctpMayanContract,p=nativeAddressToHexString(t,u);let s;r?s=nativeAddressToHexString(r,u):s=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=BigInt(e.refundRelayerFee64),y=BigInt(e.circleMaxFee64),l=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),m=getCCTPDomain(e.toChain),f=BigInt(e.effectiveAmountIn64),T=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=BigInt(e.deadline64),b=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:f,circleMaxFee:y,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER,destAddr:p,tokenOut:b,amountOutMin:T,gasDrop:l,redeemFee:c,refundFee:d,deadline:g,referrerAddr:s,referrerBps:e.referrerBps||0},contractAddress:a}}function getEvmFastMctpCreateOrderTxPayload(e,t,r,n){const o=getEvmFastMctpCreateOrderParams(e,t,r,n),{contractAddress:i,orderPayload:u,tokenIn:a,amountIn:p,circleMaxFee:s,destDomain:c,minFinalityThreshold:d}=o,l=new platform.Contract(i,MayanFastMctpArtifact_default.abi).interface.encodeFunctionData("createOrder",[a,p,s,c,d,u]),m=platform.toBeHex(0);return{to:i,data:l,value:m,_params:o}}function getFastMctpFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const u=o||ZeroPermit,a=new platform.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 p=getEvmFastMctpCreateOrderTxPayload(e,t,r,n),s="forwardERC20",c=[e.fromToken.contract,p._params.amountIn,u,p._params.contractAddress,p.data];return{data:a.interface.encodeFunctionData(s,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:s,params:c}}}else{const p=getEvmFastMctpBridgeTxPayload(e,t,r,n),s="forwardERC20",c=[e.fromToken.contract,p._params.amountIn,u,p._params.contractAddress,p.data];return{data:a.interface.encodeFunctionData(s,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:s,params:c}}}else{const{minMiddleAmount:p,evmSwapRouterAddress:s,evmSwapRouterCalldata:c}=e;if(!p||!s||!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 d=getEvmFastMctpCreateOrderTxPayload(e,t,r,n),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){const l="swapAndForwardEth",m=[d._params.amountIn,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(d._params.amountIn),chainId:n,_forwarder:{method:l,params:m}}}else{const l="swapAndForwardERC20",m=[e.fromToken.contract,d._params.amountIn,u,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:l,params:m}}}}else{const d=getEvmFastMctpBridgeTxPayload(e,t,r,n),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){const l="swapAndForwardEth",m=[d._params.amountIn,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(d._params.amountIn),chainId:n,_forwarder:{method:l,params:m}}}else{const l="swapAndForwardERC20",m=[e.fromToken.contract,d._params.amountIn,u,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:l,params:m}}}}}}function getEvmSwapParams(e,t,r,n,o,i){const u=new unsignedTransaction.PublicKey(addresses_default.MAYAN_PROGRAM_ID),[a]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("MAIN")],u),p=getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.fromToken.mint),a,!0),s=BigInt(e.effectiveAmountIn64),c=nativeAddressToHexString(p.toString(),1),d=nativeAddressToHexString(addresses_default.AUCTION_PROGRAM_ID,1);let y;r?y=nativeAddressToHexString(r,1):y=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1);const l=getWormholeChainIdById(Number(o)),m=getWormholeChainIdByName(e.fromChain),f=getWormholeChainIdByName(e.toChain);if(m!==l)throw new Error(`Signer chain id(${Number(o)}) and quote from chain are not same! ${m} !== ${l}`);const T=e.whMayanContract,g={mayanAddr:c,mayanChainId:1,destAddr:nativeAddressToHexString(t,f),destChainId:f,auctionAddr:d,referrer:y,refundAddr:nativeAddressToHexString(n,l)},b=e.toToken.contract===platform.ZeroAddress,h={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:b,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))},C=nativeAddressToHexString(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),I=getAmountOfFractionalAmount(e.bridgeFee,18);return{amountIn:s,tokenIn:e.fromToken.contract,tokenOut:C,tokenOutWChainId:e.toToken.realOriginChainId,criteria:h,recipient:g,relayerFees:A,contractAddress:T,bridgeFee:I}}function getSwapFromEvmTxPayload(e,t,r,n,o,i,u,a){const p=getWormholeChainIdById(Number(i)),s=getWormholeChainIdByName(e.fromChain);if(s!==p)throw new Error(`Signer chain id(${Number(i)}) and quote from chain are not same! ${s} !== ${p}`);const c=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return getMctpFromEvmTxPayload(e,r,c,i,a);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload(e,t,r,c,i);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload(e,r,i);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload(e,r,c,i,a);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:d,recipient:y,tokenOut:l,tokenOutWChainId:m,criteria:f,tokenIn:T,amountIn:g,contractAddress:b,bridgeFee:h}=getEvmSwapParams(e,r,c,o,i),A=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),C=new platform.Contract(b,MayanSwapArtifact_default.abi);let I,w,M;const E=ZeroPermit;if(T===platform.ZeroAddress){const S=C.interface.encodeFunctionData("wrapAndSwapETH",[d,y,l,m,f]);I="forwardEth",w=[b,S],M=platform.toBeHex(g)}else{const S=C.interface.encodeFunctionData("swap",[d,y,l,m,f,T,g]);I="forwardERC20",w=[T,g,E,b,S],M=platform.toBeHex(h)}const P=A.interface.encodeFunctionData(I,w);return{to:addresses_default.MAYAN_FORWARDER_CONTRACT,data:P,value:M,chainId:i,_forwarder:{method:I,params:w}}}async function assertArgumentIsImmutable(e,t){let r;try{r=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(r){if(r[e.argumentIndex]!=="Pure"&&r[e.argumentIndex]?.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 r=[],n=BigInt(0),o;do{const i=await t.getCoins({...e,owner:e.walletAddress,cursor:o}),u=i.data.filter(a=>BigInt(a.balance)>BigInt(0));if(r=[...r,...u],u.forEach(a=>{n+=BigInt(a.balance)}),i.data.length===0||!i.hasNextPage||!i.nextCursor||n>=e.coinAmount)return{coins:r.sort((a,p)=>Number(BigInt(a.coinObjectId)-BigInt(p.coinObjectId))),sum:n};o=i.nextCursor}while(!0)}async function fetchMayanSuiPackageId(e,t){let r;try{r=await t.getObject({id:e,options:{showContent:!0}})}catch(n){throw new Error(`Failed to fetch Mayan Sui package ID:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const hypercore=require("./hypercore-D7kZiwbe.js"),unsignedTransaction=require("./unsignedTransaction-qRBv5Cnd.js"),platform=require("./platform-DCcL7jHP.js"),tokenHelpers=require("./tokenHelpers-CeTyb4rG.js"),associatedTokenAccount=require("./associatedTokenAccount-CeqdaO2m.js"),mint=require("./mint-DW-XgF68.js"),web3=require("./web3-x1WCGDiy.js"),transferCheckedInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),web3.u64("amount"),unsignedTransaction.LayoutExports.u8("decimals")]);function createTransferCheckedInstruction(e,t,r,n,o,i,u=[],a=mint.TOKEN_PROGRAM_ID){const p=associatedTokenAccount.addSigners([{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0}],n,u),s=platform.Buffer.alloc(transferCheckedInstructionData.span);return transferCheckedInstructionData.encode({instruction:associatedTokenAccount.TokenInstruction.TransferChecked,amount:BigInt(o),decimals:i},s),new unsignedTransaction.TransactionInstruction({keys:p,programId:a,data:s})}var sha256={exports:{}},hasRequiredSha256;function requireSha256(){return hasRequiredSha256||(hasRequiredSha256=1,(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 platform.process$1=="object"&&platform.process$1.versions&&platform.process$1.versions.node;NODE_JS?root=unsignedTransaction.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(r){return new Sha256(t,!0).update(r)[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(o){return t.create().update(o)};for(var r=0;r<OUTPUT_TYPES.length;++r){var n=OUTPUT_TYPES[r];t[n]=createOutputMethod(n,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(r,n){return new HmacSha256(r,t,!0).update(n)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(o){return new HmacSha256(o,e)},t.update=function(o,i){return t.create(o).update(i)};for(var r=0;r<OUTPUT_TYPES.length;++r){var n=OUTPUT_TYPES[r];t[n]=createHmacOutputMethod(n,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,r=typeof e;if(r!=="string"){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);t=!0}for(var n,o=0,i,u=e.length,a=this.blocks;o<u;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),t)for(i=this.start;o<u&&i<64;++o)a[i>>2]|=e[o]<<SHIFT[i++&3];else for(i=this.start;o<u&&i<64;++o)n=e.charCodeAt(o),n<128?a[i>>2]|=n<<SHIFT[i++&3]:n<2048?(a[i>>2]|=(192|n>>6)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]):n<55296||n>=57344?(a[i>>2]|=(224|n>>12)<<SHIFT[i++&3],a[i>>2]|=(128|n>>6&63)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]):(n=65536+((n&1023)<<10|e.charCodeAt(++o)&1023),a[i>>2]|=(240|n>>18)<<SHIFT[i++&3],a[i>>2]|=(128|n>>12&63)<<SHIFT[i++&3],a[i>>2]|=(128|n>>6&63)<<SHIFT[i++&3],a[i>>2]|=(128|n&63)<<SHIFT[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=a[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,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=this.blocks,s,c,d,y,l,m,f,T,g,b,h;for(s=16;s<64;++s)l=p[s-15],c=(l>>>7|l<<25)^(l>>>18|l<<14)^l>>>3,l=p[s-2],d=(l>>>17|l<<15)^(l>>>19|l<<13)^l>>>10,p[s]=p[s-16]+c+p[s-7]+d<<0;for(h=t&r,s=0;s<64;s+=4)this.first?(this.is224?(T=300032,l=p[0]-1413257819,a=l-150054599<<0,n=l+24177077<<0):(T=704751109,l=p[0]-210244248,a=l-1521486534<<0,n=l+143694565<<0),this.first=!1):(c=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),d=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),T=e&t,y=T^e&r^h,f=o&i^~o&u,l=a+d+f+K[s]+p[s],m=c+y,a=n+l<<0,n=l+m<<0),c=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),d=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),g=n&e,y=g^n&t^T,f=a&o^~a&i,l=u+d+f+K[s+1]+p[s+1],m=c+y,u=r+l<<0,r=l+m<<0,c=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),d=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),b=r&n,y=b^r&e^g,f=u&a^~u&o,l=i+d+f+K[s+2]+p[s+2],m=c+y,i=t+l<<0,t=l+m<<0,c=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),d=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),h=t&r,y=h^t&n^b,f=i&u^~i&a,l=o+d+f+K[s+3]+p[s+3],m=c+y,o=e+l<<0,e=l+m<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+o<<0,this.h5=this.h5+i<<0,this.h6=this.h6+u<<0,this.h7=this.h7+a<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=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[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[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[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]+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[u>>28&15]+HEX_CHARS[u>>24&15]+HEX_CHARS[u>>20&15]+HEX_CHARS[u>>16&15]+HEX_CHARS[u>>12&15]+HEX_CHARS[u>>8&15]+HEX_CHARS[u>>4&15]+HEX_CHARS[u&15];return this.is224||(p+=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]),p},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,o=this.h4,i=this.h5,u=this.h6,a=this.h7,p=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,o>>24&255,o>>16&255,o>>8&255,o&255,i>>24&255,i>>16&255,i>>8&255,i&255,u>>24&255,u>>16&255,u>>8&255,u&255];return this.is224||p.push(a>>24&255,a>>16&255,a>>8&255,a&255),p},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,r){var n,o=typeof e;if(o==="string"){var i=[],u=e.length,a=0,p;for(n=0;n<u;++n)p=e.charCodeAt(n),p<128?i[a++]=p:p<2048?(i[a++]=192|p>>6,i[a++]=128|p&63):p<55296||p>=57344?(i[a++]=224|p>>12,i[a++]=128|p>>6&63,i[a++]=128|p&63):(p=65536+((p&1023)<<10|e.charCodeAt(++n)&1023),i[a++]=240|p>>18,i[a++]=128|p>>12&63,i[a++]=128|p>>6&63,i[a++]=128|p&63);e=i}else if(o==="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 s=[],c=[];for(n=0;n<64;++n){var d=e[n]||0;s[n]=92^d,c[n]=54^d}Sha256.call(this,t,r),this.update(c),this.oKeyPad=s,this.inner=!0,this.sharedMemory=r}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)),sha256.exports}var sha256Exports=requireSha256();function base(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let s=0;s<t.length;s++)t[s]=255;for(let s=0;s<e.length;s++){const c=e.charAt(s),d=c.charCodeAt(0);if(t[d]!==255)throw new TypeError(c+" is ambiguous");t[d]=s}const r=e.length,n=e.charAt(0),o=Math.log(r)/Math.log(256),i=Math.log(256)/Math.log(r);function u(s){if(s instanceof Uint8Array||(ArrayBuffer.isView(s)?s=new Uint8Array(s.buffer,s.byteOffset,s.byteLength):Array.isArray(s)&&(s=Uint8Array.from(s))),!(s instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(s.length===0)return"";let c=0,d=0,y=0;const l=s.length;for(;y!==l&&s[y]===0;)y++,c++;const m=(l-y)*i+1>>>0,f=new Uint8Array(m);for(;y!==l;){let b=s[y],h=0;for(let A=m-1;(b!==0||h<d)&&A!==-1;A--,h++)b+=256*f[A]>>>0,f[A]=b%r>>>0,b=b/r>>>0;if(b!==0)throw new Error("Non-zero carry");d=h,y++}let T=m-d;for(;T!==m&&f[T]===0;)T++;let g=n.repeat(c);for(;T<m;++T)g+=e.charAt(f[T]);return g}function a(s){if(typeof s!="string")throw new TypeError("Expected String");if(s.length===0)return new Uint8Array;let c=0,d=0,y=0;for(;s[c]===n;)d++,c++;const l=(s.length-c)*o+1>>>0,m=new Uint8Array(l);for(;c<s.length;){const b=s.charCodeAt(c);if(b>255)return;let h=t[b];if(h===255)return;let A=0;for(let C=l-1;(h!==0||A<y)&&C!==-1;C--,A++)h+=r*m[C]>>>0,m[C]=h%256>>>0,h=h/256>>>0;if(h!==0)throw new Error("Non-zero carry");y=A,c++}let f=l-y;for(;f!==l&&m[f]===0;)f++;const T=new Uint8Array(d+(l-f));let g=d;for(;f!==l;)T[g++]=m[f++];return T}function p(s){const c=a(s);if(c)return c;throw new Error("Non-base"+r+" character")}return{encode:u,decodeUnsafe:a,decode:p}}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 platform.zeroPadValue(new unsignedTransaction.PublicKey(e).toBytes(),32);if(t===chains.ethereum||t===chains.base||t===chains.monad)return platform.zeroPadValue(e,32);throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array(e){return new Uint8Array(platform.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress(e,t,r=!1,n=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),o=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!r&&!unsignedTransaction.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[i]=unsignedTransaction.PublicKey.findProgramAddressSync([t.toBuffer(),n.toBuffer(),e.toBuffer()],o);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 r=Math.min(8,Number(t)),n=Number(e).toFixed(r+1),o=new RegExp(`^-?\\d+(?:\\.\\d{0,${r}})?`),i=n.match(o);if(!i)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const u=i[0];return hypercore.parseUnits(u,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=platform.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit={value:BigInt(0),deadline:0,v:0,r:`0x${unsignedTransaction.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${unsignedTransaction.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,r])=>r!=null&&!Array.isArray(r)).map(([t,r])=>`${encodeURIComponent(t)}=${encodeURIComponent(r)}`).join("&")}async function check5xxError(e){if(e.status.toString().startsWith("5")){let t;try{const r=await e.json();(r?.code||r?.statusCode)&&(r?.message||r?.msg)&&(t={code:r?.code||r?.statusCode,message:r?.message||r?.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:r,referrerBps:n}=e;let o=e.slippageBps;o!=="auto"&&!Number.isFinite(o)&&(o=e.slippage*100);const u={...{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:o,referrer:e.referrer,referrerBps:Number.isFinite(n)?n:void 0,gasDrop:Number.isFinite(r)?r:void 0,sdkVersion:getSdkVersion()},a=`${addresses_default.PRICE_URL}/quote?`,p=toQueryString(u);return a+p}async function getSuggestedRelayer(){const e=await hypercore.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()}),r=await hypercore.o(`${addresses_default.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError(r);const n=await r.json();if(r.status!==200&&r.status!==201)throw n;return n}async function getSwapSui(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion()}),r=`${addresses_default.PRICE_URL}/get-swap/sui`,n=await hypercore.o(r,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError(n);const o=await n.json();if(n.status!==200&&n.status!==201)throw o;return o}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 r=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),n=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),[o]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("message_transmitter")],r),[i]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("sender_authority")],n),[u]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("local_token"),e.toBytes()],n),[a]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("token_messenger")],n),[p]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("token_minter")],n),s=getCCTPDomain(t),[c]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("remote_token_messenger"),platform.Buffer$1.from(s.toString())],n),[d]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("__event_authority")],r),[y]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("__event_authority")],n);return{messageTransmitter:o,senderAuthority:i,remoteTokenMessengerKey:c,tokenMessenger:a,tokenMinter:p,eventAuthToken:y,eventAuthCore:d,localToken:u}}function getEvmMctpBridgeParams(e,t,r,n){const o=getWormholeChainIdById(Number(r)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${i} !== ${o}`);const a=e.cheaperChain===e.fromChain,p=nativeAddressToHexString(t,u),s=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),d=BigInt(e.effectiveAmountIn64),y=getCCTPDomain(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const l=e.mctpMayanContract;if(e.toChain==="solana"&&a)throw new Error("Cannot lock fee for transfer to solana");let m=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));return a&&(m=BigInt(0)),{lockFee:a,tokenIn:e.mctpInputContract,amountIn:d,redeemFee:s,gasDrop:c,destAddr:p,destDomain:y,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",bridgeFee:m,contractAddress:l}}function getEvmMctpBridgeTxPayload(e,t,r,n){const o=getEvmMctpBridgeParams(e,t,r),{contractAddress:i,tokenIn:u,amountIn:a,destAddr:p,lockFee:s,redeemFee:c,gasDrop:d,destDomain:y,customPayload:l,payloadType:m,bridgeFee:f}=o,T=new platform.Contract(i,MayanCircleArtifact_default.abi);let g,b;return s?g=T.interface.encodeFunctionData("bridgeWithLockedFee",[u,a,d,c,y,p]):g=T.interface.encodeFunctionData("bridgeWithFee",[u,a,c,d,p,y,m,l]),b=platform.toBeHex(f),{to:i,data:g,value:b,_params:o}}function getEvmMctpCreateOrderParams(e,t,r,n){const o=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${o}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const a=e.mctpMayanContract,p=nativeAddressToHexString(t,u);let s;r?s=nativeAddressToHexString(r,u):s=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8));let y=BigInt(e.effectiveAmountIn64);const l=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=BigInt(e.deadline64),f=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:y,gasDrop:d,destAddr:p,destChain:u,tokenOut:f,minAmountOut:l,deadline:m,redeemFee:c,referrerAddr:s,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain)),contractAddress:a}}function getEvmMctpCreateOrderTxPayload(e,t,r,n){const o=getEvmMctpCreateOrderParams(e,t,r,n),{contractAddress:i,params:u,bridgeFee:a}=o,s=new platform.Contract(i,MayanCircleArtifact_default.abi).interface.encodeFunctionData("createOrder",[u]),c=platform.toBeHex(a);return{to:i,data:s,value:c,_params:o}}function getMctpFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const u=o||ZeroPermit,a=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),p=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));let s=platform.toBeHex(p);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,r,n),d="forwardERC20",y=[e.fromToken.contract,c._params.params.amountIn,u,c._params.contractAddress,c.data];return{data:a.interface.encodeFunctionData(d,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:d,params:y}}}else{const c=getEvmMctpBridgeTxPayload(e,t,n),d="forwardERC20",y=[e.fromToken.contract,c._params.amountIn,u,c._params.contractAddress,c.data];return{data:a.interface.encodeFunctionData(d,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:d,params:y}}}else{const{minMiddleAmount:c,evmSwapRouterAddress:d,evmSwapRouterCalldata:y}=e;if(!c||!d||!y)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 l=getEvmMctpCreateOrderTxPayload(e,t,r,n),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){let f=l._params.params.amountIn;if(f<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(f-=p),s=platform.toBeHex(l._params.params.amountIn);const T="swapAndForwardEth",g=[f,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(T,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:T,params:g}}}else{const f="swapAndForwardERC20",T=[e.fromToken.contract,l._params.params.amountIn,u,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(f,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:f,params:T}}}}else{const l=getEvmMctpBridgeTxPayload(e,t,n),m=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){let f=l._params.amountIn;if(f<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(f-=p),s=platform.toBeHex(l._params.amountIn);const T="swapAndForwardEth",g=[f,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(T,g),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:T,params:g}}}else{const f="swapAndForwardERC20",T=[e.fromToken.contract,l._params.amountIn,u,d,y,e.mctpInputContract,m,l._params.contractAddress,l.data];return{data:a.interface.encodeFunctionData(f,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(s),chainId:n,_forwarder:{method:f,params:T}}}}}}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,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),i=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){const u=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new unsignedTransaction.TransactionInstruction({keys:u,programId:i,data:platform.Buffer$1.alloc(0)})}var TOKEN_ACCOUNT_LEN=165;async function createInitializeRandomTokenAccountInstructions(e,t,r,n,o,i=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const u=[],a=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN);return u.push(unsignedTransaction.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:o.publicKey,lamports:a,space:TOKEN_ACCOUNT_LEN,programId:i})),u.push(new unsignedTransaction.TransactionInstruction({keys:[{pubkey:o.publicKey,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:i,data:platform.Buffer$1.from([1])})),u}var ApproveInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.blob(8,"amount")]);function createApproveInstruction(e,t,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],u=platform.Buffer$1.alloc(ApproveInstructionData.span);return ApproveInstructionData.encode({instruction:4,amount:getSafeU64Blob(n)},u),new unsignedTransaction.TransactionInstruction({keys:i,programId:o,data:u})}var SyncNativeInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction")]);function createSyncNativeInstruction(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],r=platform.Buffer$1.alloc(SyncNativeInstructionData.span);return SyncNativeInstructionData.encode({instruction:17},r),new unsignedTransaction.TransactionInstruction({keys:t,programId:new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),data:r})}unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction")]);var SplTransferInstructionData=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.blob(8,"amount")]);function createSplTransferInstruction(e,t,r,n,o=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const i=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],u=platform.Buffer$1.alloc(SplTransferInstructionData.span);return SplTransferInstructionData.encode({instruction:3,amount:getSafeU64Blob(n)},u),new unsignedTransaction.TransactionInstruction({keys:i,programId:o,data:u})}var solMint=new unsignedTransaction.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo(e){return new unsignedTransaction.TransactionInstruction({programId:new unsignedTransaction.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new unsignedTransaction.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:platform.Buffer$1.from(e.data,"base64")})}async function getAddressLookupTableAccounts(e,t){return(await t.getMultipleAccountsInfo(e.map(n=>new unsignedTransaction.PublicKey(n)))).reduce((n,o,i)=>{const u=e[i];if(o){const a=new unsignedTransaction.AddressLookupTableAccount({key:new unsignedTransaction.PublicKey(u),state:unsignedTransaction.AddressLookupTableAccount.deserialize(o.data)});n.push(a)}return n},new Array)}function decentralizeClientSwapInstructions(e,t){const r=deserializeInstructionInfo(e.swapInstruction),n=e.cleanupInstruction?deserializeInstructionInfo(e.cleanupInstruction):null,o=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo):[],i=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo):[];return{swapInstruction:r,cleanupInstruction:n,computeBudgetInstructions:o,setupInstructions:i,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData(e){let t=`global:${e}`;return platform.Buffer$1.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer(){let e;try{const t=await getSuggestedRelayer();e=new unsignedTransaction.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=unsignedTransaction.SystemProgram.programId}return e}function validateJupCleanupInstruction(e){if(e){if(!e.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!e.programId.equals(new unsignedTransaction.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(r=>{if(!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))&&!r.programId.equals(unsignedTransaction.SystemProgram.programId)&&!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(r.programId.equals(new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(r.data).length===1){if(Uint8Array.from(r.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(r.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(r.programId.equals(unsignedTransaction.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const n=getAssociatedTokenAddress(solMint,t,!0);if(r.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!r.keys[1].pubkey.equals(n))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(r.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction(e,t){if(!e.programId.equals(new unsignedTransaction.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(unsignedTransaction.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,r){validateJupComputeBudgetInstructions(e.computeBudgetInstructions),validateJupSetupInstructions(e.setupInstructions,r),validateJupSwapInstruction(e.swapInstruction,t),validateJupCleanupInstruction(e.cleanupInstruction)}function createTransferAllAndCloseInstruction(e,t,r,n,o,i=new unsignedTransaction.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new unsignedTransaction.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}],programId:new unsignedTransaction.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData("transfer_all_and_close")})}function getWormholePDAs(e){const t=new unsignedTransaction.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),r=new unsignedTransaction.PublicKey(e),[n]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("Bridge")],t),[o]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("emitter")],r),[i]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("Sequence"),o.toBuffer()],t),[u]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("fee_collector")],t);return{bridgeConfig:n,sequenceKey:i,feeCollector:u,emitter:o}}var MCTPBridgeWithFeeLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction(e,t,r,n,o){const i=new unsignedTransaction.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),u=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),s=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),c=new unsignedTransaction.PublicKey(n),d=new unsignedTransaction.PublicKey(r),y=getAssociatedTokenAddress(d,e,!0);let l;o&&o>BigInt(0)?l=getAssociatedTokenAddress(d,c,!1):l=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const m=getCCTPBridgePDAs(d,t),f=getWormholePDAs(addresses_default.MCTP_PROGRAM_ID),T=unsignedTransaction.Keypair.generate(),g=unsignedTransaction.Keypair.generate(),b=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:d,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:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:f.emitter,isWritable:!1,isSigner:!1},{pubkey:f.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:f.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:f.feeCollector,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=platform.Buffer$1.alloc(MCTPBridgeWithFeeLayout.span);return MCTPBridgeWithFeeLayout.encode({instruction:getAnchorInstructionData("bridge_with_fee")},h),{instruction:new unsignedTransaction.TransactionInstruction({keys:b,data:h,programId:s}),signers:[T,g]}}var MctpBridgeLockFeeLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction(e,t,r,n,o){const i=[],u=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),s=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),c=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),d=new unsignedTransaction.PublicKey(n),y=new unsignedTransaction.PublicKey(r),l=getAssociatedTokenAddress(y,e,!0),m=getCCTPBridgePDAs(y,t),f=unsignedTransaction.Keypair.generate(),[T]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("LOCKED_FEE"),y.toBuffer(),f.publicKey.toBytes()],c);let g;o&&o>BigInt(0)?g=getAssociatedTokenAddress(y,d,!1):g=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const b=getAssociatedTokenAddress(y,T,!0);i.push(createAssociatedTokenAccountInstruction(d,b,T,y));const h=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!0},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:y,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:f.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=platform.Buffer$1.alloc(MctpBridgeLockFeeLayout.span);MctpBridgeLockFeeLayout.encode({instruction:getAnchorInstructionData("bridge_locked_fee")},A);const C=new unsignedTransaction.TransactionInstruction({keys:h,data:A,programId:c});return i.push(C),{instructions:i,signer:f}}var MctpInitSwapLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction")]);function createMctpInitSwapInstruction(e,t,r,n,o){const i=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),u=new unsignedTransaction.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),a=new unsignedTransaction.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),p=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),s=new unsignedTransaction.PublicKey(n),c=new unsignedTransaction.PublicKey(r),d=getAssociatedTokenAddress(c,e,!0),y=getCCTPBridgePDAs(c,t),l=unsignedTransaction.Keypair.generate(),[m]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],p);let f;o&&o>BigInt(0)?f=getAssociatedTokenAddress(c,s,!1):f=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID);const T=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!0},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:y.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:y.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:y.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:y.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:y.localToken,isWritable:!0,isSigner:!1},{pubkey:y.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:y.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:l.publicKey,isWritable:!0,isSigner:!0},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],g=platform.Buffer$1.alloc(MctpInitSwapLayout.span);return MctpInitSwapLayout.encode({instruction:getAnchorInstructionData("create_order")},g),{instruction:new unsignedTransaction.TransactionInstruction({keys:T,data:g,programId:p}),signer:l}}var MctpBridgeLedgerLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeRedeem"),unsignedTransaction.LayoutExports.blob(8,"feeSolana"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"keyRnd"),unsignedTransaction.LayoutExports.u8("mode")]);function createMctpBridgeLedgerInstruction(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new unsignedTransaction.PublicKey(e.swapperAddress),r=new unsignedTransaction.PublicKey(e.mintAddress),n=getAssociatedTokenAddress(r,e.ledger,!0),o=getWormholeChainIdByName(e.toChain),i=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,o))),u=getSafeU64Blob(e.amountInMin64),a=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),s=getSafeU64Blob(e.feeSolana),c=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,o))):unsignedTransaction.SystemProgram.programId.toBuffer(),d=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(c),isWritable:!1,isSigner:!1}],y=platform.Buffer$1.alloc(MctpBridgeLedgerLayout.span);return MctpBridgeLedgerLayout.encode({instruction:getAnchorInstructionData("init_bridge_ledger"),destAddress:i,amountInMin:u,gasDrop:a,feeRedeem:p,feeSolana:s,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},y),new unsignedTransaction.TransactionInstruction({keys:d,data:y,programId:new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeRedeem"),unsignedTransaction.LayoutExports.blob(8,"feeSolana"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"keyRnd"),unsignedTransaction.LayoutExports.u8("mode"),unsignedTransaction.LayoutExports.blob(32,"tokenOut"),unsignedTransaction.LayoutExports.blob(8,"amountOutMin"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(32,"refAddress"),unsignedTransaction.LayoutExports.u8("feeRateRef")]);function createMctpSwapLedgerInstruction(e){const t=new unsignedTransaction.PublicKey(e.swapperAddress),r=new unsignedTransaction.PublicKey(e.mintAddress),n=getAssociatedTokenAddress(r,e.ledger,!0),o=getWormholeChainIdByName(e.toChain),i=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,o))),u=getSafeU64Blob(e.amountInMin64),a=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),s=getSafeU64Blob(e.feeSolana),c=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.tokenOut,o))),d=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,o))):unsignedTransaction.SystemProgram.programId.toBuffer(),y=getSafeU64Blob(getAmountOfFractionalAmount(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),l=getSafeU64Blob(e.deadline),m=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],f=platform.Buffer$1.alloc(MctpSwapLedgerLayout.span);return MctpSwapLedgerLayout.encode({instruction:getAnchorInstructionData("init_order_ledger"),destAddress:i,amountInMin:u,gasDrop:a,feeRedeem:p,feeSolana:s,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:c,refAddress:d,amountOutMin:y,deadline:l,feeRateRef:e.feeRateRef},f),new unsignedTransaction.TransactionInstruction({keys:m,data:f,programId:new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions(e,t,r,n,o,i={}){const u=i?.forceSkipCctpInstructions||!1,a=i?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let p=[],s=[],c=[],d=[],y=[],l=[],m=[];const f=unsignedTransaction.Keypair.generate();let T=null;p.push(addresses_default.LOOKUP_TABLE);const g=new unsignedTransaction.PublicKey(addresses_default.MCTP_PROGRAM_ID),b=new unsignedTransaction.PublicKey(t),h=unsignedTransaction.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 C=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[I]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from(C),b.toBytes(),h.publicKey.toBytes()],g),w=getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.mctpInputContract),I,!0),M=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",E=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const S=BigInt(u?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&s.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),s.push(createAssociatedTokenAccountInstruction(b,w,I,new unsignedTransaction.PublicKey(e.mctpInputContract))),s.push(createSplTransferInstruction(getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.mctpInputContract),b,a),w,b,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(s.push(createMctpSwapLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:E,tokenOutDecimals:e.toToken.decimals,referrerAddress:n,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),!u){const{instruction:_,signer:F}=createMctpInitSwapInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(_),c.push(F)}}else if(s.push(createMctpBridgeLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:M,referrerAddress:n})),!u)if(M==="WITH_FEE"){const{instruction:_,signers:F}=createMctpBridgeWithFeeInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(_),c.push(...F)}else{const{instructions:_,signer:F}=createMctpBridgeLockFeeInstruction(I,e.toChain,e.mctpInputContract,t,S);s.push(..._),c.push(F)}}else{const S=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:I.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":M,fillMaxAccounts:i?.separateSwapTx||!1,tpmTokenAccount:i?.separateSwapTx?f.publicKey.toString():null}),_=decentralizeClientSwapInstructions(S);i?.separateSwapTx&&S.maxAccountsFilled?(validateJupSwap(_,f.publicKey,b),m=await createInitializeRandomTokenAccountInstructions(o,b,new unsignedTransaction.PublicKey(e.mctpInputContract),b,f),l.push(..._.computeBudgetInstructions),_.setupInstructions&&l.push(..._.setupInstructions),l.push(_.swapInstruction),_.cleanupInstruction&&l.push(_.cleanupInstruction),y.push(..._.addressLookupTableAddresses),s.push(createAssociatedTokenAccountInstruction(b,w,I,new unsignedTransaction.PublicKey(e.mctpInputContract))),s.push(createTransferAllAndCloseInstruction(b,new unsignedTransaction.PublicKey(e.mctpInputContract),f.publicKey,w,b))):(validateJupSwap(_,w,b),s.push(..._.computeBudgetInstructions),_.setupInstructions&&s.push(..._.setupInstructions),s.push(_.swapInstruction),_.cleanupInstruction&&s.push(_.cleanupInstruction),p.push(..._.addressLookupTableAddresses));const F=l.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(s.push(createMctpSwapLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:F,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),tokenOut:E,tokenOutDecimals:e.toToken.decimals,referrerAddress:n,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),l.length>0){const{instruction:x,signer:R}=createMctpInitSwapInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(x),c.push(R)}}else if(s.push(createMctpBridgeLedgerInstruction({ledger:I,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:h.publicKey,toChain:e.toChain,destinationAddress:r,feeSolana:F,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),mode:M,referrerAddress:n})),l.length>0)if(M==="WITH_FEE"){const{instruction:x,signers:R}=createMctpBridgeWithFeeInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(x),c.push(...R)}else{const{instructions:x,signer:R}=createMctpBridgeLockFeeInstruction(I,e.toChain,e.mctpInputContract,t,F);s.push(...x),c.push(R)}}const P=await getAddressLookupTableAccounts(p.concat(y),o);if(d=P.slice(0,p.length),l.length>0){const S=P.slice(p.length);T={messageV0:{payerKey:b,instructions:l,addressLookupTableAccounts:S},createTmpTokenAccountIxs:m,tmpTokenAccount:f}}return{instructions:s,signers:c,lookupTables:d,swapMessageV0Params:T}}function createSwiftOrderHash(e,t,r,n,o){const u=platform.Buffer$1.alloc(239);let a=0;const p=getWormholeChainIdByName(e.fromChain),s=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t,p)));u.set(s,0),a+=32,u.writeUInt16BE(p,a),a+=2;const c=e.swiftInputContract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.swiftInputContract,p),d=platform.Buffer$1.from(hexToUint8Array(c));u.set(d,a),a+=32;const y=getWormholeChainIdByName(e.toChain),l=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(r,y)));u.set(l,a),a+=32,u.writeUInt16BE(y,a),a+=2;const m=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,y),f=platform.Buffer$1.from(hexToUint8Array(m));u.set(f,a),a+=32,u.writeBigUInt64BE(getAmountOfFractionalAmount(e.minAmountOut,Math.min(e.toToken.decimals,8)),a),a+=8,u.writeBigUInt64BE(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),a),a+=8,u.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),a),a+=8,u.writeBigUInt64BE(BigInt(e.refundRelayerFee64),a),a+=8,u.writeBigUInt64BE(BigInt(e.deadline64),a),a+=8;const T=n?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(n,y))):unsignedTransaction.SystemProgram.programId.toBuffer();u.set(T,a),a+=32,u.writeUInt8(e.referrerBps,a),a+=1;const g=e.protocolBps;u.writeUInt8(g,a),a+=1,u.writeUInt8(e.swiftAuctionMode,a),a+=1;const b=platform.Buffer$1.from(hexToUint8Array(o));if(u.set(b,a),a+=32,a!==239)throw new Error(`Invalid order data size: ${a}`);const h=platform.keccak256(u);return platform.Buffer$1.from(hexToUint8Array(h))}var InitSwiftLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.blob(8,"instruction"),unsignedTransaction.LayoutExports.blob(8,"amountInMin"),unsignedTransaction.LayoutExports.u8("nativeInput"),unsignedTransaction.LayoutExports.blob(8,"feeSubmit"),unsignedTransaction.LayoutExports.blob(32,"destAddress"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"tokenOut"),unsignedTransaction.LayoutExports.blob(8,"amountOutMin"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.blob(8,"feeCancel"),unsignedTransaction.LayoutExports.blob(8,"feeRefund"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(32,"refAddress"),unsignedTransaction.LayoutExports.u8("feeRateRef"),unsignedTransaction.LayoutExports.u8("feeRateMayan"),unsignedTransaction.LayoutExports.u8("auctionMode"),unsignedTransaction.LayoutExports.blob(32,"randomKey")]);function createSwiftInitInstruction(e){const{quote:t}=e,r=t.swiftInputContract===platform.ZeroAddress?solMint:new unsignedTransaction.PublicKey(t.swiftInputContract),n=getWormholeChainIdByName(t.toChain);if(n!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${n} != ${t.toToken.wChainId}`);const o=[{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:r,isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],i=platform.Buffer$1.alloc(InitSwiftLayout.span),u=e.referrerAddress?platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,n))):unsignedTransaction.SystemProgram.programId.toBuffer(),a=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout.encode({instruction:getAnchorInstructionData("init_order"),amountInMin:getSafeU64Blob(a),nativeInput:t.swiftInputContract===platform.ZeroAddress?1:0,feeSubmit:getSafeU64Blob(BigInt(t.submitRelayerFee64)),destAddress:platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,n))),destinationChain:n,tokenOut:platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t.toToken.contract,n))),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:u,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},i),new unsignedTransaction.TransactionInstruction({keys:o,data:i,programId:new unsignedTransaction.PublicKey(addresses_default.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions(e,t,r,n,o,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 u=i.allowSwapperOffCurve||!1;let a=[],p=[],s=[];s.push(addresses_default.LOOKUP_TABLE);let c=[],d=[],y=[];const l=unsignedTransaction.Keypair.generate();let m=null;const f=new unsignedTransaction.PublicKey(addresses_default.SWIFT_PROGRAM_ID),T=new unsignedTransaction.PublicKey(t),g=unsignedTransaction.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const b=BigInt(e.deadline64),h=createSwiftOrderHash(e,t,r,n,g.publicKey.toBuffer().toString("hex")),[A]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("STATE_SOURCE"),h],f),C=e.swiftInputContract===platform.ZeroAddress?solMint:new unsignedTransaction.PublicKey(e.swiftInputContract),I=getAssociatedTokenAddress(C,A,!0),w=e.gasless?new unsignedTransaction.PublicKey(e.relayer):T,M=BigInt(e.submitRelayerFee64)>0n?getAssociatedTokenAddress(C,w,!1):f;if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&a.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),a.push(createAssociatedTokenAccountInstruction(w,I,A,C)),e.swiftInputContract===platform.ZeroAddress?a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:T,toPubkey:I,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction(I)):a.push(createSplTransferInstruction(getAssociatedTokenAddress(C,T,u),I,T,BigInt(e.effectiveAmountIn64)));else{const P=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${h.toString("hex")}`,fillMaxAccounts:i?.separateSwapTx||!1,tpmTokenAccount:i?.separateSwapTx?l.publicKey.toString():null}),S=decentralizeClientSwapInstructions(P);i?.separateSwapTx&&P.maxAccountsFilled?(validateJupSwap(S,l.publicKey,T),y=await createInitializeRandomTokenAccountInstructions(o,w,C,T,l),d.push(...S.computeBudgetInstructions),S.setupInstructions&&d.push(...S.setupInstructions),d.push(S.swapInstruction),S.cleanupInstruction&&d.push(S.cleanupInstruction),c.push(...S.addressLookupTableAddresses),a.push(createAssociatedTokenAccountInstruction(w,I,A,C)),a.push(createTransferAllAndCloseInstruction(T,C,l.publicKey,I,w))):(a.push(...S.computeBudgetInstructions),S.setupInstructions&&a.push(...S.setupInstructions),a.push(S.swapInstruction),S.cleanupInstruction&&a.push(S.cleanupInstruction),s.push(...S.addressLookupTableAddresses))}a.push(createSwiftInitInstruction({quote:e,state:A,trader:T,stateAccount:I,randomKey:g.publicKey,relayerAccount:M,relayer:w,destinationAddress:r,deadline:b,referrerAddress:n}));const E=await getAddressLookupTableAccounts(s.concat(c),o);if(p=E.slice(0,s.length),d.length>0){const P=E.slice(s.length);m={messageV0:{payerKey:w,instructions:d,addressLookupTableAccounts:P},createTmpTokenAccountIxs:y,tmpTokenAccount:l}}return{instructions:a,signers:[],lookupTables:p,swapMessageV0Params:m}}var STATE_SIZE=420,SwapLayout=unsignedTransaction.LayoutExports.struct([unsignedTransaction.LayoutExports.u8("instruction"),unsignedTransaction.LayoutExports.u8("stateNonce"),unsignedTransaction.LayoutExports.blob(8,"amount"),unsignedTransaction.LayoutExports.blob(8,"minAmountOut"),unsignedTransaction.LayoutExports.blob(8,"deadline"),unsignedTransaction.LayoutExports.blob(8,"feeSwap"),unsignedTransaction.LayoutExports.blob(8,"feeReturn"),unsignedTransaction.LayoutExports.blob(8,"feeCancel"),unsignedTransaction.LayoutExports.blob(8,"gasDrop"),unsignedTransaction.LayoutExports.u16("destinationChain"),unsignedTransaction.LayoutExports.blob(32,"destinationAddress"),unsignedTransaction.LayoutExports.u8("unwrapRedeem"),unsignedTransaction.LayoutExports.u8("unwrapRefund"),unsignedTransaction.LayoutExports.u8("mayanFeeNonce"),unsignedTransaction.LayoutExports.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions(e,t,r,n,o,i={}){const u=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSolanaInstructions(e,t,r,u,o,i);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions(e,t,r,u,o,i);let a=[];const p=o??new unsignedTransaction.Connection("https://rpc.ankr.com/solana"),s=new unsignedTransaction.PublicKey(addresses_default.MAYAN_PROGRAM_ID),c=new unsignedTransaction.PublicKey(addresses_default.TOKEN_PROGRAM_ID),d=new unsignedTransaction.PublicKey(t),y=new unsignedTransaction.PublicKey(addresses_default.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&a.push(unsignedTransaction.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let l;u?l=new unsignedTransaction.PublicKey(u):l=unsignedTransaction.SystemProgram.programId;const[m,f]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("MAYANFEE")],s),[T,g]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("REFERRERFEE"),l.toBuffer()],s),b=unsignedTransaction.Keypair.generate(),h=unsignedTransaction.Keypair.generate(),[A,C]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("V2STATE"),platform.Buffer$1.from(b.publicKey.toBytes()),platform.Buffer$1.from(h.publicKey.toBytes())],s),I=new unsignedTransaction.PublicKey(e.fromToken.mint),w=new unsignedTransaction.PublicKey(e.toToken.mint),M=getAssociatedTokenAddress(I,d),E=getAssociatedTokenAddress(I,A,!0),[[P,S],_,F]=await Promise.all([p.getMultipleAccountsInfo([M,E],"finalized"),p.getMinimumBalanceForRentExemption(STATE_SIZE),decideRelayer()]);(!P||P.data.length===0)&&a.push(createAssociatedTokenAccountInstruction(d,M,d,I)),(!S||S.data.length===0)&&a.push(createAssociatedTokenAccountInstruction(d,E,A,I)),e.fromToken.contract===platform.ZeroAddress&&(a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:d,toPubkey:M,lamports:BigInt(e.effectiveAmountIn64)})),a.push(createSyncNativeInstruction(M)));const x=BigInt(e.effectiveAmountIn64),R=unsignedTransaction.Keypair.generate();a.push(createApproveInstruction(M,R.publicKey,d,x)),a.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:d,toPubkey:R.publicKey,lamports:_}));const B=[{pubkey:R.publicKey,isWritable:!1,isSigner:!0},{pubkey:b.publicKey,isWritable:!1,isSigner:!0},{pubkey:h.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:M,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:E,isWritable:!0,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:w,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:R.publicKey,isWritable:!0,isSigner:!0},{pubkey:F,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:c,isWritable:!1,isSigner:!1},{pubkey:unsignedTransaction.SystemProgram.programId,isWritable:!1,isSigner:!1}],k=getWormholeChainIdByName(e.toChain);if(k===1){const O=await p.getAccountInfo(new unsignedTransaction.PublicKey(r));if(O&&O.owner&&O.owner.equals(c))throw new Error("Destination address is not about token account. It should be a owner address")}const D=platform.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(r,k))),N=getAmountOfFractionalAmount(e.minAmountOut,e.mintDecimals.to),H=getAmountOfFractionalAmount(e.swapRelayerFee,e.mintDecimals.from),W=getAmountOfFractionalAmount(e.redeemRelayerFee,e.mintDecimals.to),L=getAmountOfFractionalAmount(e.refundRelayerFee,e.mintDecimals.from),U=getAmountOfFractionalAmount(e.gasDrop,getGasDecimalsInSolana(e.toChain)),G=e.toToken.contract===platform.ZeroAddress,$=e.fromToken.contract===platform.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const j=BigInt(e.deadline64),v=platform.Buffer$1.alloc(SwapLayout.span),Y={instruction:101,stateNonce:C,amount:getSafeU64Blob(x),minAmountOut:getSafeU64Blob(N),deadline:getSafeU64Blob(j),feeSwap:getSafeU64Blob(H),feeReturn:getSafeU64Blob(W),feeCancel:getSafeU64Blob(L),gasDrop:getSafeU64Blob(U),destinationChain:k,destinationAddress:D,unwrapRedeem:G?1:0,unwrapRefund:$?1:0,mayanFeeNonce:f,referrerFeeNonce:g};SwapLayout.encode(Y,v);const V=new unsignedTransaction.TransactionInstruction({keys:B,data:v,programId:s});return a.push(V),{instructions:a,signers:[R,b,h],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams(e,t,r,n,o){const i=getWormholeChainIdById(Number(o)),u=getWormholeChainIdByName(e.fromChain),a=getWormholeChainIdByName(e.toChain);if(u!==i)throw new Error(`Signer chain id(${Number(o)}) and quote from chain are not same! ${u} !== ${i}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==a)throw new Error(`Destination chain ID mismatch: ${a} != ${e.toToken.wChainId}`);const p=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const s=BigInt(e.deadline64),c=e.swiftInputContract,d=BigInt(e.effectiveAmountIn64);let y;n?y=nativeAddressToHexString(n,a):y=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1);const l=nativeAddressToHexString(unsignedTransaction.Keypair.generate().publicKey.toString(),1),m=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1):nativeAddressToHexString(e.toToken.contract,a),f=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),T=getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),g=nativeAddressToHexString(r,a),b={trader:nativeAddressToHexString(t,u),tokenOut:m,minAmountOut:f,gasDrop:T,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:s,destAddr:g,destChainId:a,referrerAddr:y,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:l};return{contractAddress:p,tokenIn:c,amountIn:d,order:b}}function getSwiftFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(o)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");o=Number(o);const u=ZeroPermit,a=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{tokenIn:p,amountIn:s,order:c,contractAddress:d}=getEvmSwiftParams(e,t,r,n,o);let y;const l=new platform.Contract(d,MayanSwiftArtifact_default.abi);e.swiftInputContract===platform.ZeroAddress?y=l.interface.encodeFunctionData("createOrderWithEth",[c]):y=l.interface.encodeFunctionData("createOrderWithToken",[p,s,c]);let m,f,T;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===platform.ZeroAddress?(m="forwardEth",f=[d,y],T=platform.toBeHex(s)):(m="forwardERC20",f=[p,s,u,d,y],T=platform.toBeHex(0));else{const{evmSwapRouterAddress:b,evmSwapRouterCalldata:h}=e;if(!e.minMiddleAmount||!b||!h)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,C=getAmountOfFractionalAmount(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===platform.ZeroAddress?(m="swapAndForwardEth",f=[s,b,h,e.swiftInputContract,C,d,y],T=platform.toBeHex(s)):(m="swapAndForwardERC20",f=[A,s,u,b,h,e.swiftInputContract,C,d,y],T=platform.toBeHex(0))}return{data:a.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:o,_forwarder:{method:m,params:f}}}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 r=platform.Buffer$1.alloc(16);for(let n=15;n>=0;n--)r[n]=Number(e&0xFFn),e>>=8n;return r}function getShuttleParams(e,t,r){const{shuttleParams:n}=e;if(!n)throw new Error("Swap layer params are missing in quote response");const o=getWormholeChainIdById(Number(r)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${i} !== ${o}`);let a=[];a.push(shuttleConstants.FAST_MODE_FLAG);const p=platform.Buffer$1.alloc(8);p.writeBigUInt64BE(BigInt(n.maxLLFee));const s=p.subarray(2);a.push(...s);const c=platform.Buffer$1.alloc(4);c.writeUInt32BE(n.fastTransferDeadline),a.push(...c),a.push(shuttleConstants.RELAY_REDEEM_MODE);const d=getAmountOfFractionalAmount(e.gasDrop,Math.min(6,getGasDecimal(e.toChain))),y=platform.Buffer$1.alloc(8);y.writeBigUInt64BE(d);const l=y.subarray(4);a.push(...l);const m=platform.Buffer$1.alloc(8);m.writeBigUInt64BE(BigInt(n.maxRelayingFee));const f=m.subarray(2);a.push(...f),a.push(shuttleConstants.EXACT_IN_FLAG),a.push(shuttleConstants.USDC_INPUT_TOKEN_TYPE);const T=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){a.push(...Array(8).fill(0));const b=platform.Buffer$1.alloc(8);b.writeBigUInt64BE(T),a.push(...b)}else a.push(...Array(16).fill(0));if(a.push(shuttleConstants.PRE_APPROVED_ACQUIRE_MODE),n.hasDestSwap){if(e.toToken.contract===platform.ZeroAddress)a.push(shuttleConstants.OUTPUT_NATIVE_MODE);else{a.push(shuttleConstants.OUTPUT_OTHER_MODE);const C=platform.Buffer$1.from(nativeAddressToHexString(e.toToken.contract,u).slice(2),"hex");a.push(...C)}const b=platform.Buffer$1.alloc(4);b.writeUInt32BE(Number(BigInt(e.deadline64))),a.push(...b);const h=getAmountOfFractionalAmount(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){a.push(...Array(8).fill(0));const C=platform.Buffer$1.alloc(8);C.writeBigUInt64BE(h),a.push(...C)}else{const C=writeBigIntTo16BytesBuffer(h);a.push(...C)}const A=platform.Buffer$1.from(n.path.slice(2),"hex");a.push(...A)}else a.push(shuttleConstants.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString(t,u),destChainId:u,serializedParams:`0x${platform.Buffer$1.from(a).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:T,bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain))}}function getShuttleFromEvmTxPayload(e,t,r,n){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");r=Number(r);const o=ZeroPermit,i=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{destAddr:u,destChainId:a,serializedParams:p,contractAddress:s,amountIn:c,bridgeFee:d}=getShuttleParams(e,t,r);let y;y=new platform.Contract(s,ShuttleArtifact_default.abi).interface.encodeFunctionData("initiate",[u,c,a,p]);let m,f,T;if(e.fromToken.contract===e.shuttleInputContract)m="forwardERC20",f=[e.shuttleInputContract,c,o,s,y],T=platform.toBeHex(d);else{const{evmSwapRouterAddress:b,evmSwapRouterCalldata:h}=e;if(!e.minMiddleAmount||!b||!h)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,C=getAmountOfFractionalAmount(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===platform.ZeroAddress?(m="swapAndForwardEth",f=[c,b,h,e.shuttleInputContract,C,s,y],T=platform.toBeHex(c)):(m="swapAndForwardERC20",f=[A,c,o,b,h,e.shuttleInputContract,C,s,y],T=platform.toBeHex(d))}return{data:i.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:r,_forwarder:{method:m,params:f}}}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,r,n,o){const i=getWormholeChainIdById(Number(n)),u=getWormholeChainIdByName(e.fromChain),a=getWormholeChainIdByName(e.toChain);if(u!==i)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${u} !== ${i}`);const p=nativeAddressToHexString(t,a),s=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),c=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),d=BigInt(e.circleMaxFee64),y=BigInt(e.effectiveAmountIn64),l=getCCTPDomain(e.toChain);let m;if(r?m=nativeAddressToHexString(r,a):m=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const f=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:y,redeemFee:s,gasDrop:c,destAddr:p,destDomain:l,referrerAddr:m,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:d,contractAddress:f}}function getEvmFastMctpBridgeTxPayload(e,t,r,n,o){const i=getEvmFastMctpBridgeParams(e,t,r,n),{contractAddress:u,tokenIn:a,amountIn:p,destAddr:s,redeemFee:c,gasDrop:d,circleMaxFee:y,referrerAddr:l,referrerBps:m,destDomain:f,customPayload:T,minFinalityThreshold:g,payloadType:b}=i,h=new platform.Contract(u,MayanFastMctpArtifact_default.abi);let A,C;return A=h.interface.encodeFunctionData("bridge",[a,p,c,y,d,s,f,l,m,b,g,T]),C=platform.toBeHex(0),{to:u,data:A,value:C,_params:i}}function getEvmFastMctpCreateOrderParams(e,t,r,n){const o=getWormholeChainIdById(Number(n)),i=getWormholeChainIdByName(e.fromChain),u=getWormholeChainIdByName(e.toChain);if(i!==o)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${i} !== ${o}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const a=e.fastMctpMayanContract,p=nativeAddressToHexString(t,u);let s;r?s=nativeAddressToHexString(r,u):s=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const c=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=BigInt(e.refundRelayerFee64),y=BigInt(e.circleMaxFee64),l=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),m=getCCTPDomain(e.toChain),f=BigInt(e.effectiveAmountIn64),T=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),g=BigInt(e.deadline64),b=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:f,circleMaxFee:y,destDomain:m,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER,destAddr:p,tokenOut:b,amountOutMin:T,gasDrop:l,redeemFee:c,refundFee:d,deadline:g,referrerAddr:s,referrerBps:e.referrerBps||0},contractAddress:a}}function getEvmFastMctpCreateOrderTxPayload(e,t,r,n){const o=getEvmFastMctpCreateOrderParams(e,t,r,n),{contractAddress:i,orderPayload:u,tokenIn:a,amountIn:p,circleMaxFee:s,destDomain:c,minFinalityThreshold:d}=o,l=new platform.Contract(i,MayanFastMctpArtifact_default.abi).interface.encodeFunctionData("createOrder",[a,p,s,c,d,u]),m=platform.toBeHex(0);return{to:i,data:l,value:m,_params:o}}function getFastMctpFromEvmTxPayload(e,t,r,n,o,i){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const u=o||ZeroPermit,a=new platform.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 p=getEvmFastMctpCreateOrderTxPayload(e,t,r,n),s="forwardERC20",c=[e.fromToken.contract,p._params.amountIn,u,p._params.contractAddress,p.data];return{data:a.interface.encodeFunctionData(s,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:s,params:c}}}else{const p=getEvmFastMctpBridgeTxPayload(e,t,r,n),s="forwardERC20",c=[e.fromToken.contract,p._params.amountIn,u,p._params.contractAddress,p.data];return{data:a.interface.encodeFunctionData(s,c),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:s,params:c}}}else{const{minMiddleAmount:p,evmSwapRouterAddress:s,evmSwapRouterCalldata:c}=e;if(!p||!s||!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 d=getEvmFastMctpCreateOrderTxPayload(e,t,r,n),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){const l="swapAndForwardEth",m=[d._params.amountIn,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(d._params.amountIn),chainId:n,_forwarder:{method:l,params:m}}}else{const l="swapAndForwardERC20",m=[e.fromToken.contract,d._params.amountIn,u,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:l,params:m}}}}else{const d=getEvmFastMctpBridgeTxPayload(e,t,r,n),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===platform.ZeroAddress){const l="swapAndForwardEth",m=[d._params.amountIn,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(d._params.amountIn),chainId:n,_forwarder:{method:l,params:m}}}else{const l="swapAndForwardERC20",m=[e.fromToken.contract,d._params.amountIn,u,s,c,e.fastMctpInputContract,y,d._params.contractAddress,d.data];return{data:a.interface.encodeFunctionData(l,m),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:platform.toBeHex(0),chainId:n,_forwarder:{method:l,params:m}}}}}}function getEvmSwapParams(e,t,r,n,o,i){const u=new unsignedTransaction.PublicKey(addresses_default.MAYAN_PROGRAM_ID),[a]=unsignedTransaction.PublicKey.findProgramAddressSync([platform.Buffer$1.from("MAIN")],u),p=getAssociatedTokenAddress(new unsignedTransaction.PublicKey(e.fromToken.mint),a,!0),s=BigInt(e.effectiveAmountIn64),c=nativeAddressToHexString(p.toString(),1),d=nativeAddressToHexString(addresses_default.AUCTION_PROGRAM_ID,1);let y;r?y=nativeAddressToHexString(r,1):y=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),1);const l=getWormholeChainIdById(Number(o)),m=getWormholeChainIdByName(e.fromChain),f=getWormholeChainIdByName(e.toChain);if(m!==l)throw new Error(`Signer chain id(${Number(o)}) and quote from chain are not same! ${m} !== ${l}`);const T=e.whMayanContract,g={mayanAddr:c,mayanChainId:1,destAddr:nativeAddressToHexString(t,f),destChainId:f,auctionAddr:d,referrer:y,refundAddr:nativeAddressToHexString(n,l)},b=e.toToken.contract===platform.ZeroAddress,h={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:b,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))},C=nativeAddressToHexString(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),I=getAmountOfFractionalAmount(e.bridgeFee,18);return{amountIn:s,tokenIn:e.fromToken.contract,tokenOut:C,tokenOutWChainId:e.toToken.realOriginChainId,criteria:h,recipient:g,relayerFees:A,contractAddress:T,bridgeFee:I}}function getSwapFromEvmTxPayload(e,t,r,n,o,i,u,a){const p=getWormholeChainIdById(Number(i)),s=getWormholeChainIdByName(e.fromChain);if(s!==p)throw new Error(`Signer chain id(${Number(i)}) and quote from chain are not same! ${s} !== ${p}`);const c=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return getMctpFromEvmTxPayload(e,r,c,i,a);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload(e,t,r,c,i);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload(e,r,i);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload(e,r,c,i,a);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:d,recipient:y,tokenOut:l,tokenOutWChainId:m,criteria:f,tokenIn:T,amountIn:g,contractAddress:b,bridgeFee:h}=getEvmSwapParams(e,r,c,o,i),A=new platform.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),C=new platform.Contract(b,MayanSwapArtifact_default.abi);let I,w,M;const E=ZeroPermit;if(T===platform.ZeroAddress){const S=C.interface.encodeFunctionData("wrapAndSwapETH",[d,y,l,m,f]);I="forwardEth",w=[b,S],M=platform.toBeHex(g)}else{const S=C.interface.encodeFunctionData("swap",[d,y,l,m,f,T,g]);I="forwardERC20",w=[T,g,E,b,S],M=platform.toBeHex(h)}const P=A.interface.encodeFunctionData(I,w);return{to:addresses_default.MAYAN_FORWARDER_CONTRACT,data:P,value:M,chainId:i,_forwarder:{method:I,params:w}}}async function assertArgumentIsImmutable(e,t){let r;try{r=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(r){if(r[e.argumentIndex]!=="Pure"&&r[e.argumentIndex]?.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 r=[],n=BigInt(0),o;do{const i=await t.getCoins({...e,owner:e.walletAddress,cursor:o}),u=i.data.filter(a=>BigInt(a.balance)>BigInt(0));if(r=[...r,...u],u.forEach(a=>{n+=BigInt(a.balance)}),i.data.length===0||!i.hasNextPage||!i.nextCursor||n>=e.coinAmount)return{coins:r.sort((a,p)=>Number(BigInt(a.coinObjectId)-BigInt(p.coinObjectId))),sum:n};o=i.nextCursor}while(!0)}async function fetchMayanSuiPackageId(e,t){let r;try{r=await t.getObject({id:e,options:{showContent:!0}})}catch(n){throw new Error(`Failed to fetch Mayan Sui package ID:
2
2
 
3
- ${n}`)}if(r.data?.content?.fields?.latest_package_id)return r.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function createMctpFromSuiMoveCalls(e,t,r,n,o,i,u){const[a,p]=await Promise.all([fetchMayanSuiPackageId(addresses_default.SUI_MCTP_STATE,i),e.hasAuction?fetchMayanSuiPackageId(addresses_default.SUI_MCTP_FEE_MANAGER_STATE,i):null]),s=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);let c,d,y;if(e.fromToken.contract===e.mctpInputContract)c=new unsignedTransaction.Transaction,d=await resolveInputCoin(s,t,e.mctpInputContract,i,c,u?.inputCoin);else{const{tx:f,outCoin:T,whFeeCoin:g}=await getSwapSui({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:n,inputCoin:u?.inputCoin,transaction:void 0});c=unsignedTransaction.Transaction.from(f),d=T,y=g?{result:g}:null}e.hasAuction?await addInitOrderMoveCalls(e,t,r,n,a,p,i,{inputCoin:{result:d},whFeeCoin:y,builtTransaction:c}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls(e,t,r,a,i,{inputCoin:{result:d},builtTransaction:c}):await addBridgeWithFeeMoveCalls(e,t,r,a,o,i,{inputCoin:{result:d},whFeeCoin:y,builtTransaction:c});const l=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);c.moveCall({package:a,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[c.pure.u64(l),c.object(e.fromToken.verifiedAddress),c.pure.vector("u8",m)]});try{let f;n?f=nativeAddressToHexString(n,getWormholeChainIdByName(e.toChain)):f=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),c.moveCall({package:addresses_default.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[c.pure.address(f),c.pure.u8(e.referrerBps||0)]})}catch(f){console.error("Failed to log referrer",f)}return c}async function addBridgeWithFeeMoveCalls(e,t,r,n,o,i,u){const a=getWormholeChainIdByName(e.toChain),p=u?.builtTransaction??new unsignedTransaction.Transaction,s=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),c=await resolveInputCoin(s,t,e.mctpInputContract,i,p,u?.inputCoin),d=MCTP_PAYLOAD_TYPE_DEFAULT,y=nativeAddressToHexString(r,a),l=getCCTPDomain(e.toChain),m=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),f=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),T=Uint8Array.from([]),[g]=p.moveCall({package:n,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.pure.u8(d),c,p.pure.u64(s),p.pure.address(y),p.pure.u32(l),p.pure.u64(m),p.pure.u64(f),p.pure.vector("u8",T)]}),[b,h]=p.moveCall({package:n,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.object(addresses_default.SUI_MCTP_STATE),p.object(addresses_default.SUI_CCTP_CORE_STATE),p.object(e.mctpVerifiedInputAddress),g]}),[A,C]=p.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,`${n}::bridge_with_fee::CircleAuth`],arguments:[h,p.object(addresses_default.SUI_CCTP_TOKEN_STATE),p.object(addresses_default.SUI_CCTP_CORE_STATE),p.object("0x403"),p.object(e.mctpInputTreasury)]}),[I]=p.moveCall({package:n,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[p.object(addresses_default.SUI_MCTP_STATE),b,C]});return await addPublishWormholeMessage(p,I,i,BigInt(e.bridgeFee),t,u?.whFeeCoin),p}async function addBridgeLockedFeeMoveCalls(e,t,r,n,o,i){const u=getWormholeChainIdByName(e.toChain),a=i?.builtTransaction??new unsignedTransaction.Transaction,p=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),s=await resolveInputCoin(p,t,e.mctpInputContract,o,a,i?.inputCoin),c=nativeAddressToHexString(r,u),d=getCCTPDomain(e.toChain),y=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),l=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),[m]=a.moveCall({package:n,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s,a.pure.u64(p),a.pure.address(c),a.pure.u32(d),a.pure.u64(y),a.pure.u64(l)]}),[f,T]=a.moveCall({package:n,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[a.object(addresses_default.SUI_MCTP_STATE),a.object(addresses_default.SUI_CCTP_CORE_STATE),a.object(e.mctpVerifiedInputAddress),m]}),[g,b]=a.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,`${n}::bridge_locked_fee::CircleAuth`],arguments:[T,a.object(addresses_default.SUI_CCTP_TOKEN_STATE),a.object(addresses_default.SUI_CCTP_CORE_STATE),a.object("0x403"),a.object(e.mctpInputTreasury)]});return a.moveCall({package:n,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[a.object(addresses_default.SUI_MCTP_STATE),a.object(e.mctpVerifiedInputAddress),f,b]}),a}async function addInitOrderMoveCalls(e,t,r,n,o,i,u,a){const p=getWormholeChainIdByName(e.toChain),s=a?.builtTransaction??new unsignedTransaction.Transaction,c=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),[d]=await Promise.all([resolveInputCoin(c,t,e.mctpInputContract,u,s,a?.inputCoin),assertArgumentIsImmutable({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},u)]),y=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,e.toToken.wChainId),l=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString(r,p),f=getCCTPDomain(e.toChain),T=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),g=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),b=BigInt(e.deadline64);let h;n?h=nativeAddressToHexString(n,p):h=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const A=[s.object(e.mctpVerifiedInputAddress),s.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID),s.pure.address(t),d,s.pure.address(m),s.pure.u16(p),s.pure.address(y),s.pure.u64(l),s.pure.u64(T),s.pure.u64(g),s.pure.u64(b),s.pure.address(h),s.pure.u8(e.referrerBps)],[C]=s.moveCall({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:A}),[I]=s.moveCall({package:i,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[s.object(addresses_default.SUI_MCTP_FEE_MANAGER_STATE),C]}),[w]=s.moveCall({package:o,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...A.slice(1),s.pure.u32(f),s.pure.u64(c)]}),[M,E]=s.moveCall({package:o,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default.SUI_MCTP_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object(e.mctpVerifiedInputAddress),w,I]}),[P,S]=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,`${o}::init_order::CircleAuth`],arguments:[E,s.object(addresses_default.SUI_CCTP_TOKEN_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object("0x403"),s.object(e.mctpInputTreasury)]}),[_]=s.moveCall({package:o,module:"init_order",function:"publish_init_order",arguments:[s.object(addresses_default.SUI_MCTP_STATE),M,S]});return await addPublishWormholeMessage(s,_,u,BigInt(e.bridgeFee),t,a?.whFeeCoin),s}async function addPublishWormholeMessage(e,t,r,n,o,i){let u;if(i?.result)u=i.result;else if(i?.objectId)u=e.object(i.objectId);else if(n>BigInt(0)){const{coins:a,sum:p}=await fetchAllCoins({walletAddress:o,coinType:unsignedTransaction.SUI_TYPE_ARG,coinAmount:n},r);if(p<n)throw new Error("Insufficient funds to pay Wormhole message fee");a.length>1&&e.mergeCoins(a[0].coinObjectId,a.slice(1).map(c=>c.coinObjectId));const[s]=e.splitCoins(a[0].coinObjectId,[n]);u=s}else{const[a]=e.splitCoins(e.gas,[e.pure.u64(0)]);u=a}return e.moveCall({package:addresses_default.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default.SUI_WORMHOLE_STATE),u,t,e.object(unsignedTransaction.SUI_CLOCK_OBJECT_ID)]}),e}async function resolveInputCoin(e,t,r,n,o,i){let u;if(i?.result)u=i.result;else if(i?.objectId)u=o.object(i.objectId);else{const{coins:a,sum:p}=await fetchAllCoins({walletAddress:t,coinType:r,coinAmount:e},n);if(p<e)throw new Error(`Insufficient funds to create Coin ${r} with amount ${e}`);a.length>1&&o.mergeCoins(a[0].coinObjectId,a.slice(1).map(c=>c.coinObjectId));const[s]=o.splitCoins(a[0].coinObjectId,[e]);u=s}return u}async function createSwapFromSuiMoveCalls(e,t,r,n,o,i,u){const a=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSuiMoveCalls(e,t,r,a,o,i,u);throw new Error("Unsupported quote type from Sui chain")}const MayanForwarderShimContractABI=[{inputs:[{internalType:"address",name:"_mayanForwarder",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"}],name:"FeeTooLarge",type:"error"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"FeeTransferFailed",type:"error"},{inputs:[{internalType:"uint256",name:"refundAmount",type:"uint256"}],name:"RefundFailed",type:"error"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"forwarderData",type:"bytes"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"address",name:"payee",type:"address"}],internalType:"struct FeeArgs",name:"feeArgs",type:"tuple"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"forwarderData",type:"bytes"},{components:[{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"address",name:"payee",type:"address"}],internalType:"struct FeeArgs",name:"feeArgs",type:"tuple"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"mayanForwarder",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],ForwardEth="forwardEth",ForwardERC20="forwardERC20",MayanForwarderShimContractAddress="0x87a26566dbb3bf206634c1792a96ff4989e3f56e";function createMayanForwarderShim(){const e=new platform.Interface(MayanForwarderShimContractABI);function t(i,u,a){return e.encodeFunctionData(ForwardEth,[i,{payee:u,fee:a}])}function r(i,u,a,p,s){return e.encodeFunctionData(ForwardERC20,[i,u,a,{payee:p,fee:s}])}function n(i,u,a,p,s,c){return c?t(i,u,a):r(i,p,s,u,a)}function o(i,u){return u?i:0n}return{encodeFunctionData:n,getMsgValue:o}}function isMayanForwarderShimEnabled(e,t,r){return!(t<=0n||!r||e!=="Mainnet")}function getEvmContractAddress(e,t,r){return isMayanForwarderShimEnabled(e,t,r)?MayanForwarderShimContractAddress:hypercore.addresses_default.MAYAN_FORWARDER_CONTRACT}function createTransactionRequest(e,t,r,n,o,i,u,a){if(!t.data||!isMayanForwarderShimEnabled(e,n,a))return t;const p=createMayanForwarderShim(),s=p.encodeFunctionData(t.data,a,n,i,r,u),c=p.getMsgValue(r,u);return{from:o,to:MayanForwarderShimContractAddress,data:s,value:c,chainId:t.chainId}}var MayanProtocol=(e=>(e.WH="WH",e.MCTP="MCTP",e.SWIFT="SWIFT",e.FAST_MCTP="FAST_MCTP",e.SHUTTLE="SHUTTLE",e.MONO_CHAIN="MONO_CHAIN",e))(MayanProtocol||{}),MayanClientStatus=(e=>(e.INPROGRESS="INPROGRESS",e.COMPLETED="COMPLETED",e.REFUNDED="REFUNDED",e.CANCELED="CANCELED",e))(MayanClientStatus||{}),MayanTransactionGoal=(e=>(e.Send="SEND",e.Bridge="BRIDGE",e.Swap="SWAP",e.Register="REGISTER",e.Settle="SETTLE",e))(MayanTransactionGoal||{});function getNativeContractAddress(e){return e==="Sui"?"0x2::sui::SUI":e==="HyperCore"?"0xaf88d065e77c8cC2239327C5EDb3A432268e5831":"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",HyperEVM:"hyperevm",HyperCore:"hypercore",Linea:"linea"},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 platform.toChain(Number(e))}function supportedChains(e){return Object.keys(e==="Testnet"?testnetSupportedChainMap:chainNameMap)}const possibleVaaTypes=["transfer","swap","redeem","refund"];function txStatusToReceipt(e){const t=toWormholeChainName(e.sourceChain),r=toWormholeChainName(e.destChain),n=e.txs.filter(s=>s.goals.includes(MayanTransactionGoal.Send)||s.goals.includes(MayanTransactionGoal.Register)).map(s=>({chain:t,txid:s.txHash})),o=e.txs.filter(s=>s.goals.includes(MayanTransactionGoal.Settle)).map(s=>({chain:r,txid:s.txHash})),i=[];e.refundTxHash&&i.push({chain:toWormholeChainName(e.refundChain),txid:e.refundTxHash});const u={};for(const s of possibleVaaTypes){const c=`${s}SignedVaa`;if(c in e&&e[c]!==null){const d=platform.deserialize("Uint8Array",platform.hex.decode(e[c]));u[s]={id:{emitter:d.emitterAddress,sequence:d.sequence,chain:d.emitterChain},attestation:d}}}let a={},p=!1;if("redeem"in u?(a=u.redeem,p=!0):"transfer"in u&&(a=u.transfer,p=!0),e.clientStatus===MayanClientStatus.COMPLETED)return{from:t,to:r,originTxs:n,destinationTxs:o,state:platform.TransferState.DestinationFinalized,attestation:a};if(e.clientStatus===MayanClientStatus.REFUNDED||e.clientStatus===MayanClientStatus.CANCELED)return{from:t,to:r,originTxs:n,refundTxs:i,state:platform.TransferState.Refunded,attestation:u.refund};if(e.clientStatus===MayanClientStatus.INPROGRESS)return p&&o.length>0?{from:t,to:r,originTxs:n,destinationTxs:o,state:platform.TransferState.DestinationInitiated,attestation:a}:{from:t,to:r,originTxs:n,state:platform.TransferState.SourceInitiated};throw new Error(`Unknown Mayan clientStatus ${e.clientStatus}`)}async function getTransactionStatus(e,t){const r=`https://${{Mainnet:"",Testnet:"testnet-",Devnet:""}[e]}explorer-api.mayan.finance/v3/swap/trx/${t.txid}`;try{const n=await platform.axios.get(r);if(n.data.id)return n.data}catch(n){if(!n||typeof n=="object"&&(platform.axios.isAxiosError(n)&&n.response?.status===404||"status"in n&&n.status===404))return null;throw n}return null}class MayanRouteBase extends platform.AutomaticRoute{MAX_SLIPPAGE=1;static NATIVE_GAS_DROPOFF_SUPPORTED=!1;static IS_AUTOMATIC=!0;protocols=[MayanProtocol.WH,MayanProtocol.MCTP,MayanProtocol.FAST_MCTP,MayanProtocol.SWIFT,MayanProtocol.MONO_CHAIN];isTestnetRequest(t){return t.fromChain.network==="Testnet"||t.toChain.network==="Testnet"}normalizeQuoteForTestnet(t){const{hyperCoreParams:r,...n}=t;return n}getDefaultOptions(){return{gasDrop:0,slippageBps:"auto",optimizeFor:"speed"}}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(t){return supportedChains(t)}static isProtocolSupported(t){return supportedChains(t.network).includes(t.chain)}static async supportedDestinationTokens(t,r,n){if(hypercore.isHyperCoreChain(n.chain)){const i=platform.Wormhole.tokenId(n.chain,"native");return i?[i]:[]}return tokenHelpers.getAllTokenIdsForChain(n.chain)}async isAvailable(){return!0}async validate(t,r){try{const n=hypercore.validateHyperCoreTransfer(t,r);return n||(r.options=r.options??this.getDefaultOptions(),{valid:!0,params:{...r,normalizedParams:{slippageBps:r.options.slippageBps}}})}catch(n){return{valid:!1,params:r,error:n}}}toMayanAddress(t){return platform.isNative(t.address)?getNativeContractAddress(t.chain):platform.canonicalAddress(t)}getFeeInBaseUnits(t,r){const{getReferrerBps:n}=this.constructor,o=n?n(t):null;if(!o)return 0n;const i=platform.parse(r,t.source.decimals),u=65535n,a=BigInt(10*o);if(a>u)throw new Error("bps exceeds max u16");const p=platform.getDeciBps(i,a);return platform.units(p)}getQuoteAmountIn64(t,r){const n=t.source.decimals,o=platform.parse(r,n),i=this.getFeeInBaseUnits(t,r);if(i<=0n)return o.amount;const a=platform.units(o)-i;return platform.fromBaseUnits(a,n).amount}async injectReferralInstructionsForSolana(t,r,n,o,i){const{fromChain:u,source:a}=r,p=this.referrerAddress().solana,s=this.getFeeInBaseUnits(r,i);if(!p||!s||u.network!=="Mainnet")return n;const c=[],d=new unsignedTransaction.PublicKey(p);if(platform.isNative(a.id.address))c.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:o,toPubkey:d,lamports:s}));else{const l=new unsignedTransaction.PublicKey(a.id.address.toString()),m=await unsignedTransaction.SolanaPlatform.getTokenProgramId(t,l),f=mint.getAssociatedTokenAddressSync(l,d,!0,m),T=mint.getAssociatedTokenAddressSync(l,o,!0,m);await t.getAccountInfo(f)||c.push(associatedTokenAccount.createAssociatedTokenAccountIdempotentInstruction(o,f,d,l,m)),c.push(createTransferCheckedInstruction(T,l,f,o,s,a.decimals,void 0,m))}return c.push(...n),c}async injectReferralInstructionsForSui(t,r,n,o){const{fromChain:i,source:u}=r,a=this.referrerAddress().sui,p=this.getFeeInBaseUnits(r,o);if(!a||!p||i.network!=="Mainnet")return{};const s=this.getQuoteAmountIn64(r,o),c=new unsignedTransaction.Transaction,d=u.id.address,y=platform.isNative(d);let l;if(y)l=c.gas;else{const T=d.toString(),[g,...b]=await unsignedTransaction.SuiPlatform.getCoins(t,n,T);if(!g)throw new Error(`No coins of type ${T} found for ${n}.`);l=c.object(g.coinObjectId),b.length>0&&c.mergeCoins(l,b.map(h=>c.object(h.coinObjectId)))}const[m,f]=c.splitCoins(l,[p,s]);return c.transferObjects([m],a),{tx:c,remainingAmountCoin:f}}async fetchQuote(t,r){const{fromChain:n,toChain:o}=t;if(this.isTestnetRequest(t)){if(!isTestnetSupportedChain(n.chain))throw new Error(`Chain ${n.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`);if(!isTestnetSupportedChain(o.chain))throw new Error(`Chain ${o.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`)}const i={amountIn64:this.getQuoteAmountIn64(t,r.amount),fromToken:this.toMayanAddress(t.source.id),toToken:this.toMayanAddress(t.destination.id),fromChain:toMayanChainName(n.network,n.chain),toChain:toMayanChainName(o.network,o.chain),...this.getDefaultOptions(),...r.options,slippageBps:"auto",referrer:this.referrerAddress().solana,referrerBps:0},u={swift:this.protocols.includes(MayanProtocol.SWIFT),mctp:this.protocols.includes(MayanProtocol.MCTP),fastMctp:this.protocols.includes(MayanProtocol.FAST_MCTP),monoChain:this.protocols.includes(MayanProtocol.MONO_CHAIN)},a=new URL(this.isTestnetRequest(t)?generateFetchQuoteUrl({...i,fromChain:toMayanChainName(n.network,n.chain),toChain:toMayanChainName(o.network,o.chain)},u):hypercore.generateFetchQuoteUrl(i,u));if(!a)throw new Error("Unable to generate fetch quote URL");a.searchParams.has("fullList")||a.searchParams.append("fullList","true");const p=await platform.axios.get(a.toString());if(p.status!==200)throw new Error(`Unable to fetch quote ${{cause:p}}`);const s=p.data?.quotes?.filter(c=>this.protocols.includes(c.type));if(!(!s||s.length===0))return s.length===1||s.sort((c,d)=>r.options.optimizeFor==="cost"?d.expectedAmountOut===c.expectedAmountOut?c.etaSeconds-d.etaSeconds:d.expectedAmountOut-c.expectedAmountOut:r.options.optimizeFor==="speed"?c.etaSeconds===d.etaSeconds?d.expectedAmountOut-c.expectedAmountOut:c.etaSeconds-d.etaSeconds:0),s[0]}getMinAmount(t,r){try{return platform.parse(platform.denoise(t,r),r)}catch{return null}}async quote(t,r){try{const n=await this.fetchQuote(t,r);if(!n)return{success:!1,error:new platform.UnavailableError(new Error("Couldn't fetch a quote"))};const o={token:{chain:"Solana",address:platform.Wormhole.parseAddress("Solana",platform.usdcContract.get(t.fromChain.network,"Solana"))},amount:platform.parse(platform.denoise(n.clientRelayerFeeSuccess||"0",6),6)},i=parseInt(n.deadline64,10)*1e3,u=i?new Date(i):void 0;return{success:!0,params:r,sourceToken:{token:t.source.id,amount:platform.fromBaseUnits(BigInt(n.effectiveAmountIn64),n.fromToken.decimals)},destinationToken:{token:t.destination.id,amount:platform.parse(platform.denoise(n.expectedAmountOut,n.toToken.decimals),n.toToken.decimals)},relayFee:o,destinationNativeGas:platform.parse(platform.denoise(n.gasDrop,n.toToken.decimals),n.toToken.decimals),eta:n.etaSeconds*1e3,details:n,expires:u}}catch(n){if(platform.axios.isAxiosError(n)){const o=n?.response?.data;if(o?.code==="AMOUNT_TOO_SMALL"){const i=o?.data?.minAmountIn,u=this.getMinAmount(i,t.source.decimals);if(u)return{success:!1,error:new platform.MinAmountError(u)}}if(o?.msg)return{success:!1,error:Error(`${o?.msg} ${{cause:o}}`)}}return{success:!1,error:n}}}async initiate(t,r,n,o){try{const i=r.address(),u=platform.canonicalAddress(o),a=[],p=await t.fromChain.getRpc(),s=this.getFeeInBaseUnits(t,n.params.amount),c=await hypercore.maybeGetHyperCorePermitSignature(t,r,n,u);if(t.fromChain.chain==="Solana"){const d={allowSwapperOffCurve:!0,usdcPermitSignature:c},{instructions:y,signers:l,lookupTables:m}=await(this.isTestnetRequest(t)?createSwapFromSolanaInstructions(this.normalizeQuoteForTestnet(n.details),i,u,null,p,d):hypercore.createSwapFromSolanaInstructions(n.details,i,u,this.referrerAddress(),p,d)),f=new unsignedTransaction.PublicKey(i),T=unsignedTransaction.MessageV0.compile({instructions:await this.injectReferralInstructionsForSolana(p,t,y,f,n.params.amount),payerKey:new unsignedTransaction.PublicKey(i),recentBlockhash:"",addressLookupTableAccounts:m}),g=[new unsignedTransaction.SolanaUnsignedTransaction({transaction:new unsignedTransaction.VersionedTransaction(T),signers:l},t.fromChain.network,t.fromChain.chain,"Execute Swap")];if(platform.isSignAndSendSigner(r)){const b=await r.signAndSend(g);a.push(...b.map(h=>({chain:t.fromChain.chain,txid:h})))}else if(platform.isSignOnlySigner(r)){const b=await r.sign(g),h=await unsignedTransaction.SolanaPlatform.sendWait(t.fromChain.chain,p,b);a.push(...h.map(A=>({chain:t.fromChain.chain,txid:A})))}}else if(t.fromChain.chain==="Sui"){const{tx:d,remainingAmountCoin:y}=await this.injectReferralInstructionsForSui(p,t,i,n.params.amount),f={...d&&{builtTransaction:d,inputCoin:{result:y}},...c&&{usdcPermitSignature:c}},T=await(this.isTestnetRequest(t)?createSwapFromSuiMoveCalls(this.normalizeQuoteForTestnet(n.details),i,u,null,void 0,p):hypercore.createSwapFromSuiMoveCalls(n.details,i,u,this.referrerAddress(),void 0,p,f)),g=[new unsignedTransaction.SuiUnsignedTransaction(T,t.fromChain.network,t.fromChain.chain,"Execute Swap")];if(platform.isSignAndSendSigner(r)){const b=await r.signAndSend(g);a.push(...b.map(h=>({chain:t.fromChain.chain,txid:h})))}else if(platform.isSignOnlySigner(r)){const b=await r.sign(g),h=await unsignedTransaction.SuiPlatform.sendWait(t.fromChain.chain,p,b);a.push(...h.map(A=>({chain:t.fromChain.chain,txid:A})))}}else{const d=[],y=platform.networkChainToNativeChainId.get(t.fromChain.network,t.fromChain.chain),l=this.referrerAddress(),m=this.toMayanAddress(t.source.id),f=platform.isNative(t.source.id.address),T=getEvmContractAddress(t.fromChain.network,s,l.evm),g=platform.units(platform.parse(n.params.amount,t.source.decimals));if(!f){const I=platform.EvmPlatform.getTokenImplementation(p,m);if(await I.allowance(i,T)<g){const M=await I.approve.populateTransaction(T,g);d.push(new platform.EvmUnsignedTransaction({from:i,chainId:y,...M},t.fromChain.network,t.fromChain.chain,"Approve Allowance"))}}const b=n.details;if(!b)throw new Error("Missing Mayan quote details");const h=c!==void 0?{usdcPermitSignature:c}:void 0,A=this.isTestnetRequest(t)?getSwapFromEvmTxPayload(this.normalizeQuoteForTestnet(b),i,u,null,i,Number(y),void 0,void 0):hypercore.getSwapFromEvmTxPayload(b,i,u,this.referrerAddress(),i,Number(y),void 0,void 0,h),C=createTransactionRequest(t.fromChain.network,A,g,s,i,m,f,l.evm);if(d.push(new platform.EvmUnsignedTransaction(C,t.fromChain.network,t.fromChain.chain,"Execute Swap")),platform.isSignAndSendSigner(r)){const I=await r.signAndSend(d);a.push(...I.map(w=>({chain:t.fromChain.chain,txid:w})))}else if(platform.isSignOnlySigner(r)){const I=await r.sign(d),w=await platform.EvmPlatform.sendWait(t.fromChain.chain,p,I);a.push(...w.map(M=>({chain:t.fromChain.chain,txid:M})))}}return{from:t.fromChain.chain,to:t.toChain.chain,state:platform.TransferState.SourceInitiated,originTxs:a}}catch(i){throw console.error(i),i}}async*track(t,r){if(platform.isCompleted(t)||platform.isRedeemed(t)||platform.isRefunded(t))return t;let n=r||3600*1e3;for(;n>0;){const o=Date.now();if(platform.isSourceInitiated(t)||platform.isSourceFinalized(t)||platform.isAttested(t)){const i=await getTransactionStatus(this.wh.network,t.originTxs[t.originTxs.length-1]);if(i&&(t=txStatusToReceipt(i),yield{...t,txstatus:i},platform.isCompleted(t)||platform.isRedeemed(t)||platform.isRefunded(t)))return t}else throw new Error("Transfer must have been initiated");await new Promise(i=>setTimeout(i,1e3)),n-=Date.now()-o}return t}transferUrl(t){return`https://explorer.mayan.finance/swap/${t}`}referrerAddress(){const{referrers:t}=this.constructor;return{solana:t?.Solana,evm:t?.Ethereum,sui:t?.Sui}}}class MayanRoute extends MayanRouteBase{static meta={name:"MayanSwap",provider:"Mayan"};protocols=[MayanProtocol.WH,MayanProtocol.MCTP,MayanProtocol.FAST_MCTP,MayanProtocol.SWIFT,MayanProtocol.MONO_CHAIN]}class MayanRouteSWIFT extends MayanRouteBase{static meta={name:"MayanSwapSWIFT",provider:"Mayan Swift"};protocols=[MayanProtocol.SWIFT]}class MayanRouteMCTP extends MayanRouteBase{static meta={name:"MayanSwapMCTP",provider:"Mayan MCTP"};protocols=[MayanProtocol.MCTP]}class MayanRouteWH extends MayanRouteBase{static meta={name:"MayanSwapWH",provider:"Mayan WH"};protocols=[MayanProtocol.WH]}class MayanRouteMONOCHAIN extends MayanRouteBase{static meta={name:"MayanSwapMONOCHAIN",provider:"Mayan Mono Chain"};protocols=[MayanProtocol.MONO_CHAIN];static supportsSameChainSwaps(t,r){const n=platform.chainToPlatform(r);return t==="Mainnet"&&(n==="Solana"||n==="Evm")}}class MayanRouteFastMCTP extends MayanRouteBase{static meta={name:"MayanSwapFastMCTP",provider:"Mayan MCTP"};protocols=[MayanProtocol.FAST_MCTP]}exports.MayanRoute=MayanRoute;exports.MayanRouteFastMCTP=MayanRouteFastMCTP;exports.MayanRouteMCTP=MayanRouteMCTP;exports.MayanRouteMONOCHAIN=MayanRouteMONOCHAIN;exports.MayanRouteSWIFT=MayanRouteSWIFT;exports.MayanRouteWH=MayanRouteWH;
3
+ ${n}`)}if(r.data?.content?.fields?.latest_package_id)return r.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function createMctpFromSuiMoveCalls(e,t,r,n,o,i,u){const[a,p]=await Promise.all([fetchMayanSuiPackageId(addresses_default.SUI_MCTP_STATE,i),e.hasAuction?fetchMayanSuiPackageId(addresses_default.SUI_MCTP_FEE_MANAGER_STATE,i):null]),s=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);let c,d,y;if(e.fromToken.contract===e.mctpInputContract)c=new unsignedTransaction.Transaction,d=await resolveInputCoin(s,t,e.mctpInputContract,i,c,u?.inputCoin);else{const{tx:f,outCoin:T,whFeeCoin:g}=await getSwapSui({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:n,inputCoin:u?.inputCoin,transaction:void 0});c=unsignedTransaction.Transaction.from(f),d=T,y=g?{result:g}:null}e.hasAuction?await addInitOrderMoveCalls(e,t,r,n,a,p,i,{inputCoin:{result:d},whFeeCoin:y,builtTransaction:c}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls(e,t,r,a,i,{inputCoin:{result:d},builtTransaction:c}):await addBridgeWithFeeMoveCalls(e,t,r,a,o,i,{inputCoin:{result:d},whFeeCoin:y,builtTransaction:c});const l=BigInt(e.effectiveAmountIn64),m=Uint8Array.from([]);c.moveCall({package:a,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[c.pure.u64(l),c.object(e.fromToken.verifiedAddress),c.pure.vector("u8",m)]});try{let f;n?f=nativeAddressToHexString(n,getWormholeChainIdByName(e.toChain)):f=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),c.moveCall({package:addresses_default.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[c.pure.address(f),c.pure.u8(e.referrerBps||0)]})}catch(f){console.error("Failed to log referrer",f)}return c}async function addBridgeWithFeeMoveCalls(e,t,r,n,o,i,u){const a=getWormholeChainIdByName(e.toChain),p=u?.builtTransaction??new unsignedTransaction.Transaction,s=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),c=await resolveInputCoin(s,t,e.mctpInputContract,i,p,u?.inputCoin),d=MCTP_PAYLOAD_TYPE_DEFAULT,y=nativeAddressToHexString(r,a),l=getCCTPDomain(e.toChain),m=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),f=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),T=Uint8Array.from([]),[g]=p.moveCall({package:n,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.pure.u8(d),c,p.pure.u64(s),p.pure.address(y),p.pure.u32(l),p.pure.u64(m),p.pure.u64(f),p.pure.vector("u8",T)]}),[b,h]=p.moveCall({package:n,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.object(addresses_default.SUI_MCTP_STATE),p.object(addresses_default.SUI_CCTP_CORE_STATE),p.object(e.mctpVerifiedInputAddress),g]}),[A,C]=p.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,`${n}::bridge_with_fee::CircleAuth`],arguments:[h,p.object(addresses_default.SUI_CCTP_TOKEN_STATE),p.object(addresses_default.SUI_CCTP_CORE_STATE),p.object("0x403"),p.object(e.mctpInputTreasury)]}),[I]=p.moveCall({package:n,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[p.object(addresses_default.SUI_MCTP_STATE),b,C]});return await addPublishWormholeMessage(p,I,i,BigInt(e.bridgeFee),t,u?.whFeeCoin),p}async function addBridgeLockedFeeMoveCalls(e,t,r,n,o,i){const u=getWormholeChainIdByName(e.toChain),a=i?.builtTransaction??new unsignedTransaction.Transaction,p=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),s=await resolveInputCoin(p,t,e.mctpInputContract,o,a,i?.inputCoin),c=nativeAddressToHexString(r,u),d=getCCTPDomain(e.toChain),y=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),l=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),[m]=a.moveCall({package:n,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[s,a.pure.u64(p),a.pure.address(c),a.pure.u32(d),a.pure.u64(y),a.pure.u64(l)]}),[f,T]=a.moveCall({package:n,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[a.object(addresses_default.SUI_MCTP_STATE),a.object(addresses_default.SUI_CCTP_CORE_STATE),a.object(e.mctpVerifiedInputAddress),m]}),[g,b]=a.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,`${n}::bridge_locked_fee::CircleAuth`],arguments:[T,a.object(addresses_default.SUI_CCTP_TOKEN_STATE),a.object(addresses_default.SUI_CCTP_CORE_STATE),a.object("0x403"),a.object(e.mctpInputTreasury)]});return a.moveCall({package:n,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[a.object(addresses_default.SUI_MCTP_STATE),a.object(e.mctpVerifiedInputAddress),f,b]}),a}async function addInitOrderMoveCalls(e,t,r,n,o,i,u,a){const p=getWormholeChainIdByName(e.toChain),s=a?.builtTransaction??new unsignedTransaction.Transaction,c=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),[d]=await Promise.all([resolveInputCoin(c,t,e.mctpInputContract,u,s,a?.inputCoin),assertArgumentIsImmutable({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},u)]),y=e.toToken.contract===platform.ZeroAddress?nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,e.toToken.wChainId),l=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),m=nativeAddressToHexString(r,p),f=getCCTPDomain(e.toChain),T=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),g=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),b=BigInt(e.deadline64);let h;n?h=nativeAddressToHexString(n,p):h=nativeAddressToHexString(unsignedTransaction.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const A=[s.object(e.mctpVerifiedInputAddress),s.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID),s.pure.address(t),d,s.pure.address(m),s.pure.u16(p),s.pure.address(y),s.pure.u64(l),s.pure.u64(T),s.pure.u64(g),s.pure.u64(b),s.pure.address(h),s.pure.u8(e.referrerBps)],[C]=s.moveCall({package:i,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:A}),[I]=s.moveCall({package:i,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[s.object(addresses_default.SUI_MCTP_FEE_MANAGER_STATE),C]}),[w]=s.moveCall({package:o,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...A.slice(1),s.pure.u32(f),s.pure.u64(c)]}),[M,E]=s.moveCall({package:o,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[s.object(addresses_default.SUI_MCTP_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object(e.mctpVerifiedInputAddress),w,I]}),[P,S]=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,`${o}::init_order::CircleAuth`],arguments:[E,s.object(addresses_default.SUI_CCTP_TOKEN_STATE),s.object(addresses_default.SUI_CCTP_CORE_STATE),s.object("0x403"),s.object(e.mctpInputTreasury)]}),[_]=s.moveCall({package:o,module:"init_order",function:"publish_init_order",arguments:[s.object(addresses_default.SUI_MCTP_STATE),M,S]});return await addPublishWormholeMessage(s,_,u,BigInt(e.bridgeFee),t,a?.whFeeCoin),s}async function addPublishWormholeMessage(e,t,r,n,o,i){let u;if(i?.result)u=i.result;else if(i?.objectId)u=e.object(i.objectId);else if(n>BigInt(0)){const{coins:a,sum:p}=await fetchAllCoins({walletAddress:o,coinType:unsignedTransaction.SUI_TYPE_ARG,coinAmount:n},r);if(p<n)throw new Error("Insufficient funds to pay Wormhole message fee");a.length>1&&e.mergeCoins(a[0].coinObjectId,a.slice(1).map(c=>c.coinObjectId));const[s]=e.splitCoins(a[0].coinObjectId,[n]);u=s}else{const[a]=e.splitCoins(e.gas,[e.pure.u64(0)]);u=a}return e.moveCall({package:addresses_default.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default.SUI_WORMHOLE_STATE),u,t,e.object(unsignedTransaction.SUI_CLOCK_OBJECT_ID)]}),e}async function resolveInputCoin(e,t,r,n,o,i){let u;if(i?.result)u=i.result;else if(i?.objectId)u=o.object(i.objectId);else{const{coins:a,sum:p}=await fetchAllCoins({walletAddress:t,coinType:r,coinAmount:e},n);if(p<e)throw new Error(`Insufficient funds to create Coin ${r} with amount ${e}`);a.length>1&&o.mergeCoins(a[0].coinObjectId,a.slice(1).map(c=>c.coinObjectId));const[s]=o.splitCoins(a[0].coinObjectId,[e]);u=s}return u}async function createSwapFromSuiMoveCalls(e,t,r,n,o,i,u){const a=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSuiMoveCalls(e,t,r,a,o,i,u);throw new Error("Unsupported quote type from Sui chain")}const MayanForwarderShimContractABI=[{inputs:[{internalType:"address",name:"_mayanForwarder",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"}],name:"FeeTooLarge",type:"error"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"FeeTransferFailed",type:"error"},{inputs:[{internalType:"uint256",name:"refundAmount",type:"uint256"}],name:"RefundFailed",type:"error"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"forwarderData",type:"bytes"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"address",name:"payee",type:"address"}],internalType:"struct FeeArgs",name:"feeArgs",type:"tuple"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"forwarderData",type:"bytes"},{components:[{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"address",name:"payee",type:"address"}],internalType:"struct FeeArgs",name:"feeArgs",type:"tuple"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"mayanForwarder",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],ForwardEth="forwardEth",ForwardERC20="forwardERC20",MayanForwarderShimContractAddress="0x87a26566dbb3bf206634c1792a96ff4989e3f56e";function createMayanForwarderShim(){const e=new platform.Interface(MayanForwarderShimContractABI);function t(i,u,a){return e.encodeFunctionData(ForwardEth,[i,{payee:u,fee:a}])}function r(i,u,a,p,s){return e.encodeFunctionData(ForwardERC20,[i,u,a,{payee:p,fee:s}])}function n(i,u,a,p,s,c){return c?t(i,u,a):r(i,p,s,u,a)}function o(i,u){return u?i:0n}return{encodeFunctionData:n,getMsgValue:o}}function isMayanForwarderShimEnabled(e,t,r){return!(t<=0n||!r||e!=="Mainnet")}function getEvmContractAddress(e,t,r){return isMayanForwarderShimEnabled(e,t,r)?MayanForwarderShimContractAddress:hypercore.addresses_default.MAYAN_FORWARDER_CONTRACT}function createTransactionRequest(e,t,r,n,o,i,u,a){if(!t.data||!isMayanForwarderShimEnabled(e,n,a))return t;const p=createMayanForwarderShim(),s=p.encodeFunctionData(t.data,a,n,i,r,u),c=p.getMsgValue(r,u);return{from:o,to:MayanForwarderShimContractAddress,data:s,value:c,chainId:t.chainId}}var MayanProtocol=(e=>(e.WH="WH",e.MCTP="MCTP",e.SWIFT="SWIFT",e.FAST_MCTP="FAST_MCTP",e.SHUTTLE="SHUTTLE",e.MONO_CHAIN="MONO_CHAIN",e))(MayanProtocol||{}),MayanClientStatus=(e=>(e.INPROGRESS="INPROGRESS",e.COMPLETED="COMPLETED",e.REFUNDED="REFUNDED",e.CANCELED="CANCELED",e))(MayanClientStatus||{}),MayanTransactionGoal=(e=>(e.Send="SEND",e.Bridge="BRIDGE",e.Swap="SWAP",e.Register="REGISTER",e.Settle="SETTLE",e))(MayanTransactionGoal||{});function getNativeContractAddress(e){return e==="Sui"?"0x2::sui::SUI":e==="HyperCore"?"0xaf88d065e77c8cC2239327C5EDb3A432268e5831":"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",HyperEVM:"hyperevm",HyperCore:"hypercore",Linea:"linea",Monad:"monad"},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 platform.toChain(Number(e))}function supportedChains(e){return Object.keys(e==="Testnet"?testnetSupportedChainMap:chainNameMap)}const possibleVaaTypes=["transfer","swap","redeem","refund"];function txStatusToReceipt(e){const t=toWormholeChainName(e.sourceChain),r=toWormholeChainName(e.destChain),n=e.txs.filter(s=>s.goals.includes(MayanTransactionGoal.Send)||s.goals.includes(MayanTransactionGoal.Register)).map(s=>({chain:t,txid:s.txHash})),o=e.txs.filter(s=>s.goals.includes(MayanTransactionGoal.Settle)).map(s=>({chain:r,txid:s.txHash})),i=[];e.refundTxHash&&i.push({chain:toWormholeChainName(e.refundChain),txid:e.refundTxHash});const u={};for(const s of possibleVaaTypes){const c=`${s}SignedVaa`;if(c in e&&e[c]!==null){const d=platform.deserialize("Uint8Array",platform.hex.decode(e[c]));u[s]={id:{emitter:d.emitterAddress,sequence:d.sequence,chain:d.emitterChain},attestation:d}}}let a={},p=!1;if("redeem"in u?(a=u.redeem,p=!0):"transfer"in u&&(a=u.transfer,p=!0),e.clientStatus===MayanClientStatus.COMPLETED)return{from:t,to:r,originTxs:n,destinationTxs:o,state:platform.TransferState.DestinationFinalized,attestation:a};if(e.clientStatus===MayanClientStatus.REFUNDED||e.clientStatus===MayanClientStatus.CANCELED)return{from:t,to:r,originTxs:n,refundTxs:i,state:platform.TransferState.Refunded,attestation:u.refund};if(e.clientStatus===MayanClientStatus.INPROGRESS)return p&&o.length>0?{from:t,to:r,originTxs:n,destinationTxs:o,state:platform.TransferState.DestinationInitiated,attestation:a}:{from:t,to:r,originTxs:n,state:platform.TransferState.SourceInitiated};throw new Error(`Unknown Mayan clientStatus ${e.clientStatus}`)}async function getTransactionStatus(e,t){const r=`https://${{Mainnet:"",Testnet:"testnet-",Devnet:""}[e]}explorer-api.mayan.finance/v3/swap/trx/${t.txid}`;try{const n=await platform.axios.get(r);if(n.data.id)return n.data}catch(n){if(!n||typeof n=="object"&&(platform.axios.isAxiosError(n)&&n.response?.status===404||"status"in n&&n.status===404))return null;throw n}return null}class MayanRouteBase extends platform.AutomaticRoute{MAX_SLIPPAGE=1;static NATIVE_GAS_DROPOFF_SUPPORTED=!1;static IS_AUTOMATIC=!0;protocols=[MayanProtocol.WH,MayanProtocol.MCTP,MayanProtocol.FAST_MCTP,MayanProtocol.SWIFT,MayanProtocol.MONO_CHAIN];isTestnetRequest(t){return t.fromChain.network==="Testnet"||t.toChain.network==="Testnet"}normalizeQuoteForTestnet(t){const{hyperCoreParams:r,...n}=t;return n}getDefaultOptions(){return{gasDrop:0,slippageBps:"auto",optimizeFor:"speed"}}static supportedNetworks(){return["Mainnet","Testnet"]}static supportedChains(t){return supportedChains(t)}static isProtocolSupported(t){return supportedChains(t.network).includes(t.chain)}static async supportedDestinationTokens(t,r,n){if(hypercore.isHyperCoreChain(n.chain)){const i=platform.Wormhole.tokenId(n.chain,"native");return i?[i]:[]}return tokenHelpers.getAllTokenIdsForChain(n.chain)}async isAvailable(){return!0}async validate(t,r){try{const n=hypercore.validateHyperCoreTransfer(t,r);return n||(r.options=r.options??this.getDefaultOptions(),{valid:!0,params:{...r,normalizedParams:{slippageBps:r.options.slippageBps}}})}catch(n){return{valid:!1,params:r,error:n}}}toMayanAddress(t){return platform.isNative(t.address)?getNativeContractAddress(t.chain):platform.canonicalAddress(t)}getFeeInBaseUnits(t,r){const{getReferrerBps:n}=this.constructor,o=n?n(t):null;if(!o)return 0n;const i=platform.parse(r,t.source.decimals),u=65535n,a=BigInt(10*o);if(a>u)throw new Error("bps exceeds max u16");const p=platform.getDeciBps(i,a);return platform.units(p)}getQuoteAmountIn64(t,r){const n=t.source.decimals,o=platform.parse(r,n),i=this.getFeeInBaseUnits(t,r);if(i<=0n)return o.amount;const a=platform.units(o)-i;return platform.fromBaseUnits(a,n).amount}async injectReferralInstructionsForSolana(t,r,n,o,i){const{fromChain:u,source:a}=r,p=this.referrerAddress().solana,s=this.getFeeInBaseUnits(r,i);if(!p||!s||u.network!=="Mainnet")return n;const c=[],d=new unsignedTransaction.PublicKey(p);if(platform.isNative(a.id.address))c.push(unsignedTransaction.SystemProgram.transfer({fromPubkey:o,toPubkey:d,lamports:s}));else{const l=new unsignedTransaction.PublicKey(a.id.address.toString()),m=await unsignedTransaction.SolanaPlatform.getTokenProgramId(t,l),f=mint.getAssociatedTokenAddressSync(l,d,!0,m),T=mint.getAssociatedTokenAddressSync(l,o,!0,m);await t.getAccountInfo(f)||c.push(associatedTokenAccount.createAssociatedTokenAccountIdempotentInstruction(o,f,d,l,m)),c.push(createTransferCheckedInstruction(T,l,f,o,s,a.decimals,void 0,m))}return c.push(...n),c}async injectReferralInstructionsForSui(t,r,n,o){const{fromChain:i,source:u}=r,a=this.referrerAddress().sui,p=this.getFeeInBaseUnits(r,o);if(!a||!p||i.network!=="Mainnet")return{};const s=this.getQuoteAmountIn64(r,o),c=new unsignedTransaction.Transaction,d=u.id.address,y=platform.isNative(d);let l;if(y)l=c.gas;else{const T=d.toString(),[g,...b]=await unsignedTransaction.SuiPlatform.getCoins(t,n,T);if(!g)throw new Error(`No coins of type ${T} found for ${n}.`);l=c.object(g.coinObjectId),b.length>0&&c.mergeCoins(l,b.map(h=>c.object(h.coinObjectId)))}const[m,f]=c.splitCoins(l,[p,s]);return c.transferObjects([m],a),{tx:c,remainingAmountCoin:f}}async fetchQuote(t,r){const{fromChain:n,toChain:o}=t;if(this.isTestnetRequest(t)){if(!isTestnetSupportedChain(n.chain))throw new Error(`Chain ${n.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`);if(!isTestnetSupportedChain(o.chain))throw new Error(`Chain ${o.chain} is not supported on testnet. Supported testnet chains: ${supportedChains("Testnet").join(", ")}`)}const i={amountIn64:this.getQuoteAmountIn64(t,r.amount),fromToken:this.toMayanAddress(t.source.id),toToken:this.toMayanAddress(t.destination.id),fromChain:toMayanChainName(n.network,n.chain),toChain:toMayanChainName(o.network,o.chain),...this.getDefaultOptions(),...r.options,slippageBps:"auto",referrer:this.referrerAddress().solana,referrerBps:0},u={swift:this.protocols.includes(MayanProtocol.SWIFT),mctp:this.protocols.includes(MayanProtocol.MCTP),fastMctp:this.protocols.includes(MayanProtocol.FAST_MCTP),monoChain:this.protocols.includes(MayanProtocol.MONO_CHAIN)},a=new URL(this.isTestnetRequest(t)?generateFetchQuoteUrl({...i,fromChain:toMayanChainName(n.network,n.chain),toChain:toMayanChainName(o.network,o.chain)},u):hypercore.generateFetchQuoteUrl(i,u));if(!a)throw new Error("Unable to generate fetch quote URL");a.searchParams.has("fullList")||a.searchParams.append("fullList","true");const p=await platform.axios.get(a.toString());if(p.status!==200)throw new Error(`Unable to fetch quote ${{cause:p}}`);const s=p.data?.quotes?.filter(c=>this.protocols.includes(c.type));if(!(!s||s.length===0))return s.length===1||s.sort((c,d)=>r.options.optimizeFor==="cost"?d.expectedAmountOut===c.expectedAmountOut?c.etaSeconds-d.etaSeconds:d.expectedAmountOut-c.expectedAmountOut:r.options.optimizeFor==="speed"?c.etaSeconds===d.etaSeconds?d.expectedAmountOut-c.expectedAmountOut:c.etaSeconds-d.etaSeconds:0),s[0]}getMinAmount(t,r){try{return platform.parse(platform.denoise(t,r),r)}catch{return null}}async quote(t,r){try{const n=await this.fetchQuote(t,r);if(!n)return{success:!1,error:new platform.UnavailableError(new Error("Couldn't fetch a quote"))};const o={token:{chain:"Solana",address:platform.Wormhole.parseAddress("Solana",platform.usdcContract.get(t.fromChain.network,"Solana"))},amount:platform.parse(platform.denoise(n.clientRelayerFeeSuccess||"0",6),6)},i=parseInt(n.deadline64,10)*1e3,u=i?new Date(i):void 0;return{success:!0,params:r,sourceToken:{token:t.source.id,amount:platform.fromBaseUnits(BigInt(n.effectiveAmountIn64),n.fromToken.decimals)},destinationToken:{token:t.destination.id,amount:platform.parse(platform.denoise(n.expectedAmountOut,n.toToken.decimals),n.toToken.decimals)},relayFee:o,destinationNativeGas:platform.parse(platform.denoise(n.gasDrop,n.toToken.decimals),n.toToken.decimals),eta:n.etaSeconds*1e3,details:n,expires:u}}catch(n){if(platform.axios.isAxiosError(n)){const o=n?.response?.data;if(o?.code==="AMOUNT_TOO_SMALL"){const i=o?.data?.minAmountIn,u=this.getMinAmount(i,t.source.decimals);if(u)return{success:!1,error:new platform.MinAmountError(u)}}if(o?.msg)return{success:!1,error:Error(`${o?.msg} ${{cause:o}}`)}}return{success:!1,error:n}}}async initiate(t,r,n,o){try{const i=r.address(),u=platform.canonicalAddress(o),a=[],p=await t.fromChain.getRpc(),s=this.getFeeInBaseUnits(t,n.params.amount),c=await hypercore.maybeGetHyperCorePermitSignature(t,r,n,u);if(t.fromChain.chain==="Solana"){const d={allowSwapperOffCurve:!0,usdcPermitSignature:c},{instructions:y,signers:l,lookupTables:m}=await(this.isTestnetRequest(t)?createSwapFromSolanaInstructions(this.normalizeQuoteForTestnet(n.details),i,u,null,p,d):hypercore.createSwapFromSolanaInstructions(n.details,i,u,this.referrerAddress(),p,d)),f=new unsignedTransaction.PublicKey(i),T=unsignedTransaction.MessageV0.compile({instructions:await this.injectReferralInstructionsForSolana(p,t,y,f,n.params.amount),payerKey:new unsignedTransaction.PublicKey(i),recentBlockhash:"",addressLookupTableAccounts:m}),g=[new unsignedTransaction.SolanaUnsignedTransaction({transaction:new unsignedTransaction.VersionedTransaction(T),signers:l},t.fromChain.network,t.fromChain.chain,"Execute Swap")];if(platform.isSignAndSendSigner(r)){const b=await r.signAndSend(g);a.push(...b.map(h=>({chain:t.fromChain.chain,txid:h})))}else if(platform.isSignOnlySigner(r)){const b=await r.sign(g),h=await unsignedTransaction.SolanaPlatform.sendWait(t.fromChain.chain,p,b);a.push(...h.map(A=>({chain:t.fromChain.chain,txid:A})))}}else if(t.fromChain.chain==="Sui"){const{tx:d,remainingAmountCoin:y}=await this.injectReferralInstructionsForSui(p,t,i,n.params.amount),f={...d&&{builtTransaction:d,inputCoin:{result:y}},...c&&{usdcPermitSignature:c}},T=await(this.isTestnetRequest(t)?createSwapFromSuiMoveCalls(this.normalizeQuoteForTestnet(n.details),i,u,null,void 0,p):hypercore.createSwapFromSuiMoveCalls(n.details,i,u,this.referrerAddress(),void 0,p,f)),g=[new unsignedTransaction.SuiUnsignedTransaction(T,t.fromChain.network,t.fromChain.chain,"Execute Swap")];if(platform.isSignAndSendSigner(r)){const b=await r.signAndSend(g);a.push(...b.map(h=>({chain:t.fromChain.chain,txid:h})))}else if(platform.isSignOnlySigner(r)){const b=await r.sign(g),h=await unsignedTransaction.SuiPlatform.sendWait(t.fromChain.chain,p,b);a.push(...h.map(A=>({chain:t.fromChain.chain,txid:A})))}}else{const d=[],y=platform.networkChainToNativeChainId.get(t.fromChain.network,t.fromChain.chain),l=this.referrerAddress(),m=this.toMayanAddress(t.source.id),f=platform.isNative(t.source.id.address),T=getEvmContractAddress(t.fromChain.network,s,l.evm),g=platform.units(platform.parse(n.params.amount,t.source.decimals));if(!f){const I=platform.EvmPlatform.getTokenImplementation(p,m);if(await I.allowance(i,T)<g){const M=await I.approve.populateTransaction(T,g);d.push(new platform.EvmUnsignedTransaction({from:i,chainId:y,...M},t.fromChain.network,t.fromChain.chain,"Approve Allowance"))}}const b=n.details;if(!b)throw new Error("Missing Mayan quote details");const h=c!==void 0?{usdcPermitSignature:c}:void 0,A=this.isTestnetRequest(t)?getSwapFromEvmTxPayload(this.normalizeQuoteForTestnet(b),i,u,null,i,Number(y),void 0,void 0):await hypercore.getSwapFromEvmTxPayload(b,i,u,this.referrerAddress(),i,Number(y),void 0,void 0,h),C=createTransactionRequest(t.fromChain.network,A,g,s,i,m,f,l.evm);if(d.push(new platform.EvmUnsignedTransaction(C,t.fromChain.network,t.fromChain.chain,"Execute Swap")),platform.isSignAndSendSigner(r)){const I=await r.signAndSend(d);a.push(...I.map(w=>({chain:t.fromChain.chain,txid:w})))}else if(platform.isSignOnlySigner(r)){const I=await r.sign(d),w=await platform.EvmPlatform.sendWait(t.fromChain.chain,p,I);a.push(...w.map(M=>({chain:t.fromChain.chain,txid:M})))}}return{from:t.fromChain.chain,to:t.toChain.chain,state:platform.TransferState.SourceInitiated,originTxs:a}}catch(i){throw console.error(i),i}}async*track(t,r){if(platform.isCompleted(t)||platform.isRedeemed(t)||platform.isRefunded(t))return t;let n=r||3600*1e3;for(;n>0;){const o=Date.now();if(platform.isSourceInitiated(t)||platform.isSourceFinalized(t)||platform.isAttested(t)){const i=await getTransactionStatus(this.wh.network,t.originTxs[t.originTxs.length-1]);if(i&&(t=txStatusToReceipt(i),yield{...t,txstatus:i},platform.isCompleted(t)||platform.isRedeemed(t)||platform.isRefunded(t)))return t}else throw new Error("Transfer must have been initiated");await new Promise(i=>setTimeout(i,3e3)),n-=Date.now()-o}return t}transferUrl(t){return`https://explorer.mayan.finance/swap/${t}`}referrerAddress(){const{referrers:t}=this.constructor;return{solana:t?.Solana,evm:t?.Ethereum,sui:t?.Sui}}}class MayanRoute extends MayanRouteBase{static meta={name:"MayanSwap",provider:"Mayan"};protocols=[MayanProtocol.WH,MayanProtocol.MCTP,MayanProtocol.FAST_MCTP,MayanProtocol.SWIFT,MayanProtocol.MONO_CHAIN]}class MayanRouteSWIFT extends MayanRouteBase{static meta={name:"MayanSwapSWIFT",provider:"Mayan Swift"};protocols=[MayanProtocol.SWIFT]}class MayanRouteMCTP extends MayanRouteBase{static meta={name:"MayanSwapMCTP",provider:"Mayan MCTP"};protocols=[MayanProtocol.MCTP]}class MayanRouteWH extends MayanRouteBase{static meta={name:"MayanSwapWH",provider:"Mayan WH"};protocols=[MayanProtocol.WH]}class MayanRouteMONOCHAIN extends MayanRouteBase{static meta={name:"MayanSwapMONOCHAIN",provider:"Mayan Mono Chain"};protocols=[MayanProtocol.MONO_CHAIN];static supportsSameChainSwaps(t,r){const n=platform.chainToPlatform(r);return t==="Mainnet"&&(n==="Solana"||n==="Evm")}}class MayanRouteFastMCTP extends MayanRouteBase{static meta={name:"MayanSwapFastMCTP",provider:"Mayan MCTP"};protocols=[MayanProtocol.FAST_MCTP]}exports.MayanRoute=MayanRoute;exports.MayanRouteFastMCTP=MayanRouteFastMCTP;exports.MayanRouteMCTP=MayanRouteMCTP;exports.MayanRouteMONOCHAIN=MayanRouteMONOCHAIN;exports.MayanRouteSWIFT=MayanRouteSWIFT;exports.MayanRouteWH=MayanRouteWH;