@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,21 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type IgpHookConfig } from '@recoillink/provider-sdk/hook';
3
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
4
+ import { type AleoSigner } from '../clients/signer.js';
5
+ import { type AleoReceipt, type AnnotatedAleoTransaction } from '../utils/types.js';
6
+ export declare class AleoIgpHookReader implements ArtifactReader<IgpHookConfig, DeployedHookAddress> {
7
+ protected readonly aleoClient: AnyAleoNetworkClient;
8
+ constructor(aleoClient: AnyAleoNetworkClient);
9
+ read(address: string): Promise<ArtifactDeployed<IgpHookConfig, DeployedHookAddress>>;
10
+ }
11
+ export declare class AleoIgpHookWriter extends AleoIgpHookReader implements ArtifactWriter<IgpHookConfig, DeployedHookAddress> {
12
+ private readonly signer;
13
+ private readonly mailboxAddress;
14
+ constructor(aleoClient: AnyAleoNetworkClient, signer: AleoSigner, mailboxAddress: string);
15
+ create(artifact: ArtifactNew<IgpHookConfig>): Promise<[
16
+ ArtifactDeployed<IgpHookConfig, DeployedHookAddress>,
17
+ AleoReceipt[]
18
+ ]>;
19
+ update(artifact: ArtifactDeployed<IgpHookConfig, DeployedHookAddress>): Promise<AnnotatedAleoTransaction[]>;
20
+ }
21
+ //# sourceMappingURL=igp-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igp-hook.d.ts","sourceRoot":"","sources":["../../src/hook/igp-hook.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAW3B,qBAAa,iBAAkB,YAAW,cAAc,CACtD,aAAa,EACb,mBAAmB,CACpB;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,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAuC/D;CACF;AAED,qBAAa,iBACX,SAAQ,iBACR,YAAW,cAAc,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAI3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAHjC,YACE,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,EAGxC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,OAAO,CACR;QAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAAE,WAAW,EAAE;KAAC,CACtE,CAiEA;IAEK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAC7D,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAqErC;CACF"}
@@ -0,0 +1,145 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { eqAddressAleo, isNullish } from '@recoillink/utils';
4
+ import { getNewContractExpectedNonce } from '../utils/base-query.js';
5
+ import { fromAleoAddress, getProgramSuffix } from '../utils/helper.js';
6
+ import { getNewHookAddress } from './base.js';
7
+ import { getIgpHookConfig } from './hook-query.js';
8
+ import { getCreateIgpHookTx, getRemoveDestinationGasConfigTx, getSetDestinationGasConfigTx, getSetIgpHookOwnerTx, } from './hook-tx.js';
9
+ export class AleoIgpHookReader {
10
+ aleoClient;
11
+ constructor(aleoClient) {
12
+ this.aleoClient = aleoClient;
13
+ }
14
+ async read(address) {
15
+ const hookConfig = await getIgpHookConfig(this.aleoClient, address);
16
+ // Map Aleo config to provider-sdk format
17
+ const overhead = {};
18
+ const oracleConfig = {};
19
+ for (const [domainId, gasConfig] of Object.entries(hookConfig.destinationGasConfigs)) {
20
+ overhead[domainId] = parseInt(gasConfig.gasOverhead);
21
+ oracleConfig[domainId] = {
22
+ gasPrice: gasConfig.gasOracle.gasPrice,
23
+ tokenExchangeRate: gasConfig.gasOracle.tokenExchangeRate,
24
+ };
25
+ }
26
+ return {
27
+ artifactState: ArtifactState.DEPLOYED,
28
+ config: {
29
+ type: AltVM.HookType.INTERCHAIN_GAS_PAYMASTER,
30
+ owner: hookConfig.owner,
31
+ // Aleo IGP doesn't have beneficiary and oracleKey in the same way as EVM
32
+ // Setting them to owner as a placeholder
33
+ beneficiary: hookConfig.owner,
34
+ oracleKey: hookConfig.owner,
35
+ overhead,
36
+ oracleConfig,
37
+ },
38
+ deployed: {
39
+ address: hookConfig.address,
40
+ },
41
+ };
42
+ }
43
+ }
44
+ export class AleoIgpHookWriter extends AleoIgpHookReader {
45
+ signer;
46
+ mailboxAddress;
47
+ constructor(aleoClient, signer, mailboxAddress) {
48
+ super(aleoClient);
49
+ this.signer = signer;
50
+ this.mailboxAddress = mailboxAddress;
51
+ }
52
+ async create(artifact) {
53
+ const { programId } = fromAleoAddress(this.mailboxAddress);
54
+ const suffix = getProgramSuffix(programId);
55
+ const hookManagerProgramId = await this.signer.getHookManager(suffix);
56
+ const transaction = getCreateIgpHookTx(hookManagerProgramId);
57
+ const expectedNonce = await getNewContractExpectedNonce(this.aleoClient, hookManagerProgramId);
58
+ const receipt = await this.signer.sendAndConfirmTransaction(transaction);
59
+ const hookAddress = await getNewHookAddress(this.aleoClient, hookManagerProgramId, expectedNonce);
60
+ const receipts = [receipt];
61
+ // Set destination gas configs
62
+ for (const [domainId, gasOverhead] of Object.entries(artifact.config.overhead)) {
63
+ const parsedDomainId = parseInt(domainId);
64
+ const oracleConfig = artifact.config.oracleConfig[parsedDomainId];
65
+ if (!oracleConfig) {
66
+ throw new Error(`Missing oracle config for domain ${domainId}`);
67
+ }
68
+ const gasConfigTx = getSetDestinationGasConfigTx(hookAddress, {
69
+ remoteDomainId: parsedDomainId,
70
+ gasOverhead: gasOverhead.toString(),
71
+ tokenExchangeRate: oracleConfig.tokenExchangeRate,
72
+ gasPrice: oracleConfig.gasPrice,
73
+ });
74
+ const gasConfigReceipt = await this.signer.sendAndConfirmTransaction(gasConfigTx);
75
+ receipts.push(gasConfigReceipt);
76
+ }
77
+ // Transfer ownership if needed (deployer is initial owner)
78
+ const deployerAddress = this.signer.getSignerAddress();
79
+ if (!eqAddressAleo(artifact.config.owner, deployerAddress)) {
80
+ const ownerTx = getSetIgpHookOwnerTx(hookAddress, artifact.config.owner);
81
+ const ownerReceipt = await this.signer.sendAndConfirmTransaction(ownerTx);
82
+ receipts.push(ownerReceipt);
83
+ }
84
+ const deployedArtifact = {
85
+ artifactState: ArtifactState.DEPLOYED,
86
+ config: artifact.config,
87
+ deployed: {
88
+ address: hookAddress,
89
+ },
90
+ };
91
+ return [deployedArtifact, receipts];
92
+ }
93
+ async update(artifact) {
94
+ const current = await this.read(artifact.deployed.address);
95
+ const transactions = [];
96
+ // Handle destination gas config updates first
97
+ const currentOverhead = current.config.overhead;
98
+ const desiredOverhead = artifact.config.overhead;
99
+ const currentOracleConfig = current.config.oracleConfig;
100
+ const desiredOracleConfig = artifact.config.oracleConfig;
101
+ // Remove configs that are no longer needed
102
+ const domainsToRemove = Object.keys(currentOverhead).filter((domainId) => isNullish(desiredOverhead[parseInt(domainId)]));
103
+ for (const domainId of domainsToRemove) {
104
+ transactions.push({
105
+ annotation: `Removing destination gas config for domain ${domainId}`,
106
+ ...getRemoveDestinationGasConfigTx(artifact.deployed.address, parseInt(domainId)),
107
+ });
108
+ }
109
+ // Add or update configs
110
+ for (const [domainId, gasOverhead] of Object.entries(desiredOverhead)) {
111
+ const parsedDomainId = parseInt(domainId);
112
+ const oracleConfig = desiredOracleConfig[parsedDomainId];
113
+ if (!oracleConfig) {
114
+ throw new Error(`Missing oracle config for domain ${domainId}`);
115
+ }
116
+ const currentGasOverhead = currentOverhead[parsedDomainId];
117
+ const currentOracle = currentOracleConfig[parsedDomainId];
118
+ // Check if config changed
119
+ const configChanged = currentGasOverhead !== gasOverhead ||
120
+ isNullish(currentOracle) ||
121
+ currentOracle.gasPrice !== oracleConfig.gasPrice ||
122
+ currentOracle.tokenExchangeRate !== oracleConfig.tokenExchangeRate;
123
+ if (configChanged) {
124
+ transactions.push({
125
+ annotation: `Setting destination gas config for domain ${domainId}`,
126
+ ...getSetDestinationGasConfigTx(artifact.deployed.address, {
127
+ remoteDomainId: parseInt(domainId),
128
+ gasOverhead: gasOverhead.toString(),
129
+ tokenExchangeRate: oracleConfig.tokenExchangeRate,
130
+ gasPrice: oracleConfig.gasPrice,
131
+ }),
132
+ });
133
+ }
134
+ }
135
+ // Transfer ownership last if changed
136
+ if (!eqAddressAleo(artifact.config.owner, current.config.owner)) {
137
+ transactions.push({
138
+ annotation: `Setting IGP hook owner to ${artifact.config.owner}`,
139
+ ...getSetIgpHookOwnerTx(artifact.deployed.address, artifact.config.owner),
140
+ });
141
+ }
142
+ return transactions;
143
+ }
144
+ }
145
+ //# sourceMappingURL=igp-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igp-hook.js","sourceRoot":"","sources":["../../src/hook/igp-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type MerkleTreeHookConfig } from '@recoillink/provider-sdk/hook';
3
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
4
+ import { type AleoSigner } from '../clients/signer.js';
5
+ import { type AleoReceipt, type AnnotatedAleoTransaction } from '../utils/types.js';
6
+ export declare class AleoMerkleTreeHookReader implements ArtifactReader<MerkleTreeHookConfig, DeployedHookAddress> {
7
+ protected readonly aleoClient: AnyAleoNetworkClient;
8
+ constructor(aleoClient: AnyAleoNetworkClient);
9
+ read(address: string): Promise<ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>>;
10
+ }
11
+ export declare class AleoMerkleTreeHookWriter extends AleoMerkleTreeHookReader implements ArtifactWriter<MerkleTreeHookConfig, DeployedHookAddress> {
12
+ private readonly signer;
13
+ private readonly mailboxAddress;
14
+ constructor(aleoClient: AnyAleoNetworkClient, signer: AleoSigner, mailboxAddress: string);
15
+ create(artifact: ArtifactNew<MerkleTreeHookConfig>): Promise<[
16
+ ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>,
17
+ AleoReceipt[]
18
+ ]>;
19
+ update(_artifact: ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>): Promise<AnnotatedAleoTransaction[]>;
20
+ }
21
+ //# sourceMappingURL=merkle-tree-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook.d.ts","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAM3B,qBAAa,wBAAyB,YAAW,cAAc,CAC7D,oBAAoB,EACpB,mBAAmB,CACpB;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,oBAAoB,EAAE,mBAAmB,CAAC,CAAC,CAYtE;CACF;AAED,qBAAa,wBACX,SAAQ,wBACR,YAAW,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAIlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAHjC,YACE,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,EAGxC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,oBAAoB,CAAC,GAC1C,OAAO,CACR;QAAC,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;QAAE,WAAW,EAAE;KAAC,CAC7E,CAyCA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,GACrE,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAGrC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { getNewContractExpectedNonce } from '../utils/base-query.js';
4
+ import { fromAleoAddress, getProgramIdFromSuffix, getProgramSuffix, } from '../utils/helper.js';
5
+ import { getNewHookAddress } from './base.js';
6
+ import { getMerkleTreeHookConfig } from './hook-query.js';
7
+ import { getCreateMerkleTreeHookTx } from './hook-tx.js';
8
+ export class AleoMerkleTreeHookReader {
9
+ aleoClient;
10
+ constructor(aleoClient) {
11
+ this.aleoClient = aleoClient;
12
+ }
13
+ async read(address) {
14
+ const hookConfig = await getMerkleTreeHookConfig(this.aleoClient, address);
15
+ return {
16
+ artifactState: ArtifactState.DEPLOYED,
17
+ config: {
18
+ type: AltVM.HookType.MERKLE_TREE,
19
+ },
20
+ deployed: {
21
+ address: hookConfig.address,
22
+ },
23
+ };
24
+ }
25
+ }
26
+ export class AleoMerkleTreeHookWriter extends AleoMerkleTreeHookReader {
27
+ signer;
28
+ mailboxAddress;
29
+ constructor(aleoClient, signer, mailboxAddress) {
30
+ super(aleoClient);
31
+ this.signer = signer;
32
+ this.mailboxAddress = mailboxAddress;
33
+ }
34
+ async create(artifact) {
35
+ const { programId } = fromAleoAddress(this.mailboxAddress);
36
+ const suffix = getProgramSuffix(programId);
37
+ const prefix = this.signer.getNetworkPrefix();
38
+ const hookManagerProgramId = await this.signer.getHookManager(suffix);
39
+ const dispatchProxyProgramId = getProgramIdFromSuffix(prefix, 'dispatch_proxy', suffix);
40
+ const transaction = getCreateMerkleTreeHookTx(hookManagerProgramId, dispatchProxyProgramId);
41
+ const expectedNonce = await getNewContractExpectedNonce(this.aleoClient, hookManagerProgramId);
42
+ const receipt = await this.signer.sendAndConfirmTransaction(transaction);
43
+ const hookAddress = await getNewHookAddress(this.aleoClient, hookManagerProgramId, expectedNonce);
44
+ const deployedArtifact = {
45
+ artifactState: ArtifactState.DEPLOYED,
46
+ config: artifact.config,
47
+ deployed: {
48
+ address: hookAddress,
49
+ },
50
+ };
51
+ return [deployedArtifact, [receipt]];
52
+ }
53
+ async update(_artifact) {
54
+ // MerkleTreeHook has no mutable state
55
+ return [];
56
+ }
57
+ }
58
+ //# sourceMappingURL=merkle-tree-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook.js","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAIL,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAQ3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,OAAO,wBAAwB;IAIJ,UAAU;IAAzC,YAA+B,UAAgC;0BAAhC,UAAU;IAAyB,CAAC;IAEnE,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE3E,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;aACjC;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBACX,SAAQ,wBAAwB;IAKb,MAAM;IACN,cAAc;IAHjC,YACE,UAAgC,EACf,MAAkB,EAClB,cAAsB;QAEvC,KAAK,CAAC,UAAU,CAAC,CAAC;sBAHD,MAAM;8BACN,cAAc;IAGjC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA2C;QAI3C,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAE9C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,sBAAsB,GAAG,sBAAsB,CACnD,MAAM,EACN,gBAAgB,EAChB,MAAM,CACP,CAAC;QAEF,MAAM,WAAW,GAAG,yBAAyB,CAC3C,oBAAoB,EACpB,sBAAsB,CACvB,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,IAAI,CAAC,UAAU,EACf,oBAAoB,CACrB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,IAAI,CAAC,UAAU,EACf,oBAAoB,EACpB,aAAa,CACd,CAAC;QAEF,MAAM,gBAAgB,GAGlB;YACF,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,WAAW;aACrB;SACF,CAAC;QAEF,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAsE;QAEtE,sCAAsC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ export { ALEO_NATIVE_DENOM, ALEO_NULL_ADDRESS } from './utils/helper.js';
2
+ export { AleoProtocolProvider } from './clients/protocol.js';
3
+ export { AleoReceipt, AleoTransaction } from './utils/types.js';
4
+ export { AleoProvider } from './clients/provider.node.js';
5
+ export { AleoSigner } from './clients/signer.js';
6
+ export { AleoIsmArtifactManager } from './ism/ism-artifact-manager.js';
7
+ export { AleoHookArtifactManager } from './hook/hook-artifact-manager.js';
8
+ export { AleoMerkleTreeHookReader, AleoMerkleTreeHookWriter, } from './hook/merkle-tree-hook.js';
9
+ export { AleoIgpHookReader, AleoIgpHookWriter } from './hook/igp-hook.js';
10
+ export { AleoWarpArtifactManager } from './warp/warp-artifact-manager.js';
11
+ export { AleoMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
12
+ export { AleoMailboxReader, AleoMailboxWriter } from './mailbox/mailbox.js';
13
+ export { AleoValidatorAnnounceArtifactManager } from './validator-announce/validator-announce-artifact-manager.js';
14
+ export { AleoValidatorAnnounceReader, AleoValidatorAnnounceWriter, } from './validator-announce/validator-announce.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oCAAoC,EAAE,MAAM,6DAA6D,CAAC;AACnH,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ export { ALEO_NATIVE_DENOM, ALEO_NULL_ADDRESS } from './utils/helper.js';
2
+ export { AleoProtocolProvider } from './clients/protocol.js';
3
+ export { AleoProvider } from './clients/provider.node.js';
4
+ export { AleoSigner } from './clients/signer.js';
5
+ export { AleoIsmArtifactManager } from './ism/ism-artifact-manager.js';
6
+ export { AleoHookArtifactManager } from './hook/hook-artifact-manager.js';
7
+ export { AleoMerkleTreeHookReader, AleoMerkleTreeHookWriter, } from './hook/merkle-tree-hook.js';
8
+ export { AleoIgpHookReader, AleoIgpHookWriter } from './hook/igp-hook.js';
9
+ export { AleoWarpArtifactManager } from './warp/warp-artifact-manager.js';
10
+ export { AleoMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
11
+ export { AleoMailboxReader, AleoMailboxWriter } from './mailbox/mailbox.js';
12
+ export { AleoValidatorAnnounceArtifactManager } from './validator-announce/validator-announce-artifact-manager.js';
13
+ export { AleoValidatorAnnounceReader, AleoValidatorAnnounceWriter, } from './validator-announce/validator-announce.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oCAAoC,EAAE,MAAM,6DAA6D,CAAC;AACnH,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
2
+ /**
3
+ * Retrieves the address of a newly created ISM from the ISM manager contract.
4
+ *
5
+ * This function queries the ISM manager's nonce to get the current count of created ISMs,
6
+ * then uses that nonce to look up the most recently created ISM address from the
7
+ * `ism_addresses` mapping.
8
+ *
9
+ * @param aleoClient - The Aleo network client for querying contract state
10
+ * @param ismManagerProgramId - The program ID of the ISM manager contract
11
+ * @returns The full ISM address in the format "programId/address"
12
+ * @throws Error if the ISM address cannot be read from the ISM manager
13
+ */
14
+ export declare function getNewIsmAddress(aleoClient: AnyAleoNetworkClient, ismManagerProgramId: string, nonce: string): Promise<string>;
15
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/ism/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,oBAAoB,EAChC,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
@@ -0,0 +1,25 @@
1
+ import { retryAsync } from '@recoillink/utils';
2
+ import { RETRY_ATTEMPTS, RETRY_DELAY_MS } from '../utils/helper.js';
3
+ /**
4
+ * Retrieves the address of a newly created ISM from the ISM manager contract.
5
+ *
6
+ * This function queries the ISM manager's nonce to get the current count of created ISMs,
7
+ * then uses that nonce to look up the most recently created ISM address from the
8
+ * `ism_addresses` mapping.
9
+ *
10
+ * @param aleoClient - The Aleo network client for querying contract state
11
+ * @param ismManagerProgramId - The program ID of the ISM manager contract
12
+ * @returns The full ISM address in the format "programId/address"
13
+ * @throws Error if the ISM address cannot be read from the ISM manager
14
+ */
15
+ export async function getNewIsmAddress(aleoClient, ismManagerProgramId, nonce) {
16
+ const ismAddressRaw = await retryAsync(async () => {
17
+ const result = await aleoClient.getProgramMappingValue(ismManagerProgramId, 'ism_addresses', nonce);
18
+ if (result === null) {
19
+ throw new Error(`could not read ism address with nonce ${nonce} from ism_manager`);
20
+ }
21
+ return result;
22
+ }, RETRY_ATTEMPTS, RETRY_DELAY_MS);
23
+ return `${ismManagerProgramId}/${ismAddressRaw}`;
24
+ }
25
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ism/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAgC,EAChC,mBAA2B,EAC3B,KAAa;IAEb,MAAM,aAAa,GAAG,MAAM,UAAU,CACpC,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,sBAAsB,CACpD,mBAAmB,EACnB,eAAe,EACf,KAAK,CACN,CAAC;QACF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,mBAAmB,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,cAAc,EACd,cAAc,CACf,CAAC;IAEF,OAAO,GAAG,mBAAmB,IAAI,aAAa,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedIsmAddress, type DeployedRawIsmArtifact, type IRawIsmArtifactManager, type IsmType, type RawIsmArtifactConfigs } from '@recoillink/provider-sdk/ism';
3
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
4
+ import { type AleoSigner } from '../clients/signer.js';
5
+ export declare class AleoIsmArtifactManager implements IRawIsmArtifactManager {
6
+ private readonly aleoClient;
7
+ constructor(aleoClient: AnyAleoNetworkClient);
8
+ readIsm(address: string): Promise<DeployedRawIsmArtifact>;
9
+ createReader<T extends IsmType>(type: T): ArtifactReader<RawIsmArtifactConfigs[T], DeployedIsmAddress>;
10
+ createWriter<T extends IsmType>(type: T, signer: AleoSigner): ArtifactWriter<RawIsmArtifactConfigs[T], DeployedIsmAddress>;
11
+ }
12
+ //# sourceMappingURL=ism-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/ism/ism-artifact-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAkCvD,qBAAa,sBAAuB,YAAW,sBAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAvC,YAA6B,UAAU,EAAE,oBAAoB,EAAI;IAE3D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAM9D;IAED,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CA0B9D;IAED,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,GACjB,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CA6B9D;CACF"}
@@ -0,0 +1,62 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { altVMIsmTypeToProviderSdkType, } from '@recoillink/provider-sdk/ism';
3
+ import { AleoIsmType } from '../utils/types.js';
4
+ import { getIsmType } from './ism-query.js';
5
+ import { AleoMessageIdMultisigIsmReader, AleoMessageIdMultisigIsmWriter, } from './multisig-ism.js';
6
+ import { AleoRoutingIsmRawReader, AleoRoutingIsmRawWriter, } from './routing-ism.js';
7
+ import { AleoTestIsmReader, AleoTestIsmWriter } from './test-ism.js';
8
+ /**
9
+ * Maps Aleo-specific ISM type values to provider-sdk ISM types.
10
+ */
11
+ function aleoIsmTypeToAltVmType(aleoType) {
12
+ switch (aleoType) {
13
+ case AleoIsmType.MESSAGE_ID_MULTISIG:
14
+ return AltVM.IsmType.MESSAGE_ID_MULTISIG;
15
+ case AleoIsmType.ROUTING:
16
+ return AltVM.IsmType.ROUTING;
17
+ case AleoIsmType.TEST_ISM:
18
+ return AltVM.IsmType.TEST_ISM;
19
+ case AleoIsmType.MERKLE_ROOT_MULTISIG:
20
+ throw new Error(`${AltVM.IsmType.MERKLE_ROOT_MULTISIG} is not supported on Aleo`);
21
+ default:
22
+ throw new Error(`Unknown Aleo ISM type: ${aleoType}`);
23
+ }
24
+ }
25
+ export class AleoIsmArtifactManager {
26
+ aleoClient;
27
+ constructor(aleoClient) {
28
+ this.aleoClient = aleoClient;
29
+ }
30
+ async readIsm(address) {
31
+ const aleoIsmType = await getIsmType(this.aleoClient, address);
32
+ const altVMType = aleoIsmTypeToAltVmType(aleoIsmType);
33
+ const artifactIsmType = altVMIsmTypeToProviderSdkType(altVMType);
34
+ const reader = this.createReader(artifactIsmType);
35
+ return reader.read(address);
36
+ }
37
+ createReader(type) {
38
+ switch (type) {
39
+ case AltVM.IsmType.TEST_ISM:
40
+ return new AleoTestIsmReader(this.aleoClient);
41
+ case AltVM.IsmType.MESSAGE_ID_MULTISIG:
42
+ return new AleoMessageIdMultisigIsmReader(this.aleoClient);
43
+ case AltVM.IsmType.ROUTING:
44
+ return new AleoRoutingIsmRawReader(this.aleoClient);
45
+ default:
46
+ throw new Error(`Unsupported ISM type: ${type}`);
47
+ }
48
+ }
49
+ createWriter(type, signer) {
50
+ switch (type) {
51
+ case AltVM.IsmType.TEST_ISM:
52
+ return new AleoTestIsmWriter(this.aleoClient, signer);
53
+ case AltVM.IsmType.MESSAGE_ID_MULTISIG:
54
+ return new AleoMessageIdMultisigIsmWriter(this.aleoClient, signer);
55
+ case AltVM.IsmType.ROUTING:
56
+ return new AleoRoutingIsmRawWriter(this.aleoClient, signer);
57
+ default:
58
+ throw new Error(`Unsupported ISM type: ${type}`);
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=ism-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-artifact-manager.js","sourceRoot":"","sources":["../../src/ism/ism-artifact-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type AnyAleoNetworkClient } from '../clients/base.js';
2
+ import { AleoIsmType } from '../utils/types.js';
3
+ /**
4
+ * Query the ISM type for a given ISM address.
5
+ *
6
+ * @param aleoClient - The Aleo network client
7
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
8
+ * @returns The ISM type
9
+ */
10
+ export declare function getIsmType(aleoClient: AnyAleoNetworkClient, ismAddress: string): Promise<AleoIsmType>;
11
+ /**
12
+ * Query the configuration for a Test ISM (Noop ISM).
13
+ *
14
+ * @param aleoClient - The Aleo network client
15
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
16
+ * @returns The Test ISM configuration
17
+ */
18
+ export declare function getTestIsmConfig(aleoClient: AnyAleoNetworkClient, ismAddress: string): Promise<{
19
+ type: AleoIsmType.TEST_ISM;
20
+ address: string;
21
+ }>;
22
+ /**
23
+ * Query the configuration for a Multisig ISM (Message ID or Merkle Root).
24
+ *
25
+ * @param aleoClient - The Aleo network client
26
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
27
+ * @returns The Multisig ISM configuration
28
+ */
29
+ export declare function getMessageIdMultisigIsmConfig(aleoClient: AnyAleoNetworkClient, ismAddress: string): Promise<{
30
+ address: string;
31
+ type: AleoIsmType.MESSAGE_ID_MULTISIG;
32
+ threshold: number;
33
+ validators: string[];
34
+ }>;
35
+ /**
36
+ * Query the configuration for a Routing ISM.
37
+ *
38
+ * @param aleoClient - The Aleo network client
39
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
40
+ * @returns The Routing ISM configuration
41
+ */
42
+ export declare function getRoutingIsmConfig(aleoClient: AnyAleoNetworkClient, ismAddress: string): Promise<{
43
+ type: AleoIsmType.ROUTING;
44
+ address: string;
45
+ owner: string;
46
+ routes: {
47
+ domainId: number;
48
+ ismAddress: string;
49
+ }[];
50
+ }>;
51
+ //# sourceMappingURL=ism-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-query.d.ts","sourceRoot":"","sources":["../../src/ism/ism-query.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAwBtB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAYD;AA0CD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CAuBD;AAkCD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;CACL,CAAC,CAoFD"}