@recoillink/radix-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 (200) hide show
  1. package/LICENSE.md +193 -0
  2. package/README.md +42 -2
  3. package/dist/clients/protocol.d.ts +31 -0
  4. package/dist/clients/protocol.d.ts.map +1 -0
  5. package/dist/clients/protocol.js +95 -0
  6. package/dist/clients/protocol.js.map +1 -0
  7. package/dist/clients/provider.d.ts +60 -0
  8. package/dist/clients/provider.d.ts.map +1 -0
  9. package/dist/clients/provider.js +187 -0
  10. package/dist/clients/provider.js.map +1 -0
  11. package/dist/clients/signer.d.ts +24 -0
  12. package/dist/clients/signer.d.ts.map +1 -0
  13. package/dist/clients/signer.js +86 -0
  14. package/dist/clients/signer.js.map +1 -0
  15. package/dist/hook/hook-artifact-manager.d.ts +17 -0
  16. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  17. package/dist/hook/hook-artifact-manager.js +60 -0
  18. package/dist/hook/hook-artifact-manager.js.map +1 -0
  19. package/dist/hook/hook-query.d.ts +22 -0
  20. package/dist/hook/hook-query.d.ts.map +1 -0
  21. package/dist/hook/hook-query.js +79 -0
  22. package/dist/hook/hook-query.js.map +1 -0
  23. package/dist/hook/hook-tx.d.ts +21 -0
  24. package/dist/hook/hook-tx.d.ts.map +1 -0
  25. package/dist/hook/hook-tx.js +26 -0
  26. package/dist/hook/hook-tx.js.map +1 -0
  27. package/dist/hook/igp-hook.d.ts +24 -0
  28. package/dist/hook/igp-hook.d.ts.map +1 -0
  29. package/dist/hook/igp-hook.js +148 -0
  30. package/dist/hook/igp-hook.js.map +1 -0
  31. package/dist/hook/merkle-tree-hook.d.ts +24 -0
  32. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  33. package/dist/hook/merkle-tree-hook.js +51 -0
  34. package/dist/hook/merkle-tree-hook.js.map +1 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +12 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/ism/ism-artifact-manager.d.ts +14 -0
  40. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  41. package/dist/ism/ism-artifact-manager.js +67 -0
  42. package/dist/ism/ism-artifact-manager.js.map +1 -0
  43. package/dist/ism/ism-query.d.ts +23 -0
  44. package/dist/ism/ism-query.d.ts.map +1 -0
  45. package/dist/ism/ism-query.js +84 -0
  46. package/dist/ism/ism-query.js.map +1 -0
  47. package/dist/ism/ism-tx.d.ts +31 -0
  48. package/dist/ism/ism-tx.d.ts.map +1 -0
  49. package/dist/ism/ism-tx.js +43 -0
  50. package/dist/ism/ism-tx.js.map +1 -0
  51. package/dist/ism/multisig-ism.d.ts +38 -0
  52. package/dist/ism/multisig-ism.d.ts.map +1 -0
  53. package/dist/ism/multisig-ism.js +107 -0
  54. package/dist/ism/multisig-ism.js.map +1 -0
  55. package/dist/ism/routing-ism.d.ts +23 -0
  56. package/dist/ism/routing-ism.d.ts.map +1 -0
  57. package/dist/ism/routing-ism.js +129 -0
  58. package/dist/ism/routing-ism.js.map +1 -0
  59. package/dist/ism/test-ism.d.ts +23 -0
  60. package/dist/ism/test-ism.d.ts.map +1 -0
  61. package/dist/ism/test-ism.js +49 -0
  62. package/dist/ism/test-ism.js.map +1 -0
  63. package/dist/mailbox/mailbox-artifact-manager.d.ts +15 -0
  64. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  65. package/dist/mailbox/mailbox-artifact-manager.js +29 -0
  66. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  67. package/dist/mailbox/mailbox-query.d.ts +12 -0
  68. package/dist/mailbox/mailbox-query.d.ts.map +1 -0
  69. package/dist/mailbox/mailbox-query.js +72 -0
  70. package/dist/mailbox/mailbox-query.js.map +1 -0
  71. package/dist/mailbox/mailbox-query.test.d.ts +2 -0
  72. package/dist/mailbox/mailbox-query.test.d.ts.map +1 -0
  73. package/dist/mailbox/mailbox-query.test.js +65 -0
  74. package/dist/mailbox/mailbox-query.test.js.map +1 -0
  75. package/dist/mailbox/mailbox-tx.d.ts +21 -0
  76. package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
  77. package/dist/mailbox/mailbox-tx.js +27 -0
  78. package/dist/mailbox/mailbox-tx.js.map +1 -0
  79. package/dist/mailbox/mailbox.d.ts +24 -0
  80. package/dist/mailbox/mailbox.d.ts.map +1 -0
  81. package/dist/mailbox/mailbox.js +171 -0
  82. package/dist/mailbox/mailbox.js.map +1 -0
  83. package/dist/runtime.d.ts +7 -0
  84. package/dist/runtime.d.ts.map +1 -0
  85. package/dist/runtime.js +6 -0
  86. package/dist/runtime.js.map +1 -0
  87. package/dist/testing/constants.d.ts +61 -0
  88. package/dist/testing/constants.d.ts.map +1 -0
  89. package/dist/testing/constants.js +65 -0
  90. package/dist/testing/constants.js.map +1 -0
  91. package/dist/testing/index.d.ts +8 -0
  92. package/dist/testing/index.d.ts.map +1 -0
  93. package/dist/testing/index.js +11 -0
  94. package/dist/testing/index.js.map +1 -0
  95. package/dist/testing/node.d.ts +13 -0
  96. package/dist/testing/node.d.ts.map +1 -0
  97. package/dist/testing/node.js +42 -0
  98. package/dist/testing/node.js.map +1 -0
  99. package/dist/testing/setup.d.ts +20 -0
  100. package/dist/testing/setup.d.ts.map +1 -0
  101. package/dist/testing/setup.js +57 -0
  102. package/dist/testing/setup.js.map +1 -0
  103. package/dist/tests/e2e-test.setup.d.ts +3 -0
  104. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  105. package/dist/tests/e2e-test.setup.js +32 -0
  106. package/dist/tests/e2e-test.setup.js.map +1 -0
  107. package/dist/tests/hook.e2e-test.d.ts +2 -0
  108. package/dist/tests/hook.e2e-test.d.ts.map +1 -0
  109. package/dist/tests/hook.e2e-test.js +374 -0
  110. package/dist/tests/hook.e2e-test.js.map +1 -0
  111. package/dist/tests/ism.e2e-test.d.ts +2 -0
  112. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  113. package/dist/tests/ism.e2e-test.js +256 -0
  114. package/dist/tests/ism.e2e-test.js.map +1 -0
  115. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  116. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  117. package/dist/tests/mailbox.e2e-test.js +250 -0
  118. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  119. package/dist/tests/validator-announce.e2e-test.d.ts +2 -0
  120. package/dist/tests/validator-announce.e2e-test.d.ts.map +1 -0
  121. package/dist/tests/validator-announce.e2e-test.js +107 -0
  122. package/dist/tests/validator-announce.e2e-test.js.map +1 -0
  123. package/dist/tests/warp.e2e-test.d.ts +2 -0
  124. package/dist/tests/warp.e2e-test.d.ts.map +1 -0
  125. package/dist/tests/warp.e2e-test.js +597 -0
  126. package/dist/tests/warp.e2e-test.js.map +1 -0
  127. package/dist/utils/base-query.d.ts +188 -0
  128. package/dist/utils/base-query.d.ts.map +1 -0
  129. package/dist/utils/base-query.js +209 -0
  130. package/dist/utils/base-query.js.map +1 -0
  131. package/dist/utils/base.d.ts +67 -0
  132. package/dist/utils/base.d.ts.map +1 -0
  133. package/dist/utils/base.js +355 -0
  134. package/dist/utils/base.js.map +1 -0
  135. package/dist/utils/constants.d.ts +20 -0
  136. package/dist/utils/constants.d.ts.map +1 -0
  137. package/dist/utils/constants.js +20 -0
  138. package/dist/utils/constants.js.map +1 -0
  139. package/dist/utils/signer.d.ts +17 -0
  140. package/dist/utils/signer.d.ts.map +1 -0
  141. package/dist/utils/signer.js +60 -0
  142. package/dist/utils/signer.js.map +1 -0
  143. package/dist/utils/types.d.ts +141 -0
  144. package/dist/utils/types.d.ts.map +1 -0
  145. package/dist/utils/types.js +39 -0
  146. package/dist/utils/types.js.map +1 -0
  147. package/dist/utils/utils.d.ts +8 -0
  148. package/dist/utils/utils.d.ts.map +1 -0
  149. package/dist/utils/utils.js +47 -0
  150. package/dist/utils/utils.js.map +1 -0
  151. package/dist/utils/utils.test.d.ts +2 -0
  152. package/dist/utils/utils.test.d.ts.map +1 -0
  153. package/dist/utils/utils.test.js +27 -0
  154. package/dist/utils/utils.test.js.map +1 -0
  155. package/dist/validator-announce/validator-announce-artifact-manager.d.ts +14 -0
  156. package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
  157. package/dist/validator-announce/validator-announce-artifact-manager.js +21 -0
  158. package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
  159. package/dist/validator-announce/validator-announce-query.d.ts +6 -0
  160. package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
  161. package/dist/validator-announce/validator-announce-query.js +10 -0
  162. package/dist/validator-announce/validator-announce-query.js.map +1 -0
  163. package/dist/validator-announce/validator-announce-tx.d.ts +4 -0
  164. package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
  165. package/dist/validator-announce/validator-announce-tx.js +6 -0
  166. package/dist/validator-announce/validator-announce-tx.js.map +1 -0
  167. package/dist/validator-announce/validator-announce.d.ts +23 -0
  168. package/dist/validator-announce/validator-announce.d.ts.map +1 -0
  169. package/dist/validator-announce/validator-announce.js +52 -0
  170. package/dist/validator-announce/validator-announce.js.map +1 -0
  171. package/dist/warp/collateral-token.d.ts +23 -0
  172. package/dist/warp/collateral-token.d.ts.map +1 -0
  173. package/dist/warp/collateral-token.js +130 -0
  174. package/dist/warp/collateral-token.js.map +1 -0
  175. package/dist/warp/populate.d.ts +71 -0
  176. package/dist/warp/populate.d.ts.map +1 -0
  177. package/dist/warp/populate.js +110 -0
  178. package/dist/warp/populate.js.map +1 -0
  179. package/dist/warp/query.d.ts +44 -0
  180. package/dist/warp/query.d.ts.map +1 -0
  181. package/dist/warp/query.js +163 -0
  182. package/dist/warp/query.js.map +1 -0
  183. package/dist/warp/synthetic-token.d.ts +23 -0
  184. package/dist/warp/synthetic-token.d.ts.map +1 -0
  185. package/dist/warp/synthetic-token.js +131 -0
  186. package/dist/warp/synthetic-token.js.map +1 -0
  187. package/dist/warp/warp-artifact-manager.d.ts +15 -0
  188. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  189. package/dist/warp/warp-artifact-manager.js +49 -0
  190. package/dist/warp/warp-artifact-manager.js.map +1 -0
  191. package/dist/warp/warp-query.d.ts +9 -0
  192. package/dist/warp/warp-query.d.ts.map +1 -0
  193. package/dist/warp/warp-query.js +130 -0
  194. package/dist/warp/warp-query.js.map +1 -0
  195. package/dist/warp/warp-tx.d.ts +48 -0
  196. package/dist/warp/warp-tx.d.ts.map +1 -0
  197. package/dist/warp/warp-tx.js +125 -0
  198. package/dist/warp/warp-tx.js.map +1 -0
  199. package/docker-compose.yml +139 -0
  200. package/package.json +74 -3
@@ -0,0 +1,51 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { getMerkleTreeHookConfig } from './hook-query.js';
4
+ import { getCreateMerkleTreeHookTx } from './hook-tx.js';
5
+ export class RadixMerkleTreeHookReader {
6
+ gateway;
7
+ constructor(gateway) {
8
+ this.gateway = gateway;
9
+ }
10
+ async read(address) {
11
+ const hookConfig = await getMerkleTreeHookConfig(this.gateway, address);
12
+ return {
13
+ artifactState: ArtifactState.DEPLOYED,
14
+ config: {
15
+ type: AltVM.HookType.MERKLE_TREE,
16
+ },
17
+ deployed: {
18
+ address: hookConfig.address,
19
+ },
20
+ };
21
+ }
22
+ }
23
+ export class RadixMerkleTreeHookWriter extends RadixMerkleTreeHookReader {
24
+ signer;
25
+ base;
26
+ mailboxAddress;
27
+ constructor(gateway, signer, base, mailboxAddress) {
28
+ super(gateway);
29
+ this.signer = signer;
30
+ this.base = base;
31
+ this.mailboxAddress = mailboxAddress;
32
+ }
33
+ async create(artifact) {
34
+ const transactionManifest = await getCreateMerkleTreeHookTx(this.base, this.signer.getAddress(), this.mailboxAddress);
35
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
36
+ const address = await this.base.getNewComponent(receipt);
37
+ const deployedArtifact = {
38
+ artifactState: ArtifactState.DEPLOYED,
39
+ config: artifact.config,
40
+ deployed: {
41
+ address,
42
+ },
43
+ };
44
+ return [deployedArtifact, [receipt]];
45
+ }
46
+ async update(_artifact) {
47
+ // MerkleTreeHook has no mutable state
48
+ return [];
49
+ }
50
+ }
51
+ //# 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":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAIL,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,OAAO,yBAAyB;IAIP,OAAO;IAApC,YAA6B,OAAmC;uBAAnC,OAAO;IAA+B,CAAC;IAEpE,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExE,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,yBACX,SAAQ,yBAAyB;IAKd,MAAM;IACN,IAAI;IACJ,cAAc;IAJjC,YACE,OAAmC,EAClB,MAAuB,EACvB,IAAe,EACf,cAAsB;QAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;sBAJE,MAAM;oBACN,IAAI;8BACJ,cAAc;IAGjC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA2C;QAI3C,MAAM,mBAAmB,GAAG,MAAM,yBAAyB,CACzD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EACxB,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,gBAAgB,GAGlB;YACF,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE;gBACR,OAAO;aACR;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,13 @@
1
+ import { NetworkId } from '@radixdlt/radix-engine-toolkit';
2
+ export { RadixProtocolProvider } from './clients/protocol.js';
3
+ export { NetworkId };
4
+ export { RadixSDKTransaction, RadixSDKReceipt } from './utils/types.js';
5
+ export { stringToTransactionManifest, transactionManifestToString, } from './utils/utils.js';
6
+ export { RadixProvider } from './clients/provider.js';
7
+ export { RadixSigner } from './clients/signer.js';
8
+ export { RadixIsmArtifactManager } from './ism/ism-artifact-manager.js';
9
+ export { RadixHookArtifactManager } from './hook/hook-artifact-manager.js';
10
+ export { RadixWarpArtifactManager } from './warp/warp-artifact-manager.js';
11
+ export { RadixMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
12
+ export { RadixValidatorAnnounceArtifactManager } from './validator-announce/validator-announce-artifact-manager.js';
13
+ //# 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,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,qCAAqC,EAAE,MAAM,6DAA6D,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { NetworkId } from '@radixdlt/radix-engine-toolkit';
2
+ export { RadixProtocolProvider } from './clients/protocol.js';
3
+ export { NetworkId };
4
+ export { stringToTransactionManifest, transactionManifestToString, } from './utils/utils.js';
5
+ export { RadixProvider } from './clients/provider.js';
6
+ export { RadixSigner } from './clients/signer.js';
7
+ export { RadixIsmArtifactManager } from './ism/ism-artifact-manager.js';
8
+ export { RadixHookArtifactManager } from './hook/hook-artifact-manager.js';
9
+ export { RadixWarpArtifactManager } from './warp/warp-artifact-manager.js';
10
+ export { RadixMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
11
+ export { RadixValidatorAnnounceArtifactManager } from './validator-announce/validator-announce-artifact-manager.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,qCAAqC,EAAE,MAAM,6DAA6D,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
3
+ import { DeployedIsmAddress, DeployedRawIsmArtifact, IRawIsmArtifactManager, IsmType, RawIsmArtifactConfigs } from '@recoillink/provider-sdk/ism';
4
+ import { RadixSigner } from '../clients/signer.js';
5
+ import { RadixBase } from '../utils/base.js';
6
+ export declare class RadixIsmArtifactManager implements IRawIsmArtifactManager {
7
+ private readonly gateway;
8
+ private readonly base;
9
+ constructor(gateway: GatewayApiClient, base: RadixBase);
10
+ readIsm(address: string): Promise<DeployedRawIsmArtifact>;
11
+ createReader<T extends IsmType>(type: T): ArtifactReader<RawIsmArtifactConfigs[T], DeployedIsmAddress>;
12
+ createWriter<T extends IsmType>(type: T, signer: RadixSigner): ArtifactWriter<RawIsmArtifactConfigs[T], DeployedIsmAddress>;
13
+ }
14
+ //# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,OAAO,EACP,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAkC7C,qBAAa,uBAAwB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,SAAS,EAC9B;IAEE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAK9D;IAED,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAiC9D;IAED,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CA2C9D;CACF"}
@@ -0,0 +1,67 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { RadixIsmTypes } from '../utils/types.js';
3
+ import { getIsmType } from './ism-query.js';
4
+ import { RadixMerkleRootMultisigIsmReader, RadixMerkleRootMultisigIsmWriter, RadixMessageIdMultisigIsmReader, RadixMessageIdMultisigIsmWriter, } from './multisig-ism.js';
5
+ import { RadixRoutingIsmRawReader, RadixRoutingIsmRawWriter, } from './routing-ism.js';
6
+ import { RadixTestIsmReader, RadixTestIsmWriter } from './test-ism.js';
7
+ /**
8
+ * Maps Radix-specific ISM blueprint names to provider-sdk ISM types.
9
+ */
10
+ function radixIsmTypeToProviderSdkType(radixType) {
11
+ switch (radixType) {
12
+ case RadixIsmTypes.MERKLE_ROOT_MULTISIG:
13
+ return AltVM.IsmType.MERKLE_ROOT_MULTISIG;
14
+ case RadixIsmTypes.MESSAGE_ID_MULTISIG:
15
+ return AltVM.IsmType.MESSAGE_ID_MULTISIG;
16
+ case RadixIsmTypes.ROUTING_ISM:
17
+ return AltVM.IsmType.ROUTING;
18
+ case RadixIsmTypes.NOOP_ISM:
19
+ return AltVM.IsmType.TEST_ISM;
20
+ default:
21
+ throw new Error(`Unknown Radix ISM type: ${radixType}`);
22
+ }
23
+ }
24
+ export class RadixIsmArtifactManager {
25
+ gateway;
26
+ base;
27
+ constructor(gateway, base) {
28
+ this.gateway = gateway;
29
+ this.base = base;
30
+ }
31
+ async readIsm(address) {
32
+ const radixIsmType = await getIsmType(this.gateway, address);
33
+ const ismType = radixIsmTypeToProviderSdkType(radixIsmType);
34
+ const reader = this.createReader(ismType);
35
+ return reader.read(address);
36
+ }
37
+ createReader(type) {
38
+ switch (type) {
39
+ case AltVM.IsmType.TEST_ISM:
40
+ return new RadixTestIsmReader(this.gateway);
41
+ case AltVM.IsmType.MERKLE_ROOT_MULTISIG:
42
+ return new RadixMerkleRootMultisigIsmReader(this.gateway);
43
+ case AltVM.IsmType.MESSAGE_ID_MULTISIG:
44
+ return new RadixMessageIdMultisigIsmReader(this.gateway);
45
+ case AltVM.IsmType.ROUTING:
46
+ return new RadixRoutingIsmRawReader(this.gateway);
47
+ default:
48
+ throw new Error(`Unsupported ISM type: ${type}`);
49
+ }
50
+ }
51
+ createWriter(type, signer) {
52
+ const baseSigner = signer.getBaseSigner();
53
+ switch (type) {
54
+ case AltVM.IsmType.TEST_ISM:
55
+ return new RadixTestIsmWriter(this.gateway, baseSigner, this.base);
56
+ case AltVM.IsmType.MERKLE_ROOT_MULTISIG:
57
+ return new RadixMerkleRootMultisigIsmWriter(this.gateway, baseSigner, this.base);
58
+ case AltVM.IsmType.MESSAGE_ID_MULTISIG:
59
+ return new RadixMessageIdMultisigIsmWriter(this.gateway, baseSigner, this.base);
60
+ case AltVM.IsmType.ROUTING:
61
+ return new RadixRoutingIsmRawWriter(this.gateway, baseSigner, this.base);
62
+ default:
63
+ throw new Error(`Unsupported ISM type: ${type}`);
64
+ }
65
+ }
66
+ }
67
+ //# 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,23 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { MultisigIsms, RadixIsmTypes } from '../utils/types.js';
3
+ export declare function getIsmType(gateway: Readonly<GatewayApiClient>, ismAddress: string): Promise<RadixIsmTypes>;
4
+ export declare function getTestIsmConfig(gateway: Readonly<GatewayApiClient>, ismAddress: string): Promise<{
5
+ type: RadixIsmTypes.NOOP_ISM;
6
+ address: string;
7
+ }>;
8
+ export declare function getMultisigIsmConfig(gateway: Readonly<GatewayApiClient>, ismAddress: string): Promise<{
9
+ address: string;
10
+ type: MultisigIsms;
11
+ threshold: number;
12
+ validators: string[];
13
+ }>;
14
+ export declare function getDomainRoutingIsmConfig(gateway: Readonly<GatewayApiClient>, ismAddress: string): Promise<{
15
+ type: RadixIsmTypes.ROUTING_ISM;
16
+ address: string;
17
+ owner: string;
18
+ routes: {
19
+ domainId: number;
20
+ ismAddress: string;
21
+ }[];
22
+ }>;
23
+ //# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAYrE,OAAO,EAEL,YAAY,EAEZ,aAAa,EACd,MAAM,mBAAmB,CAAC;AAc3B,wBAAsB,UAAU,CAC9B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAiBD;AAaD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CA8BD;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC;IAChC,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,CAgED"}
@@ -0,0 +1,84 @@
1
+ import { assert, ensure0x } from '@recoillink/utils';
2
+ import { getComponentOwner, getComponentState, getFieldElementsFromEntityState, getFieldValueFromEntityState, getKeysFromKvStore, getRadixComponentDetails, } from '../utils/base-query.js';
3
+ import { RadixIsmTypes, } from '../utils/types.js';
4
+ function isIsmType(maybeIsmType) {
5
+ switch (maybeIsmType) {
6
+ case RadixIsmTypes.MERKLE_ROOT_MULTISIG:
7
+ case RadixIsmTypes.MESSAGE_ID_MULTISIG:
8
+ case RadixIsmTypes.NOOP_ISM:
9
+ case RadixIsmTypes.ROUTING_ISM:
10
+ return true;
11
+ }
12
+ return false;
13
+ }
14
+ export async function getIsmType(gateway, ismAddress) {
15
+ const ismDetails = await getRadixComponentDetails(gateway, ismAddress, 'ISM');
16
+ const ismType = ismDetails.blueprint_name;
17
+ assert(isIsmType(ismType), `Expected component at address ${ismAddress} to be an ism but got ${ismType}`);
18
+ return ismType;
19
+ }
20
+ export async function getTestIsmConfig(gateway, ismAddress) {
21
+ const ismDetails = await getRadixComponentDetails(gateway, ismAddress, RadixIsmTypes.NOOP_ISM);
22
+ const ismType = ismDetails.blueprint_name;
23
+ assert(ismType === RadixIsmTypes.NOOP_ISM, `Expected ism at address ${ismAddress} to be of type ${RadixIsmTypes.NOOP_ISM} but got ${ismType}`);
24
+ return {
25
+ address: ismAddress,
26
+ type: RadixIsmTypes.NOOP_ISM,
27
+ };
28
+ }
29
+ function isMultisigIsmType(ismType) {
30
+ return (ismType === RadixIsmTypes.MERKLE_ROOT_MULTISIG ||
31
+ ismType === RadixIsmTypes.MESSAGE_ID_MULTISIG);
32
+ }
33
+ export async function getMultisigIsmConfig(gateway, ismAddress) {
34
+ const ismDetails = await getRadixComponentDetails(gateway, ismAddress, 'MultisigISM');
35
+ const ismType = ismDetails.blueprint_name;
36
+ assert(isMultisigIsmType(ismType), `Expected ism at address ${ismAddress} to be of type ${RadixIsmTypes.MESSAGE_ID_MULTISIG} or ${RadixIsmTypes.MERKLE_ROOT_MULTISIG} but got ${ismType}`);
37
+ const ismState = getComponentState(ismAddress, ismDetails);
38
+ return {
39
+ address: ismAddress,
40
+ type: ismType,
41
+ validators: getFieldElementsFromEntityState('validators', ismAddress, ismState, (validators) => validators.map((v) => ensure0x(v.hex))),
42
+ threshold: getFieldValueFromEntityState('threshold', ismAddress, ismState, (v) => parseInt(v, 10)),
43
+ };
44
+ }
45
+ export async function getDomainRoutingIsmConfig(gateway, ismAddress) {
46
+ const ismDetails = await getRadixComponentDetails(gateway, ismAddress, RadixIsmTypes.ROUTING_ISM);
47
+ const ismType = ismDetails.blueprint_name;
48
+ assert(ismType === RadixIsmTypes.ROUTING_ISM, `Expected ism at address ${ismAddress} to be of type ${RadixIsmTypes.ROUTING_ISM} but got ${ismType}`);
49
+ const owner = await getComponentOwner(gateway, ismAddress, ismDetails);
50
+ const ismState = getComponentState(ismAddress, ismDetails);
51
+ const routesKeyValueStore = getFieldValueFromEntityState('routes', ismAddress, ismState);
52
+ const keys = await getKeysFromKvStore(gateway, routesKeyValueStore);
53
+ const routes = [];
54
+ for (const key of keys) {
55
+ const { entries } = await gateway.state.innerClient.keyValueStoreData({
56
+ stateKeyValueStoreDataRequest: {
57
+ key_value_store_address: routesKeyValueStore,
58
+ keys: [
59
+ {
60
+ key_hex: key.raw_hex,
61
+ },
62
+ ],
63
+ },
64
+ });
65
+ const rawRemoteDomain = key.programmatic_json;
66
+ assert(rawRemoteDomain.kind === 'U32', `Expected domain id to be stored as a number on ISM at address ${ismAddress}`);
67
+ const domainId = parseInt(rawRemoteDomain.value);
68
+ const [entry] = entries;
69
+ assert(entry, `Expected to find route ISM address entry for domain ${domainId} in routing ISM at address ${ismAddress}`);
70
+ const domainIsmAddress = entry.value.programmatic_json
71
+ .value;
72
+ routes.push({
73
+ domainId,
74
+ ismAddress: domainIsmAddress,
75
+ });
76
+ }
77
+ return {
78
+ address: ismAddress,
79
+ owner,
80
+ routes,
81
+ type: RadixIsmTypes.ROUTING_ISM,
82
+ };
83
+ }
84
+ //# sourceMappingURL=ism-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism-query.js","sourceRoot":"","sources":["../../src/ism/ism-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { TransactionManifest } from '@radixdlt/radix-engine-toolkit';
3
+ import { RadixBase } from '../utils/base.js';
4
+ export declare function getCreateNoopIsmTx(base: Readonly<RadixBase>, fromAddress: string): Promise<TransactionManifest>;
5
+ type CreateMultisigIsmTxConfig = {
6
+ validators: string[];
7
+ threshold: number;
8
+ };
9
+ export declare function getCreateMerkleRootMultisigIsmTx(base: Readonly<RadixBase>, fromAddress: string, { validators, threshold }: CreateMultisigIsmTxConfig): Promise<TransactionManifest>;
10
+ export declare function getCreateMessageIdMultisigIsmTx(base: Readonly<RadixBase>, fromAddress: string, { validators, threshold }: CreateMultisigIsmTxConfig): Promise<TransactionManifest>;
11
+ export declare function getCreateRoutingIsmTx(base: Readonly<RadixBase>, fromAddress: string, routes: {
12
+ ismAddress: string;
13
+ domainId: number;
14
+ }[]): Promise<TransactionManifest>;
15
+ export declare function getSetRoutingIsmOwnerTx(base: Readonly<RadixBase>, gateway: Readonly<GatewayApiClient>, fromAddress: string, { ismAddress, newOwner, }: {
16
+ ismAddress: string;
17
+ newOwner: string;
18
+ }): Promise<TransactionManifest>;
19
+ export declare function getSetRoutingIsmDomainIsmTx(base: Readonly<RadixBase>, fromAddress: string, { ismAddress, domainIsm, }: {
20
+ ismAddress: string;
21
+ domainIsm: {
22
+ domainId: number;
23
+ ismAddress: string;
24
+ };
25
+ }): Promise<TransactionManifest>;
26
+ export declare function getRemoveRoutingIsmDomainIsmTx(base: Readonly<RadixBase>, fromAddress: string, { ismAddress, domainId, }: {
27
+ ismAddress: string;
28
+ domainId: number;
29
+ }): Promise<TransactionManifest>;
30
+ export {};
31
+ //# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,mBAAmB,EAOpB,MAAM,gCAAgC,CAAC;AAQxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,KAAK,yBAAyB,GAAG;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,yBAAyB,GACnD,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,yBAAyB,GACnD,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,GACjD,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,EACE,UAAU,EACV,QAAQ,GACT,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,UAAU,EACV,SAAS,GACV,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,UAAU,EACV,QAAQ,GACT,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B"}
@@ -0,0 +1,43 @@
1
+ import { ValueKind, address, array, tuple, u32, u64, } from '@radixdlt/radix-engine-toolkit';
2
+ import { strip0x } from '@recoillink/utils';
3
+ import { getComponentOwnershipInfo, getRadixComponentDetails, } from '../utils/base-query.js';
4
+ import { INSTRUCTIONS, RadixIsmTypes } from '../utils/types.js';
5
+ import { bytes } from '../utils/utils.js';
6
+ export async function getCreateNoopIsmTx(base, fromAddress) {
7
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixIsmTypes.NOOP_ISM, INSTRUCTIONS.INSTANTIATE, []);
8
+ }
9
+ export async function getCreateMerkleRootMultisigIsmTx(base, fromAddress, { validators, threshold }) {
10
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixIsmTypes.MERKLE_ROOT_MULTISIG, INSTRUCTIONS.INSTANTIATE, [
11
+ array(ValueKind.Array, ...validators.map((v) => bytes(strip0x(v)))),
12
+ u64(threshold),
13
+ ]);
14
+ }
15
+ export async function getCreateMessageIdMultisigIsmTx(base, fromAddress, { validators, threshold }) {
16
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixIsmTypes.MESSAGE_ID_MULTISIG, INSTRUCTIONS.INSTANTIATE, [
17
+ array(ValueKind.Array, ...validators.map((v) => bytes(strip0x(v)))),
18
+ u64(threshold),
19
+ ]);
20
+ }
21
+ export async function getCreateRoutingIsmTx(base, fromAddress, routes) {
22
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixIsmTypes.ROUTING_ISM, INSTRUCTIONS.INSTANTIATE, [
23
+ array(ValueKind.Tuple, ...routes.map((r) => tuple(u32(r.domainId), address(r.ismAddress)))),
24
+ ]);
25
+ }
26
+ export async function getSetRoutingIsmOwnerTx(base, gateway, fromAddress, { ismAddress, newOwner, }) {
27
+ const ismDetails = await getRadixComponentDetails(gateway, ismAddress, RadixIsmTypes.ROUTING_ISM);
28
+ const ownershipInfo = getComponentOwnershipInfo(ismAddress, ismDetails);
29
+ const resource = ownershipInfo.rule.access_rule.proof_rule.requirement.resource;
30
+ return base.transfer({
31
+ from_address: fromAddress,
32
+ to_address: newOwner,
33
+ resource_address: resource,
34
+ amount: '1',
35
+ });
36
+ }
37
+ export async function getSetRoutingIsmDomainIsmTx(base, fromAddress, { ismAddress, domainIsm, }) {
38
+ return base.createCallMethodManifestWithOwner(fromAddress, ismAddress, 'set_route', [u32(domainIsm.domainId), address(domainIsm.ismAddress)]);
39
+ }
40
+ export async function getRemoveRoutingIsmDomainIsmTx(base, fromAddress, { ismAddress, domainId, }) {
41
+ return base.createCallMethodManifestWithOwner(fromAddress, ismAddress, 'remove_route', [u32(domainId)]);
42
+ }
43
+ //# 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,38 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { ArtifactDeployed, ArtifactNew, ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
3
+ import { DeployedIsmAddress, MultisigIsmConfig } from '@recoillink/provider-sdk/ism';
4
+ import { TxReceipt } from '@recoillink/provider-sdk/module';
5
+ import { RadixBase } from '../utils/base.js';
6
+ import { RadixBaseSigner } from '../utils/signer.js';
7
+ import { AnnotatedRadixTransaction } from '../utils/types.js';
8
+ export declare class RadixMessageIdMultisigIsmReader implements ArtifactReader<MultisigIsmConfig, DeployedIsmAddress> {
9
+ private readonly gateway;
10
+ constructor(gateway: Readonly<GatewayApiClient>);
11
+ read(address: string): Promise<ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>>;
12
+ }
13
+ export declare class RadixMessageIdMultisigIsmWriter extends RadixMessageIdMultisigIsmReader implements ArtifactWriter<MultisigIsmConfig, DeployedIsmAddress> {
14
+ private readonly signer;
15
+ private readonly base;
16
+ constructor(gateway: Readonly<GatewayApiClient>, signer: RadixBaseSigner, base: RadixBase);
17
+ create(artifact: ArtifactNew<MultisigIsmConfig>): Promise<[
18
+ ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>,
19
+ TxReceipt[]
20
+ ]>;
21
+ update(_artifact: ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>): Promise<AnnotatedRadixTransaction[]>;
22
+ }
23
+ export declare class RadixMerkleRootMultisigIsmReader implements ArtifactReader<MultisigIsmConfig, DeployedIsmAddress> {
24
+ private readonly gateway;
25
+ constructor(gateway: Readonly<GatewayApiClient>);
26
+ read(address: string): Promise<ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>>;
27
+ }
28
+ export declare class RadixMerkleRootMultisigIsmWriter extends RadixMerkleRootMultisigIsmReader implements ArtifactWriter<MultisigIsmConfig, DeployedIsmAddress> {
29
+ private readonly signer;
30
+ private readonly base;
31
+ constructor(gateway: Readonly<GatewayApiClient>, signer: RadixBaseSigner, base: RadixBase);
32
+ create(artifact: ArtifactNew<MultisigIsmConfig>): Promise<[
33
+ ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>,
34
+ TxReceipt[]
35
+ ]>;
36
+ update(_artifact: ArtifactDeployed<MultisigIsmConfig, DeployedIsmAddress>): Promise<AnnotatedRadixTransaction[]>;
37
+ }
38
+ //# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EAEd,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAQ9D,qBAAa,+BAAgC,YAAW,cAAc,CACpE,iBAAiB,EACjB,kBAAkB,CACnB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAI;IAE9D,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAclE;CACF;AAED,qBAAa,+BACX,SAAQ,+BACR,YAAW,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAI9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EAGjC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACvC,OAAO,CACR;QAAC,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;QAAE,SAAS,EAAE;KAAC,CACvE,CA2BA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GACjE,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAItC;CACF;AAED,qBAAa,gCAAiC,YAAW,cAAc,CACrE,iBAAiB,EACjB,kBAAkB,CACnB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAI;IAE9D,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAclE;CACF;AAED,qBAAa,gCACX,SAAQ,gCACR,YAAW,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAI9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EAGjC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACvC,OAAO,CACR;QAAC,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;QAAE,SAAS,EAAE;KAAC,CACvE,CA2BA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GACjE,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAItC;CACF"}
@@ -0,0 +1,107 @@
1
+ import { IsmType } from '@recoillink/provider-sdk/altvm';
2
+ import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
3
+ import { getMultisigIsmConfig } from './ism-query.js';
4
+ import { getCreateMerkleRootMultisigIsmTx, getCreateMessageIdMultisigIsmTx, } from './ism-tx.js';
5
+ export class RadixMessageIdMultisigIsmReader {
6
+ gateway;
7
+ constructor(gateway) {
8
+ this.gateway = gateway;
9
+ }
10
+ async read(address) {
11
+ const ismConfig = await getMultisigIsmConfig(this.gateway, address);
12
+ return {
13
+ artifactState: ArtifactState.DEPLOYED,
14
+ config: {
15
+ type: IsmType.MESSAGE_ID_MULTISIG,
16
+ validators: ismConfig.validators,
17
+ threshold: ismConfig.threshold,
18
+ },
19
+ deployed: {
20
+ address: ismConfig.address,
21
+ },
22
+ };
23
+ }
24
+ }
25
+ export class RadixMessageIdMultisigIsmWriter extends RadixMessageIdMultisigIsmReader {
26
+ signer;
27
+ base;
28
+ constructor(gateway, signer, base) {
29
+ super(gateway);
30
+ this.signer = signer;
31
+ this.base = base;
32
+ }
33
+ async create(artifact) {
34
+ const { config } = artifact;
35
+ const transactionManifest = await getCreateMessageIdMultisigIsmTx(this.base, this.signer.getAddress(), {
36
+ validators: config.validators,
37
+ threshold: config.threshold,
38
+ });
39
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
40
+ const address = await this.base.getNewComponent(receipt);
41
+ const deployedArtifact = {
42
+ artifactState: ArtifactState.DEPLOYED,
43
+ config: artifact.config,
44
+ deployed: {
45
+ address,
46
+ },
47
+ };
48
+ return [deployedArtifact, [receipt]];
49
+ }
50
+ async update(_artifact) {
51
+ // Multisig ISMs are immutable.
52
+ // To change configuration, a new ISM must be deployed
53
+ return [];
54
+ }
55
+ }
56
+ export class RadixMerkleRootMultisigIsmReader {
57
+ gateway;
58
+ constructor(gateway) {
59
+ this.gateway = gateway;
60
+ }
61
+ async read(address) {
62
+ const ismConfig = await getMultisigIsmConfig(this.gateway, address);
63
+ return {
64
+ artifactState: ArtifactState.DEPLOYED,
65
+ config: {
66
+ type: IsmType.MERKLE_ROOT_MULTISIG,
67
+ validators: ismConfig.validators,
68
+ threshold: ismConfig.threshold,
69
+ },
70
+ deployed: {
71
+ address: ismConfig.address,
72
+ },
73
+ };
74
+ }
75
+ }
76
+ export class RadixMerkleRootMultisigIsmWriter extends RadixMerkleRootMultisigIsmReader {
77
+ signer;
78
+ base;
79
+ constructor(gateway, signer, base) {
80
+ super(gateway);
81
+ this.signer = signer;
82
+ this.base = base;
83
+ }
84
+ async create(artifact) {
85
+ const { config } = artifact;
86
+ const transactionManifest = await getCreateMerkleRootMultisigIsmTx(this.base, this.signer.getAddress(), {
87
+ validators: config.validators,
88
+ threshold: config.threshold,
89
+ });
90
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
91
+ const address = await this.base.getNewComponent(receipt);
92
+ const deployedArtifact = {
93
+ artifactState: ArtifactState.DEPLOYED,
94
+ config: artifact.config,
95
+ deployed: {
96
+ address,
97
+ },
98
+ };
99
+ return [deployedArtifact, [receipt]];
100
+ }
101
+ async update(_artifact) {
102
+ // Multisig ISMs are immutable.
103
+ // To change configuration, a new ISM must be deployed
104
+ return [];
105
+ }
106
+ }
107
+ //# sourceMappingURL=multisig-ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig-ism.js","sourceRoot":"","sources":["../../src/ism/multisig-ism.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { ArtifactDeployed, ArtifactNew, ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
3
+ import { DeployedIsmAddress, RawRoutingIsmArtifactConfig } from '@recoillink/provider-sdk/ism';
4
+ import { TxReceipt } from '@recoillink/provider-sdk/module';
5
+ import { RadixBase } from '../utils/base.js';
6
+ import { RadixBaseSigner } from '../utils/signer.js';
7
+ import { AnnotatedRadixTransaction } from '../utils/types.js';
8
+ export declare class RadixRoutingIsmRawReader implements ArtifactReader<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
9
+ protected readonly gateway: Readonly<GatewayApiClient>;
10
+ constructor(gateway: Readonly<GatewayApiClient>);
11
+ read(address: string): Promise<ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>>;
12
+ }
13
+ export declare class RadixRoutingIsmRawWriter extends RadixRoutingIsmRawReader implements ArtifactWriter<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
14
+ private readonly signer;
15
+ private readonly base;
16
+ constructor(gateway: Readonly<GatewayApiClient>, signer: RadixBaseSigner, base: RadixBase);
17
+ create(artifact: ArtifactNew<RawRoutingIsmArtifactConfig>): Promise<[
18
+ ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>,
19
+ TxReceipt[]
20
+ ]>;
21
+ update(artifact: ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>): Promise<AnnotatedRadixTransaction[]>;
22
+ }
23
+ //# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EAGd,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAU9D,qBAAa,wBAAyB,YAAW,cAAc,CAC7D,2BAA2B,EAC3B,kBAAkB,CACnB;IACa,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAAlE,YAA+B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAI;IAEhE,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAClE,CAwBA;CACF;AAED,qBAAa,wBACX,SAAQ,wBACR,YAAW,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EAGjC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,2BAA2B,CAAC,GACjD,OAAO,CACR;QACE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;QACjE,SAAS,EAAE;KACZ,CACF,CAiDA;IAEK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,GAC1E,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAkFtC;CACF"}