@recoillink/aleo-sdk 0.0.0-stage → 45.0.1

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/LICENSE.md +193 -0
  2. package/README.md +56 -2
  3. package/dist/artifacts.d.ts +14 -0
  4. package/dist/artifacts.d.ts.map +1 -0
  5. package/dist/artifacts.js +23 -0
  6. package/dist/artifacts.js.map +1 -0
  7. package/dist/clients/base.d.ts +27 -0
  8. package/dist/clients/base.d.ts.map +1 -0
  9. package/dist/clients/base.js +105 -0
  10. package/dist/clients/base.js.map +1 -0
  11. package/dist/clients/protocol.d.ts +26 -0
  12. package/dist/clients/protocol.d.ts.map +1 -0
  13. package/dist/clients/protocol.js +104 -0
  14. package/dist/clients/protocol.js.map +1 -0
  15. package/dist/clients/provider.d.ts +42 -0
  16. package/dist/clients/provider.d.ts.map +1 -0
  17. package/dist/clients/provider.js +460 -0
  18. package/dist/clients/provider.js.map +1 -0
  19. package/dist/clients/provider.node.d.ts +7 -0
  20. package/dist/clients/provider.node.d.ts.map +1 -0
  21. package/dist/clients/provider.node.js +20 -0
  22. package/dist/clients/provider.node.js.map +1 -0
  23. package/dist/clients/signer.d.ts +32 -0
  24. package/dist/clients/signer.d.ts.map +1 -0
  25. package/dist/clients/signer.js +137 -0
  26. package/dist/clients/signer.js.map +1 -0
  27. package/dist/constants.d.ts +8 -0
  28. package/dist/constants.d.ts.map +1 -0
  29. package/dist/constants.js +8 -0
  30. package/dist/constants.js.map +1 -0
  31. package/dist/hook/base.d.ts +19 -0
  32. package/dist/hook/base.d.ts.map +1 -0
  33. package/dist/hook/base.js +29 -0
  34. package/dist/hook/base.js.map +1 -0
  35. package/dist/hook/hook-artifact-manager.d.ts +25 -0
  36. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  37. package/dist/hook/hook-artifact-manager.js +62 -0
  38. package/dist/hook/hook-artifact-manager.js.map +1 -0
  39. package/dist/hook/hook-query.d.ts +44 -0
  40. package/dist/hook/hook-query.d.ts.map +1 -0
  41. package/dist/hook/hook-query.js +103 -0
  42. package/dist/hook/hook-query.js.map +1 -0
  43. package/dist/hook/hook-tx.d.ts +46 -0
  44. package/dist/hook/hook-tx.d.ts.map +1 -0
  45. package/dist/hook/hook-tx.js +89 -0
  46. package/dist/hook/hook-tx.js.map +1 -0
  47. package/dist/hook/igp-hook.d.ts +21 -0
  48. package/dist/hook/igp-hook.d.ts.map +1 -0
  49. package/dist/hook/igp-hook.js +145 -0
  50. package/dist/hook/igp-hook.js.map +1 -0
  51. package/dist/hook/merkle-tree-hook.d.ts +21 -0
  52. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  53. package/dist/hook/merkle-tree-hook.js +58 -0
  54. package/dist/hook/merkle-tree-hook.js.map +1 -0
  55. package/dist/index.d.ts +15 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +14 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/ism/base.d.ts +15 -0
  60. package/dist/ism/base.d.ts.map +1 -0
  61. package/dist/ism/base.js +25 -0
  62. package/dist/ism/base.js.map +1 -0
  63. package/dist/ism/ism-artifact-manager.d.ts +12 -0
  64. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  65. package/dist/ism/ism-artifact-manager.js +62 -0
  66. package/dist/ism/ism-artifact-manager.js.map +1 -0
  67. package/dist/ism/ism-query.d.ts +51 -0
  68. package/dist/ism/ism-query.d.ts.map +1 -0
  69. package/dist/ism/ism-query.js +155 -0
  70. package/dist/ism/ism-query.js.map +1 -0
  71. package/dist/ism/ism-tx.d.ts +14 -0
  72. package/dist/ism/ism-tx.d.ts.map +1 -0
  73. package/dist/ism/ism-tx.js +77 -0
  74. package/dist/ism/ism-tx.js.map +1 -0
  75. package/dist/ism/multisig-ism.d.ts +20 -0
  76. package/dist/ism/multisig-ism.d.ts.map +1 -0
  77. package/dist/ism/multisig-ism.js +56 -0
  78. package/dist/ism/multisig-ism.js.map +1 -0
  79. package/dist/ism/routing-ism.d.ts +20 -0
  80. package/dist/ism/routing-ism.d.ts.map +1 -0
  81. package/dist/ism/routing-ism.js +108 -0
  82. package/dist/ism/routing-ism.js.map +1 -0
  83. package/dist/ism/test-ism.d.ts +20 -0
  84. package/dist/ism/test-ism.d.ts.map +1 -0
  85. package/dist/ism/test-ism.js +50 -0
  86. package/dist/ism/test-ism.js.map +1 -0
  87. package/dist/mailbox/mailbox-artifact-manager.d.ts +21 -0
  88. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  89. package/dist/mailbox/mailbox-artifact-manager.js +36 -0
  90. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  91. package/dist/mailbox/mailbox-query.d.ts +12 -0
  92. package/dist/mailbox/mailbox-query.d.ts.map +1 -0
  93. package/dist/mailbox/mailbox-query.js +33 -0
  94. package/dist/mailbox/mailbox-query.js.map +1 -0
  95. package/dist/mailbox/mailbox-tx.d.ts +42 -0
  96. package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
  97. package/dist/mailbox/mailbox-tx.js +94 -0
  98. package/dist/mailbox/mailbox-tx.js.map +1 -0
  99. package/dist/mailbox/mailbox.d.ts +29 -0
  100. package/dist/mailbox/mailbox.d.ts.map +1 -0
  101. package/dist/mailbox/mailbox.js +165 -0
  102. package/dist/mailbox/mailbox.js.map +1 -0
  103. package/dist/programs.d.ts +3 -0
  104. package/dist/programs.d.ts.map +1 -0
  105. package/dist/programs.js +14 -0
  106. package/dist/programs.js.map +1 -0
  107. package/dist/runtime/mainnet.d.ts +3 -0
  108. package/dist/runtime/mainnet.d.ts.map +1 -0
  109. package/dist/runtime/mainnet.js +5 -0
  110. package/dist/runtime/mainnet.js.map +1 -0
  111. package/dist/runtime/provider.d.ts +10 -0
  112. package/dist/runtime/provider.d.ts.map +1 -0
  113. package/dist/runtime/provider.js +18 -0
  114. package/dist/runtime/provider.js.map +1 -0
  115. package/dist/runtime/provider.test.d.ts +2 -0
  116. package/dist/runtime/provider.test.d.ts.map +1 -0
  117. package/dist/runtime/provider.test.js +45 -0
  118. package/dist/runtime/provider.test.js.map +1 -0
  119. package/dist/runtime/testnet.d.ts +3 -0
  120. package/dist/runtime/testnet.d.ts.map +1 -0
  121. package/dist/runtime/testnet.js +8 -0
  122. package/dist/runtime/testnet.js.map +1 -0
  123. package/dist/runtime.d.ts +5 -0
  124. package/dist/runtime.d.ts.map +1 -0
  125. package/dist/runtime.js +4 -0
  126. package/dist/runtime.js.map +1 -0
  127. package/dist/testing/constants.d.ts +58 -0
  128. package/dist/testing/constants.d.ts.map +1 -0
  129. package/dist/testing/constants.js +60 -0
  130. package/dist/testing/constants.js.map +1 -0
  131. package/dist/testing/index.d.ts +4 -0
  132. package/dist/testing/index.d.ts.map +1 -0
  133. package/dist/testing/index.js +7 -0
  134. package/dist/testing/index.js.map +1 -0
  135. package/dist/testing/node.d.ts +10 -0
  136. package/dist/testing/node.d.ts.map +1 -0
  137. package/dist/testing/node.js +39 -0
  138. package/dist/testing/node.js.map +1 -0
  139. package/dist/testing/utils.d.ts +19 -0
  140. package/dist/testing/utils.d.ts.map +1 -0
  141. package/dist/testing/utils.js +23 -0
  142. package/dist/testing/utils.js.map +1 -0
  143. package/dist/tests/5_ism_artifacts.e2e-test.d.ts +2 -0
  144. package/dist/tests/5_ism_artifacts.e2e-test.d.ts.map +1 -0
  145. package/dist/tests/5_ism_artifacts.e2e-test.js +415 -0
  146. package/dist/tests/5_ism_artifacts.e2e-test.js.map +1 -0
  147. package/dist/tests/6_hook_artifacts.e2e-test.d.ts +2 -0
  148. package/dist/tests/6_hook_artifacts.e2e-test.d.ts.map +1 -0
  149. package/dist/tests/6_hook_artifacts.e2e-test.js +306 -0
  150. package/dist/tests/6_hook_artifacts.e2e-test.js.map +1 -0
  151. package/dist/tests/7a_warp_native_artifacts.e2e-test.d.ts +2 -0
  152. package/dist/tests/7a_warp_native_artifacts.e2e-test.d.ts.map +1 -0
  153. package/dist/tests/7a_warp_native_artifacts.e2e-test.js +105 -0
  154. package/dist/tests/7a_warp_native_artifacts.e2e-test.js.map +1 -0
  155. package/dist/tests/7b_warp_collateral_artifacts.e2e-test.d.ts +2 -0
  156. package/dist/tests/7b_warp_collateral_artifacts.e2e-test.d.ts.map +1 -0
  157. package/dist/tests/7b_warp_collateral_artifacts.e2e-test.js +144 -0
  158. package/dist/tests/7b_warp_collateral_artifacts.e2e-test.js.map +1 -0
  159. package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.d.ts +2 -0
  160. package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.d.ts.map +1 -0
  161. package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.js +99 -0
  162. package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.js.map +1 -0
  163. package/dist/tests/8_mailbox_artifacts.e2e-test.d.ts +2 -0
  164. package/dist/tests/8_mailbox_artifacts.e2e-test.d.ts.map +1 -0
  165. package/dist/tests/8_mailbox_artifacts.e2e-test.js +395 -0
  166. package/dist/tests/8_mailbox_artifacts.e2e-test.js.map +1 -0
  167. package/dist/tests/9_validator_announce_artifacts.e2e-test.d.ts +2 -0
  168. package/dist/tests/9_validator_announce_artifacts.e2e-test.d.ts.map +1 -0
  169. package/dist/tests/9_validator_announce_artifacts.e2e-test.js +138 -0
  170. package/dist/tests/9_validator_announce_artifacts.e2e-test.js.map +1 -0
  171. package/dist/tests/e2e-test.setup.d.ts +2 -0
  172. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  173. package/dist/tests/e2e-test.setup.js +33 -0
  174. package/dist/tests/e2e-test.setup.js.map +1 -0
  175. package/dist/tests/warp-artifact-test-suite.d.ts +34 -0
  176. package/dist/tests/warp-artifact-test-suite.d.ts.map +1 -0
  177. package/dist/tests/warp-artifact-test-suite.js +672 -0
  178. package/dist/tests/warp-artifact-test-suite.js.map +1 -0
  179. package/dist/utils/base-query.d.ts +50 -0
  180. package/dist/utils/base-query.d.ts.map +1 -0
  181. package/dist/utils/base-query.js +72 -0
  182. package/dist/utils/base-query.js.map +1 -0
  183. package/dist/utils/helper.crypto.d.ts +4 -0
  184. package/dist/utils/helper.crypto.d.ts.map +1 -0
  185. package/dist/utils/helper.crypto.js +12 -0
  186. package/dist/utils/helper.crypto.js.map +1 -0
  187. package/dist/utils/helper.d.ts +63 -0
  188. package/dist/utils/helper.d.ts.map +1 -0
  189. package/dist/utils/helper.js +291 -0
  190. package/dist/utils/helper.js.map +1 -0
  191. package/dist/utils/helper.node.d.ts +9 -0
  192. package/dist/utils/helper.node.d.ts.map +1 -0
  193. package/dist/utils/helper.node.js +159 -0
  194. package/dist/utils/helper.node.js.map +1 -0
  195. package/dist/utils/helper.test.d.ts +2 -0
  196. package/dist/utils/helper.test.d.ts.map +1 -0
  197. package/dist/utils/helper.test.js +22 -0
  198. package/dist/utils/helper.test.js.map +1 -0
  199. package/dist/utils/provable.d.ts +4 -0
  200. package/dist/utils/provable.d.ts.map +1 -0
  201. package/dist/utils/provable.js +2 -0
  202. package/dist/utils/provable.js.map +1 -0
  203. package/dist/utils/types.d.ts +104 -0
  204. package/dist/utils/types.d.ts.map +1 -0
  205. package/dist/utils/types.js +64 -0
  206. package/dist/utils/types.js.map +1 -0
  207. package/dist/validator-announce/validator-announce-artifact-manager.d.ts +21 -0
  208. package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
  209. package/dist/validator-announce/validator-announce-artifact-manager.js +27 -0
  210. package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
  211. package/dist/validator-announce/validator-announce-query.d.ts +15 -0
  212. package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
  213. package/dist/validator-announce/validator-announce-query.js +32 -0
  214. package/dist/validator-announce/validator-announce-query.js.map +1 -0
  215. package/dist/validator-announce/validator-announce-tx.d.ts +11 -0
  216. package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
  217. package/dist/validator-announce/validator-announce-tx.js +20 -0
  218. package/dist/validator-announce/validator-announce-tx.js.map +1 -0
  219. package/dist/validator-announce/validator-announce.d.ts +29 -0
  220. package/dist/validator-announce/validator-announce.d.ts.map +1 -0
  221. package/dist/validator-announce/validator-announce.js +71 -0
  222. package/dist/validator-announce/validator-announce.js.map +1 -0
  223. package/dist/warp/collateral-token.d.ts +21 -0
  224. package/dist/warp/collateral-token.d.ts.map +1 -0
  225. package/dist/warp/collateral-token.js +108 -0
  226. package/dist/warp/collateral-token.js.map +1 -0
  227. package/dist/warp/native-token.d.ts +21 -0
  228. package/dist/warp/native-token.d.ts.map +1 -0
  229. package/dist/warp/native-token.js +114 -0
  230. package/dist/warp/native-token.js.map +1 -0
  231. package/dist/warp/provider-query.d.ts +22 -0
  232. package/dist/warp/provider-query.d.ts.map +1 -0
  233. package/dist/warp/provider-query.js +89 -0
  234. package/dist/warp/provider-query.js.map +1 -0
  235. package/dist/warp/synthetic-token.d.ts +21 -0
  236. package/dist/warp/synthetic-token.d.ts.map +1 -0
  237. package/dist/warp/synthetic-token.js +108 -0
  238. package/dist/warp/synthetic-token.js.map +1 -0
  239. package/dist/warp/warp-artifact-manager.d.ts +15 -0
  240. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  241. package/dist/warp/warp-artifact-manager.js +48 -0
  242. package/dist/warp/warp-artifact-manager.js.map +1 -0
  243. package/dist/warp/warp-query.d.ts +76 -0
  244. package/dist/warp/warp-query.d.ts.map +1 -0
  245. package/dist/warp/warp-query.js +321 -0
  246. package/dist/warp/warp-query.js.map +1 -0
  247. package/dist/warp/warp-query.test.d.ts +2 -0
  248. package/dist/warp/warp-query.test.d.ts.map +1 -0
  249. package/dist/warp/warp-query.test.js +270 -0
  250. package/dist/warp/warp-query.test.js.map +1 -0
  251. package/dist/warp/warp-tx.d.ts +58 -0
  252. package/dist/warp/warp-tx.d.ts.map +1 -0
  253. package/dist/warp/warp-tx.js +229 -0
  254. package/dist/warp/warp-tx.js.map +1 -0
  255. package/dist/warp/warp-tx.test.d.ts +2 -0
  256. package/dist/warp/warp-tx.test.d.ts.map +1 -0
  257. package/dist/warp/warp-tx.test.js +44 -0
  258. package/dist/warp/warp-tx.test.js.map +1 -0
  259. package/package.json +91 -3
@@ -0,0 +1,36 @@
1
+ import { assert } from '@recoillink/utils';
2
+ import { AleoMailboxReader, AleoMailboxWriter } from './mailbox.js';
3
+ /**
4
+ * Aleo Mailbox Artifact Manager implementing IRawMailboxArtifactManager.
5
+ *
6
+ * This manager:
7
+ * - Provides factory methods for creating mailbox readers and writers
8
+ * - Handles mailbox deployment and configuration
9
+ */
10
+ export class AleoMailboxArtifactManager {
11
+ config;
12
+ aleoClient;
13
+ constructor(config, aleoClient) {
14
+ this.config = config;
15
+ this.aleoClient = aleoClient;
16
+ }
17
+ async readMailbox(address) {
18
+ const reader = this.createReader('mailbox');
19
+ return reader.read(address);
20
+ }
21
+ createReader(type) {
22
+ const readers = {
23
+ mailbox: () => new AleoMailboxReader(this.aleoClient),
24
+ };
25
+ assert(readers[type], `Mailbox reader for ${type} not found`);
26
+ return readers[type]();
27
+ }
28
+ createWriter(type, signer) {
29
+ const writers = {
30
+ mailbox: () => new AleoMailboxWriter(this.config, this.aleoClient, signer),
31
+ };
32
+ assert(writers[type], `Mailbox writer for ${type} not found`);
33
+ return writers[type]();
34
+ }
35
+ }
36
+ //# sourceMappingURL=mailbox-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-artifact-manager.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,OAAO,0BAA0B;IAElB,MAAM;IACN,UAAU;IAF7B,YACmB,MAAiC,EACjC,UAAgC;sBADhC,MAAM;0BACN,UAAU;IAC1B,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CACV,IAAO;QAEP,MAAM,OAAO,GAKT;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;SACtD,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,sBAAsB,IAAI,YAAY,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,CACV,IAAO,EACP,MAAkB;QAElB,MAAM,OAAO,GAKT;YACF,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;SAC9D,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,sBAAsB,IAAI,YAAY,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
2
+ import { type AleoMailboxConfig } from '../utils/types.js';
3
+ /**
4
+ * Query mailbox configuration from the chain.
5
+ *
6
+ * @param aleoClient - The Aleo network client
7
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
8
+ * @param onChainArtifactManagers - Artifact manager addresses (hookManagerAddress is ignored and derived from mailbox)
9
+ * @returns The mailbox configuration
10
+ */
11
+ export declare function getMailboxConfig(aleoClient: AnyAleoNetworkClient, mailboxAddress: string): Promise<AleoMailboxConfig>;
12
+ //# sourceMappingURL=mailbox-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-query.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO/D,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,oBAAoB,EAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAyC5B"}
@@ -0,0 +1,33 @@
1
+ import { assert } from '@recoillink/utils';
2
+ import { queryMappingValue } from '../utils/base-query.js';
3
+ import { formatHookAddress, formatIsmAddress, fromAleoAddress, } from '../utils/helper.js';
4
+ /**
5
+ * Query mailbox configuration from the chain.
6
+ *
7
+ * @param aleoClient - The Aleo network client
8
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
9
+ * @param onChainArtifactManagers - Artifact manager addresses (hookManagerAddress is ignored and derived from mailbox)
10
+ * @returns The mailbox configuration
11
+ */
12
+ export async function getMailboxConfig(aleoClient, mailboxAddress) {
13
+ const { programId: mailboxProgramId } = fromAleoAddress(mailboxAddress);
14
+ assert(mailboxProgramId, `Program Id is required for reading the on chain mailbox config. Is the input address formatted as "programId/address"?`);
15
+ const mailboxData = await queryMappingValue(aleoClient, mailboxProgramId, 'mailbox', 'true', (raw) => {
16
+ const data = raw;
17
+ assert(data?.mailbox_owner, `Invalid mailbox data structure for mailbox ${mailboxAddress}, expected object with mailbox_owner field`);
18
+ return data;
19
+ });
20
+ const imports = await aleoClient.getProgramImportNames(mailboxProgramId);
21
+ const ismManagerProgramId = imports.find((i) => i.includes('ism_manager'));
22
+ assert(ismManagerProgramId, `Expected to find ISM manager program id in mailbox program at ${mailboxAddress}`);
23
+ return {
24
+ address: mailboxAddress,
25
+ owner: mailboxData.mailbox_owner,
26
+ localDomain: mailboxData.local_domain,
27
+ nonce: mailboxData.nonce,
28
+ defaultIsm: formatIsmAddress(mailboxData.default_ism, ismManagerProgramId),
29
+ defaultHook: formatHookAddress(mailboxData.default_hook, mailboxProgramId),
30
+ requiredHook: formatHookAddress(mailboxData.required_hook, mailboxProgramId),
31
+ };
32
+ }
33
+ //# sourceMappingURL=mailbox-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-query.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAM5B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAgC,EAChC,cAAsB;IAEtB,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,CACJ,gBAAgB,EAChB,wHAAwH,CACzH,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,CAAC,GAAG,EAAmB,EAAE;QACvB,MAAM,IAAI,GAAG,GAAkC,CAAC;QAChD,MAAM,CACJ,IAAI,EAAE,aAAa,EACnB,8CAA8C,cAAc,4CAA4C,CACzG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzE,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3E,MAAM,CACJ,mBAAmB,EACnB,iEAAiE,cAAc,EAAE,CAClF,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,WAAW,CAAC,aAAa;QAChC,WAAW,EAAE,WAAW,CAAC,YAAY;QACrC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAC1E,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,YAAY,EAAE,gBAAgB,CAAC;QAC1E,YAAY,EAAE,iBAAiB,CAC7B,WAAW,CAAC,aAAa,EACzB,gBAAgB,CACjB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { type AleoTransaction } from '../utils/types.js';
2
+ /**
3
+ * Build transaction to create a mailbox
4
+ *
5
+ * @param mailboxProgramId - The mailbox program ID
6
+ * @param domainId - The local domain ID
7
+ * @returns The transaction object
8
+ */
9
+ export declare function getCreateMailboxTx(mailboxProgramId: string, domainId: number): AleoTransaction;
10
+ /**
11
+ * Build transaction to set mailbox owner
12
+ *
13
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
14
+ * @param newOwner - The new owner address
15
+ * @returns The transaction object
16
+ */
17
+ export declare function getSetMailboxOwnerTx(mailboxAddress: string, newOwner: string): AleoTransaction;
18
+ /**
19
+ * Build transaction to set mailbox default ISM
20
+ *
21
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
22
+ * @param ismAddress - The full ISM address
23
+ * @returns The transaction object
24
+ */
25
+ export declare function getSetMailboxDefaultIsmTx(mailboxAddress: string, ismAddress: string): AleoTransaction;
26
+ /**
27
+ * Build transaction to set mailbox default hook
28
+ *
29
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
30
+ * @param hookAddress - The full hook address
31
+ * @returns The transaction object
32
+ */
33
+ export declare function getSetMailboxDefaultHookTx(mailboxAddress: string, hookAddress: string): AleoTransaction;
34
+ /**
35
+ * Build transaction to set mailbox required hook
36
+ *
37
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
38
+ * @param hookAddress - The full hook address
39
+ * @returns The transaction object
40
+ */
41
+ export declare function getSetMailboxRequiredHookTx(mailboxAddress: string, hookAddress: string): AleoTransaction;
42
+ //# sourceMappingURL=mailbox-tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-tx.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,eAAe,CAQjB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,eAAe,CAWjB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,eAAe,CAYjB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,eAAe,CAYjB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,eAAe,CAYjB"}
@@ -0,0 +1,94 @@
1
+ import { assert } from '@recoillink/utils';
2
+ import { fromAleoAddress } from '../utils/helper.js';
3
+ /**
4
+ * Build transaction to create a mailbox
5
+ *
6
+ * @param mailboxProgramId - The mailbox program ID
7
+ * @param domainId - The local domain ID
8
+ * @returns The transaction object
9
+ */
10
+ export function getCreateMailboxTx(mailboxProgramId, domainId) {
11
+ return {
12
+ programName: mailboxProgramId,
13
+ functionName: 'init',
14
+ priorityFee: 0,
15
+ privateFee: false,
16
+ inputs: [`${domainId}u32`],
17
+ };
18
+ }
19
+ /**
20
+ * Build transaction to set mailbox owner
21
+ *
22
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
23
+ * @param newOwner - The new owner address
24
+ * @returns The transaction object
25
+ */
26
+ export function getSetMailboxOwnerTx(mailboxAddress, newOwner) {
27
+ const { programId } = fromAleoAddress(mailboxAddress);
28
+ assert(programId, `Expected programId in mailbox address: ${mailboxAddress}`);
29
+ return {
30
+ programName: programId,
31
+ functionName: 'set_owner',
32
+ priorityFee: 0,
33
+ privateFee: false,
34
+ inputs: [newOwner],
35
+ };
36
+ }
37
+ /**
38
+ * Build transaction to set mailbox default ISM
39
+ *
40
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
41
+ * @param ismAddress - The full ISM address
42
+ * @returns The transaction object
43
+ */
44
+ export function getSetMailboxDefaultIsmTx(mailboxAddress, ismAddress) {
45
+ const { programId } = fromAleoAddress(mailboxAddress);
46
+ assert(programId, `Expected programId in mailbox address: ${mailboxAddress}`);
47
+ const { address } = fromAleoAddress(ismAddress);
48
+ return {
49
+ programName: programId,
50
+ functionName: 'set_default_ism',
51
+ priorityFee: 0,
52
+ privateFee: false,
53
+ inputs: [address],
54
+ };
55
+ }
56
+ /**
57
+ * Build transaction to set mailbox default hook
58
+ *
59
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
60
+ * @param hookAddress - The full hook address
61
+ * @returns The transaction object
62
+ */
63
+ export function getSetMailboxDefaultHookTx(mailboxAddress, hookAddress) {
64
+ const { programId } = fromAleoAddress(mailboxAddress);
65
+ assert(programId, `Expected programId in mailbox address: ${mailboxAddress}`);
66
+ const { address } = fromAleoAddress(hookAddress);
67
+ return {
68
+ programName: programId,
69
+ functionName: 'set_default_hook',
70
+ priorityFee: 0,
71
+ privateFee: false,
72
+ inputs: [address],
73
+ };
74
+ }
75
+ /**
76
+ * Build transaction to set mailbox required hook
77
+ *
78
+ * @param mailboxAddress - The full mailbox address (e.g., "mailbox.aleo/aleo1...")
79
+ * @param hookAddress - The full hook address
80
+ * @returns The transaction object
81
+ */
82
+ export function getSetMailboxRequiredHookTx(mailboxAddress, hookAddress) {
83
+ const { programId } = fromAleoAddress(mailboxAddress);
84
+ assert(programId, `Expected programId in mailbox address: ${mailboxAddress}`);
85
+ const { address } = fromAleoAddress(hookAddress);
86
+ return {
87
+ programName: programId,
88
+ functionName: 'set_required_hook',
89
+ priorityFee: 0,
90
+ privateFee: false,
91
+ inputs: [address],
92
+ };
93
+ }
94
+ //# sourceMappingURL=mailbox-tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-tx.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,gBAAwB,EACxB,QAAgB;IAEhB,OAAO;QACL,WAAW,EAAE,gBAAgB;QAC7B,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,GAAG,QAAQ,KAAK,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAsB,EACtB,QAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,0CAA0C,cAAc,EAAE,CAAC,CAAC;IAE9E,OAAO;QACL,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAsB,EACtB,UAAkB;IAElB,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,0CAA0C,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEhD,OAAO;QACL,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,iBAAiB;QAC/B,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,OAAO,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,cAAsB,EACtB,WAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,0CAA0C,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO;QACL,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,OAAO,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,cAAsB,EACtB,WAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,0CAA0C,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO;QACL,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,OAAO,CAAC;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedMailboxAddress, type MailboxOnChain } from '@recoillink/provider-sdk/mailbox';
3
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
4
+ import { type AleoSigner } from '../clients/signer.js';
5
+ import { type AleoArtifactNetworkConfig, type AleoReceipt, type AnnotatedAleoTransaction } from '../utils/types.js';
6
+ /**
7
+ * Reader for Aleo Mailbox.
8
+ * Reads deployed mailbox configuration from the chain.
9
+ */
10
+ export declare class AleoMailboxReader implements ArtifactReader<MailboxOnChain, DeployedMailboxAddress> {
11
+ protected readonly aleoClient: AnyAleoNetworkClient;
12
+ constructor(aleoClient: AnyAleoNetworkClient);
13
+ read(address: string): Promise<ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>>;
14
+ }
15
+ /**
16
+ * Writer for Aleo Mailbox.
17
+ * Handles deployment and updates.
18
+ */
19
+ export declare class AleoMailboxWriter extends AleoMailboxReader implements ArtifactWriter<MailboxOnChain, DeployedMailboxAddress> {
20
+ private readonly config;
21
+ private readonly signer;
22
+ constructor(config: AleoArtifactNetworkConfig, aleoClient: AnyAleoNetworkClient, signer: AleoSigner);
23
+ create(artifact: ArtifactNew<MailboxOnChain>): Promise<[
24
+ ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>,
25
+ AleoReceipt[]
26
+ ]>;
27
+ update(artifact: ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>): Promise<AnnotatedAleoTransaction[]>;
28
+ }
29
+ //# sourceMappingURL=mailbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQvD,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAW3B;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,cAAc,CACtD,cAAc,EACd,sBAAsB,CACvB;IACa,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IAA/D,YAA+B,UAAU,EAAE,oBAAoB,EAAI;IAE7D,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CA+BnE;CACF;AAED;;;GAGG;AACH,qBAAa,iBACX,SAAQ,iBACR,YAAW,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAG/D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,MAAM,EAAE,yBAAyB,EAClD,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAGpC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GACpC,OAAO,CACR;QAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC;QAAE,WAAW,EAAE;KAAC,CAC1E,CAkGA;IAEK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,GACjE,OAAO,CAAC,wBAAwB,EAAE,CAAC,CA+ErC;CACF"}
@@ -0,0 +1,165 @@
1
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
2
+ import { assert, eqAddressAleo, eqOptionalAddress } from '@recoillink/utils';
3
+ import { toAleoAddress } from '../utils/helper.crypto.js';
4
+ import { ALEO_NULL_ADDRESS, getNetworkPrefix, getUnusedSuffix, SUFFIX_LENGTH_LONG, } from '../utils/helper.js';
5
+ import { getMailboxConfig } from './mailbox-query.js';
6
+ import { getCreateMailboxTx, getSetMailboxDefaultHookTx, getSetMailboxDefaultIsmTx, getSetMailboxOwnerTx, getSetMailboxRequiredHookTx, } from './mailbox-tx.js';
7
+ /**
8
+ * Reader for Aleo Mailbox.
9
+ * Reads deployed mailbox configuration from the chain.
10
+ */
11
+ export class AleoMailboxReader {
12
+ aleoClient;
13
+ constructor(aleoClient) {
14
+ this.aleoClient = aleoClient;
15
+ }
16
+ async read(address) {
17
+ const mailboxConfig = await getMailboxConfig(this.aleoClient, address);
18
+ return {
19
+ artifactState: ArtifactState.DEPLOYED,
20
+ config: {
21
+ owner: mailboxConfig.owner,
22
+ defaultIsm: {
23
+ artifactState: ArtifactState.UNDERIVED,
24
+ deployed: {
25
+ address: mailboxConfig.defaultIsm,
26
+ },
27
+ },
28
+ defaultHook: {
29
+ artifactState: ArtifactState.UNDERIVED,
30
+ deployed: {
31
+ address: mailboxConfig.defaultHook,
32
+ },
33
+ },
34
+ requiredHook: {
35
+ artifactState: ArtifactState.UNDERIVED,
36
+ deployed: {
37
+ address: mailboxConfig.requiredHook,
38
+ },
39
+ },
40
+ },
41
+ deployed: {
42
+ address: mailboxConfig.address,
43
+ domainId: mailboxConfig.localDomain,
44
+ },
45
+ };
46
+ }
47
+ }
48
+ /**
49
+ * Writer for Aleo Mailbox.
50
+ * Handles deployment and updates.
51
+ */
52
+ export class AleoMailboxWriter extends AleoMailboxReader {
53
+ config;
54
+ signer;
55
+ constructor(config, aleoClient, signer) {
56
+ super(aleoClient);
57
+ this.config = config;
58
+ this.signer = signer;
59
+ }
60
+ async create(artifact) {
61
+ const { config } = artifact;
62
+ const allReceipts = [];
63
+ // Deploy mailbox programs (mailbox, dispatch_proxy, ism_manager, hook_manager)
64
+ const prefix = getNetworkPrefix(this.config.aleoNetworkId);
65
+ const suffix = await getUnusedSuffix(this.aleoClient, prefix, 'dispatch_proxy', SUFFIX_LENGTH_LONG);
66
+ const programs = await this.signer.deployProgram('dispatch_proxy', suffix);
67
+ const mailboxProgramId = programs['mailbox'];
68
+ assert(mailboxProgramId, 'mailbox program not deployed');
69
+ const dispatchProxyProgramId = programs['dispatch_proxy'];
70
+ assert(dispatchProxyProgramId, 'dispatch_proxy program not deployed');
71
+ // 1. Create mailbox
72
+ const createTx = getCreateMailboxTx(mailboxProgramId, this.config.domainId);
73
+ const createReceipt = await this.signer.sendAndConfirmTransaction(createTx);
74
+ allReceipts.push(createReceipt);
75
+ // 2. Set dispatch proxy
76
+ const setDispatchProxyTx = {
77
+ programName: mailboxProgramId,
78
+ functionName: 'set_dispatch_proxy',
79
+ priorityFee: 0,
80
+ privateFee: false,
81
+ inputs: [dispatchProxyProgramId],
82
+ };
83
+ const dispatchProxyReceipt = await this.signer.sendAndConfirmTransaction(setDispatchProxyTx);
84
+ allReceipts.push(dispatchProxyReceipt);
85
+ const mailboxAddress = toAleoAddress(mailboxProgramId);
86
+ // Extract addresses from artifacts
87
+ const defaultIsmAddress = config.defaultIsm.deployed.address;
88
+ const defaultHookAddress = config.defaultHook.deployed.address;
89
+ const requiredHookAddress = config.requiredHook.deployed.address;
90
+ // 3. Set default ISM (if provided and not null address)
91
+ if (!eqOptionalAddress(defaultIsmAddress, ALEO_NULL_ADDRESS, eqAddressAleo)) {
92
+ const setIsmTx = getSetMailboxDefaultIsmTx(mailboxAddress, defaultIsmAddress);
93
+ const ismReceipt = await this.signer.sendAndConfirmTransaction(setIsmTx);
94
+ allReceipts.push(ismReceipt);
95
+ }
96
+ // 4. Set default hook (if provided and not null address)
97
+ if (!eqOptionalAddress(defaultHookAddress, ALEO_NULL_ADDRESS, eqAddressAleo)) {
98
+ const setDefaultHookTx = getSetMailboxDefaultHookTx(mailboxAddress, defaultHookAddress);
99
+ const hookReceipt = await this.signer.sendAndConfirmTransaction(setDefaultHookTx);
100
+ allReceipts.push(hookReceipt);
101
+ }
102
+ // 5. Set required hook (if provided and not null address)
103
+ if (!eqOptionalAddress(requiredHookAddress, ALEO_NULL_ADDRESS, eqAddressAleo)) {
104
+ const setRequiredHookTx = getSetMailboxRequiredHookTx(mailboxAddress, requiredHookAddress);
105
+ const requiredHookReceipt = await this.signer.sendAndConfirmTransaction(setRequiredHookTx);
106
+ allReceipts.push(requiredHookReceipt);
107
+ }
108
+ // Note: Ownership is NOT transferred during creation to allow for
109
+ // subsequent updates by the deployer. Use update() to transfer ownership
110
+ // when all configuration is complete.
111
+ const deployedArtifact = {
112
+ artifactState: ArtifactState.DEPLOYED,
113
+ config: { ...config, owner: this.signer.getSignerAddress() },
114
+ deployed: {
115
+ address: mailboxAddress,
116
+ domainId: this.config.domainId,
117
+ },
118
+ };
119
+ return [deployedArtifact, allReceipts];
120
+ }
121
+ async update(artifact) {
122
+ const { config, deployed } = artifact;
123
+ const updateTxs = [];
124
+ // Read current state
125
+ const currentState = await this.read(deployed.address);
126
+ const currentConfig = currentState.config;
127
+ // Extract addresses from artifacts
128
+ const expectedDefaultIsmAddress = config.defaultIsm.deployed.address;
129
+ const expectedDefaultHookAddress = config.defaultHook.deployed.address;
130
+ const expectedRequiredHookAddress = config.requiredHook.deployed.address;
131
+ const currentDefaultIsmAddress = currentConfig.defaultIsm.deployed.address;
132
+ const currentDefaultHookAddress = currentConfig.defaultHook.deployed.address;
133
+ const currentRequiredHookAddress = currentConfig.requiredHook.deployed.address;
134
+ // 1. Update default ISM if changed
135
+ if (!eqOptionalAddress(currentDefaultIsmAddress, expectedDefaultIsmAddress, eqAddressAleo)) {
136
+ updateTxs.push({
137
+ annotation: `Update mailbox default ISM to ${expectedDefaultIsmAddress}`,
138
+ ...getSetMailboxDefaultIsmTx(deployed.address, expectedDefaultIsmAddress),
139
+ });
140
+ }
141
+ // 2. Update default hook if changed
142
+ if (!eqOptionalAddress(currentDefaultHookAddress, expectedDefaultHookAddress, eqAddressAleo)) {
143
+ updateTxs.push({
144
+ annotation: `Update mailbox default hook to ${expectedDefaultHookAddress}`,
145
+ ...getSetMailboxDefaultHookTx(deployed.address, expectedDefaultHookAddress),
146
+ });
147
+ }
148
+ // 3. Update required hook if changed
149
+ if (!eqOptionalAddress(currentRequiredHookAddress, expectedRequiredHookAddress, eqAddressAleo)) {
150
+ updateTxs.push({
151
+ annotation: `Update mailbox required hook to ${expectedRequiredHookAddress}`,
152
+ ...getSetMailboxRequiredHookTx(deployed.address, expectedRequiredHookAddress),
153
+ });
154
+ }
155
+ // 4. Update owner if changed (do this last to avoid permission issues)
156
+ if (!eqOptionalAddress(currentConfig.owner, config.owner, eqAddressAleo)) {
157
+ updateTxs.push({
158
+ annotation: `Transfer mailbox ownership to ${config.owner}`,
159
+ ...getSetMailboxOwnerTx(deployed.address, config.owner),
160
+ });
161
+ }
162
+ return updateTxs;
163
+ }
164
+ }
165
+ //# sourceMappingURL=mailbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/mailbox/mailbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const ALEO_PROGRAMS: readonly ['credits', 'dispatch_proxy', 'hook_manager', 'hyp_collateral', 'hyp_native', 'hyp_synthetic', 'ism_manager', 'mailbox', 'token_registry', 'validator_announce'];
2
+ export type AleoProgram = (typeof ALEO_PROGRAMS)[number];
3
+ //# sourceMappingURL=programs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,YACxB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,CACZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ // CAST: Preserve literal program names for the AleoProgram union.
2
+ export const ALEO_PROGRAMS = [
3
+ 'credits',
4
+ 'dispatch_proxy',
5
+ 'hook_manager',
6
+ 'hyp_collateral',
7
+ 'hyp_native',
8
+ 'hyp_synthetic',
9
+ 'ism_manager',
10
+ 'mailbox',
11
+ 'token_registry',
12
+ 'validator_announce',
13
+ ];
14
+ //# sourceMappingURL=programs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programs.js","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,eAAe;IACf,aAAa;IACb,SAAS;IACT,gBAAgB;IAChB,oBAAoB;CACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const AleoProvider: import("./provider.js").AleoProviderConstructor;
2
+ export type AleoProvider = InstanceType<typeof AleoProvider>;
3
+ //# sourceMappingURL=mainnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../src/runtime/mainnet.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,iDAAsD,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as sdk from '@provablehq/sdk/mainnet.js';
2
+ import { AleoNetworkId } from '../constants.js';
3
+ import { createAleoProviderClass } from './provider.js';
4
+ export const AleoProvider = createAleoProviderClass(sdk, AleoNetworkId.MAINNET);
5
+ //# sourceMappingURL=mainnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainnet.js","sourceRoot":"","sources":["../../src/runtime/mainnet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ChainMetadataForAltVM } from '@recoillink/provider-sdk/chain';
2
+ import { AleoProvider as RuntimeAleoProvider } from '../clients/provider.js';
3
+ import type { AleoSdk } from '../utils/provable.js';
4
+ import { AleoNetworkId } from '../utils/types.js';
5
+ export interface AleoProviderConstructor {
6
+ new (rpcUrls: string[], chainId: string | number, chainMetadata: ChainMetadataForAltVM): RuntimeAleoProvider;
7
+ connect(metadata: ChainMetadataForAltVM): Promise<RuntimeAleoProvider>;
8
+ }
9
+ export declare function createAleoProviderClass(sdk: AleoSdk, expectedNetwork: AleoNetworkId): AleoProviderConstructor;
10
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/runtime/provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,KACE,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,aAAa,EAAE,qBAAqB,GACnC,mBAAmB,CAAC;IACvB,OAAO,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACxE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,aAAa,GAC7B,uBAAuB,CAuBzB"}
@@ -0,0 +1,18 @@
1
+ import { assert } from '@recoillink/utils';
2
+ import { AleoProvider as RuntimeAleoProvider } from '../clients/provider.js';
3
+ import { AleoNetworkId, toAleoNetworkId } from '../utils/types.js';
4
+ export function createAleoProviderClass(sdk, expectedNetwork) {
5
+ const runtimeName = expectedNetwork === AleoNetworkId.MAINNET ? 'Mainnet' : 'Testnet';
6
+ return class AleoProvider extends RuntimeAleoProvider {
7
+ static async connect(metadata) {
8
+ const rpcUrls = (metadata.rpcUrls ?? []).map((rpc) => rpc.http);
9
+ return new AleoProvider(rpcUrls, metadata.chainId, metadata);
10
+ }
11
+ constructor(rpcUrls, chainId, chainMetadata) {
12
+ const networkId = toAleoNetworkId(+chainId);
13
+ assert(networkId === expectedNetwork, `${runtimeName} runtime cannot serve Aleo chain id ${chainId}`);
14
+ super(rpcUrls, chainId, chainMetadata, sdk);
15
+ }
16
+ };
17
+ }
18
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/runtime/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWnE,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,eAA8B;IAE9B,MAAM,WAAW,GACf,eAAe,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,OAAO,MAAM,YAAa,SAAQ,mBAAmB;QACnD,MAAM,CAAU,KAAK,CAAC,OAAO,CAAC,QAA+B;YAC3D,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,YACE,OAAiB,EACjB,OAAwB,EACxB,aAAoC;YAEpC,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CACJ,SAAS,KAAK,eAAe,EAC7B,GAAG,WAAW,uCAAuC,OAAO,EAAE,CAC/D,CAAC;YACF,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.d.ts","sourceRoot":"","sources":["../../src/runtime/provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { expect } from 'chai';
2
+ import { ProtocolType, } from '@recoillink/provider-sdk';
3
+ import { AleoProvider as NodeAleoProvider } from '../clients/provider.node.js';
4
+ import { AleoProvider as MainnetAleoProvider } from './mainnet.js';
5
+ import { AleoProvider as TestnetAleoProvider } from './testnet.js';
6
+ function aleoMetadata(chainId) {
7
+ return {
8
+ name: `aleo${chainId}`,
9
+ chainId,
10
+ domainId: chainId,
11
+ protocol: ProtocolType.Aleo,
12
+ rpcUrls: [{ http: 'https://rpc.example' }],
13
+ };
14
+ }
15
+ const nativeWarpConfig = {
16
+ type: 'native',
17
+ owner: 'aleo1owner',
18
+ mailbox: 'aleo1mailbox',
19
+ remoteRouters: {},
20
+ destinationGas: {},
21
+ };
22
+ describe('Aleo runtime providers', () => {
23
+ it('constructs the eager Node provider from chain metadata', async () => {
24
+ const provider = await NodeAleoProvider.connect({
25
+ ...aleoMetadata(1),
26
+ rpcUrls: [{ http: 'https://rpc.example/testnet' }],
27
+ });
28
+ expect(provider.getRpcUrls()).to.deep.equal(['https://rpc.example']);
29
+ });
30
+ it('constructs providers for their configured network', () => {
31
+ const mainnet = new MainnetAleoProvider(['https://rpc.example/mainnet'], 0, aleoMetadata(0));
32
+ const testnet = new TestnetAleoProvider(['https://rpc.example/testnet'], 1, aleoMetadata(1));
33
+ expect(mainnet.getRpcUrls()).to.deep.equal(['https://rpc.example']);
34
+ expect(testnet.getRpcUrls()).to.deep.equal(['https://rpc.example']);
35
+ });
36
+ it('preserves composable warp deploy gas estimation', async () => {
37
+ const provider = new MainnetAleoProvider(['https://rpc.example/mainnet'], 0, aleoMetadata(0));
38
+ expect(await provider.getMinGasForWarpDeploy(nativeWarpConfig)).to.equal(100000000n);
39
+ });
40
+ it('rejects the other network', () => {
41
+ expect(() => new MainnetAleoProvider(['https://rpc.example'], 1, aleoMetadata(1))).to.throw('Mainnet runtime cannot serve Aleo chain id 1');
42
+ expect(() => new TestnetAleoProvider(['https://rpc.example'], 0, aleoMetadata(0))).to.throw('Testnet runtime cannot serve Aleo chain id 0');
43
+ });
44
+ });
45
+ //# sourceMappingURL=provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.js","sourceRoot":"","sources":["../../src/runtime/provider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const AleoProvider: import("./provider.js").AleoProviderConstructor;
2
+ export type AleoProvider = InstanceType<typeof AleoProvider>;
3
+ //# sourceMappingURL=testnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../src/runtime/testnet.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY,iDAAsD,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as testnetSdk from '@provablehq/sdk/testnet.js';
2
+ import { AleoNetworkId } from '../constants.js';
3
+ import { createAleoProviderClass } from './provider.js';
4
+ // CAST: Both Provable network modules expose the same API, but private WASM
5
+ // fields make their otherwise-compatible class types nominal.
6
+ const sdk = testnetSdk;
7
+ export const AleoProvider = createAleoProviderClass(sdk, AleoNetworkId.TESTNET);
8
+ //# sourceMappingURL=testnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testnet.js","sourceRoot":"","sources":["../../src/runtime/testnet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,GAAG,GAAG,UAAgC,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC"}