@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.
- package/LICENSE.md +193 -0
- package/README.md +42 -2
- package/dist/clients/protocol.d.ts +31 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +95 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +60 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +187 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/signer.d.ts +24 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +86 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/hook/hook-artifact-manager.d.ts +17 -0
- package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
- package/dist/hook/hook-artifact-manager.js +60 -0
- package/dist/hook/hook-artifact-manager.js.map +1 -0
- package/dist/hook/hook-query.d.ts +22 -0
- package/dist/hook/hook-query.d.ts.map +1 -0
- package/dist/hook/hook-query.js +79 -0
- package/dist/hook/hook-query.js.map +1 -0
- package/dist/hook/hook-tx.d.ts +21 -0
- package/dist/hook/hook-tx.d.ts.map +1 -0
- package/dist/hook/hook-tx.js +26 -0
- package/dist/hook/hook-tx.js.map +1 -0
- package/dist/hook/igp-hook.d.ts +24 -0
- package/dist/hook/igp-hook.d.ts.map +1 -0
- package/dist/hook/igp-hook.js +148 -0
- package/dist/hook/igp-hook.js.map +1 -0
- package/dist/hook/merkle-tree-hook.d.ts +24 -0
- package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
- package/dist/hook/merkle-tree-hook.js +51 -0
- package/dist/hook/merkle-tree-hook.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/ism/ism-artifact-manager.d.ts +14 -0
- package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
- package/dist/ism/ism-artifact-manager.js +67 -0
- package/dist/ism/ism-artifact-manager.js.map +1 -0
- package/dist/ism/ism-query.d.ts +23 -0
- package/dist/ism/ism-query.d.ts.map +1 -0
- package/dist/ism/ism-query.js +84 -0
- package/dist/ism/ism-query.js.map +1 -0
- package/dist/ism/ism-tx.d.ts +31 -0
- package/dist/ism/ism-tx.d.ts.map +1 -0
- package/dist/ism/ism-tx.js +43 -0
- package/dist/ism/ism-tx.js.map +1 -0
- package/dist/ism/multisig-ism.d.ts +38 -0
- package/dist/ism/multisig-ism.d.ts.map +1 -0
- package/dist/ism/multisig-ism.js +107 -0
- package/dist/ism/multisig-ism.js.map +1 -0
- package/dist/ism/routing-ism.d.ts +23 -0
- package/dist/ism/routing-ism.d.ts.map +1 -0
- package/dist/ism/routing-ism.js +129 -0
- package/dist/ism/routing-ism.js.map +1 -0
- package/dist/ism/test-ism.d.ts +23 -0
- package/dist/ism/test-ism.d.ts.map +1 -0
- package/dist/ism/test-ism.js +49 -0
- package/dist/ism/test-ism.js.map +1 -0
- package/dist/mailbox/mailbox-artifact-manager.d.ts +15 -0
- package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
- package/dist/mailbox/mailbox-artifact-manager.js +29 -0
- package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
- package/dist/mailbox/mailbox-query.d.ts +12 -0
- package/dist/mailbox/mailbox-query.d.ts.map +1 -0
- package/dist/mailbox/mailbox-query.js +72 -0
- package/dist/mailbox/mailbox-query.js.map +1 -0
- package/dist/mailbox/mailbox-query.test.d.ts +2 -0
- package/dist/mailbox/mailbox-query.test.d.ts.map +1 -0
- package/dist/mailbox/mailbox-query.test.js +65 -0
- package/dist/mailbox/mailbox-query.test.js.map +1 -0
- package/dist/mailbox/mailbox-tx.d.ts +21 -0
- package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
- package/dist/mailbox/mailbox-tx.js +27 -0
- package/dist/mailbox/mailbox-tx.js.map +1 -0
- package/dist/mailbox/mailbox.d.ts +24 -0
- package/dist/mailbox/mailbox.d.ts.map +1 -0
- package/dist/mailbox/mailbox.js +171 -0
- package/dist/mailbox/mailbox.js.map +1 -0
- package/dist/runtime.d.ts +7 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +6 -0
- package/dist/runtime.js.map +1 -0
- package/dist/testing/constants.d.ts +61 -0
- package/dist/testing/constants.d.ts.map +1 -0
- package/dist/testing/constants.js +65 -0
- package/dist/testing/constants.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +11 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/node.d.ts +13 -0
- package/dist/testing/node.d.ts.map +1 -0
- package/dist/testing/node.js +42 -0
- package/dist/testing/node.js.map +1 -0
- package/dist/testing/setup.d.ts +20 -0
- package/dist/testing/setup.d.ts.map +1 -0
- package/dist/testing/setup.js +57 -0
- package/dist/testing/setup.js.map +1 -0
- package/dist/tests/e2e-test.setup.d.ts +3 -0
- package/dist/tests/e2e-test.setup.d.ts.map +1 -0
- package/dist/tests/e2e-test.setup.js +32 -0
- package/dist/tests/e2e-test.setup.js.map +1 -0
- package/dist/tests/hook.e2e-test.d.ts +2 -0
- package/dist/tests/hook.e2e-test.d.ts.map +1 -0
- package/dist/tests/hook.e2e-test.js +374 -0
- package/dist/tests/hook.e2e-test.js.map +1 -0
- package/dist/tests/ism.e2e-test.d.ts +2 -0
- package/dist/tests/ism.e2e-test.d.ts.map +1 -0
- package/dist/tests/ism.e2e-test.js +256 -0
- package/dist/tests/ism.e2e-test.js.map +1 -0
- package/dist/tests/mailbox.e2e-test.d.ts +2 -0
- package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
- package/dist/tests/mailbox.e2e-test.js +250 -0
- package/dist/tests/mailbox.e2e-test.js.map +1 -0
- package/dist/tests/validator-announce.e2e-test.d.ts +2 -0
- package/dist/tests/validator-announce.e2e-test.d.ts.map +1 -0
- package/dist/tests/validator-announce.e2e-test.js +107 -0
- package/dist/tests/validator-announce.e2e-test.js.map +1 -0
- package/dist/tests/warp.e2e-test.d.ts +2 -0
- package/dist/tests/warp.e2e-test.d.ts.map +1 -0
- package/dist/tests/warp.e2e-test.js +597 -0
- package/dist/tests/warp.e2e-test.js.map +1 -0
- package/dist/utils/base-query.d.ts +188 -0
- package/dist/utils/base-query.d.ts.map +1 -0
- package/dist/utils/base-query.js +209 -0
- package/dist/utils/base-query.js.map +1 -0
- package/dist/utils/base.d.ts +67 -0
- package/dist/utils/base.d.ts.map +1 -0
- package/dist/utils/base.js +355 -0
- package/dist/utils/base.js.map +1 -0
- package/dist/utils/constants.d.ts +20 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +20 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/signer.d.ts +17 -0
- package/dist/utils/signer.d.ts.map +1 -0
- package/dist/utils/signer.js +60 -0
- package/dist/utils/signer.js.map +1 -0
- package/dist/utils/types.d.ts +141 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +39 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/utils.d.ts +8 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +47 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/utils.test.d.ts +2 -0
- package/dist/utils/utils.test.d.ts.map +1 -0
- package/dist/utils/utils.test.js +27 -0
- package/dist/utils/utils.test.js.map +1 -0
- package/dist/validator-announce/validator-announce-artifact-manager.d.ts +14 -0
- package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-artifact-manager.js +21 -0
- package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
- package/dist/validator-announce/validator-announce-query.d.ts +6 -0
- package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-query.js +10 -0
- package/dist/validator-announce/validator-announce-query.js.map +1 -0
- package/dist/validator-announce/validator-announce-tx.d.ts +4 -0
- package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-tx.js +6 -0
- package/dist/validator-announce/validator-announce-tx.js.map +1 -0
- package/dist/validator-announce/validator-announce.d.ts +23 -0
- package/dist/validator-announce/validator-announce.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce.js +52 -0
- package/dist/validator-announce/validator-announce.js.map +1 -0
- package/dist/warp/collateral-token.d.ts +23 -0
- package/dist/warp/collateral-token.d.ts.map +1 -0
- package/dist/warp/collateral-token.js +130 -0
- package/dist/warp/collateral-token.js.map +1 -0
- package/dist/warp/populate.d.ts +71 -0
- package/dist/warp/populate.d.ts.map +1 -0
- package/dist/warp/populate.js +110 -0
- package/dist/warp/populate.js.map +1 -0
- package/dist/warp/query.d.ts +44 -0
- package/dist/warp/query.d.ts.map +1 -0
- package/dist/warp/query.js +163 -0
- package/dist/warp/query.js.map +1 -0
- package/dist/warp/synthetic-token.d.ts +23 -0
- package/dist/warp/synthetic-token.d.ts.map +1 -0
- package/dist/warp/synthetic-token.js +131 -0
- package/dist/warp/synthetic-token.js.map +1 -0
- package/dist/warp/warp-artifact-manager.d.ts +15 -0
- package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
- package/dist/warp/warp-artifact-manager.js +49 -0
- package/dist/warp/warp-artifact-manager.js.map +1 -0
- package/dist/warp/warp-query.d.ts +9 -0
- package/dist/warp/warp-query.d.ts.map +1 -0
- package/dist/warp/warp-query.js +130 -0
- package/dist/warp/warp-query.js.map +1 -0
- package/dist/warp/warp-tx.d.ts +48 -0
- package/dist/warp/warp-tx.d.ts.map +1 -0
- package/dist/warp/warp-tx.js +125 -0
- package/dist/warp/warp-tx.js.map +1 -0
- package/docker-compose.yml +139 -0
- 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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAejD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvE;;GAEG;AACH,SAAS,6BAA6B,CAAC,SAAwB;IAC7D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC,oBAAoB;YACrC,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAC5C,KAAK,aAAa,CAAC,mBAAmB;YACpC,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC3C,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/B,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,OAAO,uBAAuB;IAEf,OAAO;IACP,IAAI;IAFvB,YACmB,OAAyB,EACzB,IAAe;uBADf,OAAO;oBACP,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CACV,IAAO;QAEP,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ;gBACzB,OAAO,IAAI,kBAAkB,CAC3B,IAAI,CAAC,OAAO,CAIb,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,oBAAoB;gBACrC,OAAO,IAAI,gCAAgC,CACzC,IAAI,CAAC,OAAO,CAIb,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,mBAAmB;gBACpC,OAAO,IAAI,+BAA+B,CACxC,IAAI,CAAC,OAAO,CAIb,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO;gBACxB,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,CAIb,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,YAAY,CACV,IAAO,EACP,MAAmB;QAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAE1C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ;gBACzB,OAAO,IAAI,kBAAkB,CAC3B,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,CAIV,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,oBAAoB;gBACrC,OAAO,IAAI,gCAAgC,CACzC,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,CAIV,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,mBAAmB;gBACpC,OAAO,IAAI,+BAA+B,CACxC,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,CAIV,CAAC;YACJ,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO;gBACxB,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,CAIV,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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"}
|