@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,129 @@
|
|
|
1
|
+
import { IsmType } from '@recoillink/provider-sdk/altvm';
|
|
2
|
+
import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
|
|
3
|
+
import { eqAddressRadix, isNullish } from '@recoillink/utils';
|
|
4
|
+
import { getDomainRoutingIsmConfig } from './ism-query.js';
|
|
5
|
+
import { getCreateRoutingIsmTx, getRemoveRoutingIsmDomainIsmTx, getSetRoutingIsmDomainIsmTx, getSetRoutingIsmOwnerTx, } from './ism-tx.js';
|
|
6
|
+
export class RadixRoutingIsmRawReader {
|
|
7
|
+
gateway;
|
|
8
|
+
constructor(gateway) {
|
|
9
|
+
this.gateway = gateway;
|
|
10
|
+
}
|
|
11
|
+
async read(address) {
|
|
12
|
+
const ismConfig = await getDomainRoutingIsmConfig(this.gateway, address);
|
|
13
|
+
const domains = {};
|
|
14
|
+
for (const route of ismConfig.routes) {
|
|
15
|
+
domains[route.domainId] = {
|
|
16
|
+
deployed: {
|
|
17
|
+
address: route.ismAddress,
|
|
18
|
+
},
|
|
19
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
24
|
+
config: {
|
|
25
|
+
type: IsmType.ROUTING,
|
|
26
|
+
owner: ismConfig.owner,
|
|
27
|
+
domains,
|
|
28
|
+
},
|
|
29
|
+
deployed: {
|
|
30
|
+
address: ismConfig.address,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class RadixRoutingIsmRawWriter extends RadixRoutingIsmRawReader {
|
|
36
|
+
signer;
|
|
37
|
+
base;
|
|
38
|
+
constructor(gateway, signer, base) {
|
|
39
|
+
super(gateway);
|
|
40
|
+
this.signer = signer;
|
|
41
|
+
this.base = base;
|
|
42
|
+
}
|
|
43
|
+
async create(artifact) {
|
|
44
|
+
const { config } = artifact;
|
|
45
|
+
const receipts = [];
|
|
46
|
+
const routes = Object.entries(config.domains).map(([domainId, ismAddress]) => ({
|
|
47
|
+
domainId: parseInt(domainId),
|
|
48
|
+
ismAddress: ismAddress.deployed.address,
|
|
49
|
+
}));
|
|
50
|
+
const transactionManifest = await getCreateRoutingIsmTx(this.base, this.signer.getAddress(), routes);
|
|
51
|
+
const receipt = await this.signer.signAndBroadcast(transactionManifest);
|
|
52
|
+
receipts.push(receipt);
|
|
53
|
+
const address = await this.base.getNewComponent(receipt);
|
|
54
|
+
// Transfer ownership if config.owner differs from signer
|
|
55
|
+
if (!eqAddressRadix(config.owner, this.signer.getAddress())) {
|
|
56
|
+
const ownerTransferTx = await getSetRoutingIsmOwnerTx(this.base, this.gateway, this.signer.getAddress(), {
|
|
57
|
+
ismAddress: address,
|
|
58
|
+
newOwner: config.owner,
|
|
59
|
+
});
|
|
60
|
+
const ownerReceipt = await this.signer.signAndBroadcast(ownerTransferTx);
|
|
61
|
+
receipts.push(ownerReceipt);
|
|
62
|
+
}
|
|
63
|
+
const deployedArtifact = {
|
|
64
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
65
|
+
config: artifact.config,
|
|
66
|
+
deployed: {
|
|
67
|
+
address,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
return [deployedArtifact, receipts];
|
|
71
|
+
}
|
|
72
|
+
async update(artifact) {
|
|
73
|
+
const { config, deployed } = artifact;
|
|
74
|
+
const currentConfig = await this.read(deployed.address);
|
|
75
|
+
const transactions = [];
|
|
76
|
+
// This is the address that has to execute the update transactions
|
|
77
|
+
const currentOwner = currentConfig.config.owner;
|
|
78
|
+
// Find domains to add
|
|
79
|
+
for (const [domainId, expectedIsm] of Object.entries(config.domains)) {
|
|
80
|
+
const domain = parseInt(domainId);
|
|
81
|
+
const currentIsmAddress = currentConfig.config.domains[domain]
|
|
82
|
+
? currentConfig.config.domains[domain].deployed.address
|
|
83
|
+
: undefined;
|
|
84
|
+
const expectedIsmAddress = expectedIsm.deployed.address;
|
|
85
|
+
if (isNullish(currentIsmAddress) ||
|
|
86
|
+
!eqAddressRadix(currentIsmAddress, expectedIsmAddress)) {
|
|
87
|
+
const transactionManifest = await getSetRoutingIsmDomainIsmTx(this.base, currentOwner, {
|
|
88
|
+
ismAddress: deployed.address,
|
|
89
|
+
domainIsm: { domainId: domain, ismAddress: expectedIsmAddress },
|
|
90
|
+
});
|
|
91
|
+
transactions.push({
|
|
92
|
+
annotation: `Set ism for domain ${domain} to ISM ${expectedIsmAddress} on ${IsmType.ROUTING}`,
|
|
93
|
+
networkId: this.base.getNetworkId(),
|
|
94
|
+
manifest: transactionManifest,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Find domains to remove
|
|
99
|
+
for (const domainId of Object.keys(currentConfig.config.domains)) {
|
|
100
|
+
const domain = parseInt(domainId);
|
|
101
|
+
const desiredIsmAddress = config.domains[domain];
|
|
102
|
+
if (isNullish(desiredIsmAddress)) {
|
|
103
|
+
const transactionManifest = await getRemoveRoutingIsmDomainIsmTx(this.base, currentOwner, {
|
|
104
|
+
ismAddress: deployed.address,
|
|
105
|
+
domainId: domain,
|
|
106
|
+
});
|
|
107
|
+
transactions.push({
|
|
108
|
+
annotation: `Remove ism for domain ${domain} on ${IsmType.ROUTING}`,
|
|
109
|
+
networkId: this.base.getNetworkId(),
|
|
110
|
+
manifest: transactionManifest,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Owner transfer must be last transaction as the current owner executes all updates
|
|
115
|
+
if (!eqAddressRadix(config.owner, currentConfig.config.owner)) {
|
|
116
|
+
const transactionManifest = await getSetRoutingIsmOwnerTx(this.base, this.gateway, currentOwner, {
|
|
117
|
+
ismAddress: deployed.address,
|
|
118
|
+
newOwner: config.owner,
|
|
119
|
+
});
|
|
120
|
+
transactions.push({
|
|
121
|
+
annotation: `Transfer ownership of ${IsmType.ROUTING} from ${currentConfig.config.owner} to ${config.owner}`,
|
|
122
|
+
networkId: this.base.getNetworkId(),
|
|
123
|
+
manifest: transactionManifest,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return transactions;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=routing-ism.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-ism.js","sourceRoot":"","sources":["../../src/ism/routing-ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { ArtifactDeployed, ArtifactNew, ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
|
|
3
|
+
import { DeployedIsmAddress, TestIsmConfig } 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 RadixTestIsmReader implements ArtifactReader<TestIsmConfig, DeployedIsmAddress> {
|
|
9
|
+
private readonly gateway;
|
|
10
|
+
constructor(gateway: Readonly<GatewayApiClient>);
|
|
11
|
+
read(address: string): Promise<ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>>;
|
|
12
|
+
}
|
|
13
|
+
export declare class RadixTestIsmWriter extends RadixTestIsmReader implements ArtifactWriter<TestIsmConfig, DeployedIsmAddress> {
|
|
14
|
+
private readonly signer;
|
|
15
|
+
private readonly base;
|
|
16
|
+
constructor(gateway: Readonly<GatewayApiClient>, signer: RadixBaseSigner, base: RadixBase);
|
|
17
|
+
create(artifact: ArtifactNew<TestIsmConfig>): Promise<[
|
|
18
|
+
ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>,
|
|
19
|
+
TxReceipt[]
|
|
20
|
+
]>;
|
|
21
|
+
update(_artifact: ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>): Promise<AnnotatedRadixTransaction[]>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=test-ism.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ism.d.ts","sourceRoot":"","sources":["../../src/ism/test-ism.ts"],"names":[],"mappings":"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,aAAa,EACd,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;AAK9D,qBAAa,kBAAmB,YAAW,cAAc,CACvD,aAAa,EACb,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,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAY9D;CACF;AAED,qBAAa,kBACX,SAAQ,kBACR,YAAW,cAAc,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAI1D,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,aAAa,CAAC,GACnC,OAAO,CACR;QAAC,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAAE,SAAS,EAAE;KAAC,CACnE,CAqBA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAGtC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IsmType } from '@recoillink/provider-sdk/altvm';
|
|
2
|
+
import { ArtifactState, } from '@recoillink/provider-sdk/artifact';
|
|
3
|
+
import { getTestIsmConfig } from './ism-query.js';
|
|
4
|
+
import { getCreateNoopIsmTx } from './ism-tx.js';
|
|
5
|
+
export class RadixTestIsmReader {
|
|
6
|
+
gateway;
|
|
7
|
+
constructor(gateway) {
|
|
8
|
+
this.gateway = gateway;
|
|
9
|
+
}
|
|
10
|
+
async read(address) {
|
|
11
|
+
const ismConfig = await getTestIsmConfig(this.gateway, address);
|
|
12
|
+
return {
|
|
13
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
14
|
+
config: {
|
|
15
|
+
type: IsmType.TEST_ISM,
|
|
16
|
+
},
|
|
17
|
+
deployed: {
|
|
18
|
+
address: ismConfig.address,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class RadixTestIsmWriter extends RadixTestIsmReader {
|
|
24
|
+
signer;
|
|
25
|
+
base;
|
|
26
|
+
constructor(gateway, signer, base) {
|
|
27
|
+
super(gateway);
|
|
28
|
+
this.signer = signer;
|
|
29
|
+
this.base = base;
|
|
30
|
+
}
|
|
31
|
+
async create(artifact) {
|
|
32
|
+
const transactionManifest = await getCreateNoopIsmTx(this.base, this.signer.getAddress());
|
|
33
|
+
const receipt = await this.signer.signAndBroadcast(transactionManifest);
|
|
34
|
+
const address = await this.base.getNewComponent(receipt);
|
|
35
|
+
const deployedArtifact = {
|
|
36
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
37
|
+
config: artifact.config,
|
|
38
|
+
deployed: {
|
|
39
|
+
address,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
return [deployedArtifact, [receipt]];
|
|
43
|
+
}
|
|
44
|
+
async update(_artifact) {
|
|
45
|
+
// NoopIsm has no mutable state
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=test-ism.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ism.js","sourceRoot":"","sources":["../../src/ism/test-ism.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAIL,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,kBAAkB;IAIA,OAAO;IAApC,YAA6B,OAAmC;uBAAnC,OAAO;IAA+B,CAAC;IAEpE,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEhE,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO,CAAC,QAAQ;aACvB;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,kBACX,SAAQ,kBAAkB;IAKP,MAAM;IACN,IAAI;IAHvB,YACE,OAAmC,EAClB,MAAuB,EACvB,IAAe;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;sBAHE,MAAM;oBACN,IAAI;IAGvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAoC;QAIpC,MAAM,mBAAmB,GAAG,MAAM,kBAAkB,CAClD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CACzB,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,SAA8D;QAE9D,+BAA+B;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
|
|
3
|
+
import { DeployedMailboxAddress, IRawMailboxArtifactManager, MailboxType, RawMailboxArtifactConfigs } from '@recoillink/provider-sdk/mailbox';
|
|
4
|
+
import { RadixSigner } from '../clients/signer.js';
|
|
5
|
+
import { RadixBase } from '../utils/base.js';
|
|
6
|
+
export declare class RadixMailboxArtifactManager implements IRawMailboxArtifactManager {
|
|
7
|
+
private readonly gateway;
|
|
8
|
+
private readonly base;
|
|
9
|
+
private readonly domainId;
|
|
10
|
+
constructor(gateway: GatewayApiClient, base: RadixBase, domainId: number);
|
|
11
|
+
readMailbox(address: string): Promise<import("@recoillink/provider-sdk/artifact").ArtifactDeployed<import("@recoillink/provider-sdk/artifact").ConfigOnChain<import("@recoillink/provider-sdk/mailbox").MailboxArtifactConfig>, DeployedMailboxAddress>>;
|
|
12
|
+
createReader<T extends MailboxType>(_type: T): ArtifactReader<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
|
|
13
|
+
createWriter<T extends MailboxType>(_type: T, signer: RadixSigner): ArtifactWriter<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mailbox-artifact-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,WAAW,EACX,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,qBAAa,2BAA4B,YAAW,0BAA0B;IAE1E,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH3B,YACmB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAC/B;IAEE,WAAW,CAAC,OAAO,EAAE,MAAM,8NAGhC;IAED,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,KAAK,EAAE,CAAC,GACP,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAWtE;IAED,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAkBtE;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RadixMailboxReader, RadixMailboxWriter } from './mailbox.js';
|
|
2
|
+
export class RadixMailboxArtifactManager {
|
|
3
|
+
gateway;
|
|
4
|
+
base;
|
|
5
|
+
domainId;
|
|
6
|
+
constructor(gateway, base, domainId) {
|
|
7
|
+
this.gateway = gateway;
|
|
8
|
+
this.base = base;
|
|
9
|
+
this.domainId = domainId;
|
|
10
|
+
}
|
|
11
|
+
async readMailbox(address) {
|
|
12
|
+
const reader = this.createReader('mailbox');
|
|
13
|
+
return reader.read(address);
|
|
14
|
+
}
|
|
15
|
+
createReader(_type) {
|
|
16
|
+
const readers = {
|
|
17
|
+
mailbox: () => new RadixMailboxReader(this.gateway),
|
|
18
|
+
};
|
|
19
|
+
return readers[_type]();
|
|
20
|
+
}
|
|
21
|
+
createWriter(_type, signer) {
|
|
22
|
+
const baseSigner = signer.getBaseSigner();
|
|
23
|
+
const writers = {
|
|
24
|
+
mailbox: () => new RadixMailboxWriter(this.gateway, baseSigner, this.base, this.domainId),
|
|
25
|
+
};
|
|
26
|
+
return writers[_type]();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mailbox-artifact-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-artifact-manager.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,OAAO,2BAA2B;IAEnB,OAAO;IACP,IAAI;IACJ,QAAQ;IAH3B,YACmB,OAAyB,EACzB,IAAe,EACf,QAAgB;uBAFhB,OAAO;oBACP,IAAI;wBACJ,QAAQ;IACxB,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CACV,KAAQ;QAER,MAAM,OAAO,GAKT;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SACpD,CAAC;QAEF,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CACV,KAAQ,EACR,MAAmB;QAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,OAAO,GAKT;YACF,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,kBAAkB,CACpB,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CACd;SACJ,CAAC;QAEF,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
export declare function getMailboxConfig(gateway: Readonly<GatewayApiClient>, mailboxAddress: string): Promise<{
|
|
3
|
+
address: string;
|
|
4
|
+
owner: string;
|
|
5
|
+
localDomain: number;
|
|
6
|
+
nonce: number;
|
|
7
|
+
defaultIsm?: string;
|
|
8
|
+
defaultHook?: string;
|
|
9
|
+
requiredHook?: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function isMessageDelivered(gateway: Readonly<GatewayApiClient>, mailboxAddress: string, messageId: string): Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=mailbox-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAiCrE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CA0CD;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAyClB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { generateRandomNonce } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { assert, strip0x } from '@recoillink/utils';
|
|
3
|
+
import { getComponentOwner, getComponentState, getFieldValueFromEntityState, getOptionalFieldValueFromEntityState, getRadixComponentDetails, } from '../utils/base-query.js';
|
|
4
|
+
import { EPOCH_VALIDITY_RANGE, READ_ACCOUNT_HEX_PUBLIC_KEY, } from '../utils/constants.js';
|
|
5
|
+
function isReceipt(value) {
|
|
6
|
+
if (typeof value !== 'object' || value === null)
|
|
7
|
+
return false;
|
|
8
|
+
return Array.isArray(Reflect.get(value, 'output'));
|
|
9
|
+
}
|
|
10
|
+
function getBooleanOutput(value) {
|
|
11
|
+
if (typeof value !== 'object' || value === null)
|
|
12
|
+
return undefined;
|
|
13
|
+
const raw = Reflect.get(value, 'value');
|
|
14
|
+
if (typeof raw === 'boolean')
|
|
15
|
+
return raw;
|
|
16
|
+
if (raw === 0n || raw === 1n)
|
|
17
|
+
return raw === 1n;
|
|
18
|
+
if (raw === 0 || raw === '0' || raw === 'false')
|
|
19
|
+
return false;
|
|
20
|
+
if (raw === 1 || raw === '1' || raw === 'true')
|
|
21
|
+
return true;
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export async function getMailboxConfig(gateway, mailboxAddress) {
|
|
25
|
+
const mailboxDetails = await getRadixComponentDetails(gateway, mailboxAddress, 'mailbox');
|
|
26
|
+
const mailboxState = getComponentState(mailboxAddress, mailboxDetails);
|
|
27
|
+
const owner = await getComponentOwner(gateway, mailboxAddress, mailboxDetails);
|
|
28
|
+
return {
|
|
29
|
+
address: mailboxAddress,
|
|
30
|
+
owner,
|
|
31
|
+
localDomain: getFieldValueFromEntityState('local_domain', mailboxAddress, mailboxState, (v) => parseInt(v, 10)),
|
|
32
|
+
nonce: getFieldValueFromEntityState('nonce', mailboxAddress, mailboxState, (v) => parseInt(v, 10)),
|
|
33
|
+
defaultIsm: getOptionalFieldValueFromEntityState('default_ism', mailboxState),
|
|
34
|
+
defaultHook: getOptionalFieldValueFromEntityState('default_hook', mailboxState),
|
|
35
|
+
requiredHook: getOptionalFieldValueFromEntityState('required_hook', mailboxState),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export async function isMessageDelivered(gateway, mailboxAddress, messageId) {
|
|
39
|
+
const constructionMetadata = await gateway.transaction.innerClient.transactionConstruction();
|
|
40
|
+
const response = await gateway.transaction.innerClient.transactionPreview({
|
|
41
|
+
transactionPreviewRequest: {
|
|
42
|
+
manifest: `
|
|
43
|
+
CALL_METHOD
|
|
44
|
+
Address("${mailboxAddress}")
|
|
45
|
+
"delivered"
|
|
46
|
+
Bytes("${strip0x(messageId)}")
|
|
47
|
+
;
|
|
48
|
+
`,
|
|
49
|
+
nonce: generateRandomNonce(),
|
|
50
|
+
signer_public_keys: [
|
|
51
|
+
{
|
|
52
|
+
key_type: 'EddsaEd25519',
|
|
53
|
+
key_hex: READ_ACCOUNT_HEX_PUBLIC_KEY,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
flags: {
|
|
57
|
+
use_free_credit: true,
|
|
58
|
+
},
|
|
59
|
+
start_epoch_inclusive: constructionMetadata.ledger_state.epoch,
|
|
60
|
+
end_epoch_exclusive: constructionMetadata.ledger_state.epoch + EPOCH_VALIDITY_RANGE,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const { receipt } = response;
|
|
64
|
+
assert(isReceipt(receipt), 'Unexpected transaction preview receipt shape');
|
|
65
|
+
assert(!receipt.error_message, `${receipt.error_message}`);
|
|
66
|
+
const output = receipt.output;
|
|
67
|
+
assert(output.length, `found no output for delivered method`);
|
|
68
|
+
const delivered = getBooleanOutput(output[0]?.programmatic_json);
|
|
69
|
+
assert(delivered !== undefined, 'Unexpected delivered() output shape from transaction preview');
|
|
70
|
+
return delivered;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=mailbox-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.test.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Transaction, TransactionApi, } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
import { isMessageDelivered } from './mailbox-query.js';
|
|
4
|
+
class TestTransactionApi extends TransactionApi {
|
|
5
|
+
programmaticJson;
|
|
6
|
+
constructor(programmaticJson) {
|
|
7
|
+
super();
|
|
8
|
+
this.programmaticJson = programmaticJson;
|
|
9
|
+
}
|
|
10
|
+
async transactionConstruction() {
|
|
11
|
+
return {
|
|
12
|
+
ledger_state: {
|
|
13
|
+
network: 'stokenet',
|
|
14
|
+
state_version: 1,
|
|
15
|
+
proposer_round_timestamp: '0',
|
|
16
|
+
epoch: 1,
|
|
17
|
+
round: 1,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async transactionPreview() {
|
|
22
|
+
return {
|
|
23
|
+
encoded_receipt: '0x',
|
|
24
|
+
receipt: {
|
|
25
|
+
output: [{ programmatic_json: this.programmaticJson }],
|
|
26
|
+
},
|
|
27
|
+
resource_changes: [],
|
|
28
|
+
logs: [],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function getGateway(programmaticJson) {
|
|
33
|
+
return {
|
|
34
|
+
transaction: new Transaction(new TestTransactionApi(programmaticJson)),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
describe(isMessageDelivered.name, function () {
|
|
38
|
+
it('parses strict boolean output', async function () {
|
|
39
|
+
const delivered = await isMessageDelivered(getGateway({ value: true }), 'component_rdx1test', '0x1234');
|
|
40
|
+
expect(delivered).to.equal(true);
|
|
41
|
+
});
|
|
42
|
+
it('parses numeric and string boolean output', async function () {
|
|
43
|
+
const numericDelivered = await isMessageDelivered(getGateway({ value: 1 }), 'component_rdx1test', '0x1234');
|
|
44
|
+
const stringDelivered = await isMessageDelivered(getGateway({ value: 'false' }), 'component_rdx1test', '0x1234');
|
|
45
|
+
expect(numericDelivered).to.equal(true);
|
|
46
|
+
expect(stringDelivered).to.equal(false);
|
|
47
|
+
});
|
|
48
|
+
it('parses bigint boolean output', async function () {
|
|
49
|
+
const bigintDelivered = await isMessageDelivered(getGateway({ value: 1n }), 'component_rdx1test', '0x1234');
|
|
50
|
+
const bigintUndelivered = await isMessageDelivered(getGateway({ value: 0n }), 'component_rdx1test', '0x1234');
|
|
51
|
+
expect(bigintDelivered).to.equal(true);
|
|
52
|
+
expect(bigintUndelivered).to.equal(false);
|
|
53
|
+
});
|
|
54
|
+
it('throws on malformed boolean output', async function () {
|
|
55
|
+
let error;
|
|
56
|
+
try {
|
|
57
|
+
await isMessageDelivered(getGateway({ value: 'nope' }), 'component_rdx1test', '0x1234');
|
|
58
|
+
}
|
|
59
|
+
catch (caughtError) {
|
|
60
|
+
error = caughtError;
|
|
61
|
+
}
|
|
62
|
+
expect(String(error)).to.match(/Unexpected delivered\(\) output shape/i);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=mailbox-query.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.test.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 getCreateMailboxTx(base: Readonly<RadixBase>, fromAddress: string, domainId: number): Promise<TransactionManifest>;
|
|
5
|
+
export declare function getSetMailboxOwnerTx(base: Readonly<RadixBase>, gateway: Readonly<GatewayApiClient>, fromAddress: string, { mailboxAddress, newOwner, }: {
|
|
6
|
+
mailboxAddress: string;
|
|
7
|
+
newOwner: string;
|
|
8
|
+
}): Promise<TransactionManifest>;
|
|
9
|
+
export declare function getSetMailboxRequiredHookTx(base: Readonly<RadixBase>, fromAddress: string, { mailboxAddress, hookAddress, }: {
|
|
10
|
+
mailboxAddress: string;
|
|
11
|
+
hookAddress: string;
|
|
12
|
+
}): Promise<TransactionManifest>;
|
|
13
|
+
export declare function getSetMailboxDefaultHookTx(base: Readonly<RadixBase>, fromAddress: string, { mailboxAddress, hookAddress, }: {
|
|
14
|
+
mailboxAddress: string;
|
|
15
|
+
hookAddress: string;
|
|
16
|
+
}): Promise<TransactionManifest>;
|
|
17
|
+
export declare function getSetMailboxDefaultIsmTx(base: Readonly<RadixBase>, fromAddress: string, { mailboxAddress, ismAddress, }: {
|
|
18
|
+
mailboxAddress: string;
|
|
19
|
+
ismAddress: string;
|
|
20
|
+
}): Promise<TransactionManifest>;
|
|
21
|
+
//# sourceMappingURL=mailbox-tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-tx.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,mBAAmB,EAGpB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,EACE,cAAc,EACd,QAAQ,GACT,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAoB9B;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,cAAc,EACd,WAAW,GACZ,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,cAAc,EACd,WAAW,GACZ,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,cAAc,EACd,UAAU,GACX,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { address, u32, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { getComponentOwnershipInfo, getRadixComponentDetails, } from '../utils/base-query.js';
|
|
3
|
+
import { INSTRUCTIONS } from '../utils/types.js';
|
|
4
|
+
export async function getCreateMailboxTx(base, fromAddress, domainId) {
|
|
5
|
+
return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), 'Mailbox', INSTRUCTIONS.INSTANTIATE, [u32(domainId)]);
|
|
6
|
+
}
|
|
7
|
+
export async function getSetMailboxOwnerTx(base, gateway, fromAddress, { mailboxAddress, newOwner, }) {
|
|
8
|
+
const mailboxDetails = await getRadixComponentDetails(gateway, mailboxAddress, 'Mailbox');
|
|
9
|
+
const ownershipInfo = getComponentOwnershipInfo(mailboxAddress, mailboxDetails);
|
|
10
|
+
const resourceAddress = ownershipInfo.rule.access_rule.proof_rule.requirement.resource;
|
|
11
|
+
return base.transfer({
|
|
12
|
+
from_address: fromAddress,
|
|
13
|
+
to_address: newOwner,
|
|
14
|
+
resource_address: resourceAddress,
|
|
15
|
+
amount: '1',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export async function getSetMailboxRequiredHookTx(base, fromAddress, { mailboxAddress, hookAddress, }) {
|
|
19
|
+
return base.createCallMethodManifestWithOwner(fromAddress, mailboxAddress, 'set_required_hook', [address(hookAddress)]);
|
|
20
|
+
}
|
|
21
|
+
export async function getSetMailboxDefaultHookTx(base, fromAddress, { mailboxAddress, hookAddress, }) {
|
|
22
|
+
return base.createCallMethodManifestWithOwner(fromAddress, mailboxAddress, 'set_default_hook', [address(hookAddress)]);
|
|
23
|
+
}
|
|
24
|
+
export async function getSetMailboxDefaultIsmTx(base, fromAddress, { mailboxAddress, ismAddress, }) {
|
|
25
|
+
return base.createCallMethodManifestWithOwner(fromAddress, mailboxAddress, 'set_default_ism', [address(ismAddress)]);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=mailbox-tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-tx.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,GAAG,GACJ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAyB,EACzB,WAAmB,EACnB,QAAgB;IAEhB,OAAO,IAAI,CAAC,0BAA0B,CACpC,WAAW,EACX,IAAI,CAAC,6BAA6B,EAAE,EACpC,SAAS,EACT,YAAY,CAAC,WAAW,EACxB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAyB,EACzB,OAAmC,EACnC,WAAmB,EACnB,EACE,cAAc,EACd,QAAQ,GAIT;IAED,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,OAAO,EACP,cAAc,EACd,SAAS,CACV,CAAC;IAEF,MAAM,aAAa,GAAG,yBAAyB,CAC7C,cAAc,EACd,cAAc,CACf,CAAC;IACF,MAAM,eAAe,GACnB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;IAEjE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACnB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,eAAe;QACjC,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAyB,EACzB,WAAmB,EACnB,EACE,cAAc,EACd,WAAW,GAIZ;IAED,OAAO,IAAI,CAAC,iCAAiC,CAC3C,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAyB,EACzB,WAAmB,EACnB,EACE,cAAc,EACd,WAAW,GAIZ;IAED,OAAO,IAAI,CAAC,iCAAiC,CAC3C,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAyB,EACzB,WAAmB,EACnB,EACE,cAAc,EACd,UAAU,GAIX;IAED,OAAO,IAAI,CAAC,iCAAiC,CAC3C,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { ArtifactDeployed, ArtifactNew, ArtifactReader, ArtifactWriter } from '@recoillink/provider-sdk/artifact';
|
|
3
|
+
import { DeployedMailboxAddress, MailboxOnChain } from '@recoillink/provider-sdk/mailbox';
|
|
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 RadixMailboxReader implements ArtifactReader<MailboxOnChain, DeployedMailboxAddress> {
|
|
9
|
+
protected readonly gateway: Readonly<GatewayApiClient>;
|
|
10
|
+
constructor(gateway: Readonly<GatewayApiClient>);
|
|
11
|
+
read(address: string): Promise<ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>>;
|
|
12
|
+
}
|
|
13
|
+
export declare class RadixMailboxWriter extends RadixMailboxReader implements ArtifactWriter<MailboxOnChain, DeployedMailboxAddress> {
|
|
14
|
+
private readonly signer;
|
|
15
|
+
private readonly base;
|
|
16
|
+
private readonly domainId;
|
|
17
|
+
constructor(gateway: Readonly<GatewayApiClient>, signer: RadixBaseSigner, base: RadixBase, domainId: number);
|
|
18
|
+
create(artifact: ArtifactNew<MailboxOnChain>): Promise<[
|
|
19
|
+
ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>,
|
|
20
|
+
TxReceipt[]
|
|
21
|
+
]>;
|
|
22
|
+
update(artifact: ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>): Promise<AnnotatedRadixTransaction[]>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=mailbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EAEd,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAQ5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAW9D,qBAAa,kBAAmB,YAAW,cAAc,CACvD,cAAc,EACd,sBAAsB,CACvB;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,CAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CA+BnE;CACF;AAED,qBAAa,kBACX,SAAQ,kBACR,YAAW,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAI/D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,YACE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAGlC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GACpC,OAAO,CACR;QAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC;QAAE,SAAS,EAAE;KAAC,CACxE,CAoFA;IAEK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,GACjE,OAAO,CAAC,yBAAyB,EAAE,CAAC,CA4GtC;CACF"}
|