@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,155 @@
1
+ import { assert, ensure0x, isNullish, isZeroishAddress, } from '@recoillink/utils';
2
+ import { queryMappingValue, tryQueryMappingValue, } from '../utils/base-query.js';
3
+ import { fromAleoAddress } from '../utils/helper.js';
4
+ import { AleoIsmType } from '../utils/types.js';
5
+ /**
6
+ * Type guard to check if a number is a valid AleoIsmType
7
+ */
8
+ function isAleoIsmType(maybeIsmType) {
9
+ switch (maybeIsmType) {
10
+ case AleoIsmType.TEST_ISM:
11
+ case AleoIsmType.ROUTING:
12
+ case AleoIsmType.MERKLE_ROOT_MULTISIG:
13
+ case AleoIsmType.MESSAGE_ID_MULTISIG:
14
+ return true;
15
+ }
16
+ return false;
17
+ }
18
+ /**
19
+ * Query the ISM type for a given ISM address.
20
+ *
21
+ * @param aleoClient - The Aleo network client
22
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
23
+ * @returns The ISM type
24
+ */
25
+ export async function getIsmType(aleoClient, ismAddress) {
26
+ const { address, programId } = fromAleoAddress(ismAddress);
27
+ const result = await queryMappingValue(aleoClient, programId, 'isms', address, (raw) => {
28
+ assert(typeof raw === 'number', `Expected ISM type to be a number but got ${typeof raw}`);
29
+ return raw;
30
+ });
31
+ assert(isAleoIsmType(result), `Unknown ISM type ${result} for address: ${ismAddress}`);
32
+ return result;
33
+ }
34
+ /**
35
+ * Query the configuration for a Test ISM (Noop ISM).
36
+ *
37
+ * @param aleoClient - The Aleo network client
38
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
39
+ * @returns The Test ISM configuration
40
+ */
41
+ export async function getTestIsmConfig(aleoClient, ismAddress) {
42
+ const ismType = await getIsmType(aleoClient, ismAddress);
43
+ assert(ismType === AleoIsmType.TEST_ISM, `Expected ism at address ${ismAddress} to be of type TEST_ISM but got ${ismType}`);
44
+ return {
45
+ type: AleoIsmType.TEST_ISM,
46
+ address: ismAddress,
47
+ };
48
+ }
49
+ function formatIsmMultisigInfo(raw) {
50
+ assert(typeof raw === 'object' && !isNullish(raw), `Expected multisig config to be an object but got ${typeof raw}`);
51
+ const { validators, threshold } = raw;
52
+ assert(Array.isArray(validators), 'Expected validators array in multisig config');
53
+ assert(typeof threshold === 'number', 'Expected threshold number in multisig config');
54
+ return {
55
+ // The multisig ISM on Aleo can have a max
56
+ // of 6 validators. If there are less than 6,
57
+ // the remaining items in the array will be 0
58
+ // addresses
59
+ validators: validators
60
+ .map((v) => {
61
+ assert(Array.isArray(v.bytes), 'Expected validator bytes to be an array');
62
+ return ensure0x(Buffer.from(v.bytes).toString('hex'));
63
+ })
64
+ // Remove any unset validator from the result array
65
+ .filter((validatorAddress) => !isZeroishAddress(validatorAddress)),
66
+ threshold,
67
+ };
68
+ }
69
+ /**
70
+ * Query the configuration for a Multisig ISM (Message ID or Merkle Root).
71
+ *
72
+ * @param aleoClient - The Aleo network client
73
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
74
+ * @returns The Multisig ISM configuration
75
+ */
76
+ export async function getMessageIdMultisigIsmConfig(aleoClient, ismAddress) {
77
+ const { address, programId } = fromAleoAddress(ismAddress);
78
+ const ismType = await getIsmType(aleoClient, ismAddress);
79
+ assert(ismType === AleoIsmType.MESSAGE_ID_MULTISIG, `Expected ism at address ${ismAddress} to be a multisig ISM but got ${ismType}`);
80
+ const { threshold, validators } = await queryMappingValue(aleoClient, programId, 'message_id_multisigs', address, formatIsmMultisigInfo);
81
+ return {
82
+ address: ismAddress,
83
+ type: ismType,
84
+ validators,
85
+ threshold,
86
+ };
87
+ }
88
+ function formatRoutingIsmData(raw) {
89
+ assert(typeof raw === 'object' && !isNullish(raw), `Expected routing ISM data to be an object but got ${typeof raw}`);
90
+ const { ism_owner } = raw;
91
+ assert(typeof ism_owner === 'string', 'Expected ism_owner to be a string in routing ISM data');
92
+ return { owner: ism_owner };
93
+ }
94
+ function formatRouteLength(raw) {
95
+ assert(typeof raw === 'number', `Expected route length to be a number but got ${typeof raw}`);
96
+ return raw;
97
+ }
98
+ function formatRouteIsmAddress(raw) {
99
+ assert(typeof raw === 'string', `Expected route ISM address to be a string but got ${typeof raw}`);
100
+ return raw;
101
+ }
102
+ /**
103
+ * Query the configuration for a Routing ISM.
104
+ *
105
+ * @param aleoClient - The Aleo network client
106
+ * @param ismAddress - The full ISM address (e.g., "ism_manager.aleo/aleo1...")
107
+ * @returns The Routing ISM configuration
108
+ */
109
+ export async function getRoutingIsmConfig(aleoClient, ismAddress) {
110
+ const { address, programId } = fromAleoAddress(ismAddress);
111
+ const ismType = await getIsmType(aleoClient, ismAddress);
112
+ assert(ismType === AleoIsmType.ROUTING, `Expected ism at address ${ismAddress} to be of type ROUTING but got ${ismType}`);
113
+ const routes = [];
114
+ const ismData = await queryMappingValue(aleoClient, programId, 'domain_routing_isms', address, formatRoutingIsmData);
115
+ const routeLengthRes = await queryMappingValue(aleoClient, programId, 'route_length', address, formatRouteLength);
116
+ for (let i = 0; i < routeLengthRes; i++) {
117
+ let routeKey;
118
+ try {
119
+ routeKey = await aleoClient.getProgramMappingPlaintext(programId, 'route_iter', `{ism:${address},index:${i}u32}`);
120
+ }
121
+ catch (err) {
122
+ throw new Error(`Failed to query route_iter for ISM ${ismAddress} at index ${i}: ${err}`);
123
+ }
124
+ const routeIsmAddress = await tryQueryMappingValue(aleoClient, programId, 'routes', routeKey.toString(), formatRouteIsmAddress);
125
+ // This is necessary because `route_iter` maintains keys for all route entries,
126
+ // including those from domains that have already been removed. When a domain is
127
+ // deleted from the Routing ISM, its key remains in the map and `routes` simply returns null.
128
+ if (!routeIsmAddress)
129
+ continue;
130
+ const routeKeyObj = routeKey.toObject();
131
+ // Skip routes with invalid domain data. This could happen if the on-chain
132
+ // structure changes. Rather than failing the entire
133
+ // ISM read, we skip invalid entries to allow partial recovery.
134
+ // TODO: Add proper logging when aleo-sdk has a logging framework
135
+ if (typeof routeKeyObj.domain !== 'number' &&
136
+ typeof routeKeyObj.domain !== 'string') {
137
+ continue;
138
+ }
139
+ const domainId = Number(routeKeyObj.domain);
140
+ if (isNaN(domainId)) {
141
+ continue;
142
+ }
143
+ routes.push({
144
+ ismAddress: `${programId}/${routeIsmAddress}`,
145
+ domainId,
146
+ });
147
+ }
148
+ return {
149
+ type: AleoIsmType.ROUTING,
150
+ address: ismAddress,
151
+ owner: ismData.owner,
152
+ routes: routes,
153
+ };
154
+ }
155
+ //# sourceMappingURL=ism-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-query.js","sourceRoot":"","sources":["../../src/ism/ism-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,SAAS,aAAa,CAAC,YAAoB;IACzC,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,WAAW,CAAC,QAAQ,CAAC;QAC1B,KAAK,WAAW,CAAC,OAAO,CAAC;QACzB,KAAK,WAAW,CAAC,oBAAoB,CAAC;QACtC,KAAK,WAAW,CAAC,mBAAmB;YAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAgC,EAChC,UAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,CACJ,OAAO,GAAG,KAAK,QAAQ,EACvB,4CAA4C,OAAO,GAAG,EAAE,CACzD,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC,CACF,CAAC;IAEF,MAAM,CACJ,aAAa,CAAC,MAAM,CAAC,EACrB,oBAAoB,MAAM,iBAAiB,UAAU,EAAE,CACxD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAgC,EAChC,UAAkB;IAKlB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,CACJ,OAAO,KAAK,WAAW,CAAC,QAAQ,EAChC,2BAA2B,UAAU,mCAAmC,OAAO,EAAE,CAClF,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,QAAQ;QAC1B,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IAIzC,MAAM,CACJ,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAC1C,oDAAoD,OAAO,GAAG,EAAE,CACjE,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,GAAU,CAAC;IAE7C,MAAM,CACJ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB,8CAA8C,CAC/C,CAAC;IAEF,MAAM,CACJ,OAAO,SAAS,KAAK,QAAQ,EAC7B,8CAA8C,CAC/C,CAAC;IAEF,OAAO;QACL,0CAA0C;QAC1C,6CAA6C;QAC7C,6CAA6C;QAC7C,YAAY;QACZ,UAAU,EAAE,UAAU;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,CACJ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EACtB,yCAAyC,CAC1C,CAAC;YACF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;YACF,mDAAmD;aAClD,MAAM,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACpE,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,UAAgC,EAChC,UAAkB;IAOlB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,CACJ,OAAO,KAAK,WAAW,CAAC,mBAAmB,EAC3C,2BAA2B,UAAU,iCAAiC,OAAO,EAAE,CAChF,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CACvD,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,qBAAqB,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;QACb,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,CACJ,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAC1C,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,GAAG,GAAU,CAAC;IAEjC,MAAM,CACJ,OAAO,SAAS,KAAK,QAAQ,EAC7B,uDAAuD,CACxD,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,CACJ,OAAO,GAAG,KAAK,QAAQ,EACvB,gDAAgD,OAAO,GAAG,EAAE,CAC7D,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,MAAM,CACJ,OAAO,GAAG,KAAK,QAAQ,EACvB,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAgC,EAChC,UAAkB;IAUlB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,CACJ,OAAO,KAAK,WAAW,CAAC,OAAO,EAC/B,2BAA2B,UAAU,kCAAkC,OAAO,EAAE,CACjF,CAAC;IAEF,MAAM,MAAM,GAA+C,EAAE,CAAC;IAE9D,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,OAAO,EACP,oBAAoB,CACrB,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,EACP,iBAAiB,CAClB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,UAAU,CAAC,0BAA0B,CACpD,SAAS,EACT,YAAY,EACZ,QAAQ,OAAO,UAAU,CAAC,MAAM,CACjC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,sCAAsC,UAAU,aAAa,CAAC,KAAK,GAAG,EAAE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,CAAC,QAAQ,EAAE,EACnB,qBAAqB,CACtB,CAAC;QAEF,+EAA+E;QAC/E,gFAAgF;QAChF,6FAA6F;QAC7F,IAAI,CAAC,eAAe;YAAE,SAAS;QAE/B,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAExC,0EAA0E;QAC1E,oDAAoD;QACpD,+DAA+D;QAC/D,iEAAiE;QACjE,IACE,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ;YACtC,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,EACtC,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,GAAG,SAAS,IAAI,eAAe,EAAE;YAC7C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,OAAO;QACzB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,MAAM;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type AleoTransaction } from '../utils/types.js';
2
+ export declare function getCreateTestIsmTx(ismManagerProgramId: string): AleoTransaction;
3
+ export declare function getCreateMessageIdMultisigIsmTx(ismManagerProgramId: string, config: {
4
+ validators: string[];
5
+ threshold: number;
6
+ }): AleoTransaction;
7
+ export declare function getCreateRoutingIsmTx(ismManagerProgramId: string): AleoTransaction;
8
+ export declare function getSetRoutingIsmRouteTx(ismAddress: string, route: {
9
+ domainId: number;
10
+ ismAddress: string;
11
+ }): AleoTransaction;
12
+ export declare function getRemoveRoutingIsmRouteTx(ismAddress: string, domainId: number): AleoTransaction;
13
+ export declare function getSetRoutingIsmOwnerTx(ismAddress: string, newOwner: string): AleoTransaction;
14
+ //# sourceMappingURL=ism-tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-tx.d.ts","sourceRoot":"","sources":["../../src/ism/ism-tx.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,kBAAkB,CAChC,mBAAmB,EAAE,MAAM,GAC1B,eAAe,CAQjB;AAED,wBAAgB,+BAA+B,CAC7C,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClD,eAAe,CA4BjB;AAED,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,GAC1B,eAAe,CAQjB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9C,eAAe,CAcjB;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,eAAe,CAUjB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,eAAe,CAUjB"}
@@ -0,0 +1,77 @@
1
+ import { strip0x } from '@recoillink/utils';
2
+ import { fillArray, fromAleoAddress } from '../utils/helper.js';
3
+ export function getCreateTestIsmTx(ismManagerProgramId) {
4
+ return {
5
+ programName: ismManagerProgramId,
6
+ functionName: 'init_noop',
7
+ priorityFee: 0,
8
+ privateFee: false,
9
+ inputs: [],
10
+ };
11
+ }
12
+ export function getCreateMessageIdMultisigIsmTx(ismManagerProgramId, config) {
13
+ const MAXIMUM_VALIDATORS = 6;
14
+ if (config.validators.length > MAXIMUM_VALIDATORS) {
15
+ throw new Error(`maximum ${MAXIMUM_VALIDATORS} validators allowed`);
16
+ }
17
+ const validators = fillArray(config.validators.map((v) => ({
18
+ bytes: [...Buffer.from(strip0x(v), 'hex')].map((b) => `${b}u8`),
19
+ })), MAXIMUM_VALIDATORS, {
20
+ bytes: Array(20).fill(`0u8`),
21
+ });
22
+ return {
23
+ programName: ismManagerProgramId,
24
+ functionName: 'init_message_id_multisig',
25
+ priorityFee: 0,
26
+ privateFee: false,
27
+ inputs: [
28
+ JSON.stringify(validators).replaceAll('"', ''),
29
+ `${config.validators.length}u8`,
30
+ `${config.threshold}u8`,
31
+ ],
32
+ };
33
+ }
34
+ export function getCreateRoutingIsmTx(ismManagerProgramId) {
35
+ return {
36
+ programName: ismManagerProgramId,
37
+ functionName: 'init_domain_routing',
38
+ priorityFee: 0,
39
+ privateFee: false,
40
+ inputs: [],
41
+ };
42
+ }
43
+ export function getSetRoutingIsmRouteTx(ismAddress, route) {
44
+ const { programId, address } = fromAleoAddress(ismAddress);
45
+ return {
46
+ programName: programId,
47
+ functionName: 'set_domain',
48
+ priorityFee: 0,
49
+ privateFee: false,
50
+ inputs: [
51
+ address,
52
+ `${route.domainId}u32`,
53
+ fromAleoAddress(route.ismAddress).address,
54
+ ],
55
+ };
56
+ }
57
+ export function getRemoveRoutingIsmRouteTx(ismAddress, domainId) {
58
+ const { programId, address } = fromAleoAddress(ismAddress);
59
+ return {
60
+ programName: programId,
61
+ functionName: 'remove_domain',
62
+ priorityFee: 0,
63
+ privateFee: false,
64
+ inputs: [address, `${domainId}u32`],
65
+ };
66
+ }
67
+ export function getSetRoutingIsmOwnerTx(ismAddress, newOwner) {
68
+ const { programId, address } = fromAleoAddress(ismAddress);
69
+ return {
70
+ programName: programId,
71
+ functionName: 'transfer_routing_ism_ownership',
72
+ priorityFee: 0,
73
+ privateFee: false,
74
+ inputs: [address, newOwner],
75
+ };
76
+ }
77
+ //# sourceMappingURL=ism-tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-tx.js","sourceRoot":"","sources":["../../src/ism/ism-tx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedIsmAddress, type MultisigIsmConfig } from '@recoillink/provider-sdk/ism';
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 AleoMessageIdMultisigIsmReader implements ArtifactReader<MultisigIsmConfig, DeployedIsmAddress> {
7
+ protected readonly aleoClient: AnyAleoNetworkClient;
8
+ constructor(aleoClient: AnyAleoNetworkClient);
9
+ read(address: string): Promise<ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>>;
10
+ }
11
+ export declare class AleoMessageIdMultisigIsmWriter extends AleoMessageIdMultisigIsmReader implements ArtifactWriter<MultisigIsmConfig, DeployedIsmAddress> {
12
+ private readonly signer;
13
+ constructor(aleoClient: AnyAleoNetworkClient, signer: AleoSigner);
14
+ create(artifact: ArtifactNew<MultisigIsmConfig>): Promise<[
15
+ ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>,
16
+ AleoReceipt[]
17
+ ]>;
18
+ update(_artifact: ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>): Promise<AnnotatedAleoTransaction[]>;
19
+ }
20
+ //# sourceMappingURL=multisig-ism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig-ism.d.ts","sourceRoot":"","sources":["../../src/ism/multisig-ism.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,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAM3B,qBAAa,8BAA+B,YAAW,cAAc,CACnE,iBAAiB,EACjB,kBAAkB,CACnB;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,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAiBlE;CACF;AAED,qBAAa,8BACX,SAAQ,8BACR,YAAW,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAI9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,YACE,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAGpC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACvC,OAAO,CACR;QAAC,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;QAAE,WAAW,EAAE;KAAC,CACzE,CAiCA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GACjE,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAErC;CACF"}
@@ -0,0 +1,56 @@
1
+ import { IsmType } from '@recoillink/provider-sdk/altvm';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { getNewContractExpectedNonce } from '../utils/base-query.js';
4
+ import { getNewIsmAddress } from './base.js';
5
+ import { getMessageIdMultisigIsmConfig } from './ism-query.js';
6
+ import { getCreateMessageIdMultisigIsmTx } from './ism-tx.js';
7
+ export class AleoMessageIdMultisigIsmReader {
8
+ aleoClient;
9
+ constructor(aleoClient) {
10
+ this.aleoClient = aleoClient;
11
+ }
12
+ async read(address) {
13
+ const ismConfig = await getMessageIdMultisigIsmConfig(this.aleoClient, address);
14
+ return {
15
+ artifactState: ArtifactState.DEPLOYED,
16
+ config: {
17
+ type: IsmType.MESSAGE_ID_MULTISIG,
18
+ validators: ismConfig.validators,
19
+ threshold: ismConfig.threshold,
20
+ },
21
+ deployed: {
22
+ address: ismConfig.address,
23
+ },
24
+ };
25
+ }
26
+ }
27
+ export class AleoMessageIdMultisigIsmWriter extends AleoMessageIdMultisigIsmReader {
28
+ signer;
29
+ constructor(aleoClient, signer) {
30
+ super(aleoClient);
31
+ this.signer = signer;
32
+ }
33
+ async create(artifact) {
34
+ const { config } = artifact;
35
+ const ismManagerProgramId = await this.signer.getIsmManager();
36
+ const transaction = getCreateMessageIdMultisigIsmTx(ismManagerProgramId, {
37
+ validators: config.validators,
38
+ threshold: config.threshold,
39
+ });
40
+ const expectedNonce = await getNewContractExpectedNonce(this.aleoClient, ismManagerProgramId);
41
+ const receipt = await this.signer.sendAndConfirmTransaction(transaction);
42
+ const ismAddress = await getNewIsmAddress(this.aleoClient, ismManagerProgramId, expectedNonce);
43
+ const deployedArtifact = {
44
+ artifactState: ArtifactState.DEPLOYED,
45
+ config: artifact.config,
46
+ deployed: {
47
+ address: ismAddress,
48
+ },
49
+ };
50
+ return [deployedArtifact, [receipt]];
51
+ }
52
+ async update(_artifact) {
53
+ return [];
54
+ }
55
+ }
56
+ //# sourceMappingURL=multisig-ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig-ism.js","sourceRoot":"","sources":["../../src/ism/multisig-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAIL,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAQ3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAMrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,OAAO,8BAA8B;IAIV,UAAU;IAAzC,YAA+B,UAAgC;0BAAhC,UAAU;IAAyB,CAAC;IAEnE,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,SAAS,GAAG,MAAM,6BAA6B,CACnD,IAAI,CAAC,UAAU,EACf,OAAO,CACR,CAAC;QAEF,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO,CAAC,mBAAmB;gBACjC,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,8BACX,SAAQ,8BAA8B;IAKnB,MAAM;IAFzB,YACE,UAAgC,EACf,MAAkB;QAEnC,KAAK,CAAC,UAAU,CAAC,CAAC;sBAFD,MAAM;IAGzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAwC;QAIxC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAE5B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,+BAA+B,CAAC,mBAAmB,EAAE;YACvE,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,IAAI,CAAC,UAAU,EACf,mBAAmB,CACpB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,gBAAgB,CACvC,IAAI,CAAC,UAAU,EACf,mBAAmB,EACnB,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,UAAU;aACpB;SACF,CAAC;QAEF,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAkE;QAElE,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedIsmAddress, type RawRoutingIsmArtifactConfig } from '@recoillink/provider-sdk/ism';
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 AleoRoutingIsmRawReader implements ArtifactReader<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
7
+ protected readonly aleoClient: AnyAleoNetworkClient;
8
+ constructor(aleoClient: AnyAleoNetworkClient);
9
+ read(address: string): Promise<ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>>;
10
+ }
11
+ export declare class AleoRoutingIsmRawWriter extends AleoRoutingIsmRawReader implements ArtifactWriter<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
12
+ private readonly signer;
13
+ constructor(aleoClient: AnyAleoNetworkClient, signer: AleoSigner);
14
+ create(artifact: ArtifactNew<RawRoutingIsmArtifactConfig>): Promise<[
15
+ ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>,
16
+ AleoReceipt[]
17
+ ]>;
18
+ update(artifact: ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>): Promise<AnnotatedAleoTransaction[]>;
19
+ }
20
+ //# sourceMappingURL=routing-ism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-ism.d.ts","sourceRoot":"","sources":["../../src/ism/routing-ism.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAGnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAW3B,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,2BAA2B,EAC3B,kBAAkB,CACnB;IACa,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IAA/D,YAA+B,UAAU,EAAE,oBAAoB,EAAI;IAE7D,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAClE,CAwBA;CACF;AAED,qBAAa,uBACX,SAAQ,uBACR,YAAW,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,YACE,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAGpC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,2BAA2B,CAAC,GACjD,OAAO,CACR;QACE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;QACjE,WAAW,EAAE;KACd,CACF,CAqDA;IAEK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,GAC1E,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAkDrC;CACF"}
@@ -0,0 +1,108 @@
1
+ import { IsmType } from '@recoillink/provider-sdk/altvm';
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 { getNewIsmAddress } from './base.js';
6
+ import { getRoutingIsmConfig } from './ism-query.js';
7
+ import { getCreateRoutingIsmTx, getRemoveRoutingIsmRouteTx, getSetRoutingIsmOwnerTx, getSetRoutingIsmRouteTx, } from './ism-tx.js';
8
+ export class AleoRoutingIsmRawReader {
9
+ aleoClient;
10
+ constructor(aleoClient) {
11
+ this.aleoClient = aleoClient;
12
+ }
13
+ async read(address) {
14
+ const ismConfig = await getRoutingIsmConfig(this.aleoClient, address);
15
+ const domains = {};
16
+ for (const route of ismConfig.routes) {
17
+ domains[route.domainId] = {
18
+ deployed: {
19
+ address: route.ismAddress,
20
+ },
21
+ artifactState: ArtifactState.UNDERIVED,
22
+ };
23
+ }
24
+ return {
25
+ artifactState: ArtifactState.DEPLOYED,
26
+ config: {
27
+ type: IsmType.ROUTING,
28
+ owner: ismConfig.owner,
29
+ domains,
30
+ },
31
+ deployed: {
32
+ address: ismConfig.address,
33
+ },
34
+ };
35
+ }
36
+ }
37
+ export class AleoRoutingIsmRawWriter extends AleoRoutingIsmRawReader {
38
+ signer;
39
+ constructor(aleoClient, signer) {
40
+ super(aleoClient);
41
+ this.signer = signer;
42
+ }
43
+ async create(artifact) {
44
+ const { config } = artifact;
45
+ const ismManagerProgramId = await this.signer.getIsmManager();
46
+ const receipts = [];
47
+ const createTransaction = getCreateRoutingIsmTx(ismManagerProgramId);
48
+ const expectedNonce = await getNewContractExpectedNonce(this.aleoClient, ismManagerProgramId);
49
+ const createReceipt = await this.signer.sendAndConfirmTransaction(createTransaction);
50
+ receipts.push(createReceipt);
51
+ const ismAddress = await getNewIsmAddress(this.aleoClient, ismManagerProgramId, expectedNonce);
52
+ for (const [domainId, domainIsm] of Object.entries(config.domains)) {
53
+ const setRouteTransaction = getSetRoutingIsmRouteTx(ismAddress, {
54
+ domainId: parseInt(domainId),
55
+ ismAddress: domainIsm.deployed.address,
56
+ });
57
+ const setRouteReceipt = await this.signer.sendAndConfirmTransaction(setRouteTransaction);
58
+ receipts.push(setRouteReceipt);
59
+ }
60
+ if (!eqAddressAleo(config.owner, this.signer.getSignerAddress())) {
61
+ const ownerTransferTx = getSetRoutingIsmOwnerTx(ismAddress, config.owner);
62
+ const ownerReceipt = await this.signer.sendAndConfirmTransaction(ownerTransferTx);
63
+ receipts.push(ownerReceipt);
64
+ }
65
+ const deployedArtifact = {
66
+ artifactState: ArtifactState.DEPLOYED,
67
+ config: artifact.config,
68
+ deployed: {
69
+ address: ismAddress,
70
+ },
71
+ };
72
+ return [deployedArtifact, receipts];
73
+ }
74
+ async update(artifact) {
75
+ const { config, deployed } = artifact;
76
+ const currentConfig = await this.read(deployed.address);
77
+ const transactions = [];
78
+ for (const [domainId, expectedIsm] of Object.entries(config.domains)) {
79
+ const domain = parseInt(domainId);
80
+ const currentIsmAddress = currentConfig.config.domains[domain]
81
+ ? currentConfig.config.domains[domain].deployed.address
82
+ : undefined;
83
+ const expectedIsmAddress = expectedIsm.deployed.address;
84
+ if (isNullish(currentIsmAddress) ||
85
+ !eqAddressAleo(currentIsmAddress, expectedIsmAddress)) {
86
+ const transaction = getSetRoutingIsmRouteTx(deployed.address, {
87
+ domainId: domain,
88
+ ismAddress: expectedIsmAddress,
89
+ });
90
+ transactions.push(transaction);
91
+ }
92
+ }
93
+ for (const domainId of Object.keys(currentConfig.config.domains)) {
94
+ const domain = parseInt(domainId);
95
+ const desiredIsmAddress = config.domains[domain];
96
+ if (isNullish(desiredIsmAddress)) {
97
+ const transaction = getRemoveRoutingIsmRouteTx(deployed.address, domain);
98
+ transactions.push(transaction);
99
+ }
100
+ }
101
+ if (!eqAddressAleo(config.owner, currentConfig.config.owner)) {
102
+ const transaction = getSetRoutingIsmOwnerTx(deployed.address, config.owner);
103
+ transactions.push(transaction);
104
+ }
105
+ return transactions;
106
+ }
107
+ }
108
+ //# sourceMappingURL=routing-ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-ism.js","sourceRoot":"","sources":["../../src/ism/routing-ism.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedIsmAddress, type TestIsmConfig } from '@recoillink/provider-sdk/ism';
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 AleoTestIsmReader implements ArtifactReader<TestIsmConfig, DeployedIsmAddress> {
7
+ protected readonly aleoClient: AnyAleoNetworkClient;
8
+ constructor(aleoClient: AnyAleoNetworkClient);
9
+ read(address: string): Promise<ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>>;
10
+ }
11
+ export declare class AleoTestIsmWriter extends AleoTestIsmReader implements ArtifactWriter<TestIsmConfig, DeployedIsmAddress> {
12
+ private readonly signer;
13
+ constructor(aleoClient: AnyAleoNetworkClient, signer: AleoSigner);
14
+ create(artifact: ArtifactNew<TestIsmConfig>): Promise<[
15
+ ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>,
16
+ AleoReceipt[]
17
+ ]>;
18
+ update(_artifact: ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>): Promise<AnnotatedAleoTransaction[]>;
19
+ }
20
+ //# sourceMappingURL=test-ism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-ism.d.ts","sourceRoot":"","sources":["../../src/ism/test-ism.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,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAM3B,qBAAa,iBAAkB,YAAW,cAAc,CACtD,aAAa,EACb,kBAAkB,CACnB;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,kBAAkB,CAAC,CAAC,CAY9D;CACF;AAED,qBAAa,iBACX,SAAQ,iBACR,YAAW,cAAc,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,YACE,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAGpC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,OAAO,CACR;QAAC,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAAE,WAAW,EAAE;KAAC,CACrE,CA4BA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAErC;CACF"}
@@ -0,0 +1,50 @@
1
+ import { IsmType } from '@recoillink/provider-sdk/altvm';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { getNewContractExpectedNonce } from '../utils/base-query.js';
4
+ import { getNewIsmAddress } from './base.js';
5
+ import { getTestIsmConfig } from './ism-query.js';
6
+ import { getCreateTestIsmTx } from './ism-tx.js';
7
+ export class AleoTestIsmReader {
8
+ aleoClient;
9
+ constructor(aleoClient) {
10
+ this.aleoClient = aleoClient;
11
+ }
12
+ async read(address) {
13
+ const ismConfig = await getTestIsmConfig(this.aleoClient, address);
14
+ return {
15
+ artifactState: ArtifactState.DEPLOYED,
16
+ config: {
17
+ type: IsmType.TEST_ISM,
18
+ },
19
+ deployed: {
20
+ address: ismConfig.address,
21
+ },
22
+ };
23
+ }
24
+ }
25
+ export class AleoTestIsmWriter extends AleoTestIsmReader {
26
+ signer;
27
+ constructor(aleoClient, signer) {
28
+ super(aleoClient);
29
+ this.signer = signer;
30
+ }
31
+ async create(artifact) {
32
+ const ismManagerProgramId = await this.signer.getIsmManager();
33
+ const transaction = getCreateTestIsmTx(ismManagerProgramId);
34
+ const expectedNonce = await getNewContractExpectedNonce(this.aleoClient, ismManagerProgramId);
35
+ const receipt = await this.signer.sendAndConfirmTransaction(transaction);
36
+ const ismAddress = await getNewIsmAddress(this.aleoClient, ismManagerProgramId, expectedNonce);
37
+ const deployedArtifact = {
38
+ artifactState: ArtifactState.DEPLOYED,
39
+ config: artifact.config,
40
+ deployed: {
41
+ address: ismAddress,
42
+ },
43
+ };
44
+ return [deployedArtifact, [receipt]];
45
+ }
46
+ async update(_artifact) {
47
+ return [];
48
+ }
49
+ }
50
+ //# sourceMappingURL=test-ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-ism.js","sourceRoot":"","sources":["../../src/ism/test-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAIL,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAQ3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAMrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,iBAAiB;IAIG,UAAU;IAAzC,YAA+B,UAAgC;0BAAhC,UAAU;IAAyB,CAAC;IAEnE,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO,CAAC,QAAQ;aACvB;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBACX,SAAQ,iBAAiB;IAKN,MAAM;IAFzB,YACE,UAAgC,EACf,MAAkB;QAEnC,KAAK,CAAC,UAAU,CAAC,CAAC;sBAFD,MAAM;IAGzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAoC;QAIpC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,IAAI,CAAC,UAAU,EACf,mBAAmB,CACpB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,gBAAgB,CACvC,IAAI,CAAC,UAAU,EACf,mBAAmB,EACnB,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,UAAU;aACpB;SACF,CAAC;QAEF,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAA8D;QAE9D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedMailboxAddress, type IRawMailboxArtifactManager, type MailboxType, type RawMailboxArtifactConfigs } 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 } from '../utils/types.js';
6
+ /**
7
+ * Aleo Mailbox Artifact Manager implementing IRawMailboxArtifactManager.
8
+ *
9
+ * This manager:
10
+ * - Provides factory methods for creating mailbox readers and writers
11
+ * - Handles mailbox deployment and configuration
12
+ */
13
+ export declare class AleoMailboxArtifactManager implements IRawMailboxArtifactManager {
14
+ private readonly config;
15
+ private readonly aleoClient;
16
+ constructor(config: AleoArtifactNetworkConfig, aleoClient: AnyAleoNetworkClient);
17
+ readMailbox(address: string): Promise<import("@recoillink/provider-sdk/artifact").ArtifactDeployed<import("@recoillink/provider-sdk/artifact").ConfigOnChain<import("@recoillink/provider-sdk/mailbox").MailboxArtifactConfig>, DeployedMailboxAddress>>;
18
+ createReader<T extends MailboxType>(type: T): ArtifactReader<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
19
+ createWriter<T extends MailboxType>(type: T, signer: AleoSigner): ArtifactWriter<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
20
+ }
21
+ //# sourceMappingURL=mailbox-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,0BAA0B;IAEzE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAF7B,YACmB,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,oBAAoB,EAC/C;IAEE,WAAW,CAAC,OAAO,EAAE,MAAM,8NAGhC;IAED,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAYtE;IAED,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,UAAU,GACjB,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAatE;CACF"}