@wormhole-foundation/sdk-solana-core 0.5.0-alpha.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 (259) hide show
  1. package/dist/cjs/anchor-idl/wormhole.json +611 -0
  2. package/dist/cjs/core.d.ts +32 -0
  3. package/dist/cjs/core.d.ts.map +1 -0
  4. package/dist/cjs/core.js +229 -0
  5. package/dist/cjs/core.js.map +1 -0
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/index.d.ts.map +1 -0
  8. package/dist/cjs/index.js +37 -0
  9. package/dist/cjs/index.js.map +1 -0
  10. package/dist/cjs/postMessageLayout.d.ts +65 -0
  11. package/dist/cjs/postMessageLayout.d.ts.map +1 -0
  12. package/dist/cjs/postMessageLayout.js +20 -0
  13. package/dist/cjs/postMessageLayout.js.map +1 -0
  14. package/dist/cjs/types.d.ts +612 -0
  15. package/dist/cjs/types.d.ts.map +1 -0
  16. package/dist/cjs/types.js +3 -0
  17. package/dist/cjs/types.js.map +1 -0
  18. package/dist/cjs/utils/accounts/claim.d.ts +5 -0
  19. package/dist/cjs/utils/accounts/claim.d.ts.map +1 -0
  20. package/dist/cjs/utils/accounts/claim.js +31 -0
  21. package/dist/cjs/utils/accounts/claim.js.map +1 -0
  22. package/dist/cjs/utils/accounts/config.d.ts +18 -0
  23. package/dist/cjs/utils/accounts/config.d.ts.map +1 -0
  24. package/dist/cjs/utils/accounts/config.js +52 -0
  25. package/dist/cjs/utils/accounts/config.js.map +1 -0
  26. package/dist/cjs/utils/accounts/emitter.d.ts +10 -0
  27. package/dist/cjs/utils/accounts/emitter.d.ts.map +1 -0
  28. package/dist/cjs/utils/accounts/emitter.js +22 -0
  29. package/dist/cjs/utils/accounts/emitter.js.map +1 -0
  30. package/dist/cjs/utils/accounts/feeCollector.d.ts +3 -0
  31. package/dist/cjs/utils/accounts/feeCollector.d.ts.map +1 -0
  32. package/dist/cjs/utils/accounts/feeCollector.js +9 -0
  33. package/dist/cjs/utils/accounts/feeCollector.js.map +1 -0
  34. package/dist/cjs/utils/accounts/guardianSet.d.ts +13 -0
  35. package/dist/cjs/utils/accounts/guardianSet.d.ts.map +1 -0
  36. package/dist/cjs/utils/accounts/guardianSet.js +49 -0
  37. package/dist/cjs/utils/accounts/guardianSet.js.map +1 -0
  38. package/dist/cjs/utils/accounts/index.d.ts +10 -0
  39. package/dist/cjs/utils/accounts/index.d.ts.map +1 -0
  40. package/dist/cjs/utils/accounts/index.js +26 -0
  41. package/dist/cjs/utils/accounts/index.js.map +1 -0
  42. package/dist/cjs/utils/accounts/postedVaa.d.ts +4 -0
  43. package/dist/cjs/utils/accounts/postedVaa.d.ts.map +1 -0
  44. package/dist/cjs/utils/accounts/postedVaa.js +9 -0
  45. package/dist/cjs/utils/accounts/postedVaa.js.map +1 -0
  46. package/dist/cjs/utils/accounts/sequence.d.ts +13 -0
  47. package/dist/cjs/utils/accounts/sequence.d.ts.map +1 -0
  48. package/dist/cjs/utils/accounts/sequence.js +42 -0
  49. package/dist/cjs/utils/accounts/sequence.js.map +1 -0
  50. package/dist/cjs/utils/accounts/signatureSet.d.ts +11 -0
  51. package/dist/cjs/utils/accounts/signatureSet.d.ts.map +1 -0
  52. package/dist/cjs/utils/accounts/signatureSet.js +31 -0
  53. package/dist/cjs/utils/accounts/signatureSet.js.map +1 -0
  54. package/dist/cjs/utils/accounts/upgrade.d.ts +3 -0
  55. package/dist/cjs/utils/accounts/upgrade.d.ts.map +1 -0
  56. package/dist/cjs/utils/accounts/upgrade.js +9 -0
  57. package/dist/cjs/utils/accounts/upgrade.js.map +1 -0
  58. package/dist/cjs/utils/coder/accounts.d.ts +26 -0
  59. package/dist/cjs/utils/coder/accounts.d.ts.map +1 -0
  60. package/dist/cjs/utils/coder/accounts.js +64 -0
  61. package/dist/cjs/utils/coder/accounts.js.map +1 -0
  62. package/dist/cjs/utils/coder/events.d.ts +7 -0
  63. package/dist/cjs/utils/coder/events.d.ts.map +1 -0
  64. package/dist/cjs/utils/coder/events.js +11 -0
  65. package/dist/cjs/utils/coder/events.js.map +1 -0
  66. package/dist/cjs/utils/coder/idl.d.ts +8 -0
  67. package/dist/cjs/utils/coder/idl.d.ts.map +1 -0
  68. package/dist/cjs/utils/coder/idl.js +114 -0
  69. package/dist/cjs/utils/coder/idl.js.map +1 -0
  70. package/dist/cjs/utils/coder/index.d.ts +16 -0
  71. package/dist/cjs/utils/coder/index.d.ts.map +1 -0
  72. package/dist/cjs/utils/coder/index.js +26 -0
  73. package/dist/cjs/utils/coder/index.js.map +1 -0
  74. package/dist/cjs/utils/coder/instruction.d.ts +26 -0
  75. package/dist/cjs/utils/coder/instruction.d.ts.map +1 -0
  76. package/dist/cjs/utils/coder/instruction.js +110 -0
  77. package/dist/cjs/utils/coder/instruction.js.map +1 -0
  78. package/dist/cjs/utils/coder/state.d.ts +8 -0
  79. package/dist/cjs/utils/coder/state.d.ts.map +1 -0
  80. package/dist/cjs/utils/coder/state.js +14 -0
  81. package/dist/cjs/utils/coder/state.js.map +1 -0
  82. package/dist/cjs/utils/coder/types.d.ts +8 -0
  83. package/dist/cjs/utils/coder/types.d.ts.map +1 -0
  84. package/dist/cjs/utils/coder/types.js +14 -0
  85. package/dist/cjs/utils/coder/types.js.map +1 -0
  86. package/dist/cjs/utils/cpi.d.ts +52 -0
  87. package/dist/cjs/utils/cpi.d.ts.map +1 -0
  88. package/dist/cjs/utils/cpi.js +48 -0
  89. package/dist/cjs/utils/cpi.js.map +1 -0
  90. package/dist/cjs/utils/index.d.ts +5 -0
  91. package/dist/cjs/utils/index.d.ts.map +1 -0
  92. package/dist/cjs/utils/index.js +21 -0
  93. package/dist/cjs/utils/index.js.map +1 -0
  94. package/dist/cjs/utils/instructions/feeTransfer.d.ts +3 -0
  95. package/dist/cjs/utils/instructions/feeTransfer.d.ts.map +1 -0
  96. package/dist/cjs/utils/instructions/feeTransfer.js +14 -0
  97. package/dist/cjs/utils/instructions/feeTransfer.js.map +1 -0
  98. package/dist/cjs/utils/instructions/governance.d.ts +52 -0
  99. package/dist/cjs/utils/instructions/governance.d.ts.map +1 -0
  100. package/dist/cjs/utils/instructions/governance.js +111 -0
  101. package/dist/cjs/utils/instructions/governance.js.map +1 -0
  102. package/dist/cjs/utils/instructions/index.d.ts +7 -0
  103. package/dist/cjs/utils/instructions/index.d.ts.map +1 -0
  104. package/dist/cjs/utils/instructions/index.js +23 -0
  105. package/dist/cjs/utils/instructions/index.js.map +1 -0
  106. package/dist/cjs/utils/instructions/initialize.d.ts +14 -0
  107. package/dist/cjs/utils/instructions/initialize.d.ts.map +1 -0
  108. package/dist/cjs/utils/instructions/initialize.js +37 -0
  109. package/dist/cjs/utils/instructions/initialize.js.map +1 -0
  110. package/dist/cjs/utils/instructions/postMessage.d.ts +16 -0
  111. package/dist/cjs/utils/instructions/postMessage.d.ts.map +1 -0
  112. package/dist/cjs/utils/instructions/postMessage.js +41 -0
  113. package/dist/cjs/utils/instructions/postMessage.js.map +1 -0
  114. package/dist/cjs/utils/instructions/postVaa.d.ts +28 -0
  115. package/dist/cjs/utils/instructions/postVaa.d.ts.map +1 -0
  116. package/dist/cjs/utils/instructions/postVaa.js +53 -0
  117. package/dist/cjs/utils/instructions/postVaa.js.map +1 -0
  118. package/dist/cjs/utils/instructions/secp256k1.d.ts +30 -0
  119. package/dist/cjs/utils/instructions/secp256k1.d.ts.map +1 -0
  120. package/dist/cjs/utils/instructions/secp256k1.js +111 -0
  121. package/dist/cjs/utils/instructions/secp256k1.js.map +1 -0
  122. package/dist/cjs/utils/instructions/verifySignature.d.ts +32 -0
  123. package/dist/cjs/utils/instructions/verifySignature.d.ts.map +1 -0
  124. package/dist/cjs/utils/instructions/verifySignature.js +94 -0
  125. package/dist/cjs/utils/instructions/verifySignature.js.map +1 -0
  126. package/dist/cjs/utils/program.d.ts +8 -0
  127. package/dist/cjs/utils/program.d.ts.map +1 -0
  128. package/dist/cjs/utils/program.js +24 -0
  129. package/dist/cjs/utils/program.js.map +1 -0
  130. package/dist/esm/anchor-idl/wormhole.json +611 -0
  131. package/dist/esm/core.d.ts +32 -0
  132. package/dist/esm/core.d.ts.map +1 -0
  133. package/dist/esm/core.js +225 -0
  134. package/dist/esm/core.js.map +1 -0
  135. package/dist/esm/index.d.ts +4 -0
  136. package/dist/esm/index.d.ts.map +1 -0
  137. package/dist/esm/index.js +8 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/dist/esm/postMessageLayout.d.ts +65 -0
  140. package/dist/esm/postMessageLayout.d.ts.map +1 -0
  141. package/dist/esm/postMessageLayout.js +17 -0
  142. package/dist/esm/postMessageLayout.js.map +1 -0
  143. package/dist/esm/types.d.ts +612 -0
  144. package/dist/esm/types.d.ts.map +1 -0
  145. package/dist/esm/types.js +2 -0
  146. package/dist/esm/types.js.map +1 -0
  147. package/dist/esm/utils/accounts/claim.d.ts +5 -0
  148. package/dist/esm/utils/accounts/claim.d.ts.map +1 -0
  149. package/dist/esm/utils/accounts/claim.js +26 -0
  150. package/dist/esm/utils/accounts/claim.js.map +1 -0
  151. package/dist/esm/utils/accounts/config.d.ts +18 -0
  152. package/dist/esm/utils/accounts/config.d.ts.map +1 -0
  153. package/dist/esm/utils/accounts/config.js +45 -0
  154. package/dist/esm/utils/accounts/config.js.map +1 -0
  155. package/dist/esm/utils/accounts/emitter.d.ts +10 -0
  156. package/dist/esm/utils/accounts/emitter.d.ts.map +1 -0
  157. package/dist/esm/utils/accounts/emitter.js +16 -0
  158. package/dist/esm/utils/accounts/emitter.js.map +1 -0
  159. package/dist/esm/utils/accounts/feeCollector.d.ts +3 -0
  160. package/dist/esm/utils/accounts/feeCollector.d.ts.map +1 -0
  161. package/dist/esm/utils/accounts/feeCollector.js +5 -0
  162. package/dist/esm/utils/accounts/feeCollector.js.map +1 -0
  163. package/dist/esm/utils/accounts/guardianSet.d.ts +13 -0
  164. package/dist/esm/utils/accounts/guardianSet.d.ts.map +1 -0
  165. package/dist/esm/utils/accounts/guardianSet.js +43 -0
  166. package/dist/esm/utils/accounts/guardianSet.js.map +1 -0
  167. package/dist/esm/utils/accounts/index.d.ts +10 -0
  168. package/dist/esm/utils/accounts/index.d.ts.map +1 -0
  169. package/dist/esm/utils/accounts/index.js +10 -0
  170. package/dist/esm/utils/accounts/index.js.map +1 -0
  171. package/dist/esm/utils/accounts/postedVaa.d.ts +4 -0
  172. package/dist/esm/utils/accounts/postedVaa.d.ts.map +1 -0
  173. package/dist/esm/utils/accounts/postedVaa.js +5 -0
  174. package/dist/esm/utils/accounts/postedVaa.js.map +1 -0
  175. package/dist/esm/utils/accounts/sequence.d.ts +13 -0
  176. package/dist/esm/utils/accounts/sequence.d.ts.map +1 -0
  177. package/dist/esm/utils/accounts/sequence.js +36 -0
  178. package/dist/esm/utils/accounts/sequence.js.map +1 -0
  179. package/dist/esm/utils/accounts/signatureSet.d.ts +11 -0
  180. package/dist/esm/utils/accounts/signatureSet.d.ts.map +1 -0
  181. package/dist/esm/utils/accounts/signatureSet.js +26 -0
  182. package/dist/esm/utils/accounts/signatureSet.js.map +1 -0
  183. package/dist/esm/utils/accounts/upgrade.d.ts +3 -0
  184. package/dist/esm/utils/accounts/upgrade.d.ts.map +1 -0
  185. package/dist/esm/utils/accounts/upgrade.js +5 -0
  186. package/dist/esm/utils/accounts/upgrade.js.map +1 -0
  187. package/dist/esm/utils/coder/accounts.d.ts +26 -0
  188. package/dist/esm/utils/coder/accounts.d.ts.map +1 -0
  189. package/dist/esm/utils/coder/accounts.js +58 -0
  190. package/dist/esm/utils/coder/accounts.js.map +1 -0
  191. package/dist/esm/utils/coder/events.d.ts +7 -0
  192. package/dist/esm/utils/coder/events.d.ts.map +1 -0
  193. package/dist/esm/utils/coder/events.js +7 -0
  194. package/dist/esm/utils/coder/events.js.map +1 -0
  195. package/dist/esm/utils/coder/idl.d.ts +8 -0
  196. package/dist/esm/utils/coder/idl.d.ts.map +1 -0
  197. package/dist/esm/utils/coder/idl.js +87 -0
  198. package/dist/esm/utils/coder/idl.js.map +1 -0
  199. package/dist/esm/utils/coder/index.d.ts +16 -0
  200. package/dist/esm/utils/coder/index.d.ts.map +1 -0
  201. package/dist/esm/utils/coder/index.js +21 -0
  202. package/dist/esm/utils/coder/index.js.map +1 -0
  203. package/dist/esm/utils/coder/instruction.d.ts +26 -0
  204. package/dist/esm/utils/coder/instruction.d.ts.map +1 -0
  205. package/dist/esm/utils/coder/instruction.js +83 -0
  206. package/dist/esm/utils/coder/instruction.js.map +1 -0
  207. package/dist/esm/utils/coder/state.d.ts +8 -0
  208. package/dist/esm/utils/coder/state.d.ts.map +1 -0
  209. package/dist/esm/utils/coder/state.js +10 -0
  210. package/dist/esm/utils/coder/state.js.map +1 -0
  211. package/dist/esm/utils/coder/types.d.ts +8 -0
  212. package/dist/esm/utils/coder/types.d.ts.map +1 -0
  213. package/dist/esm/utils/coder/types.js +10 -0
  214. package/dist/esm/utils/coder/types.js.map +1 -0
  215. package/dist/esm/utils/cpi.d.ts +52 -0
  216. package/dist/esm/utils/cpi.d.ts.map +1 -0
  217. package/dist/esm/utils/cpi.js +43 -0
  218. package/dist/esm/utils/cpi.js.map +1 -0
  219. package/dist/esm/utils/index.d.ts +5 -0
  220. package/dist/esm/utils/index.d.ts.map +1 -0
  221. package/dist/esm/utils/index.js +5 -0
  222. package/dist/esm/utils/index.js.map +1 -0
  223. package/dist/esm/utils/instructions/feeTransfer.d.ts +3 -0
  224. package/dist/esm/utils/instructions/feeTransfer.d.ts.map +1 -0
  225. package/dist/esm/utils/instructions/feeTransfer.js +10 -0
  226. package/dist/esm/utils/instructions/feeTransfer.js.map +1 -0
  227. package/dist/esm/utils/instructions/governance.d.ts +52 -0
  228. package/dist/esm/utils/instructions/governance.d.ts.map +1 -0
  229. package/dist/esm/utils/instructions/governance.js +100 -0
  230. package/dist/esm/utils/instructions/governance.js.map +1 -0
  231. package/dist/esm/utils/instructions/index.d.ts +7 -0
  232. package/dist/esm/utils/instructions/index.d.ts.map +1 -0
  233. package/dist/esm/utils/instructions/index.js +7 -0
  234. package/dist/esm/utils/instructions/index.js.map +1 -0
  235. package/dist/esm/utils/instructions/initialize.d.ts +14 -0
  236. package/dist/esm/utils/instructions/initialize.d.ts.map +1 -0
  237. package/dist/esm/utils/instructions/initialize.js +29 -0
  238. package/dist/esm/utils/instructions/initialize.js.map +1 -0
  239. package/dist/esm/utils/instructions/postMessage.d.ts +16 -0
  240. package/dist/esm/utils/instructions/postMessage.d.ts.map +1 -0
  241. package/dist/esm/utils/instructions/postMessage.js +36 -0
  242. package/dist/esm/utils/instructions/postMessage.js.map +1 -0
  243. package/dist/esm/utils/instructions/postVaa.d.ts +28 -0
  244. package/dist/esm/utils/instructions/postVaa.d.ts.map +1 -0
  245. package/dist/esm/utils/instructions/postVaa.js +45 -0
  246. package/dist/esm/utils/instructions/postVaa.js.map +1 -0
  247. package/dist/esm/utils/instructions/secp256k1.d.ts +30 -0
  248. package/dist/esm/utils/instructions/secp256k1.d.ts.map +1 -0
  249. package/dist/esm/utils/instructions/secp256k1.js +106 -0
  250. package/dist/esm/utils/instructions/secp256k1.js.map +1 -0
  251. package/dist/esm/utils/instructions/verifySignature.d.ts +32 -0
  252. package/dist/esm/utils/instructions/verifySignature.d.ts.map +1 -0
  253. package/dist/esm/utils/instructions/verifySignature.js +89 -0
  254. package/dist/esm/utils/instructions/verifySignature.js.map +1 -0
  255. package/dist/esm/utils/program.d.ts +8 -0
  256. package/dist/esm/utils/program.d.ts.map +1 -0
  257. package/dist/esm/utils/program.js +15 -0
  258. package/dist/esm/utils/program.js.map +1 -0
  259. package/package.json +58 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SolanaWormholeCore = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
6
+ const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
7
+ const utils_1 = require("./utils");
8
+ const postMessageLayout_1 = require("./postMessageLayout");
9
+ const SOLANA_SEQ_LOG = 'Program log: Sequence: ';
10
+ class SolanaWormholeCore {
11
+ network;
12
+ chain;
13
+ connection;
14
+ contracts;
15
+ chainId;
16
+ coreBridge;
17
+ address;
18
+ bridgeData;
19
+ constructor(network, chain, connection, contracts) {
20
+ this.network = network;
21
+ this.chain = chain;
22
+ this.connection = connection;
23
+ this.contracts = contracts;
24
+ this.chainId = (0, sdk_connect_1.toChainId)(chain);
25
+ const coreBridgeAddress = contracts.coreBridge;
26
+ if (!coreBridgeAddress)
27
+ throw new Error(`CoreBridge contract Address for chain ${chain} not found`);
28
+ this.address = coreBridgeAddress;
29
+ this.coreBridge = (0, utils_1.createReadOnlyWormholeProgramInterface)(coreBridgeAddress, connection);
30
+ }
31
+ static async fromRpc(connection, config) {
32
+ const [network, chain] = await sdk_solana_1.SolanaPlatform.chainFromRpc(connection);
33
+ const conf = config[chain];
34
+ if (conf.network !== network)
35
+ throw new Error(`Network mismatch for chain ${chain}: ${conf.network} != ${network}`);
36
+ return new SolanaWormholeCore(network, chain, connection, config[chain].contracts);
37
+ }
38
+ async ensureBridgeConfig() {
39
+ // cache lookups since this should not change frequently
40
+ if (!this.bridgeData)
41
+ this.bridgeData = await (0, utils_1.getWormholeBridgeData)(this.connection, this.coreBridge.programId);
42
+ }
43
+ async getMessageFee() {
44
+ await this.ensureBridgeConfig();
45
+ return this.bridgeData.config.fee;
46
+ }
47
+ async getGuardianSetIndex() {
48
+ await this.ensureBridgeConfig();
49
+ return this.bridgeData.guardianSetIndex;
50
+ }
51
+ async *publishMessage(sender, message, nonce, consistencyLevel) {
52
+ const messageAccount = web3_js_1.Keypair.generate();
53
+ const payer = new sdk_solana_1.SolanaAddress(sender).unwrap();
54
+ const postMsgIx = (0, utils_1.createPostMessageInstruction)(this.connection, this.coreBridge.programId, payer, messageAccount.publicKey, message, nonce, consistencyLevel);
55
+ const fee = await this.getMessageFee();
56
+ const feeTransferIx = (0, utils_1.createBridgeFeeTransferInstruction)(this.coreBridge.programId, payer, fee);
57
+ const transaction = new web3_js_1.Transaction();
58
+ transaction.feePayer = payer;
59
+ transaction.add(feeTransferIx, postMsgIx);
60
+ yield this.createUnsignedTx({ transaction, signers: [messageAccount] }, 'Core.PublishMessage');
61
+ }
62
+ async *verifyMessage(sender, vaa) {
63
+ yield* this.postVaa(sender, vaa);
64
+ }
65
+ async *postVaa(sender, vaa) {
66
+ const postedVaaAddress = (0, utils_1.derivePostedVaaKey)(this.coreBridge.programId, Buffer.from(vaa.hash));
67
+ // no need to do anything else, this vaa is posted
68
+ const isPosted = await this.connection.getAccountInfo(postedVaaAddress);
69
+ if (isPosted)
70
+ return;
71
+ const senderAddr = new sdk_solana_1.SolanaAddress(sender).unwrap();
72
+ const signatureSet = web3_js_1.Keypair.generate();
73
+ const verifySignaturesInstructions = await (0, utils_1.createVerifySignaturesInstructions)(this.connection, this.coreBridge.programId, senderAddr, vaa, signatureSet.publicKey);
74
+ // Create a new transaction for every 2 instructions
75
+ for (let i = 0; i < verifySignaturesInstructions.length; i += 2) {
76
+ const verifySigTx = new web3_js_1.Transaction().add(...verifySignaturesInstructions.slice(i, i + 2));
77
+ verifySigTx.feePayer = senderAddr;
78
+ yield this.createUnsignedTx({ transaction: verifySigTx, signers: [signatureSet] }, 'Core.VerifySignature', true);
79
+ }
80
+ // Finally create the VAA posting transaction
81
+ const postVaaTx = new web3_js_1.Transaction().add((0, utils_1.createPostVaaInstruction)(this.connection, this.coreBridge.programId, senderAddr, vaa, signatureSet.publicKey));
82
+ postVaaTx.feePayer = senderAddr;
83
+ yield this.createUnsignedTx({ transaction: postVaaTx }, 'Core.PostVAA');
84
+ }
85
+ static parseSequenceFromLog(coreBridgeAddress, transaction) {
86
+ if (!transaction || !transaction.meta?.innerInstructions[0]?.instructions)
87
+ return null;
88
+ const instructions = transaction.meta?.innerInstructions[0].instructions;
89
+ const accounts = transaction.transaction.message.staticAccountKeys;
90
+ // find the instruction where the programId equals the Wormhole ProgramId and the emitter equals the Token Bridge
91
+ const bridgeIx = instructions.filter((i) => {
92
+ const programId = accounts[i.programIdIndex].toString();
93
+ return programId === coreBridgeAddress;
94
+ });
95
+ if (bridgeIx.length < 1)
96
+ return null;
97
+ if (accounts.length < 3)
98
+ return null;
99
+ const emitter = new sdk_solana_1.SolanaAddress(accounts[bridgeIx[0].accounts[2]]).toUniversalAddress();
100
+ const sequence = transaction.meta?.logMessages
101
+ ?.filter((msg) => msg.startsWith(SOLANA_SEQ_LOG))?.[0]
102
+ ?.replace(SOLANA_SEQ_LOG, '');
103
+ if (!sequence)
104
+ return null;
105
+ return [emitter, BigInt(sequence)];
106
+ }
107
+ async getMessageAccountKeys(response) {
108
+ // Resolve any LUT accounts if necessary
109
+ let accounts;
110
+ // a string type is indicative of a 'legacy' transaction
111
+ if (typeof response.transaction.message.version !== 'string') {
112
+ if (response.meta.loadedAddresses) {
113
+ accounts = response.transaction.message.getAccountKeys({
114
+ accountKeysFromLookups: response.meta.loadedAddresses,
115
+ });
116
+ }
117
+ else {
118
+ const atls = await Promise.all(response.transaction.message.addressTableLookups.map(async (atl) => {
119
+ const lut = await this.connection.getAddressLookupTable(atl.accountKey);
120
+ if (!lut || !lut.value)
121
+ throw new Error('Could not resolve lookup table: ' + atl.accountKey.toBase58());
122
+ return lut.value;
123
+ }));
124
+ accounts = response.transaction.message.getAccountKeys({
125
+ addressLookupTableAccounts: atls,
126
+ });
127
+ }
128
+ }
129
+ else {
130
+ accounts = response.transaction.message.getAccountKeys();
131
+ }
132
+ return accounts;
133
+ }
134
+ async findBridgeInstructions(accounts, response) {
135
+ // find the instruction where the programId equals the Wormhole ProgramId
136
+ const iix = response
137
+ .meta.innerInstructions[0].instructions.filter((i) => {
138
+ const programId = accounts.get(i.programIdIndex).toString();
139
+ const wormholeCore = this.coreBridge.programId.toString();
140
+ return programId === wormholeCore;
141
+ })
142
+ .map((ix) => {
143
+ // map over inner ixs to put it in the same format as the compiled instructions
144
+ // from the message
145
+ return {
146
+ programIdIndex: ix.programIdIndex,
147
+ accountKeyIndexes: ix.accounts,
148
+ };
149
+ });
150
+ const cix = response.transaction.message.compiledInstructions.filter((i) => {
151
+ const programId = accounts.get(i.programIdIndex).toString();
152
+ const wormholeCore = this.coreBridge.programId.toString();
153
+ return programId === wormholeCore;
154
+ });
155
+ // find the instruction where the programId equals the Wormhole ProgramId
156
+ return [...iix, ...cix];
157
+ }
158
+ async parsePostMessageAccount(messageAccount) {
159
+ const acctInfo = await this.connection.getAccountInfo(messageAccount);
160
+ if (!acctInfo?.data)
161
+ throw new Error('No data found in message account');
162
+ const { timestamp, emitterAddress, emitterChain, consistencyLevel, sequence, nonce, payload, } = (0, sdk_connect_1.deserializeLayout)(postMessageLayout_1.postMessageLayout, new Uint8Array(acctInfo?.data));
163
+ return (0, sdk_connect_1.createVAA)('Uint8Array', {
164
+ guardianSet: await this.getGuardianSetIndex(),
165
+ emitterChain: (0, sdk_connect_1.toChain)(emitterChain),
166
+ timestamp,
167
+ emitterAddress,
168
+ consistencyLevel,
169
+ sequence,
170
+ nonce,
171
+ payload,
172
+ signatures: [],
173
+ });
174
+ }
175
+ async parseTransaction(txid) {
176
+ const response = await this.connection.getTransaction(txid, {
177
+ maxSupportedTransactionVersion: 0,
178
+ });
179
+ if (!response || !response.meta || !response.meta.innerInstructions)
180
+ throw new Error('transaction not found');
181
+ // The sequence is frequently found in the log, pull from there if we can
182
+ const loggedSeq = SolanaWormholeCore.parseSequenceFromLog(this.coreBridge.programId.toBase58(), response);
183
+ if (loggedSeq)
184
+ return [
185
+ {
186
+ chain: this.chain,
187
+ emitter: loggedSeq[0],
188
+ sequence: loggedSeq[1],
189
+ },
190
+ ];
191
+ // Otherwise we need to get it from the message account
192
+ const accounts = await this.getMessageAccountKeys(response);
193
+ const bridgeInstructions = await this.findBridgeInstructions(accounts, response);
194
+ if (!bridgeInstructions || bridgeInstructions.length === 0)
195
+ throw new Error('no bridge messages found');
196
+ const messagePromises = bridgeInstructions.map(async (bi) => {
197
+ const messageAcct = accounts.get(bi.accountKeyIndexes[1]);
198
+ const vaa = await this.parsePostMessageAccount(messageAcct);
199
+ return {
200
+ chain: vaa.emitterChain,
201
+ emitter: vaa.emitterAddress,
202
+ sequence: vaa.sequence,
203
+ };
204
+ });
205
+ return await Promise.all(messagePromises);
206
+ }
207
+ async parseMessages(txid) {
208
+ const response = await this.connection.getTransaction(txid, {
209
+ maxSupportedTransactionVersion: 0,
210
+ });
211
+ if (!response || !response.meta || !response.meta.innerInstructions)
212
+ throw new Error('transaction not found');
213
+ // Otherwise we need to get it from the message account
214
+ const accounts = await this.getMessageAccountKeys(response);
215
+ const bridgeInstructions = await this.findBridgeInstructions(accounts, response);
216
+ if (!bridgeInstructions || bridgeInstructions.length === 0)
217
+ throw new Error('no bridge messages found');
218
+ const messagePromises = bridgeInstructions.map(async (bi) => {
219
+ const messageAcct = accounts.get(bi.accountKeyIndexes[1]);
220
+ return await this.parsePostMessageAccount(messageAcct);
221
+ });
222
+ return await Promise.all(messagePromises);
223
+ }
224
+ createUnsignedTx(txReq, description, parallelizable = false) {
225
+ return new sdk_solana_1.SolanaUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
226
+ }
227
+ }
228
+ exports.SolanaWormholeCore = SolanaWormholeCore;
229
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './core';
2
+ export * from './types';
3
+ export * as utils from './utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.utils = void 0;
30
+ const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
31
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
32
+ const core_1 = require("./core");
33
+ (0, sdk_connect_1.registerProtocol)(sdk_solana_1._platform, 'WormholeCore', core_1.SolanaWormholeCore);
34
+ __exportStar(require("./core"), exports);
35
+ __exportStar(require("./types"), exports);
36
+ exports.utils = __importStar(require("./utils"));
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA4D;AAC5D,kEAAoE;AACpE,iCAA4C;AAE5C,IAAA,8BAAgB,EAAC,sBAAS,EAAE,cAAc,EAAE,yBAAkB,CAAC,CAAC;AAEhE,yCAAuB;AACvB,0CAAwB;AACxB,iDAAiC"}
@@ -0,0 +1,65 @@
1
+ /** Binary layout for postMessage account */
2
+ export declare const postMessageLayout: readonly [{
3
+ readonly name: "discriminator";
4
+ readonly binary: "bytes";
5
+ readonly size: 4;
6
+ }, {
7
+ readonly name: "consistencyLevel";
8
+ readonly binary: "uint";
9
+ readonly size: 1;
10
+ readonly endianness: "little";
11
+ }, {
12
+ readonly binary: "bytes";
13
+ readonly size: 32;
14
+ readonly custom: {
15
+ to: (val: Uint8Array) => import("@wormhole-foundation/sdk-connect").UniversalAddress;
16
+ from: (val: import("@wormhole-foundation/sdk-connect").UniversalAddress) => Uint8Array;
17
+ };
18
+ readonly name: "emitterAuthority";
19
+ }, {
20
+ readonly name: "messageStatus";
21
+ readonly binary: "uint";
22
+ readonly size: 1;
23
+ readonly endianness: "little";
24
+ }, {
25
+ readonly name: "gap";
26
+ readonly binary: "uint";
27
+ readonly size: 3;
28
+ }, {
29
+ readonly name: "timestamp";
30
+ readonly binary: "uint";
31
+ readonly size: 4;
32
+ readonly endianness: "little";
33
+ }, {
34
+ readonly name: "nonce";
35
+ readonly binary: "uint";
36
+ readonly size: 4;
37
+ readonly endianness: "little";
38
+ }, {
39
+ readonly name: "sequence";
40
+ readonly binary: "uint";
41
+ readonly size: 8;
42
+ readonly endianness: "little";
43
+ }, {
44
+ readonly name: "emitterChain";
45
+ readonly binary: "uint";
46
+ readonly size: 2;
47
+ readonly endianness: "little";
48
+ }, {
49
+ readonly binary: "bytes";
50
+ readonly size: 32;
51
+ readonly custom: {
52
+ to: (val: Uint8Array) => import("@wormhole-foundation/sdk-connect").UniversalAddress;
53
+ from: (val: import("@wormhole-foundation/sdk-connect").UniversalAddress) => Uint8Array;
54
+ };
55
+ readonly name: "emitterAddress";
56
+ }, {
57
+ readonly name: "payloadLength";
58
+ readonly binary: "uint";
59
+ readonly size: 4;
60
+ readonly endianness: "little";
61
+ }, {
62
+ readonly name: "payload";
63
+ readonly binary: "bytes";
64
+ }];
65
+ //# sourceMappingURL=postMessageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessageLayout.d.ts","sourceRoot":"","sources":["../../src/postMessageLayout.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaH,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postMessageLayout = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ /** Binary layout for postMessage account */
6
+ exports.postMessageLayout = [
7
+ { name: 'discriminator', binary: 'bytes', size: 4 },
8
+ { name: 'consistencyLevel', binary: 'uint', size: 1, endianness: 'little' },
9
+ { name: 'emitterAuthority', ...sdk_connect_1.layoutItems.universalAddressItem },
10
+ { name: 'messageStatus', binary: 'uint', size: 1, endianness: 'little' },
11
+ { name: 'gap', binary: 'uint', size: 3 },
12
+ { name: 'timestamp', binary: 'uint', size: 4, endianness: 'little' },
13
+ { name: 'nonce', binary: 'uint', size: 4, endianness: 'little' },
14
+ { name: 'sequence', binary: 'uint', size: 8, endianness: 'little' },
15
+ { name: 'emitterChain', binary: 'uint', size: 2, endianness: 'little' },
16
+ { name: 'emitterAddress', ...sdk_connect_1.layoutItems.universalAddressItem },
17
+ { name: 'payloadLength', binary: 'uint', size: 4, endianness: 'little' },
18
+ { name: 'payload', binary: 'bytes' },
19
+ ];
20
+ //# sourceMappingURL=postMessageLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessageLayout.js","sourceRoot":"","sources":["../../src/postMessageLayout.ts"],"names":[],"mappings":";;;AAAA,kEAAuE;AAEvE,4CAA4C;AAC/B,QAAA,iBAAiB,GAAG;IAC/B,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC3E,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,yBAAW,CAAC,oBAAoB,EAAE;IACjE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IACxE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IACxC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IACpE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IAChE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IACnE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IACvE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,yBAAW,CAAC,oBAAoB,EAAE;IAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IACxE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;CACX,CAAC"}