@wormhole-foundation/sdk-solana-core 0.5.0-beta.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 (261) hide show
  1. package/dist/cjs/anchor-idl/wormhole.json +611 -0
  2. package/dist/cjs/core.d.ts +26 -0
  3. package/dist/cjs/core.d.ts.map +1 -0
  4. package/dist/cjs/core.js +181 -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/types.d.ts +612 -0
  11. package/dist/cjs/types.d.ts.map +1 -0
  12. package/dist/cjs/types.js +3 -0
  13. package/dist/cjs/types.js.map +1 -0
  14. package/dist/cjs/utils/accounts/claim.d.ts +5 -0
  15. package/dist/cjs/utils/accounts/claim.d.ts.map +1 -0
  16. package/dist/cjs/utils/accounts/claim.js +31 -0
  17. package/dist/cjs/utils/accounts/claim.js.map +1 -0
  18. package/dist/cjs/utils/accounts/config.d.ts +18 -0
  19. package/dist/cjs/utils/accounts/config.d.ts.map +1 -0
  20. package/dist/cjs/utils/accounts/config.js +52 -0
  21. package/dist/cjs/utils/accounts/config.js.map +1 -0
  22. package/dist/cjs/utils/accounts/emitter.d.ts +10 -0
  23. package/dist/cjs/utils/accounts/emitter.d.ts.map +1 -0
  24. package/dist/cjs/utils/accounts/emitter.js +22 -0
  25. package/dist/cjs/utils/accounts/emitter.js.map +1 -0
  26. package/dist/cjs/utils/accounts/feeCollector.d.ts +3 -0
  27. package/dist/cjs/utils/accounts/feeCollector.d.ts.map +1 -0
  28. package/dist/cjs/utils/accounts/feeCollector.js +9 -0
  29. package/dist/cjs/utils/accounts/feeCollector.js.map +1 -0
  30. package/dist/cjs/utils/accounts/guardianSet.d.ts +13 -0
  31. package/dist/cjs/utils/accounts/guardianSet.d.ts.map +1 -0
  32. package/dist/cjs/utils/accounts/guardianSet.js +49 -0
  33. package/dist/cjs/utils/accounts/guardianSet.js.map +1 -0
  34. package/dist/cjs/utils/accounts/index.d.ts +10 -0
  35. package/dist/cjs/utils/accounts/index.d.ts.map +1 -0
  36. package/dist/cjs/utils/accounts/index.js +26 -0
  37. package/dist/cjs/utils/accounts/index.js.map +1 -0
  38. package/dist/cjs/utils/accounts/postedVaa.d.ts +4 -0
  39. package/dist/cjs/utils/accounts/postedVaa.d.ts.map +1 -0
  40. package/dist/cjs/utils/accounts/postedVaa.js +9 -0
  41. package/dist/cjs/utils/accounts/postedVaa.js.map +1 -0
  42. package/dist/cjs/utils/accounts/sequence.d.ts +13 -0
  43. package/dist/cjs/utils/accounts/sequence.d.ts.map +1 -0
  44. package/dist/cjs/utils/accounts/sequence.js +42 -0
  45. package/dist/cjs/utils/accounts/sequence.js.map +1 -0
  46. package/dist/cjs/utils/accounts/signatureSet.d.ts +11 -0
  47. package/dist/cjs/utils/accounts/signatureSet.d.ts.map +1 -0
  48. package/dist/cjs/utils/accounts/signatureSet.js +31 -0
  49. package/dist/cjs/utils/accounts/signatureSet.js.map +1 -0
  50. package/dist/cjs/utils/accounts/upgrade.d.ts +3 -0
  51. package/dist/cjs/utils/accounts/upgrade.d.ts.map +1 -0
  52. package/dist/cjs/utils/accounts/upgrade.js +9 -0
  53. package/dist/cjs/utils/accounts/upgrade.js.map +1 -0
  54. package/dist/cjs/utils/coder/accounts.d.ts +26 -0
  55. package/dist/cjs/utils/coder/accounts.d.ts.map +1 -0
  56. package/dist/cjs/utils/coder/accounts.js +64 -0
  57. package/dist/cjs/utils/coder/accounts.js.map +1 -0
  58. package/dist/cjs/utils/coder/events.d.ts +7 -0
  59. package/dist/cjs/utils/coder/events.d.ts.map +1 -0
  60. package/dist/cjs/utils/coder/events.js +11 -0
  61. package/dist/cjs/utils/coder/events.js.map +1 -0
  62. package/dist/cjs/utils/coder/idl.d.ts +8 -0
  63. package/dist/cjs/utils/coder/idl.d.ts.map +1 -0
  64. package/dist/cjs/utils/coder/idl.js +114 -0
  65. package/dist/cjs/utils/coder/idl.js.map +1 -0
  66. package/dist/cjs/utils/coder/index.d.ts +16 -0
  67. package/dist/cjs/utils/coder/index.d.ts.map +1 -0
  68. package/dist/cjs/utils/coder/index.js +26 -0
  69. package/dist/cjs/utils/coder/index.js.map +1 -0
  70. package/dist/cjs/utils/coder/instruction.d.ts +26 -0
  71. package/dist/cjs/utils/coder/instruction.d.ts.map +1 -0
  72. package/dist/cjs/utils/coder/instruction.js +110 -0
  73. package/dist/cjs/utils/coder/instruction.js.map +1 -0
  74. package/dist/cjs/utils/coder/state.d.ts +8 -0
  75. package/dist/cjs/utils/coder/state.d.ts.map +1 -0
  76. package/dist/cjs/utils/coder/state.js +14 -0
  77. package/dist/cjs/utils/coder/state.js.map +1 -0
  78. package/dist/cjs/utils/coder/types.d.ts +8 -0
  79. package/dist/cjs/utils/coder/types.d.ts.map +1 -0
  80. package/dist/cjs/utils/coder/types.js +14 -0
  81. package/dist/cjs/utils/coder/types.js.map +1 -0
  82. package/dist/cjs/utils/cpi.d.ts +52 -0
  83. package/dist/cjs/utils/cpi.d.ts.map +1 -0
  84. package/dist/cjs/utils/cpi.js +48 -0
  85. package/dist/cjs/utils/cpi.js.map +1 -0
  86. package/dist/cjs/utils/index.d.ts +5 -0
  87. package/dist/cjs/utils/index.d.ts.map +1 -0
  88. package/dist/cjs/utils/index.js +21 -0
  89. package/dist/cjs/utils/index.js.map +1 -0
  90. package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.d.ts +6 -0
  91. package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.d.ts.map +1 -0
  92. package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.js +14 -0
  93. package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.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 +26 -0
  132. package/dist/esm/core.d.ts.map +1 -0
  133. package/dist/esm/core.js +177 -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/types.d.ts +612 -0
  140. package/dist/esm/types.d.ts.map +1 -0
  141. package/dist/esm/types.js +2 -0
  142. package/dist/esm/types.js.map +1 -0
  143. package/dist/esm/utils/accounts/claim.d.ts +5 -0
  144. package/dist/esm/utils/accounts/claim.d.ts.map +1 -0
  145. package/dist/esm/utils/accounts/claim.js +26 -0
  146. package/dist/esm/utils/accounts/claim.js.map +1 -0
  147. package/dist/esm/utils/accounts/config.d.ts +18 -0
  148. package/dist/esm/utils/accounts/config.d.ts.map +1 -0
  149. package/dist/esm/utils/accounts/config.js +45 -0
  150. package/dist/esm/utils/accounts/config.js.map +1 -0
  151. package/dist/esm/utils/accounts/emitter.d.ts +10 -0
  152. package/dist/esm/utils/accounts/emitter.d.ts.map +1 -0
  153. package/dist/esm/utils/accounts/emitter.js +16 -0
  154. package/dist/esm/utils/accounts/emitter.js.map +1 -0
  155. package/dist/esm/utils/accounts/feeCollector.d.ts +3 -0
  156. package/dist/esm/utils/accounts/feeCollector.d.ts.map +1 -0
  157. package/dist/esm/utils/accounts/feeCollector.js +5 -0
  158. package/dist/esm/utils/accounts/feeCollector.js.map +1 -0
  159. package/dist/esm/utils/accounts/guardianSet.d.ts +13 -0
  160. package/dist/esm/utils/accounts/guardianSet.d.ts.map +1 -0
  161. package/dist/esm/utils/accounts/guardianSet.js +43 -0
  162. package/dist/esm/utils/accounts/guardianSet.js.map +1 -0
  163. package/dist/esm/utils/accounts/index.d.ts +10 -0
  164. package/dist/esm/utils/accounts/index.d.ts.map +1 -0
  165. package/dist/esm/utils/accounts/index.js +10 -0
  166. package/dist/esm/utils/accounts/index.js.map +1 -0
  167. package/dist/esm/utils/accounts/postedVaa.d.ts +4 -0
  168. package/dist/esm/utils/accounts/postedVaa.d.ts.map +1 -0
  169. package/dist/esm/utils/accounts/postedVaa.js +5 -0
  170. package/dist/esm/utils/accounts/postedVaa.js.map +1 -0
  171. package/dist/esm/utils/accounts/sequence.d.ts +13 -0
  172. package/dist/esm/utils/accounts/sequence.d.ts.map +1 -0
  173. package/dist/esm/utils/accounts/sequence.js +36 -0
  174. package/dist/esm/utils/accounts/sequence.js.map +1 -0
  175. package/dist/esm/utils/accounts/signatureSet.d.ts +11 -0
  176. package/dist/esm/utils/accounts/signatureSet.d.ts.map +1 -0
  177. package/dist/esm/utils/accounts/signatureSet.js +26 -0
  178. package/dist/esm/utils/accounts/signatureSet.js.map +1 -0
  179. package/dist/esm/utils/accounts/upgrade.d.ts +3 -0
  180. package/dist/esm/utils/accounts/upgrade.d.ts.map +1 -0
  181. package/dist/esm/utils/accounts/upgrade.js +5 -0
  182. package/dist/esm/utils/accounts/upgrade.js.map +1 -0
  183. package/dist/esm/utils/coder/accounts.d.ts +26 -0
  184. package/dist/esm/utils/coder/accounts.d.ts.map +1 -0
  185. package/dist/esm/utils/coder/accounts.js +58 -0
  186. package/dist/esm/utils/coder/accounts.js.map +1 -0
  187. package/dist/esm/utils/coder/events.d.ts +7 -0
  188. package/dist/esm/utils/coder/events.d.ts.map +1 -0
  189. package/dist/esm/utils/coder/events.js +7 -0
  190. package/dist/esm/utils/coder/events.js.map +1 -0
  191. package/dist/esm/utils/coder/idl.d.ts +8 -0
  192. package/dist/esm/utils/coder/idl.d.ts.map +1 -0
  193. package/dist/esm/utils/coder/idl.js +87 -0
  194. package/dist/esm/utils/coder/idl.js.map +1 -0
  195. package/dist/esm/utils/coder/index.d.ts +16 -0
  196. package/dist/esm/utils/coder/index.d.ts.map +1 -0
  197. package/dist/esm/utils/coder/index.js +21 -0
  198. package/dist/esm/utils/coder/index.js.map +1 -0
  199. package/dist/esm/utils/coder/instruction.d.ts +26 -0
  200. package/dist/esm/utils/coder/instruction.d.ts.map +1 -0
  201. package/dist/esm/utils/coder/instruction.js +83 -0
  202. package/dist/esm/utils/coder/instruction.js.map +1 -0
  203. package/dist/esm/utils/coder/state.d.ts +8 -0
  204. package/dist/esm/utils/coder/state.d.ts.map +1 -0
  205. package/dist/esm/utils/coder/state.js +10 -0
  206. package/dist/esm/utils/coder/state.js.map +1 -0
  207. package/dist/esm/utils/coder/types.d.ts +8 -0
  208. package/dist/esm/utils/coder/types.d.ts.map +1 -0
  209. package/dist/esm/utils/coder/types.js +10 -0
  210. package/dist/esm/utils/coder/types.js.map +1 -0
  211. package/dist/esm/utils/cpi.d.ts +52 -0
  212. package/dist/esm/utils/cpi.d.ts.map +1 -0
  213. package/dist/esm/utils/cpi.js +43 -0
  214. package/dist/esm/utils/cpi.js.map +1 -0
  215. package/dist/esm/utils/index.d.ts +5 -0
  216. package/dist/esm/utils/index.d.ts.map +1 -0
  217. package/dist/esm/utils/index.js +5 -0
  218. package/dist/esm/utils/index.js.map +1 -0
  219. package/dist/esm/utils/instructions/bpfLoaderUpgradeable.d.ts +6 -0
  220. package/dist/esm/utils/instructions/bpfLoaderUpgradeable.d.ts.map +1 -0
  221. package/dist/esm/utils/instructions/bpfLoaderUpgradeable.js +9 -0
  222. package/dist/esm/utils/instructions/bpfLoaderUpgradeable.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/dist/tsconfig.cjs.tsbuildinfo +1 -0
  260. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  261. package/package.json +57 -0
@@ -0,0 +1,52 @@
1
+ import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
2
+ import { VAA } from '@wormhole-foundation/sdk-connect';
3
+ export declare function createSetFeesInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:SetMessageFee'>): TransactionInstruction;
4
+ export interface SetFeesAccounts {
5
+ payer: PublicKey;
6
+ bridge: PublicKey;
7
+ vaa: PublicKey;
8
+ claim: PublicKey;
9
+ systemProgram: PublicKey;
10
+ }
11
+ export declare function getSetFeesAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:SetMessageFee'>): SetFeesAccounts;
12
+ export declare function createTransferFeesInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, recipient: PublicKeyInitData, vaa: VAA<'WormholeCore:TransferFees'>): TransactionInstruction;
13
+ export interface TransferFeesAccounts {
14
+ payer: PublicKey;
15
+ bridge: PublicKey;
16
+ vaa: PublicKey;
17
+ claim: PublicKey;
18
+ feeCollector: PublicKey;
19
+ recipient: PublicKey;
20
+ rent: PublicKey;
21
+ systemProgram: PublicKey;
22
+ }
23
+ export declare function getTransferFeesAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, recipient: PublicKeyInitData, vaa: VAA<'WormholeCore:TransferFees'>): TransferFeesAccounts;
24
+ export declare function createUpgradeGuardianSetInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:GuardianSetUpgrade'>): TransactionInstruction;
25
+ export interface UpgradeGuardianSetAccounts {
26
+ payer: PublicKey;
27
+ bridge: PublicKey;
28
+ vaa: PublicKey;
29
+ claim: PublicKey;
30
+ guardianSetOld: PublicKey;
31
+ guardianSetNew: PublicKey;
32
+ systemProgram: PublicKey;
33
+ }
34
+ export declare function getUpgradeGuardianSetAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:GuardianSetUpgrade'>): UpgradeGuardianSetAccounts;
35
+ export declare function createUpgradeContractInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:UpgradeContract'>): TransactionInstruction;
36
+ export interface UpgradeContractAccounts {
37
+ payer: PublicKey;
38
+ bridge: PublicKey;
39
+ vaa: PublicKey;
40
+ claim: PublicKey;
41
+ upgradeAuthority: PublicKey;
42
+ spill: PublicKey;
43
+ implementation: PublicKey;
44
+ programData: PublicKey;
45
+ wormholeProgram: PublicKey;
46
+ rent: PublicKey;
47
+ clock: PublicKey;
48
+ bpfLoaderUpgradeable: PublicKey;
49
+ systemProgram: PublicKey;
50
+ }
51
+ export declare function getUpgradeContractAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:UpgradeContract'>, spill?: PublicKeyInitData): UpgradeContractAccounts;
52
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUpgradeContractAccounts = exports.createUpgradeContractInstruction = exports.getUpgradeGuardianSetAccounts = exports.createUpgradeGuardianSetInstruction = exports.getTransferFeesAccounts = exports.createTransferFeesInstruction = exports.getSetFeesAccounts = exports.createSetFeesInstruction = 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 accounts_1 = require("../accounts");
8
+ const program_1 = require("../program");
9
+ function createSetFeesInstruction(connection, wormholeProgramId, payer, vaa) {
10
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.setFees();
11
+ // @ts-ignore
12
+ return methods._ixFn(...methods._args, {
13
+ accounts: getSetFeesAccounts(wormholeProgramId, payer, vaa),
14
+ signers: undefined,
15
+ remainingAccounts: undefined,
16
+ preInstructions: undefined,
17
+ postInstructions: undefined,
18
+ });
19
+ }
20
+ exports.createSetFeesInstruction = createSetFeesInstruction;
21
+ function getSetFeesAccounts(wormholeProgramId, payer, vaa) {
22
+ return {
23
+ payer: new web3_js_1.PublicKey(payer),
24
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
25
+ vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
26
+ claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
27
+ systemProgram: web3_js_1.SystemProgram.programId,
28
+ };
29
+ }
30
+ exports.getSetFeesAccounts = getSetFeesAccounts;
31
+ function createTransferFeesInstruction(connection, wormholeProgramId, payer, recipient, vaa) {
32
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.transferFees();
33
+ // @ts-ignore
34
+ return methods._ixFn(...methods._args, {
35
+ accounts: getTransferFeesAccounts(wormholeProgramId, payer, recipient, vaa),
36
+ signers: undefined,
37
+ remainingAccounts: undefined,
38
+ preInstructions: undefined,
39
+ postInstructions: undefined,
40
+ });
41
+ }
42
+ exports.createTransferFeesInstruction = createTransferFeesInstruction;
43
+ function getTransferFeesAccounts(wormholeProgramId, payer, recipient, vaa) {
44
+ return {
45
+ payer: new web3_js_1.PublicKey(payer),
46
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
47
+ vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
48
+ claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
49
+ feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
50
+ recipient: new web3_js_1.PublicKey(recipient),
51
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
52
+ systemProgram: web3_js_1.SystemProgram.programId,
53
+ };
54
+ }
55
+ exports.getTransferFeesAccounts = getTransferFeesAccounts;
56
+ function createUpgradeGuardianSetInstruction(connection, wormholeProgramId, payer, vaa) {
57
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.upgradeGuardianSet();
58
+ // @ts-ignore
59
+ return methods._ixFn(...methods._args, {
60
+ accounts: getUpgradeGuardianSetAccounts(wormholeProgramId, payer, vaa),
61
+ signers: undefined,
62
+ remainingAccounts: undefined,
63
+ preInstructions: undefined,
64
+ postInstructions: undefined,
65
+ });
66
+ }
67
+ exports.createUpgradeGuardianSetInstruction = createUpgradeGuardianSetInstruction;
68
+ function getUpgradeGuardianSetAccounts(wormholeProgramId, payer, vaa) {
69
+ return {
70
+ payer: new web3_js_1.PublicKey(payer),
71
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
72
+ vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
73
+ claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
74
+ guardianSetOld: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet),
75
+ guardianSetNew: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet + 1),
76
+ systemProgram: web3_js_1.SystemProgram.programId,
77
+ };
78
+ }
79
+ exports.getUpgradeGuardianSetAccounts = getUpgradeGuardianSetAccounts;
80
+ function createUpgradeContractInstruction(connection, wormholeProgramId, payer, vaa) {
81
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.upgradeContract();
82
+ // @ts-ignore
83
+ return methods._ixFn(...methods._args, {
84
+ accounts: getUpgradeContractAccounts(wormholeProgramId, payer, vaa),
85
+ signers: undefined,
86
+ remainingAccounts: undefined,
87
+ preInstructions: undefined,
88
+ postInstructions: undefined,
89
+ });
90
+ }
91
+ exports.createUpgradeContractInstruction = createUpgradeContractInstruction;
92
+ function getUpgradeContractAccounts(wormholeProgramId, payer, vaa, spill) {
93
+ const { newContract } = vaa.payload;
94
+ return {
95
+ payer: new web3_js_1.PublicKey(payer),
96
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
97
+ vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
98
+ claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
99
+ upgradeAuthority: (0, accounts_1.deriveUpgradeAuthorityKey)(wormholeProgramId),
100
+ spill: new web3_js_1.PublicKey(spill === undefined ? payer : spill),
101
+ implementation: new sdk_solana_1.SolanaAddress(newContract).unwrap(),
102
+ programData: sdk_solana_1.utils.deriveUpgradeableProgramKey(wormholeProgramId),
103
+ wormholeProgram: new web3_js_1.PublicKey(wormholeProgramId),
104
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
105
+ clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
106
+ bpfLoaderUpgradeable: sdk_solana_1.utils.BpfLoaderUpgradeable.programId,
107
+ systemProgram: web3_js_1.SystemProgram.programId,
108
+ };
109
+ }
110
+ exports.getUpgradeContractAccounts = getUpgradeContractAccounts;
111
+ //# sourceMappingURL=governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../../../src/utils/instructions/governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './feeTransfer';
2
+ export * from './governance';
3
+ export * from './initialize';
4
+ export * from './postMessage';
5
+ export * from './postVaa';
6
+ export * from './verifySignature';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./feeTransfer"), exports);
18
+ __exportStar(require("./governance"), exports);
19
+ __exportStar(require("./initialize"), exports);
20
+ __exportStar(require("./postMessage"), exports);
21
+ __exportStar(require("./postVaa"), exports);
22
+ __exportStar(require("./verifySignature"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/instructions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,4CAA0B;AAC1B,oDAAkC"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
3
+ export declare function createInitializeInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, guardianSetExpirationTime: number, fee: bigint, initialGuardians: Buffer[]): TransactionInstruction;
4
+ export interface InitializeAccounts {
5
+ bridge: PublicKey;
6
+ guardianSet: PublicKey;
7
+ feeCollector: PublicKey;
8
+ payer: PublicKey;
9
+ clock: PublicKey;
10
+ rent: PublicKey;
11
+ systemProgram: PublicKey;
12
+ }
13
+ export declare function getInitializeAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData): InitializeAccounts;
14
+ //# sourceMappingURL=initialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/initialize.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,iBAAiB,EAIjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,yBAAyB,EAAE,MAAM,EACjC,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EAAE,GACzB,sBAAsB,CAgBxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,GACvB,kBAAkB,CAUpB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getInitializeAccounts = exports.createInitializeInstruction = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const program_1 = require("../program");
9
+ const accounts_1 = require("../accounts");
10
+ const bn_js_1 = __importDefault(require("bn.js"));
11
+ function createInitializeInstruction(connection, wormholeProgramId, payer, guardianSetExpirationTime, fee, initialGuardians) {
12
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.initialize(guardianSetExpirationTime, new bn_js_1.default(fee.toString()), [
13
+ ...initialGuardians,
14
+ ]);
15
+ // @ts-ignore
16
+ return methods._ixFn(...methods._args, {
17
+ accounts: getInitializeAccounts(wormholeProgramId, payer),
18
+ signers: undefined,
19
+ remainingAccounts: undefined,
20
+ preInstructions: undefined,
21
+ postInstructions: undefined,
22
+ });
23
+ }
24
+ exports.createInitializeInstruction = createInitializeInstruction;
25
+ function getInitializeAccounts(wormholeProgramId, payer) {
26
+ return {
27
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
28
+ guardianSet: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, 0),
29
+ feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
30
+ payer: new web3_js_1.PublicKey(payer),
31
+ clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
32
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
33
+ systemProgram: web3_js_1.SystemProgram.programId,
34
+ };
35
+ }
36
+ exports.getInitializeAccounts = getInitializeAccounts;
37
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/utils/instructions/initialize.ts"],"names":[],"mappings":";;;;;;AAAA,6CAQyB;AACzB,wCAAoE;AACpE,0CAIqB;AACrB,kDAAuB;AAEvB,SAAgB,2BAA2B,CACzC,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,yBAAiC,EACjC,GAAW,EACX,gBAA0B;IAE1B,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,eAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;QACtE,GAAG,gBAAgB;KACpB,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,EAAE,KAAK,CAAQ;QAChE,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAvBD,kEAuBC;AAYD,SAAgB,qBAAqB,CACnC,iBAAoC,EACpC,KAAwB;IAExB,OAAO;QACL,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,WAAW,EAAE,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,CAAC,CAAC;QACvD,YAAY,EAAE,IAAA,gCAAqB,EAAC,iBAAiB,CAAC;QACtD,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAbD,sDAaC"}
@@ -0,0 +1,16 @@
1
+ import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
2
+ /** All accounts required to make a cross-program invocation with the Core Bridge program */
3
+ export interface PostMessageAccounts {
4
+ bridge: PublicKey;
5
+ message: PublicKey;
6
+ emitter: PublicKey;
7
+ sequence: PublicKey;
8
+ payer: PublicKey;
9
+ feeCollector: PublicKey;
10
+ clock: PublicKey;
11
+ rent: PublicKey;
12
+ systemProgram: PublicKey;
13
+ }
14
+ export declare function createPostMessageInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, messageAccount: PublicKeyInitData, payload: Uint8Array, nonce: number, consistencyLevel: number): TransactionInstruction;
15
+ export declare function getPostMessageAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, emitter?: PublicKeyInitData): PostMessageAccounts;
16
+ //# sourceMappingURL=postMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessage.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,iBAAiB,EAIjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AASzB,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,GACvB,sBAAsB,CAcxB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,mBAAmB,CAmBrB"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPostMessageAccounts = exports.createPostMessageInstruction = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const accounts_1 = require("../accounts");
6
+ const program_1 = require("../program");
7
+ function createPostMessageInstruction(connection, wormholeProgramId, payer, messageAccount, payload, nonce, consistencyLevel) {
8
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.postMessage(nonce, Buffer.from(payload), consistencyLevel);
9
+ // @ts-ignore
10
+ return methods._ixFn(...methods._args, {
11
+ accounts: getPostMessageAccounts(wormholeProgramId, payer, messageAccount),
12
+ signers: undefined,
13
+ remainingAccounts: undefined,
14
+ preInstructions: undefined,
15
+ postInstructions: undefined,
16
+ });
17
+ }
18
+ exports.createPostMessageInstruction = createPostMessageInstruction;
19
+ function getPostMessageAccounts(wormholeProgramId, payer, message, emitter) {
20
+ let sequence;
21
+ if (emitter) {
22
+ ({ emitter, sequence } = (0, accounts_1.getEmitterKeys)(emitter, wormholeProgramId));
23
+ }
24
+ else {
25
+ emitter = payer;
26
+ sequence = (0, accounts_1.deriveEmitterSequenceKey)(emitter, wormholeProgramId);
27
+ }
28
+ return {
29
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
30
+ message: new web3_js_1.PublicKey(message),
31
+ emitter: new web3_js_1.PublicKey(emitter),
32
+ sequence,
33
+ payer: new web3_js_1.PublicKey(payer),
34
+ feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
35
+ clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
36
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
37
+ systemProgram: web3_js_1.SystemProgram.programId,
38
+ };
39
+ }
40
+ exports.getPostMessageAccounts = getPostMessageAccounts;
41
+ //# sourceMappingURL=postMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessage.js","sourceRoot":"","sources":["../../../../src/utils/instructions/postMessage.ts"],"names":[],"mappings":";;;AAAA,6CAQyB;AACzB,0CAKqB;AACrB,wCAAoE;AAepE,SAAgB,4BAA4B,CAC1C,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,cAAiC,EACjC,OAAmB,EACnB,KAAa,EACb,gBAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErE,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC;QAC1E,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAtBD,oEAsBC;AAED,SAAgB,sBAAsB,CACpC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,OAA2B;IAE3B,IAAI,QAAQ,CAAC;IACb,IAAI,OAAO,EAAE;QACX,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAc,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;KACtE;SAAM;QACL,OAAO,GAAG,KAAK,CAAC;QAChB,QAAQ,GAAG,IAAA,mCAAwB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KACjE;IACD,OAAO;QACL,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,OAAO,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC;QAC/B,OAAO,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC;QAC/B,QAAQ;QACR,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,YAAY,EAAE,IAAA,gCAAqB,EAAC,iBAAiB,CAAC;QACtD,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAxBD,wDAwBC"}
@@ -0,0 +1,28 @@
1
+ import { PublicKey, PublicKeyInitData, TransactionInstruction, Connection } from '@solana/web3.js';
2
+ import { VAA } from '@wormhole-foundation/sdk-connect';
3
+ /**
4
+ * Make {@link TransactionInstruction} for `post_vaa` instruction.
5
+ *
6
+ * `signatureSet` is a {@link @solana/web3.Keypair} generated outside of this method, which was used
7
+ * to write signatures and the message hash to.
8
+ *
9
+ * https://github.com/certusone/wormhole/blob/main/solana/bridge/program/src/api/post_vaa.rs
10
+ *
11
+ * @param {PublicKeyInitData} wormholeProgramId - wormhole program address
12
+ * @param {PublicKeyInitData} payer - transaction signer address
13
+ * @param {SignedVaa | ParsedVaa} vaa - either signed VAA bytes or parsed VAA
14
+ * @param {PublicKeyInitData} signatureSet - key for signature set account
15
+ */
16
+ export declare function createPostVaaInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA, signatureSet: PublicKeyInitData): TransactionInstruction;
17
+ export interface PostVaaAccounts {
18
+ guardianSet: PublicKey;
19
+ bridge: PublicKey;
20
+ signatureSet: PublicKey;
21
+ vaa: PublicKey;
22
+ payer: PublicKey;
23
+ clock: PublicKey;
24
+ rent: PublicKey;
25
+ systemProgram: PublicKey;
26
+ }
27
+ export declare function getPostVaaAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, signatureSet: PublicKeyInitData, vaa: VAA): PostVaaAccounts;
28
+ //# sourceMappingURL=postVaa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postVaa.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/postVaa.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EAItB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,GAAG,EAGJ,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,iBAAiB,GAC9B,sBAAsB,CAyBxB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,SAAS,CAAC;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,GAAG,GACP,eAAe,CAWjB"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPostVaaAccounts = exports.createPostVaaInstruction = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const program_1 = require("../program");
9
+ const accounts_1 = require("../accounts");
10
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
11
+ const bn_js_1 = __importDefault(require("bn.js"));
12
+ /**
13
+ * Make {@link TransactionInstruction} for `post_vaa` instruction.
14
+ *
15
+ * `signatureSet` is a {@link @solana/web3.Keypair} generated outside of this method, which was used
16
+ * to write signatures and the message hash to.
17
+ *
18
+ * https://github.com/certusone/wormhole/blob/main/solana/bridge/program/src/api/post_vaa.rs
19
+ *
20
+ * @param {PublicKeyInitData} wormholeProgramId - wormhole program address
21
+ * @param {PublicKeyInitData} payer - transaction signer address
22
+ * @param {SignedVaa | ParsedVaa} vaa - either signed VAA bytes or parsed VAA
23
+ * @param {PublicKeyInitData} signatureSet - key for signature set account
24
+ */
25
+ function createPostVaaInstruction(connection, wormholeProgramId, payer, vaa, signatureSet) {
26
+ const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.postVaa(1, // TODO: hardcoded VAA version
27
+ vaa.guardianSet, vaa.timestamp, vaa.nonce, (0, sdk_connect_1.toChainId)(vaa.emitterChain), [...vaa.emitterAddress.toUint8Array()], new bn_js_1.default(vaa.sequence.toString()), vaa.consistencyLevel,
28
+ // Note: This _must_ be a Buffer, a Uint8Array does not work
29
+ Buffer.from((0, sdk_connect_1.serializePayload)(vaa.payloadLiteral, vaa.payload)));
30
+ // @ts-ignore
31
+ return methods._ixFn(...methods._args, {
32
+ accounts: getPostVaaAccounts(wormholeProgramId, payer, signatureSet, vaa),
33
+ signers: undefined,
34
+ remainingAccounts: undefined,
35
+ preInstructions: undefined,
36
+ postInstructions: undefined,
37
+ });
38
+ }
39
+ exports.createPostVaaInstruction = createPostVaaInstruction;
40
+ function getPostVaaAccounts(wormholeProgramId, payer, signatureSet, vaa) {
41
+ return {
42
+ guardianSet: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet),
43
+ bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
44
+ signatureSet: new web3_js_1.PublicKey(signatureSet),
45
+ vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
46
+ payer: new web3_js_1.PublicKey(payer),
47
+ clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
48
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
49
+ systemProgram: web3_js_1.SystemProgram.programId,
50
+ };
51
+ }
52
+ exports.getPostVaaAccounts = getPostVaaAccounts;
53
+ //# sourceMappingURL=postVaa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postVaa.js","sourceRoot":"","sources":["../../../../src/utils/instructions/postVaa.ts"],"names":[],"mappings":";;;;;;AAAA,6CAQyB;AACzB,wCAAoE;AACpE,0CAIqB;AACrB,kEAI0C;AAC1C,kDAAuB;AAEvB;;;;;;;;;;;;GAYG;AACH,SAAgB,wBAAwB,CACtC,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,GAAQ,EACR,YAA+B;IAE/B,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,OAAO,CACf,CAAC,EAAE,8BAA8B;IACjC,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,KAAK,EACT,IAAA,uBAAS,EAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EACtC,IAAI,eAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAC/B,GAAG,CAAC,gBAAgB;IACpB,4DAA4D;IAC5D,MAAM,CAAC,IAAI,CAAC,IAAA,8BAAgB,EAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;IAEF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC;QACzE,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AA/BD,4DA+BC;AAaD,SAAgB,kBAAkB,CAChC,iBAAoC,EACpC,KAAwB,EACxB,YAA+B,EAC/B,GAAQ;IAER,OAAO;QACL,WAAW,EAAE,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,GAAG,CAAC,WAAW,CAAC;QACrE,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,YAAY,EAAE,IAAI,mBAAS,CAAC,YAAY,CAAC;QACzC,GAAG,EAAE,IAAA,6BAAkB,EAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAhBD,gDAgBC"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="node" />
2
+ import { TransactionInstruction } from '@solana/web3.js';
3
+ export declare const SIGNATURE_LENGTH = 65;
4
+ export declare const ETHEREUM_KEY_LENGTH = 20;
5
+ /**
6
+ * Create {@link TransactionInstruction} for {@link Secp256k1Program}.
7
+ *
8
+ * @param {Buffer[]} signatures - 65-byte signatures (64 bytes + 1 byte recovery id)
9
+ * @param {Buffer[]} keys - 20-byte ethereum public keys
10
+ * @param {Buffer} message - 32-byte hash
11
+ * @returns Solana instruction for Secp256k1 program
12
+ */
13
+ export declare function createSecp256k1Instruction(signatures: Buffer[], keys: Buffer[], message: Buffer): TransactionInstruction;
14
+ /**
15
+ * Secp256k1SignatureOffsets serializer
16
+ *
17
+ * See {@link https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program} for more info.
18
+ */
19
+ export declare class Secp256k1SignatureOffsets {
20
+ /**
21
+ * Serialize multiple signatures, ethereum public keys and message as Secp256k1 instruction data.
22
+ *
23
+ * @param {Buffer[]} signatures - 65-byte signatures (64 + 1 recovery id)
24
+ * @param {Buffer[]} keys - ethereum public keys
25
+ * @param {Buffer} message - 32-byte hash
26
+ * @returns serialized Secp256k1 instruction data
27
+ */
28
+ static serialize(signatures: Buffer[], keys: Buffer[], message: Buffer): Buffer;
29
+ }
30
+ //# sourceMappingURL=secp256k1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/secp256k1.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,iBAAiB,CAAC;AAE3E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,GACd,sBAAsB,CAMxB;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;IAgCpC;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM;CAqDvE"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Secp256k1SignatureOffsets = exports.createSecp256k1Instruction = exports.ETHEREUM_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.SIGNATURE_LENGTH = 65;
6
+ exports.ETHEREUM_KEY_LENGTH = 20;
7
+ /**
8
+ * Create {@link TransactionInstruction} for {@link Secp256k1Program}.
9
+ *
10
+ * @param {Buffer[]} signatures - 65-byte signatures (64 bytes + 1 byte recovery id)
11
+ * @param {Buffer[]} keys - 20-byte ethereum public keys
12
+ * @param {Buffer} message - 32-byte hash
13
+ * @returns Solana instruction for Secp256k1 program
14
+ */
15
+ function createSecp256k1Instruction(signatures, keys, message) {
16
+ return new web3_js_1.TransactionInstruction({
17
+ keys: [],
18
+ programId: web3_js_1.Secp256k1Program.programId,
19
+ data: Secp256k1SignatureOffsets.serialize(signatures, keys, message),
20
+ });
21
+ }
22
+ exports.createSecp256k1Instruction = createSecp256k1Instruction;
23
+ /**
24
+ * Secp256k1SignatureOffsets serializer
25
+ *
26
+ * See {@link https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program} for more info.
27
+ */
28
+ class Secp256k1SignatureOffsets {
29
+ // https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program
30
+ //
31
+ // struct Secp256k1SignatureOffsets {
32
+ // secp_signature_key_offset: u16, // offset to [signature,recovery_id,etherum_address] of 64+1+20 bytes
33
+ // secp_signature_instruction_index: u8, // instruction index to find data
34
+ // secp_pubkey_offset: u16, // offset to [signature,recovery_id] of 64+1 bytes
35
+ // secp_signature_instruction_index: u8, // instruction index to find data
36
+ // secp_message_data_offset: u16, // offset to start of message data
37
+ // secp_message_data_size: u16, // size of message data
38
+ // secp_message_instruction_index: u8, // index of instruction data to get message data
39
+ // }
40
+ //
41
+ // Pseudo code of the operation:
42
+ //
43
+ // process_instruction() {
44
+ // for i in 0..count {
45
+ // // i'th index values referenced:
46
+ // instructions = &transaction.message().instructions
47
+ // signature = instructions[secp_signature_instruction_index].data[secp_signature_offset..secp_signature_offset + 64]
48
+ // recovery_id = instructions[secp_signature_instruction_index].data[secp_signature_offset + 64]
49
+ // ref_eth_pubkey = instructions[secp_pubkey_instruction_index].data[secp_pubkey_offset..secp_pubkey_offset + 32]
50
+ // message_hash = keccak256(instructions[secp_message_instruction_index].data[secp_message_data_offset..secp_message_data_offset + secp_message_data_size])
51
+ // pubkey = ecrecover(signature, recovery_id, message_hash)
52
+ // eth_pubkey = keccak256(pubkey[1..])[12..]
53
+ // if eth_pubkey != ref_eth_pubkey {
54
+ // return Error
55
+ // }
56
+ // }
57
+ // return Success
58
+ // }
59
+ /**
60
+ * Serialize multiple signatures, ethereum public keys and message as Secp256k1 instruction data.
61
+ *
62
+ * @param {Buffer[]} signatures - 65-byte signatures (64 + 1 recovery id)
63
+ * @param {Buffer[]} keys - ethereum public keys
64
+ * @param {Buffer} message - 32-byte hash
65
+ * @returns serialized Secp256k1 instruction data
66
+ */
67
+ static serialize(signatures, keys, message) {
68
+ if (signatures.length == 0) {
69
+ throw Error('signatures.length == 0');
70
+ }
71
+ if (signatures.length != keys.length) {
72
+ throw Error('signatures.length != keys.length');
73
+ }
74
+ if (message.length != 32) {
75
+ throw Error('message.length != 32');
76
+ }
77
+ const numSignatures = signatures.length;
78
+ const offsetSpan = 11;
79
+ const dataLoc = 1 + numSignatures * offsetSpan;
80
+ const dataLen = exports.SIGNATURE_LENGTH + exports.ETHEREUM_KEY_LENGTH; // 65 signature size + 20 eth pubkey size
81
+ const messageDataOffset = dataLoc + numSignatures * dataLen;
82
+ const messageDataSize = 32;
83
+ const serialized = Buffer.alloc(messageDataOffset + messageDataSize);
84
+ serialized.writeUInt8(numSignatures, 0);
85
+ serialized.write(message.toString('hex'), messageDataOffset, 'hex');
86
+ for (let i = 0; i < numSignatures; ++i) {
87
+ const signature = signatures.at(i);
88
+ if (signature?.length != exports.SIGNATURE_LENGTH) {
89
+ throw Error(`signatures[${i}].length != 65`);
90
+ }
91
+ const key = keys.at(i);
92
+ if (key?.length != exports.ETHEREUM_KEY_LENGTH) {
93
+ throw Error(`keys[${i}].length != 20`);
94
+ }
95
+ const signatureOffset = dataLoc + dataLen * i;
96
+ const ethAddressOffset = signatureOffset + 65;
97
+ serialized.writeUInt16LE(signatureOffset, 1 + i * offsetSpan);
98
+ serialized.writeUInt8(0, 3 + i * offsetSpan);
99
+ serialized.writeUInt16LE(ethAddressOffset, 4 + i * offsetSpan);
100
+ serialized.writeUInt8(0, 6 + i * offsetSpan);
101
+ serialized.writeUInt16LE(messageDataOffset, 7 + i * offsetSpan);
102
+ serialized.writeUInt16LE(messageDataSize, 9 + i * offsetSpan);
103
+ serialized.writeUInt8(0, 10 + i * offsetSpan);
104
+ serialized.write(signature.toString('hex'), signatureOffset, 'hex');
105
+ serialized.write(key.toString('hex'), ethAddressOffset, 'hex');
106
+ }
107
+ return serialized;
108
+ }
109
+ }
110
+ exports.Secp256k1SignatureOffsets = Secp256k1SignatureOffsets;
111
+ //# sourceMappingURL=secp256k1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../../src/utils/instructions/secp256k1.ts"],"names":[],"mappings":"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"}