@wormhole-foundation/wormhole-connect 4.0.0-beta.0-development → 4.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 (205) hide show
  1. package/dist/assets/{aptos-CIKjhZ5R.js → aptos-CaGPw7HM.js} +2 -2
  2. package/dist/assets/create-54a95t1x.js +1 -0
  3. package/dist/assets/{evm-Ky_mCHhS.js → evm-Bv0RsFka.js} +2 -2
  4. package/dist/assets/{index-DW7sWcdW.js → index-B5JfIVKE.js} +1 -1
  5. package/dist/assets/{index-DHLr3HmO.js → index-BCD-VOiF.js} +1 -1
  6. package/dist/assets/index-BwhO0jGm.js +1 -0
  7. package/dist/assets/{index-DpM61P6H.js → index-CMULoTsT.js} +1 -1
  8. package/dist/assets/{index-DZpeOp3V.js → index-CO4HXUmy.js} +1 -1
  9. package/dist/assets/{index-Bg3NWSHL.js → index-COw2RtBx.js} +1 -1
  10. package/dist/assets/{index-DRk-Cj0P.js → index-ClrVAZUa.js} +1 -1
  11. package/dist/assets/{index-D7RgFG0F.js → index-CzQeh-hT.js} +1 -1
  12. package/dist/assets/{index-Csghphw2.js → index-DC4mZtDw.js} +1 -1
  13. package/dist/assets/{index-Cqs_fFht.js → index-DI-xN_q3.js} +1 -1
  14. package/dist/assets/{index-DVbfoP0w.js → index-DRsHBjoG.js} +1 -1
  15. package/dist/assets/{index-CdAFGcxx.js → index-DXcQbQ8r.js} +1 -1
  16. package/dist/assets/{index-DJ52h-dV.js → index-DxHhcWFS.js} +1 -1
  17. package/dist/assets/{index-g9iLhWvp.js → index-GKTf0CV7.js} +1 -1
  18. package/dist/assets/{index-DuR9wYhp.js → index-aoYIFErC.js} +1 -1
  19. package/dist/assets/{index-DfNgilHG.js → index-jixjwN_L.js} +1 -1
  20. package/dist/assets/{solana-jYIeIu4B.js → solana-DpD0VkQS.js} +2 -2
  21. package/dist/assets/{sui-B96bqBVv.js → sui-7K04yY2U.js} +2 -2
  22. package/dist/main.js +75 -75
  23. package/dist/src/components/TokenBalance.d.ts.map +1 -1
  24. package/dist/src/config/mainnet/tokens.d.ts.map +1 -1
  25. package/dist/src/config/testnet/tokens.d.ts.map +1 -1
  26. package/dist/src/contexts/wallet/WalletProvider.d.ts.map +1 -1
  27. package/dist/src/hooks/useFetchSupportedRoutes.d.ts.map +1 -1
  28. package/dist/src/hooks/useTokenListWithSearch.d.ts +1 -4
  29. package/dist/src/hooks/useTokenListWithSearch.d.ts.map +1 -1
  30. package/dist/src/routes/operator.d.ts.map +1 -1
  31. package/dist/src/routes/sdkv2/route.d.ts +2 -2
  32. package/dist/src/routes/sdkv2/route.d.ts.map +1 -1
  33. package/dist/src/telemetry/types.d.ts +1 -0
  34. package/dist/src/telemetry/types.d.ts.map +1 -1
  35. package/dist/src/utils/sdkv2.d.ts.map +1 -1
  36. package/dist/src/utils/wrappedNativeTokens.d.ts +12 -0
  37. package/dist/src/utils/wrappedNativeTokens.d.ts.map +1 -0
  38. package/dist/src/views/Terms.d.ts.map +1 -1
  39. package/dist/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  40. package/dist/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
  41. package/dist/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  42. package/dist/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts +2 -4
  43. package/dist/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts.map +1 -1
  44. package/lib/{account-D0Q4K1CI.js → account-24z6tDMM.js} +1 -1
  45. package/lib/{account-BdDruAAr.mjs → account-BcnWVXmg.mjs} +1 -1
  46. package/lib/{address-fSXS9iww.mjs → address-BX2fIOro.mjs} +1 -1
  47. package/lib/{address-BO6rj6uK.js → address-Bc-5yO4D.js} +1 -1
  48. package/lib/{aptos-BnKScTtI.mjs → aptos-DO_Sexq-.mjs} +7 -7
  49. package/lib/{aptos-B3C7cnvM.js → aptos-DffuIzI0.js} +2 -2
  50. package/lib/{aptos-B1VSCmD9.mjs → aptos-Dol0ReEK.mjs} +4 -4
  51. package/lib/{aptos-DG7QN21P.js → aptos-eGdJuKke.js} +1 -1
  52. package/lib/{basic-CN2jAqvS.js → basic-B3aoOwRb.js} +1 -1
  53. package/lib/{basic-BRYkcAmD.mjs → basic-BI1HDLIO.mjs} +4 -4
  54. package/lib/{basic-Cw13RoYq.mjs → basic-C6oQe5cg.mjs} +4 -4
  55. package/lib/{basic-DufHOLGA.js → basic-pJmrDH53.js} +1 -1
  56. package/lib/{blake2b-CT6EW399.mjs → blake2b-CVpPk5O9.mjs} +1 -1
  57. package/lib/{blake2b-B_Q_lTGN.js → blake2b-DXExLbRg.js} +1 -1
  58. package/lib/{browser-ponyfill-CnfcLhK-.mjs → browser-ponyfill-DeOApqpH.mjs} +1 -1
  59. package/lib/{browser-ponyfill-DbGoEOBo.js → browser-ponyfill-VhIu9z_I.js} +1 -1
  60. package/lib/{chain-BCKkYvDb.js → chain-BxNUWKZE.js} +1 -1
  61. package/lib/{chain-_dXKRkCE.mjs → chain-CvZsIsLh.mjs} +1 -1
  62. package/lib/{chunk-KJH4KKG6-RA0hChr8.mjs → chunk-KJH4KKG6-BgebMATq.mjs} +2 -2
  63. package/lib/{chunk-KJH4KKG6-BXBLZwfY.js → chunk-KJH4KKG6-DNlN4p21.js} +1 -1
  64. package/lib/{constants-QsbOfMbk.mjs → constants-BPs5UFxq.mjs} +1 -1
  65. package/lib/constants-BqHCu7gS.js +1 -0
  66. package/lib/{contract-MkLF5rqi.js → contract-CTycrpaK.js} +1 -1
  67. package/lib/{contract-C_4H8x77.mjs → contract-KYuIk_vR.mjs} +1 -1
  68. package/lib/{core-Cpb3gtg_.js → core-BN_eDiBJ.js} +3 -3
  69. package/lib/{core-ntLR7o2S.mjs → core-BZzw8R4f.mjs} +6 -6
  70. package/lib/{create-naslyPfU.mjs → create-BvzkkBPW.mjs} +1 -1
  71. package/lib/{create-CfgTxAS-.js → create-CGZYy2vu.js} +1 -1
  72. package/lib/{evm-aSG_vFbw.js → evm-BdbjSrMR.js} +2 -2
  73. package/lib/{evm-B20n3mf_.mjs → evm-CUhPokEi.mjs} +7 -7
  74. package/lib/{evm-C6xp3v8Z.mjs → evm-IC5cigOX.mjs} +9 -9
  75. package/lib/{evm-B3G2Vkzg.js → evm-bdCQPjof.js} +2 -2
  76. package/lib/executor.js +1 -1
  77. package/lib/executor.mjs +815 -572
  78. package/lib/hosted.js +1 -1
  79. package/lib/hosted.mjs +1 -1
  80. package/lib/{index-B9ybSY9R.mjs → index-1boJ8yzF.mjs} +5 -5
  81. package/lib/{index-BJcbyvof.js → index-943_uCEO.js} +1 -1
  82. package/lib/{index-Dq7WWqFe.js → index-B7HBnPLP.js} +1 -1
  83. package/lib/{index-DQX74QAE.js → index-BFBwRlid.js} +1 -1
  84. package/lib/{index-C6XNAQ4w.js → index-BZZZ8OeS.js} +1 -1
  85. package/lib/{index-CU73EUQW.js → index-BeBO_sCU.js} +1 -1
  86. package/lib/{index-BTUx12aa.js → index-Bhwzpq1T.js} +1 -1
  87. package/lib/{index-MsaML_Ju.mjs → index-Bicx897u.mjs} +2 -2
  88. package/lib/{index-Dajw3Alx.mjs → index-BlWksu-f.mjs} +1 -1
  89. package/lib/{index-QlIJYJce.js → index-Blvg4PFN.js} +66 -66
  90. package/lib/{index-DS8bl8fA.mjs → index-Bn0hkKKz.mjs} +4 -4
  91. package/lib/{index-tztRp3yJ.js → index-BnMkdrhM.js} +1 -1
  92. package/lib/{index-BojkMsXD.js → index-BoKTcLq-.js} +1 -1
  93. package/lib/{index-BRYq_Nt2.mjs → index-Bp4ojxz6.mjs} +4 -4
  94. package/lib/{index-Cnznwcdb.js → index-BqabgGIh.js} +1 -1
  95. package/lib/{index-DxYgNWMY.mjs → index-BtEjOWoP.mjs} +3 -3
  96. package/lib/{index-Bhd_YhUf.js → index-C9Bk-rKp.js} +1 -1
  97. package/lib/{index-YAL4zolc.js → index-C9uGqcwH.js} +1 -1
  98. package/lib/{index-BQvEIlB2.mjs → index-CBGUPQXa.mjs} +3 -3
  99. package/lib/{index-IHxtA-NL.js → index-CGpn3INM.js} +1 -1
  100. package/lib/{index-DSmKiYkD.mjs → index-CQ0RB2r3.mjs} +5 -5
  101. package/lib/{index-7_BfcP8x.mjs → index-CR3DmYPt.mjs} +2105 -2021
  102. package/lib/{index-BRyW-hBN.mjs → index-CTpINVAG.mjs} +2 -2
  103. package/lib/{index-C3LC73WN.js → index-CbFvm_Mr.js} +1 -1
  104. package/lib/{index-bNUantLb.js → index-CjjP3Qp5.js} +1 -1
  105. package/lib/{index-DqzqJgVc.mjs → index-CkvxfaqA.mjs} +3 -3
  106. package/lib/{index-DfDB5FLw.js → index-ClMpLrxa.js} +1 -1
  107. package/lib/{index-B7VNYedX.mjs → index-CtU_hkYp.mjs} +4 -4
  108. package/lib/index-Cv9hvmqc.js +1 -0
  109. package/lib/{index-DMOY218i.js → index-CzRVzbTC.js} +1 -1
  110. package/lib/{index-B4S4sz6p.mjs → index-Czxl_5Tr.mjs} +5 -5
  111. package/lib/{index-Cb9lswnP.js → index-D61fXWwH.js} +8 -8
  112. package/lib/{index-D0XQIiQn.js → index-D6qJDbzm.js} +1 -1
  113. package/lib/{index-C3L-xKvN.mjs → index-DJs1h8_N.mjs} +4839 -4850
  114. package/lib/{index-BD0gcmCp.mjs → index-DPpi4Don.mjs} +5 -5
  115. package/lib/{index-D5ENAOm3.js → index-DmsirrTI.js} +1 -1
  116. package/lib/{index-DnO0ZdKy.mjs → index-DpN0dULN.mjs} +1 -1
  117. package/lib/{index-BNuKzxGJ.js → index-DydXCN0v.js} +1 -1
  118. package/lib/{index-D-H8WyKb.mjs → index-N8cPdMnf.mjs} +1 -1
  119. package/lib/{index-CSMunRpZ.mjs → index-NKV6j8zE.mjs} +3 -3
  120. package/lib/{index-BIYx5IBr.mjs → index-OlMuNft9.mjs} +3 -3
  121. package/lib/{index-Bz7ogqhR.mjs → index-UOvy4usi.mjs} +1 -1
  122. package/lib/{index-D1y-l93C.js → index-UbeUI3Ir.js} +1 -1
  123. package/lib/{index-BZYEbYGY.mjs → index-ZGgSxaDf.mjs} +3 -3
  124. package/lib/{index-DFpSbD7R.mjs → index-_e8uUnEK.mjs} +5 -5
  125. package/lib/{index-vhQ5Q8ov.mjs → index-dU3yVyBt.mjs} +52 -97
  126. package/lib/{index.es-C476iHvN.mjs → index.es-B5hLka3L.mjs} +4 -4
  127. package/lib/{index.es-CkGpObng.js → index.es-CSmeunOk.js} +3 -3
  128. package/lib/{index.es-CU6nhwJO.js → index.es-E2DQPkYK.js} +1 -1
  129. package/lib/{index.es-CtiAoQ78.mjs → index.es-Vlpe_OYB.mjs} +3 -3
  130. package/lib/index.js +1 -1
  131. package/lib/index.mjs +5 -5
  132. package/lib/mayan.js +1 -1
  133. package/lib/mayan.mjs +11 -11
  134. package/lib/{mint-zy6P38iu.js → mint-B4t2SvV6.js} +1 -1
  135. package/lib/{mint-DyoU9X22.mjs → mint-BGuU5y5m.mjs} +1 -1
  136. package/lib/ntt.js +1 -1
  137. package/lib/ntt.mjs +14 -12
  138. package/lib/{platform-x3ZBJ0YM.js → platform-Bkbg7A9d.js} +1 -1
  139. package/lib/{platform-BqpAMtgx.mjs → platform-C5gJAqtZ.mjs} +3 -3
  140. package/lib/{platform-BhspUaMJ.js → platform-C6QB7aIN.js} +1 -1
  141. package/lib/{platform-DQfpyXSV.mjs → platform-DBNvSsue.mjs} +4 -4
  142. package/lib/{platform-BHAZvZ_O.mjs → platform-DtB8gGMl.mjs} +4 -4
  143. package/lib/{platform-4nANkJAM.js → platform-qdbxkhTI.js} +1 -1
  144. package/lib/{provider-jsonrpc-DIXcAw4Q.mjs → provider-jsonrpc-BIIDy-Aw.mjs} +2 -2
  145. package/lib/{provider-jsonrpc-BCKoIijx.js → provider-jsonrpc-DHzam3ud.js} +1 -1
  146. package/lib/{secp256k1-CaaRyr2C.mjs → secp256k1-B-wUOgWh.mjs} +1 -1
  147. package/lib/{secp256k1-CFt7TfEF.js → secp256k1-BAjH_sHz.js} +1 -1
  148. package/lib/{secp256k1-UnRv5Suy.mjs → secp256k1-CpJIg24C.mjs} +1 -1
  149. package/lib/{secp256k1-C60XBS-e.js → secp256k1-Ds1M1Mtb.js} +1 -1
  150. package/lib/{secp256k1-BIiWvuxu.js → secp256k1-PbbUc2aU.js} +1 -1
  151. package/lib/{secp256k1-BWFGSbjt.mjs → secp256k1-YWWAmpaN.mjs} +1 -1
  152. package/lib/{signer-DhO2iGae.mjs → signer-BH3gAHuj.mjs} +2 -2
  153. package/lib/{signer-BFY1Ytf6.js → signer-MBixef_P.js} +1 -1
  154. package/lib/{solana-CQk4ocg8.mjs → solana-Bh5bkUXQ.mjs} +11 -11
  155. package/lib/solana-C8xK8qJY.mjs +18 -0
  156. package/lib/solana-CRSliekb.js +1 -0
  157. package/lib/{solana-Cp49k9--.js → solana-sjjxa4_B.js} +4 -4
  158. package/lib/{solanaEmbed.esm-Cwa6cl_R.js → solanaEmbed.esm-CDt8Bk0U.js} +1 -1
  159. package/lib/{solanaEmbed.esm-DBOqO9Ii.mjs → solanaEmbed.esm-DGgxfQDB.mjs} +3 -3
  160. package/lib/src/components/TokenBalance.d.ts.map +1 -1
  161. package/lib/src/config/mainnet/tokens.d.ts.map +1 -1
  162. package/lib/src/config/testnet/tokens.d.ts.map +1 -1
  163. package/lib/src/contexts/wallet/WalletProvider.d.ts.map +1 -1
  164. package/lib/src/hooks/useFetchSupportedRoutes.d.ts.map +1 -1
  165. package/lib/src/hooks/useTokenListWithSearch.d.ts +1 -4
  166. package/lib/src/hooks/useTokenListWithSearch.d.ts.map +1 -1
  167. package/lib/src/routes/operator.d.ts.map +1 -1
  168. package/lib/src/routes/sdkv2/route.d.ts +2 -2
  169. package/lib/src/routes/sdkv2/route.d.ts.map +1 -1
  170. package/lib/src/telemetry/types.d.ts +1 -0
  171. package/lib/src/telemetry/types.d.ts.map +1 -1
  172. package/lib/src/utils/sdkv2.d.ts.map +1 -1
  173. package/lib/src/utils/wrappedNativeTokens.d.ts +12 -0
  174. package/lib/src/utils/wrappedNativeTokens.d.ts.map +1 -0
  175. package/lib/src/views/Terms.d.ts.map +1 -1
  176. package/lib/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  177. package/lib/src/views/v3/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
  178. package/lib/src/views/v3/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  179. package/lib/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts +2 -4
  180. package/lib/src/views/v3/Bridge/AssetPicker/TokenSectionHeader.d.ts.map +1 -1
  181. package/lib/{sui-9gsoM56W.js → sui-Do5RtJvP.js} +1 -1
  182. package/lib/{sui-Cr98JBgS.js → sui-QcDjGW68.js} +1 -1
  183. package/lib/{sui-B4RvzEXx.mjs → sui-euceXgYf.mjs} +7 -7
  184. package/lib/{sui-C2a1eehP.mjs → sui-tKXg9e-c.mjs} +4 -4
  185. package/lib/{tokens-BbFKf6Hv.mjs → tokens-CNITO7DN.mjs} +3 -3
  186. package/lib/{tokens-LVHsSbYG.js → tokens-DhBcLH6x.js} +1 -1
  187. package/lib/{transfer-DZ-wNocj.js → transfer-BinEH6ml.js} +1 -1
  188. package/lib/{transfer-BV1ou1GP.mjs → transfer-DTvv5m_5.mjs} +2 -2
  189. package/lib/{units-BqUlbZ46.mjs → units-CVEv4txp.mjs} +2 -2
  190. package/lib/{units-D-oRQjOa.js → units-DtldPRXy.js} +1 -1
  191. package/lib/{unsignedTransaction-BmxD6VsY.mjs → unsignedTransaction-CVE7GUdC.mjs} +3 -3
  192. package/lib/{unsignedTransaction-CiPKh85X.js → unsignedTransaction-DL3WyIkF.js} +1 -1
  193. package/lib/{w3m-modal-CoTG8Zu4.js → w3m-modal-BUP-c20y.js} +1 -1
  194. package/lib/{w3m-modal-D4-nrnEK.mjs → w3m-modal-Bj2tG9wb.mjs} +2 -2
  195. package/lib/{w3m-modal-xqVExHU-.js → w3m-modal-CGeDlu49.js} +1 -1
  196. package/lib/{w3m-modal-3qLkbPfi.mjs → w3m-modal-D78VqEEI.mjs} +2 -2
  197. package/lib/{web3-C1wK6wIV.js → web3-BKaP497Y.js} +1 -1
  198. package/lib/{web3-BkEb7AgB.mjs → web3-BifDBsFp.mjs} +8 -4
  199. package/package.json +49 -44
  200. package/dist/assets/create-q7V6muDT.js +0 -1
  201. package/dist/assets/index-B59bCuJJ.js +0 -1
  202. package/lib/constants-BR_zyzqY.js +0 -1
  203. package/lib/index-CXsUtRJQ.js +0 -1
  204. package/lib/solana-Dv_mUYcl.mjs +0 -18
  205. package/lib/solana-g3YsP966.js +0 -1
@@ -1 +1 @@
1
- import{P as g,k as u,dt as te,du as Ue,T as Te,dv as Ce,dl as h,bm as ke,cY as x,dq as E,dr as F,bh as K,dm as ie,dw as _e,dx as Pe,K as ne,ae as Y,d0 as ve,d4 as Be,bi as ze}from"../main.js";import{d as m,P as Ke,c as qe}from"./index-g9iLhWvp.js";import{b as Fe,e as Ve}from"./signer-Dl8_VMmx.js";import{c as De}from"./create-q7V6muDT.js";const re=r=>typeof r=="string"?u.from(r):r;function S(r,e){return g.findProgramAddressSync(Array.isArray(r)?r.map(re):[re(r)],new g(e))[0]}function pt(r,e){return{pubkey:new g(r),isWritable:!0,isSigner:e}}function yt(r,e){return{pubkey:new g(r),isWritable:!1,isSigner:e}}function B(r){if(r===null)throw Error("account info is null");return r.data}const oe=new g("BPFLoaderUpgradeab1e11111111111111111111111");function Oe(r){return S([new g(r).toBuffer()],oe)}class Ge extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>M(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?M(r,s.type):M(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return M(r,e.type.value)}}function M(r,e){switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+M(r,e.option);if("coption"in e)return 4+M(r,e.coption);if("defined"in e){const t=r.types?.filter(s=>s.name===e.defined)??[];if(t.length!==1)throw new Ge(`Type not found: ${JSON.stringify(e)}`);let n=t[0];return ce(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return M(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ne(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ue=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...te},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...te},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ue(ue,r)}function L(r,e,t,n){const s=typeof e=="string"?u.from(e,"hex"):u.from(e);if(s.length!=32)throw Error("address.length != 32");const a=u.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),S([s,(()=>{const i=u.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function Re(r,e,t,n,s,a){return r.getAccountInfo(L(e,t,n,s),a).then(i=>!!B(i)[0])}function p(r){return S([u.from("Bridge")],r)}async function ge(r,e,t){return r.getAccountInfo(p(e),t).then(n=>D.deserialize(B(n)))}class V{guardianSetExpirationTime;fee;constructor(e,t){this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new V(t,n)}}class D{guardianSetIndex;lastLamports;config;constructor(e,t,n){this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=V.deserialize(e.subarray(12));return new D(t,n,s)}}function O(r,e){return S([u.from("Sequence"),new g(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(O(e,t),n).then(s=>G.deserialize(B(s)))}class G{sequence;bump;emitterType;constructor(e,t,n){this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new G(s,t,n)}value(){return this.sequence}}function j(r){return S([u.from("emitter")],r)}function W(r,e){const t=j(r);return{emitter:t,sequence:O(t,e)}}async function $e(r,e,t,n){return me(r,j(e),t,n)}function U(r){return S([u.from("fee_collector")],r)}const se=65,P=20;function Ye(r,e,t){return new Te({keys:[],programId:Ce.programId,data:je.serialize(r,e,t)})}class je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,c=se+P,o=i+s*c,f=32,d=u.alloc(o+f);d.writeUInt8(s,0),d.write(n.toString("hex"),o,"hex");for(let l=0;l<s;++l){const w=e.at(l);if(w?.length!=se)throw Error(`signatures[${l}].length != 65`);const T=t.at(l);if(T?.length!=P)throw Error(`keys[${l}].length != 20`);const C=i+c*l,k=C+65;d.writeUInt16LE(C,1+l*a),d.writeUInt8(0,3+l*a),d.writeUInt16LE(k,4+l*a),d.writeUInt8(0,6+l*a),d.writeUInt16LE(o,7+l*a),d.writeUInt16LE(f,9+l*a),d.writeUInt8(0,10+l*a),d.write(w.toString("hex"),C,"hex"),d.write(T.toString("hex"),k,"hex")}return d}}function b(r,e){return S([u.from("GuardianSet"),(()=>{const t=u.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function H(r,e,t,n){return r.getAccountInfo(b(e,t),n).then(s=>N.deserialize(B(s)))}class N{index;keys;creationTime;expirationTime;constructor(e,t,n,s){this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),c=[];for(let o=0;o<n;++o){const f=8+o*P;c.push(e.subarray(f,f+P))}return new N(t,c,a,i)}}function I(r,e){return S([u.from("PostedVAA"),e],r)}async function We(r,e,t){return r.getAccountInfo(new g(e),t).then(n=>R.deserialize(B(n)))}class R{signatures;hash;guardianSetIndex;constructor(e,t,n){this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(c=>c!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new R(n,a,i)}}function fe(r){return S([u.from("upgrade")],r)}function le(r,e,t){return h.transfer({fromPubkey:new g(e),toPubkey:U(r),lamports:t})}class He{idl;constructor(e){this.idl=e}async encode(e,t){throw new Error(`Invalid account name: ${e}`)}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){throw new Error(`Invalid account name: ${e}`)}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Je{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class A{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return m.bool(n);case"u8":return m.u8(n);case"i8":return m.i8(n);case"u16":return m.u16(n);case"i16":return m.i16(n);case"u32":return m.u32(n);case"i32":return m.i32(n);case"f32":return m.f32(n);case"u64":return m.u64(n);case"i64":return m.i64(n);case"f64":return m.f64(n);case"u128":return m.u128(n);case"i128":return m.i128(n);case"u256":return m.u256(n);case"i256":return m.i256(n);case"bytes":return m.vecU8(n);case"string":return m.str(n);case"publicKey":return m.publicKey(n);default:{if("vec"in e.type)return m.vec(A.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return m.option(A.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=A.fieldLayout({name:void 0,type:s},t);return m.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class J{ixLayout;constructor(e){this.ixLayout=J.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(c=>A.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,m.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(c=>A.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,m.struct(a,i)]}));return new Map(n)}encode(e,t){const n=u.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),c=n.slice(0,i);return Qe(q[Ne(s)],c)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?u.from(e,"hex"):ke.decode(e));let n=u.from(e.slice(0,1)).readInt8(),s=u.from(e.slice(1)),a=_(q[n]??"");return this.ixLayout.get(a)?{data:this.ixLayout.get(a)?.decode(s),name:a}:null}}var q;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(q||(q={}));function Qe(r,e){const t=u.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class Xe{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class Ze{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class et{instruction;accounts;state;events;types;constructor(e){this.instruction=new J(e),this.accounts=new He(e),this.state=new Xe(e),this.events=new Je(e),this.types=new Ze(e)}}const Q={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function pe(r,e){return new Ke(Q,new g(r),e===void 0?{connection:null}:e,ye())}function y(r,e){return pe(r,qe(e))}function ye(){return new et(Q)}function tt(r,e,t,n){const s=y(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:he(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function he(r,e,t){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),systemProgram:h.programId}}function nt(r,e,t,n,s){const a=y(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:Se(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t,n){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(n.hash)),claim:L(r,n.emitterAddress.toString(),x(n.emitterChain),n.sequence),feeCollector:U(r),recipient:new g(t),rent:E,systemProgram:h.programId}}function rt(r,e,t,n){const s=y(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:we(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),guardianSetOld:b(r,t.guardianSet),guardianSetNew:b(r,t.guardianSet+1),systemProgram:h.programId}}function st(r,e,t,n){const s=y(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),upgradeAuthority:fe(r),spill:new g(n===void 0?e:n),implementation:new K(s).unwrap(),programData:Oe(r),wormholeProgram:new g(r),rent:E,clock:F,bpfLoaderUpgradeable:oe,systemProgram:h.programId}}function at(r,e,t,n,s,a){const i=y(e,r).methods.initialize(n,new ie(s.toString()),[...a.map(c=>[...new Uint8Array(c)])]);return i._ixFn(...i._args,{accounts:be(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e){return{bridge:p(r),guardianSet:b(r,0),feeCollector:U(r),payer:new g(e),clock:F,rent:E,systemProgram:h.programId}}function Ie(r,e,t,n,s,a,i){const c=y(e,r).methods.postMessage(a,u.from(s),i);return c._ixFn(...c._args,{accounts:X(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function X(r,e,t,n){let s;return n?{emitter:n,sequence:s}=W(n,r):(n=e,s=O(n,r)),{bridge:p(r),message:new g(t),emitter:new g(n),sequence:s,payer:new g(e),feeCollector:U(r),clock:F,rent:E,systemProgram:h.programId}}function Ae(r,e,t,n,s){const a=y(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,x(n.emitterChain),[...n.emitterAddress.toUint8Array()],new ie(n.sequence.toString()),n.consistencyLevel,u.from(_e(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:xe(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function xe(r,e,t,n){return{guardianSet:b(r,n.guardianSet),bridge:p(r),signatureSet:new g(t),vaa:I(r,u.from(n.hash)),payer:new g(e),clock:F,rent:E,systemProgram:h.programId}}const it=19;async function Ee(r,e,t,n,s,a){const i=n.guardianSet,c=await H(r,e,i,a),o=n.signatures,f=c.keys,d=7,l=[];for(let w=0;w<Math.ceil(o.length/d);++w){const T=w*d,C=Math.min(o.length,(w+1)*d),k=new Array(it).fill(-1),Z=[],ee=[];for(let z=0;z<C-T;++z){const $=o.at(z+T);Z.push(u.from($.signature.encode())),ee.push(f.at($.guardianIndex)),k[$.guardianIndex]=z}l.push(Ye(Z,ee,u.from(n.hash))),l.push(ot(r,e,t,n,s,k))}return l}function ot(r,e,t,n,s,a){const i=y(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new g(e),guardianSet:b(r,n.guardianSet),signatureSet:new g(t),instructions:Pe,rent:E,systemProgram:h.programId}}function ct(r,e){const{emitter:t,sequence:n}=W(r,e);return{wormholeBridge:p(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:U(e)}}function ut(r,e,t,n){const s=X(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const dt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:V,BridgeData:D,GuardianSetData:N,SequenceTracker:G,SignatureSetData:R,coder:ye,createBridgeFeeTransferInstruction:le,createInitializeInstruction:at,createPostMessageInstruction:Ie,createPostVaaInstruction:Ae,createReadOnlyWormholeProgramInterface:y,createSetFeesInstruction:tt,createTransferFeesInstruction:nt,createUpgradeContractInstruction:st,createUpgradeGuardianSetInstruction:rt,createVerifySignaturesInstructions:Ee,createWormholeProgramInterface:pe,deriveClaimKey:L,deriveEmitterSequenceKey:O,deriveFeeCollectorKey:U,deriveGuardianSetKey:b,derivePostedVaaKey:I,deriveUpgradeAuthorityKey:fe,deriveWormholeBridgeDataKey:p,deriveWormholeEmitterKey:j,getClaim:Re,getEmitterKeys:W,getGuardianSet:H,getInitializeAccounts:be,getPostMessageAccounts:X,getPostMessageCpiAccounts:ut,getPostVaaAccounts:xe,getProgramSequenceTracker:$e,getSequenceTracker:me,getSetFeesAccounts:he,getSignatureSetData:We,getTransferFeesAccounts:Se,getUpgradeContractAccounts:Me,getUpgradeGuardianSetAccounts:we,getVerifySignatureAccounts:Le,getWormholeBridgeData:ge,getWormholeDerivedAccounts:ct},Symbol.toStringTag,{value:"Module"})),ae="Program log: Sequence: ";class v{network;chain;connection;contracts;chainId;coreBridge;address;bridgeData;constructor(e,t,n,s){this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=x(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=y(a,n)}async getGuardianSet(e){const t=await H(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await Fe.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await ge(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=ne.generate(),i=new K(e).unwrap(),c=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),o=await this.getMessageFee(),f=le(this.coreBridge.programId,i,o),d=new Y;d.feePayer=i,d.add(f,c),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=I(this.coreBridge.programId,u.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new K(e).unwrap(),i=ne.generate(),c=await Ee(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<c.length;f+=2){const d=new Y().add(...c.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const o=new Y().add(Ae(this.connection,this.coreBridge.programId,a,t,i.publicKey));o.feePayer=a,yield this.createUnsignedTx({transaction:o},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const a=s.staticAccountKeys;if(a.filter(o=>o.toString()===e).length===0)return[];const i=n?.logMessages?.filter(o=>o.startsWith(ae))?.[0]?.replace(ae,"");if(!i)return[];const c=[];for(const o of n?.innerInstructions){const f=o.instructions;c.push(...f.filter(d=>d.programIdIndex in a&&a[d.programIdIndex].toString()===e))}return c.length<1?[]:a.length<3?[]:c.map(o=>[new K(a[o.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(o=>o!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=n.innerInstructions?.flatMap(o=>o.instructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString())).map(o=>({programIdIndex:o.programIdIndex,accountKeyIndexes:o.accounts})),c=s.compiledInstructions.filter(o=>a.toString()===e.get(o.programIdIndex).toString());return[...i,...c]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!t?.data)throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:c,nonce:o,payload:f}=de(new Uint8Array(t?.data));return De("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:ve(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:c,nonce:o,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[c,o]=i[0];return[{chain:this.chain,emitter:c,sequence:o}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const c=n.get(i.accountKeyIndexes[1]),o=await this.parsePostMessageAccount(c);return{chain:o.emitterChain,emitter:o.emitterAddress,sequence:o.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const c=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(c)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Ve(e,this.network,this.chain,t,n)}}Be(ze,"WormholeCore",v);const ht=Object.freeze(Object.defineProperty({__proto__:null,IDL:Q,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ue,utils:dt},Symbol.toStringTag,{value:"Module"}));export{oe as B,v as S,p as a,j as b,O as c,U as d,L as e,I as f,$e as g,S as h,B as i,ce as j,yt as k,X as l,Oe as m,pt as n,fe as o,ut as p,ct as q,Re as r,le as s,ht as t};
1
+ import{P as g,k as u,du as te,dv as Ue,T as Te,dw as Ce,dm as h,bm as ke,cY as x,dr as E,ds as F,bh as K,dn as ie,dx as _e,dy as Pe,K as ne,ae as Y,d0 as ve,d4 as Be,bi as ze}from"../main.js";import{d as m,P as Ke,c as qe}from"./index-GKTf0CV7.js";import{b as Fe,e as Ve}from"./signer-Dl8_VMmx.js";import{c as De}from"./create-54a95t1x.js";const re=r=>typeof r=="string"?u.from(r):r;function S(r,e){return g.findProgramAddressSync(Array.isArray(r)?r.map(re):[re(r)],new g(e))[0]}function pt(r,e){return{pubkey:new g(r),isWritable:!0,isSigner:e}}function yt(r,e){return{pubkey:new g(r),isWritable:!1,isSigner:e}}function B(r){if(r===null)throw Error("account info is null");return r.data}const oe=new g("BPFLoaderUpgradeab1e11111111111111111111111");function Oe(r){return S([new g(r).toBuffer()],oe)}class Ge extends Error{constructor(e){super(e),this.name="IdlError"}}function ce(r,e){switch(e.type.kind){case"struct":return e.type.fields.map(t=>M(r,t.type)).reduce((t,n)=>t+n,0);case"enum":{const t=e.type.variants.map(n=>n.fields?n.fields.map(s=>typeof s=="object"&&"name"in s?M(r,s.type):M(r,s)).reduce((s,a)=>s+a,0):0);return Math.max(...t)+1}case"alias":return M(r,e.type.value)}}function M(r,e){switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+M(r,e.option);if("coption"in e)return 4+M(r,e.coption);if("defined"in e){const t=r.types?.filter(s=>s.name===e.defined)??[];if(t.length!==1)throw new Ge(`Type not found: ${JSON.stringify(e)}`);let n=t[0];return ce(r,n)}if("array"in e){let t=e.array[0],n=e.array[1];return M(r,t)*n}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function _(r){return r.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return t===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Ne(r){return r.charAt(0).toUpperCase()+r.slice(1)}const ue=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...te},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...te},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function de(r){return Ue(ue,r)}function L(r,e,t,n){const s=typeof e=="string"?u.from(e,"hex"):u.from(e);if(s.length!=32)throw Error("address.length != 32");const a=u.alloc(8);return a.writeBigUInt64BE(typeof n=="number"?BigInt(n):n),S([s,(()=>{const i=u.alloc(2);return i.writeUInt16BE(t),i})(),a],r)}async function Re(r,e,t,n,s,a){return r.getAccountInfo(L(e,t,n,s),a).then(i=>!!B(i)[0])}function p(r){return S([u.from("Bridge")],r)}async function ge(r,e,t){return r.getAccountInfo(p(e),t).then(n=>D.deserialize(B(n)))}class V{guardianSetExpirationTime;fee;constructor(e,t){this.guardianSetExpirationTime=e,this.fee=t}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4);return new V(t,n)}}class D{guardianSetIndex;lastLamports;config;constructor(e,t,n){this.guardianSetIndex=e,this.lastLamports=t,this.config=n}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const t=e.readUInt32LE(0),n=e.readBigUInt64LE(4),s=V.deserialize(e.subarray(12));return new D(t,n,s)}}function O(r,e){return S([u.from("Sequence"),new g(r).toBytes()],e)}async function me(r,e,t,n){return r.getAccountInfo(O(e,t),n).then(s=>G.deserialize(B(s)))}class G{sequence;bump;emitterType;constructor(e,t,n){this.sequence=e,this.bump=t,this.emitterType=n}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let t,n;const s=e.readBigUInt64LE(0);return e.length===10&&(t=e[8],n=e[9]),new G(s,t,n)}value(){return this.sequence}}function j(r){return S([u.from("emitter")],r)}function W(r,e){const t=j(r);return{emitter:t,sequence:O(t,e)}}async function $e(r,e,t,n){return me(r,j(e),t,n)}function U(r){return S([u.from("fee_collector")],r)}const se=65,P=20;function Ye(r,e,t){return new Te({keys:[],programId:Ce.programId,data:je.serialize(r,e,t)})}class je{static serialize(e,t,n){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=t.length)throw Error("signatures.length != keys.length");if(n.length!=32)throw Error("message.length != 32");const s=e.length,a=11,i=1+s*a,c=se+P,o=i+s*c,f=32,d=u.alloc(o+f);d.writeUInt8(s,0),d.write(n.toString("hex"),o,"hex");for(let l=0;l<s;++l){const w=e.at(l);if(w?.length!=se)throw Error(`signatures[${l}].length != 65`);const T=t.at(l);if(T?.length!=P)throw Error(`keys[${l}].length != 20`);const C=i+c*l,k=C+65;d.writeUInt16LE(C,1+l*a),d.writeUInt8(0,3+l*a),d.writeUInt16LE(k,4+l*a),d.writeUInt8(0,6+l*a),d.writeUInt16LE(o,7+l*a),d.writeUInt16LE(f,9+l*a),d.writeUInt8(0,10+l*a),d.write(w.toString("hex"),C,"hex"),d.write(T.toString("hex"),k,"hex")}return d}}function b(r,e){return S([u.from("GuardianSet"),(()=>{const t=u.alloc(4);return t.writeUInt32BE(e),t})()],r)}async function H(r,e,t,n){return r.getAccountInfo(b(e,t),n).then(s=>N.deserialize(B(s)))}class N{index;keys;creationTime;expirationTime;constructor(e,t,n,s){this.index=e,this.keys=t,this.creationTime=n,this.expirationTime=s}static deserialize(e){const t=e.readUInt32LE(0),n=e.readUInt32LE(4),s=8+n*P,a=e.readUInt32LE(s),i=e.readUInt32LE(4+s),c=[];for(let o=0;o<n;++o){const f=8+o*P;c.push(e.subarray(f,f+P))}return new N(t,c,a,i)}}function I(r,e){return S([u.from("PostedVAA"),e],r)}async function We(r,e,t){return r.getAccountInfo(new g(e),t).then(n=>R.deserialize(B(n)))}class R{signatures;hash;guardianSetIndex;constructor(e,t,n){this.signatures=e,this.hash=t,this.guardianSetIndex=n}static deserialize(e){const t=e.readUInt32LE(0),n=[...e.subarray(4,4+t)].map(c=>c!=0),s=4+t,a=e.subarray(s,s+32),i=e.readUInt32LE(s+32);return new R(n,a,i)}}function fe(r){return S([u.from("upgrade")],r)}function le(r,e,t){return h.transfer({fromPubkey:new g(e),toPubkey:U(r),lamports:t})}class He{idl;constructor(e){this.idl=e}async encode(e,t){throw new Error(`Invalid account name: ${e}`)}decode(e,t){return this.decodeUnchecked(e,t)}decodeUnchecked(e,t){throw new Error(`Invalid account name: ${e}`)}memcmp(e,t){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ce(this.idl,e)??0}}class Je{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class A{static fieldLayout(e,t){const n=e.name!==void 0?_(e.name):void 0;switch(e.type){case"bool":return m.bool(n);case"u8":return m.u8(n);case"i8":return m.i8(n);case"u16":return m.u16(n);case"i16":return m.i16(n);case"u32":return m.u32(n);case"i32":return m.i32(n);case"f32":return m.f32(n);case"u64":return m.u64(n);case"i64":return m.i64(n);case"f64":return m.f64(n);case"u128":return m.u128(n);case"i128":return m.i128(n);case"u256":return m.u256(n);case"i256":return m.i256(n);case"bytes":return m.vecU8(n);case"string":return m.str(n);case"publicKey":return m.publicKey(n);default:{if("vec"in e.type)return m.vec(A.fieldLayout({name:void 0,type:e.type.vec},t),n);if("option"in e.type)return m.option(A.fieldLayout({name:void 0,type:e.type.option},t),n);if("array"in e.type){let s=e.type.array[0],a=e.type.array[1],i=A.fieldLayout({name:void 0,type:s},t);return m.array(i,a,n)}else throw new Error(`Not yet implemented: ${e}`)}}}}class J{ixLayout;constructor(e){this.ixLayout=J.parseIxLayout(e)}static parseIxLayout(e){const n=(e.instructions?e.instructions:[]).map(s=>{let a=s.args.map(c=>A.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,m.struct(a,i)]}).concat(e.instructions.map(s=>{let a=s.args.map(c=>A.fieldLayout(c,Array.from([...e.accounts??[],...e.types??[]])));const i=_(s.name);return[i,m.struct(a,i)]}));return new Map(n)}encode(e,t){const n=u.alloc(1e3),s=_(e),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const i=a.encode(t,n),c=n.slice(0,i);return Qe(q[Ne(s)],c)}encodeState(e,t){throw new Error("Wormhole program does not have state")}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?u.from(e,"hex"):ke.decode(e));let n=u.from(e.slice(0,1)).readInt8(),s=u.from(e.slice(1)),a=_(q[n]??"");return this.ixLayout.get(a)?{data:this.ixLayout.get(a)?.decode(s),name:a}:null}}var q;(function(r){r[r.Initialize=0]="Initialize",r[r.PostMessage=1]="PostMessage",r[r.PostVaa=2]="PostVaa",r[r.SetFees=3]="SetFees",r[r.TransferFees=4]="TransferFees",r[r.UpgradeContract=5]="UpgradeContract",r[r.UpgradeGuardianSet=6]="UpgradeGuardianSet",r[r.VerifySignatures=7]="VerifySignatures",r[r.PostMessageUnreliable=8]="PostMessageUnreliable"})(q||(q={}));function Qe(r,e){const t=u.alloc(1+(e===void 0?0:e.length));return t.writeUInt8(r,0),e!==void 0&&t.write(e.toString("hex"),1,"hex"),t}class Xe{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class Ze{constructor(e){}encode(e,t){throw new Error("Wormhole program does not have user-defined types")}decode(e,t){throw new Error("Wormhole program does not have user-defined types")}}class et{instruction;accounts;state;events;types;constructor(e){this.instruction=new J(e),this.accounts=new He(e),this.state=new Xe(e),this.events=new Je(e),this.types=new Ze(e)}}const Q={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function pe(r,e){return new Ke(Q,new g(r),e===void 0?{connection:null}:e,ye())}function y(r,e){return pe(r,qe(e))}function ye(){return new et(Q)}function tt(r,e,t,n){const s=y(e,r).methods.setFees();return s._ixFn(...s._args,{accounts:he(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function he(r,e,t){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),systemProgram:h.programId}}function nt(r,e,t,n,s){const a=y(e,r).methods.transferFees();return a._ixFn(...a._args,{accounts:Se(e,t,n,s),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Se(r,e,t,n){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(n.hash)),claim:L(r,n.emitterAddress.toString(),x(n.emitterChain),n.sequence),feeCollector:U(r),recipient:new g(t),rent:E,systemProgram:h.programId}}function rt(r,e,t,n){const s=y(e,r).methods.upgradeGuardianSet();return s._ixFn(...s._args,{accounts:we(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function we(r,e,t){return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),guardianSetOld:b(r,t.guardianSet),guardianSetNew:b(r,t.guardianSet+1),systemProgram:h.programId}}function st(r,e,t,n){const s=y(e,r).methods.upgradeContract();return s._ixFn(...s._args,{accounts:Me(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Me(r,e,t,n){const{newContract:s}=t.payload.actionArgs;return{payer:new g(e),bridge:p(r),vaa:I(r,u.from(t.hash)),claim:L(r,t.emitterAddress.toString(),x(t.emitterChain),t.sequence),upgradeAuthority:fe(r),spill:new g(n===void 0?e:n),implementation:new K(s).unwrap(),programData:Oe(r),wormholeProgram:new g(r),rent:E,clock:F,bpfLoaderUpgradeable:oe,systemProgram:h.programId}}function at(r,e,t,n,s,a){const i=y(e,r).methods.initialize(n,new ie(s.toString()),[...a.map(c=>[...new Uint8Array(c)])]);return i._ixFn(...i._args,{accounts:be(e,t),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function be(r,e){return{bridge:p(r),guardianSet:b(r,0),feeCollector:U(r),payer:new g(e),clock:F,rent:E,systemProgram:h.programId}}function Ie(r,e,t,n,s,a,i){const c=y(e,r).methods.postMessage(a,u.from(s),i);return c._ixFn(...c._args,{accounts:X(e,t,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function X(r,e,t,n){let s;return n?{emitter:n,sequence:s}=W(n,r):(n=e,s=O(n,r)),{bridge:p(r),message:new g(t),emitter:new g(n),sequence:s,payer:new g(e),feeCollector:U(r),clock:F,rent:E,systemProgram:h.programId}}function Ae(r,e,t,n,s){const a=y(e,r).methods.postVaa(1,n.guardianSet,n.timestamp,n.nonce,x(n.emitterChain),[...n.emitterAddress.toUint8Array()],new ie(n.sequence.toString()),n.consistencyLevel,u.from(_e(n.payloadLiteral,n.payload)));return a._ixFn(...a._args,{accounts:xe(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function xe(r,e,t,n){return{guardianSet:b(r,n.guardianSet),bridge:p(r),signatureSet:new g(t),vaa:I(r,u.from(n.hash)),payer:new g(e),clock:F,rent:E,systemProgram:h.programId}}const it=19;async function Ee(r,e,t,n,s,a){const i=n.guardianSet,c=await H(r,e,i,a),o=n.signatures,f=c.keys,d=7,l=[];for(let w=0;w<Math.ceil(o.length/d);++w){const T=w*d,C=Math.min(o.length,(w+1)*d),k=new Array(it).fill(-1),Z=[],ee=[];for(let z=0;z<C-T;++z){const $=o.at(z+T);Z.push(u.from($.signature.encode())),ee.push(f.at($.guardianIndex)),k[$.guardianIndex]=z}l.push(Ye(Z,ee,u.from(n.hash))),l.push(ot(r,e,t,n,s,k))}return l}function ot(r,e,t,n,s,a){const i=y(e,r).methods.verifySignatures(a);return i._ixFn(...i._args,{accounts:Le(e,t,s,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Le(r,e,t,n){return{payer:new g(e),guardianSet:b(r,n.guardianSet),signatureSet:new g(t),instructions:Pe,rent:E,systemProgram:h.programId}}function ct(r,e){const{emitter:t,sequence:n}=W(r,e);return{wormholeBridge:p(e),wormholeEmitter:t,wormholeSequence:n,wormholeFeeCollector:U(e)}}function ut(r,e,t,n){const s=X(e,t,n,r);return{payer:s.payer,wormholeBridge:s.bridge,wormholeMessage:s.message,wormholeEmitter:s.emitter,wormholeSequence:s.sequence,wormholeFeeCollector:s.feeCollector,clock:s.clock,rent:s.rent,systemProgram:s.systemProgram}}const dt=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:V,BridgeData:D,GuardianSetData:N,SequenceTracker:G,SignatureSetData:R,coder:ye,createBridgeFeeTransferInstruction:le,createInitializeInstruction:at,createPostMessageInstruction:Ie,createPostVaaInstruction:Ae,createReadOnlyWormholeProgramInterface:y,createSetFeesInstruction:tt,createTransferFeesInstruction:nt,createUpgradeContractInstruction:st,createUpgradeGuardianSetInstruction:rt,createVerifySignaturesInstructions:Ee,createWormholeProgramInterface:pe,deriveClaimKey:L,deriveEmitterSequenceKey:O,deriveFeeCollectorKey:U,deriveGuardianSetKey:b,derivePostedVaaKey:I,deriveUpgradeAuthorityKey:fe,deriveWormholeBridgeDataKey:p,deriveWormholeEmitterKey:j,getClaim:Re,getEmitterKeys:W,getGuardianSet:H,getInitializeAccounts:be,getPostMessageAccounts:X,getPostMessageCpiAccounts:ut,getPostVaaAccounts:xe,getProgramSequenceTracker:$e,getSequenceTracker:me,getSetFeesAccounts:he,getSignatureSetData:We,getTransferFeesAccounts:Se,getUpgradeContractAccounts:Me,getUpgradeGuardianSetAccounts:we,getVerifySignatureAccounts:Le,getWormholeBridgeData:ge,getWormholeDerivedAccounts:ct},Symbol.toStringTag,{value:"Module"})),ae="Program log: Sequence: ";class v{network;chain;connection;contracts;chainId;coreBridge;address;bridgeData;constructor(e,t,n,s){this.network=e,this.chain=t,this.connection=n,this.contracts=s,this.chainId=x(t);const a=s.coreBridge;if(!a)throw new Error(`CoreBridge contract Address for chain ${t} not found`);this.address=a,this.coreBridge=y(a,n)}async getGuardianSet(e){const t=await H(this.connection,this.coreBridge.programId,e);return{index:t.index,keys:t.keys.map(n=>n.toString("hex")),expiry:BigInt(t.expirationTime)}}static async fromRpc(e,t){const[n,s]=await Fe.chainFromRpc(e),a=t[s];if(a.network!==n)throw new Error(`Network mismatch for chain ${s}: ${a.network} != ${n}`);return new v(n,s,e,t[s].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await ge(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,t,n,s){const a=ne.generate(),i=new K(e).unwrap(),c=Ie(this.connection,this.coreBridge.programId,i,a.publicKey,t,n,s),o=await this.getMessageFee(),f=le(this.coreBridge.programId,i,o),d=new Y;d.feePayer=i,d.add(f,c),yield this.createUnsignedTx({transaction:d,signers:[a]},"Core.PublishMessage")}async*verifyMessage(e,t){yield*this.postVaa(e,t)}async*postVaa(e,t){const n=I(this.coreBridge.programId,u.from(t.hash));if(await this.connection.getAccountInfo(n))return;const a=new K(e).unwrap(),i=ne.generate(),c=await Ee(this.connection,this.coreBridge.programId,a,t,i.publicKey);for(let f=0;f<c.length;f+=2){const d=new Y().add(...c.slice(f,f+2));d.feePayer=a,yield this.createUnsignedTx({transaction:d,signers:[i]},"Core.VerifySignature",!0)}const o=new Y().add(Ae(this.connection,this.coreBridge.programId,a,t,i.publicKey));o.feePayer=a,yield this.createUnsignedTx({transaction:o},"Core.PostVAA")}static parseSequenceFromLog(e,t){const{meta:n,transaction:{message:s}}=t;if(!n?.innerInstructions?.length)return[];const a=s.staticAccountKeys;if(a.filter(o=>o.toString()===e).length===0)return[];const i=n?.logMessages?.filter(o=>o.startsWith(ae))?.[0]?.replace(ae,"");if(!i)return[];const c=[];for(const o of n?.innerInstructions){const f=o.instructions;c.push(...f.filter(d=>d.programIdIndex in a&&a[d.programIdIndex].toString()===e))}return c.length<1?[]:a.length<3?[]:c.map(o=>[new K(a[o.accounts[2]]).toUniversalAddress(),BigInt(i)]).filter(o=>o!==null)}async getMessageAccountKeys(e){let t;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)t=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const n=await Promise.all(e.transaction.message.addressTableLookups.map(async s=>{const a=await this.connection.getAddressLookupTable(s.accountKey);if(!a||!a.value)throw new Error("Could not resolve lookup table: "+s.accountKey.toBase58());return a.value}));t=e.transaction.message.getAccountKeys({addressLookupTableAccounts:n})}else t=e.transaction.message.getAccountKeys();return t}async findInstructions(e,t){const{meta:n,transaction:{message:s}}=t,a=this.coreBridge.programId,i=n.innerInstructions?.flatMap(o=>o.instructions.filter(f=>a.toString()===e.get(f.programIdIndex).toString())).map(o=>({programIdIndex:o.programIdIndex,accountKeyIndexes:o.accounts})),c=s.compiledInstructions.filter(o=>a.toString()===e.get(o.programIdIndex).toString());return[...i,...c]}async parsePostMessageAccount(e){const t=await this.connection.getAccountInfo(e);if(!t?.data)throw new Error("No data found in message account");const{timestamp:n,emitterAddress:s,emitterChain:a,consistencyLevel:i,sequence:c,nonce:o,payload:f}=de(new Uint8Array(t?.data));return De("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:ve(a),timestamp:n,emitterAddress:s,consistencyLevel:i,sequence:c,nonce:o,payload:f,signatures:[]})}async parseTransaction(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");try{const i=v.parseSequenceFromLog(this.coreBridge.programId.toBase58(),t);if(i.length>0){const[c,o]=i[0];return[{chain:this.chain,emitter:c,sequence:o}]}}catch{}const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const c=n.get(i.accountKeyIndexes[1]),o=await this.parsePostMessageAccount(c);return{chain:o.emitterChain,emitter:o.emitterAddress,sequence:o.sequence}});return await Promise.all(a)}async parseMessages(e){const t=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!t||!t.meta||!t.meta.innerInstructions)throw new Error("transaction not found");const n=await this.getMessageAccountKeys(t),s=await this.findInstructions(n,t);if(!s||s.length===0)throw new Error("no bridge messages found");const a=s.map(async i=>{const c=n.get(i.accountKeyIndexes[1]);return await this.parsePostMessageAccount(c)});return await Promise.all(a)}createUnsignedTx(e,t,n=!1){return new Ve(e,this.network,this.chain,t,n)}}Be(ze,"WormholeCore",v);const ht=Object.freeze(Object.defineProperty({__proto__:null,IDL:Q,SolanaWormholeCore:v,deserializePostMessage:de,postMessageLayout:ue,utils:dt},Symbol.toStringTag,{value:"Module"}));export{oe as B,v as S,p as a,j as b,O as c,U as d,L as e,I as f,$e as g,S as h,B as i,ce as j,yt as k,X as l,Oe as m,pt as n,fe as o,ut as p,ct as q,Re as r,le as s,ht as t};
@@ -1 +1 @@
1
- import{dj as h,aQ as w,cN as T,aV as o,cY as p,c$ as s,d1 as l,d3 as m,d4 as g,aO as y}from"../main.js";import{E as f,a as u}from"./index-DVbfoP0w.js";import{C as b}from"./contract-_PBK5Hvi.js";import{E as c}from"./evm-Ky_mCHhS.js";import"./create-q7V6muDT.js";import"./chain-gFcyni6Z.js";import"./provider-jsonrpc-HqaDaO-R.js";class i{network;chain;provider;contracts;chainId;core;gatewayAddress;gateway;tbtcTokenAddr;constructor(e,t,a,n){if(this.network=e,this.chain=t,this.provider=a,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");const r=h.getNativeTbtcToken(this.chain);if(!r)throw new Error("Native tbtc token not found");this.chainId=w.get(e,t),this.core=new f(e,t,a,n),this.gatewayAddress=this.contracts.tbtc,this.gateway=new b(this.gatewayAddress,["function sendTbtc(uint256 amount, uint16 recipientChain, bytes32 recipient, uint256 arbiterFee, uint32 nonce) payable returns (uint64)","function receiveTbtc(bytes calldata encodedVm)"],a),this.tbtcTokenAddr=T(r)}static async fromRpc(e,t){const[a,n]=await c.chainFromRpc(e),r=t[n];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new i(a,n,e,r.contracts)}async*transfer(e,t,a){const n=new o(e).toString(),r=await this.gateway.sendTbtc.populateTransaction(a,p(t.chain),t.address.toUniversalAddress().toUint8Array(),0n,0n);r.value=await this.core.getMessageFee(),yield*this.approve(n,a,this.gatewayAddress),yield this.createUnsignedTransaction(s(r,n),"TBTCBridge.Send")}async*redeem(e,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");const a=new o(e).toString(),n=await this.gateway.receiveTbtc.populateTransaction(l(t));yield this.createUnsignedTransaction(s(n,a),"TBTCBridge.Redeem")}async*approve(e,t,a){const n=c.getTokenImplementation(this.provider,this.tbtcTokenAddr);if(await n.allowance(e,a)<t){const d=await n.approve.populateTransaction(a,t);yield this.createUnsignedTransaction(s(d,e),"TBTC.Approve")}}createUnsignedTransaction(e,t){return new u(m(e,this.chainId),this.network,this.chain,t,!1)}}g(y,"TBTCBridge",i);export{i as EvmTBTCBridge};
1
+ import{dk as h,aQ as w,cN as T,aV as o,cY as p,c$ as s,d1 as l,d3 as m,d4 as g,aO as y}from"../main.js";import{E as f,a as u}from"./index-DRsHBjoG.js";import{C as b}from"./contract-_PBK5Hvi.js";import{E as c}from"./evm-Bv0RsFka.js";import"./create-54a95t1x.js";import"./chain-gFcyni6Z.js";import"./provider-jsonrpc-HqaDaO-R.js";class i{network;chain;provider;contracts;chainId;core;gatewayAddress;gateway;tbtcTokenAddr;constructor(e,t,a,n){if(this.network=e,this.chain=t,this.provider=a,this.contracts=n,this.network!=="Mainnet")throw new Error("TBTC is only supported on Mainnet");if(!this.contracts.tbtc)throw new Error("TBTC contract address is required");const r=h.getNativeTbtcToken(this.chain);if(!r)throw new Error("Native tbtc token not found");this.chainId=w.get(e,t),this.core=new f(e,t,a,n),this.gatewayAddress=this.contracts.tbtc,this.gateway=new b(this.gatewayAddress,["function sendTbtc(uint256 amount, uint16 recipientChain, bytes32 recipient, uint256 arbiterFee, uint32 nonce) payable returns (uint64)","function receiveTbtc(bytes calldata encodedVm)"],a),this.tbtcTokenAddr=T(r)}static async fromRpc(e,t){const[a,n]=await c.chainFromRpc(e),r=t[n];if(r.network!==a)throw new Error(`Network mismatch: ${r.network} != ${a}`);return new i(a,n,e,r.contracts)}async*transfer(e,t,a){const n=new o(e).toString(),r=await this.gateway.sendTbtc.populateTransaction(a,p(t.chain),t.address.toUniversalAddress().toUint8Array(),0n,0n);r.value=await this.core.getMessageFee(),yield*this.approve(n,a,this.gatewayAddress),yield this.createUnsignedTransaction(s(r,n),"TBTCBridge.Send")}async*redeem(e,t){if(t.payloadName!=="GatewayTransfer")throw new Error("Invalid VAA payload");const a=new o(e).toString(),n=await this.gateway.receiveTbtc.populateTransaction(l(t));yield this.createUnsignedTransaction(s(n,a),"TBTCBridge.Redeem")}async*approve(e,t,a){const n=c.getTokenImplementation(this.provider,this.tbtcTokenAddr);if(await n.allowance(e,a)<t){const d=await n.approve.populateTransaction(a,t);yield this.createUnsignedTransaction(s(d,e),"TBTC.Approve")}}createUnsignedTransaction(e,t){return new u(m(e,this.chainId),this.network,this.chain,t,!1)}}g(y,"TBTCBridge",i);export{i as EvmTBTCBridge};