@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,415 @@
1
+ import chai, { expect } from 'chai';
2
+ import chaiAsPromised from 'chai-as-promised';
3
+ import { AltVM } from '@recoillink/provider-sdk';
4
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
5
+ import { assert, normalizeConfig } from '@recoillink/utils';
6
+ import { AleoSigner } from '../clients/signer.js';
7
+ import { AleoIsmArtifactManager } from '../ism/ism-artifact-manager.js';
8
+ import { TEST_ALEO_CHAIN_METADATA } from '../testing/constants.js';
9
+ chai.use(chaiAsPromised);
10
+ describe('5. aleo sdk ISM artifacts (readers and writers) e2e tests', async function () {
11
+ this.timeout(100_000);
12
+ let signer;
13
+ let providerSdkSigner;
14
+ let artifactManager;
15
+ // Shared test validators - sorted alphabetically as required by Aleo
16
+ const validators = [
17
+ '0x3C24F29fa75869A1C9D19d9d6589Aae0B5227c3c',
18
+ '0xf719b4CC64d0E3a380e52c2720Abab13835F6d9c',
19
+ '0x98A56EdE1d6Dd386216DA8217D9ac1d2EE7c27c7',
20
+ ].sort();
21
+ const [firstValidator] = validators;
22
+ assert(firstValidator, 'Expected at least one test validator');
23
+ before(async () => {
24
+ // test private key with funds
25
+ const privateKey = 'APrivateKey1zkp8CZNn3yeCseEtxuVPbDCwSyhGW6yZKUYKfgXmcpoGPWH';
26
+ signer = await AleoSigner.connectWithSigner(TEST_ALEO_CHAIN_METADATA, privateKey);
27
+ providerSdkSigner = signer;
28
+ // Access the aleoClient from the signer to create the artifact manager
29
+ const aleoClient = signer.getAleoClient();
30
+ artifactManager = new AleoIsmArtifactManager(aleoClient);
31
+ });
32
+ describe('Non composite ISMs', () => {
33
+ const testCases = [
34
+ {
35
+ name: 'Test ISM',
36
+ type: AltVM.IsmType.TEST_ISM,
37
+ config: { type: AltVM.IsmType.TEST_ISM },
38
+ },
39
+ {
40
+ name: 'MessageId Multisig ISM',
41
+ type: AltVM.IsmType.MESSAGE_ID_MULTISIG,
42
+ config: {
43
+ type: AltVM.IsmType.MESSAGE_ID_MULTISIG,
44
+ validators,
45
+ threshold: 2,
46
+ },
47
+ verifyConfig: (config) => {
48
+ expect(normalizeConfig(config)).to.deep.equal(normalizeConfig({
49
+ type: AltVM.IsmType.MESSAGE_ID_MULTISIG,
50
+ validators,
51
+ threshold: 2,
52
+ }));
53
+ },
54
+ },
55
+ ];
56
+ testCases.forEach(({ name, type, config, verifyConfig }) => {
57
+ describe(name, () => {
58
+ it(`should create a ${type}`, async () => {
59
+ const writer = artifactManager.createWriter(type, signer);
60
+ const [result, receipts] = await writer.create({ config });
61
+ expect(result.artifactState).to.equal(ArtifactState.DEPLOYED);
62
+ expect(result.config.type).to.equal(type);
63
+ expect(result.deployed.address).to.be.a('string').and.not.be.empty;
64
+ expect(receipts).to.be.an('array').with.length.greaterThan(0);
65
+ });
66
+ it(`should read a ${type}`, async () => {
67
+ const writer = artifactManager.createWriter(type, signer);
68
+ const [deployedIsm] = await writer.create({ config });
69
+ const reader = artifactManager.createReader(type);
70
+ const readIsm = await reader.read(deployedIsm.deployed.address);
71
+ expect(readIsm.artifactState).to.equal(ArtifactState.DEPLOYED);
72
+ expect(readIsm.config.type).to.equal(type);
73
+ expect(readIsm.deployed.address).to.equal(deployedIsm.deployed.address);
74
+ if (verifyConfig) {
75
+ verifyConfig(readIsm.config);
76
+ }
77
+ });
78
+ it(`should read ${name} using AleoIsmArtifactManager.readIsm()`, async () => {
79
+ const writer = artifactManager.createWriter(type, signer);
80
+ const [deployedIsm] = await writer.create({ config });
81
+ const readIsm = await artifactManager.readIsm(deployedIsm.deployed.address);
82
+ expect(readIsm.artifactState).to.equal(ArtifactState.DEPLOYED);
83
+ expect(readIsm.config.type).to.equal(type);
84
+ expect(readIsm.deployed.address).to.equal(deployedIsm.deployed.address);
85
+ if (verifyConfig) {
86
+ verifyConfig(readIsm.config);
87
+ }
88
+ });
89
+ it('should return no transactions when calling update', async () => {
90
+ const writer = artifactManager.createWriter(type, signer);
91
+ const [deployedIsm] = await writer.create({ config });
92
+ const txs = await writer.update(deployedIsm);
93
+ expect(txs).to.be.an('array').with.length(0);
94
+ });
95
+ });
96
+ });
97
+ describe('MerkleRoot Multisig ISM (unsupported)', () => {
98
+ it('should reject creation of MerkleRoot Multisig ISM', async () => {
99
+ // Verify that MerkleRoot Multisig ISM creation is rejected via artifact manager
100
+ expect(() => artifactManager.createWriter(AltVM.IsmType.MERKLE_ROOT_MULTISIG, signer)).to.throw();
101
+ });
102
+ });
103
+ });
104
+ describe(AltVM.IsmType.ROUTING, () => {
105
+ let testIsmAddress;
106
+ let multisigIsmAddress;
107
+ const DOMAIN_1 = 42;
108
+ const DOMAIN_2 = 96;
109
+ const DOMAIN_3 = 100;
110
+ before(async () => {
111
+ // Create Test ISM for routing
112
+ const testWriter = artifactManager.createWriter(AltVM.IsmType.TEST_ISM, signer);
113
+ const [testIsm] = await testWriter.create({
114
+ config: { type: AltVM.IsmType.TEST_ISM },
115
+ });
116
+ testIsmAddress = testIsm.deployed.address;
117
+ // Create MessageId Multisig ISM for routing
118
+ const multisigWriter = artifactManager.createWriter(AltVM.IsmType.MESSAGE_ID_MULTISIG, signer);
119
+ const [multisigIsm] = await multisigWriter.create({
120
+ config: {
121
+ type: AltVM.IsmType.MESSAGE_ID_MULTISIG,
122
+ validators: [firstValidator],
123
+ threshold: 1,
124
+ },
125
+ });
126
+ multisigIsmAddress = multisigIsm.deployed.address;
127
+ });
128
+ it('should create and read the provided config', async () => {
129
+ const config = {
130
+ type: AltVM.IsmType.ROUTING,
131
+ owner: signer.getSignerAddress(),
132
+ domains: {
133
+ [DOMAIN_1]: {
134
+ artifactState: ArtifactState.UNDERIVED,
135
+ deployed: { address: testIsmAddress },
136
+ },
137
+ [DOMAIN_2]: {
138
+ artifactState: ArtifactState.UNDERIVED,
139
+ deployed: { address: multisigIsmAddress },
140
+ },
141
+ },
142
+ };
143
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
144
+ const [routingIsm] = await writer.create({ config });
145
+ expect(routingIsm.artifactState).to.equal(ArtifactState.DEPLOYED);
146
+ expect(routingIsm.config.type).to.equal(AltVM.IsmType.ROUTING);
147
+ expect(routingIsm.deployed.address).to.be.a('string').and.not.be.empty;
148
+ // Read using artifact manager's specific reader
149
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
150
+ const readIsm = await reader.read(routingIsm.deployed.address);
151
+ expect(readIsm.config.type).to.equal(AltVM.IsmType.ROUTING);
152
+ expect(readIsm.config.owner).to.equal(signer.getSignerAddress());
153
+ expect(Object.keys(readIsm.config.domains)).to.have.length(2);
154
+ assert(readIsm.config.domains[DOMAIN_1], `Missing domain ${DOMAIN_1}`);
155
+ assert(readIsm.config.domains[DOMAIN_2], `Missing domain ${DOMAIN_2}`);
156
+ expect(readIsm.config.domains[DOMAIN_1].deployed.address).to.equal(testIsmAddress);
157
+ expect(readIsm.config.domains[DOMAIN_2].deployed.address).to.equal(multisigIsmAddress);
158
+ });
159
+ it('should read Routing ISM using AleoIsmArtifactManager.readIsm()', async () => {
160
+ const config = {
161
+ type: AltVM.IsmType.ROUTING,
162
+ owner: signer.getSignerAddress(),
163
+ domains: {
164
+ [DOMAIN_1]: {
165
+ artifactState: ArtifactState.UNDERIVED,
166
+ deployed: { address: testIsmAddress },
167
+ },
168
+ [DOMAIN_2]: {
169
+ artifactState: ArtifactState.UNDERIVED,
170
+ deployed: { address: multisigIsmAddress },
171
+ },
172
+ },
173
+ };
174
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
175
+ const [routingIsm] = await writer.create({ config });
176
+ const readIsm = await artifactManager.readIsm(routingIsm.deployed.address);
177
+ expect(readIsm.artifactState).to.equal(ArtifactState.DEPLOYED);
178
+ expect(readIsm.config.type).to.equal(AltVM.IsmType.ROUTING);
179
+ expect(readIsm.deployed.address).to.equal(routingIsm.deployed.address);
180
+ // Type cast to access routing-specific properties
181
+ const routingConfig = readIsm.config;
182
+ expect(routingConfig.owner).to.equal(signer.getSignerAddress());
183
+ // Verify domains
184
+ expect(Object.keys(routingConfig.domains)).to.have.length(2);
185
+ assert(routingConfig.domains[DOMAIN_1], `Missing domain ${DOMAIN_1}`);
186
+ assert(routingConfig.domains[DOMAIN_2], `Missing domain ${DOMAIN_2}`);
187
+ expect(routingConfig.domains[DOMAIN_1].deployed.address).to.equal(testIsmAddress);
188
+ expect(routingConfig.domains[DOMAIN_2].deployed.address).to.equal(multisigIsmAddress);
189
+ });
190
+ it('should verify nested ISM addresses can be read', async () => {
191
+ const config = {
192
+ type: AltVM.IsmType.ROUTING,
193
+ owner: signer.getSignerAddress(),
194
+ domains: {
195
+ [DOMAIN_1]: {
196
+ artifactState: ArtifactState.UNDERIVED,
197
+ deployed: { address: testIsmAddress },
198
+ },
199
+ [DOMAIN_2]: {
200
+ artifactState: ArtifactState.UNDERIVED,
201
+ deployed: { address: multisigIsmAddress },
202
+ },
203
+ },
204
+ };
205
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
206
+ const [routingIsm] = await writer.create({ config });
207
+ const readRoutingIsm = await artifactManager.readIsm(routingIsm.deployed.address);
208
+ const routingConfig = readRoutingIsm.config;
209
+ // Read the nested Test ISM from routing config
210
+ assert(routingConfig.domains[DOMAIN_1], `Missing domain ${DOMAIN_1}`);
211
+ const nestedTestIsm = await artifactManager.readIsm(routingConfig.domains[DOMAIN_1].deployed.address);
212
+ expect(nestedTestIsm.config.type).to.equal(AltVM.IsmType.TEST_ISM);
213
+ expect(nestedTestIsm.deployed.address).to.equal(testIsmAddress);
214
+ // Read the nested Multisig ISM from routing config
215
+ assert(routingConfig.domains[DOMAIN_2], `Missing domain ${DOMAIN_2}`);
216
+ const nestedMultisigIsm = await artifactManager.readIsm(routingConfig.domains[DOMAIN_2].deployed.address);
217
+ expect(nestedMultisigIsm.config.type).to.equal(AltVM.IsmType.MESSAGE_ID_MULTISIG);
218
+ expect(nestedMultisigIsm.deployed.address).to.equal(multisigIsmAddress);
219
+ });
220
+ it('should add a new domain ISM', async () => {
221
+ const config = {
222
+ type: AltVM.IsmType.ROUTING,
223
+ owner: signer.getSignerAddress(),
224
+ domains: {
225
+ [DOMAIN_1]: {
226
+ artifactState: ArtifactState.UNDERIVED,
227
+ deployed: { address: testIsmAddress },
228
+ },
229
+ [DOMAIN_2]: {
230
+ artifactState: ArtifactState.UNDERIVED,
231
+ deployed: { address: multisigIsmAddress },
232
+ },
233
+ },
234
+ };
235
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
236
+ const [routingIsm] = await writer.create({ config });
237
+ // Add a new domain
238
+ const updatedConfig = {
239
+ ...routingIsm,
240
+ config: {
241
+ ...routingIsm.config,
242
+ domains: {
243
+ ...routingIsm.config.domains,
244
+ [DOMAIN_3]: {
245
+ artifactState: ArtifactState.UNDERIVED,
246
+ deployed: { address: testIsmAddress },
247
+ },
248
+ },
249
+ },
250
+ };
251
+ const txs = await writer.update(updatedConfig);
252
+ expect(txs).to.be.an('array').with.length.greaterThan(0);
253
+ // Execute transactions
254
+ for (const tx of txs) {
255
+ await providerSdkSigner.sendAndConfirmTransaction(tx);
256
+ }
257
+ // Read back and verify
258
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
259
+ const readIsm = await reader.read(routingIsm.deployed.address);
260
+ assert(readIsm.config.domains[DOMAIN_3], `Missing domain ${DOMAIN_3}`);
261
+ expect(readIsm.config.domains[DOMAIN_3].deployed.address).to.equal(testIsmAddress);
262
+ expect(Object.keys(readIsm.config.domains)).to.have.length(3);
263
+ });
264
+ it('should remove a domain ISM', async () => {
265
+ const config = {
266
+ type: AltVM.IsmType.ROUTING,
267
+ owner: signer.getSignerAddress(),
268
+ domains: {
269
+ [DOMAIN_1]: {
270
+ artifactState: ArtifactState.UNDERIVED,
271
+ deployed: { address: testIsmAddress },
272
+ },
273
+ [DOMAIN_2]: {
274
+ artifactState: ArtifactState.UNDERIVED,
275
+ deployed: { address: multisigIsmAddress },
276
+ },
277
+ },
278
+ };
279
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
280
+ const [routingIsm] = await writer.create({ config });
281
+ assert(routingIsm.config.domains[DOMAIN_1], `Missing domain ${DOMAIN_1}`);
282
+ // Remove DOMAIN_2
283
+ const updatedConfig = {
284
+ ...routingIsm,
285
+ config: {
286
+ ...routingIsm.config,
287
+ domains: {
288
+ [DOMAIN_1]: routingIsm.config.domains[DOMAIN_1],
289
+ },
290
+ },
291
+ };
292
+ const txs = await writer.update(updatedConfig);
293
+ expect(txs).to.be.an('array').with.length.greaterThan(0);
294
+ // Execute transactions
295
+ for (const tx of txs) {
296
+ await providerSdkSigner.sendAndConfirmTransaction(tx);
297
+ }
298
+ // Read back and verify
299
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
300
+ const readIsm = await reader.read(routingIsm.deployed.address);
301
+ expect(readIsm.config.domains[DOMAIN_2]).to.be.undefined;
302
+ expect(Object.keys(readIsm.config.domains)).to.have.length(1);
303
+ });
304
+ it('should update the ISM address for an existing domain', async () => {
305
+ const config = {
306
+ type: AltVM.IsmType.ROUTING,
307
+ owner: signer.getSignerAddress(),
308
+ domains: {
309
+ [DOMAIN_1]: {
310
+ artifactState: ArtifactState.UNDERIVED,
311
+ deployed: { address: testIsmAddress },
312
+ },
313
+ [DOMAIN_2]: {
314
+ artifactState: ArtifactState.UNDERIVED,
315
+ deployed: { address: multisigIsmAddress },
316
+ },
317
+ },
318
+ };
319
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
320
+ const [routingIsm] = await writer.create({ config });
321
+ assert(routingIsm.config.domains[DOMAIN_2], `Missing domain ${DOMAIN_2}`);
322
+ // Update DOMAIN_1 to use multisig ISM instead of test ISM
323
+ const updatedConfig = {
324
+ ...routingIsm,
325
+ config: {
326
+ ...routingIsm.config,
327
+ domains: {
328
+ [DOMAIN_1]: {
329
+ artifactState: ArtifactState.UNDERIVED,
330
+ deployed: { address: multisigIsmAddress },
331
+ },
332
+ [DOMAIN_2]: routingIsm.config.domains[DOMAIN_2],
333
+ },
334
+ },
335
+ };
336
+ const txs = await writer.update(updatedConfig);
337
+ expect(txs).to.be.an('array').with.length.greaterThan(0);
338
+ // Execute transactions
339
+ for (const tx of txs) {
340
+ await providerSdkSigner.sendAndConfirmTransaction(tx);
341
+ }
342
+ // Read back and verify
343
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
344
+ const readIsm = await reader.read(routingIsm.deployed.address);
345
+ assert(readIsm.config.domains[DOMAIN_1], `Missing domain ${DOMAIN_1}`);
346
+ expect(readIsm.config.domains[DOMAIN_1].deployed.address).to.equal(multisigIsmAddress);
347
+ });
348
+ it('should set owner during creation when different from signer', async () => {
349
+ // Use a burn address as the owner
350
+ const burnAddress = 'aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc';
351
+ const config = {
352
+ type: AltVM.IsmType.ROUTING,
353
+ owner: burnAddress,
354
+ domains: {
355
+ [DOMAIN_1]: {
356
+ artifactState: ArtifactState.UNDERIVED,
357
+ deployed: { address: testIsmAddress },
358
+ },
359
+ [DOMAIN_2]: {
360
+ artifactState: ArtifactState.UNDERIVED,
361
+ deployed: { address: multisigIsmAddress },
362
+ },
363
+ },
364
+ };
365
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
366
+ const [routingIsm, receipts] = await writer.create({ config });
367
+ // Verify owner transfer happened during creation
368
+ // Should have 1 create tx + 2 setRoute txs + 1 setOwner tx
369
+ expect(receipts).to.have.length(4);
370
+ // Read back and verify owner was set correctly
371
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
372
+ const readIsm = await reader.read(routingIsm.deployed.address);
373
+ expect(readIsm.config.owner).to.equal(burnAddress);
374
+ });
375
+ it('should transfer ownership of the ISM', async () => {
376
+ const config = {
377
+ type: AltVM.IsmType.ROUTING,
378
+ owner: signer.getSignerAddress(),
379
+ domains: {
380
+ [DOMAIN_1]: {
381
+ artifactState: ArtifactState.UNDERIVED,
382
+ deployed: { address: testIsmAddress },
383
+ },
384
+ [DOMAIN_2]: {
385
+ artifactState: ArtifactState.UNDERIVED,
386
+ deployed: { address: multisigIsmAddress },
387
+ },
388
+ },
389
+ };
390
+ const writer = artifactManager.createWriter(AltVM.IsmType.ROUTING, signer);
391
+ const [routingIsm] = await writer.create({ config });
392
+ // Use a burn address for ownership transfer test
393
+ const burnAddress = 'aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc';
394
+ // Transfer ownership
395
+ const updatedConfig = {
396
+ ...routingIsm,
397
+ config: {
398
+ ...routingIsm.config,
399
+ owner: burnAddress,
400
+ },
401
+ };
402
+ const txs = await writer.update(updatedConfig);
403
+ expect(txs).to.be.an('array').with.length.greaterThan(0);
404
+ // Execute transactions
405
+ for (const tx of txs) {
406
+ await providerSdkSigner.sendAndConfirmTransaction(tx);
407
+ }
408
+ // Read back and verify
409
+ const reader = artifactManager.createReader(AltVM.IsmType.ROUTING);
410
+ const readIsm = await reader.read(routingIsm.deployed.address);
411
+ expect(readIsm.config.owner).to.equal(burnAddress);
412
+ });
413
+ });
414
+ });
415
+ //# sourceMappingURL=5_ism_artifacts.e2e-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5_ism_artifacts.e2e-test.js","sourceRoot":"","sources":["../../src/tests/5_ism_artifacts.e2e-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=6_hook_artifacts.e2e-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6_hook_artifacts.e2e-test.d.ts","sourceRoot":"","sources":["../../src/tests/6_hook_artifacts.e2e-test.ts"],"names":[],"mappings":""}