@hyperlane-xyz/radix-sdk 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +43 -0
  2. package/dist/core/populate.d.ts +87 -0
  3. package/dist/core/populate.d.ts.map +1 -0
  4. package/dist/core/populate.js +94 -0
  5. package/dist/core/populate.js.map +1 -0
  6. package/dist/core/query.d.ts +62 -0
  7. package/dist/core/query.d.ts.map +1 -0
  8. package/dist/core/query.js +156 -0
  9. package/dist/core/query.js.map +1 -0
  10. package/dist/core/tx.d.ts +73 -0
  11. package/dist/core/tx.d.ts.map +1 -0
  12. package/dist/core/tx.js +148 -0
  13. package/dist/core/tx.js.map +1 -0
  14. package/dist/index.d.ts +43 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +83 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/utils/base.d.ts +53 -0
  19. package/dist/utils/base.d.ts.map +1 -0
  20. package/dist/utils/base.js +250 -0
  21. package/dist/utils/base.js.map +1 -0
  22. package/dist/utils/signer.d.ts +16 -0
  23. package/dist/utils/signer.d.ts.map +1 -0
  24. package/dist/utils/signer.js +65 -0
  25. package/dist/utils/signer.js.map +1 -0
  26. package/dist/utils/types.d.ts +68 -0
  27. package/dist/utils/types.d.ts.map +1 -0
  28. package/dist/utils/types.js +11 -0
  29. package/dist/utils/types.js.map +1 -0
  30. package/dist/utils/utils.d.ts +6 -0
  31. package/dist/utils/utils.d.ts.map +1 -0
  32. package/dist/utils/utils.js +33 -0
  33. package/dist/utils/utils.js.map +1 -0
  34. package/dist/warp/populate.d.ts +60 -0
  35. package/dist/warp/populate.d.ts.map +1 -0
  36. package/dist/warp/populate.js +75 -0
  37. package/dist/warp/populate.js.map +1 -0
  38. package/dist/warp/query.d.ts +43 -0
  39. package/dist/warp/query.d.ts.map +1 -0
  40. package/dist/warp/query.js +155 -0
  41. package/dist/warp/query.js.map +1 -0
  42. package/dist/warp/tx.d.ts +54 -0
  43. package/dist/warp/tx.d.ts.map +1 -0
  44. package/dist/warp/tx.js +82 -0
  45. package/dist/warp/tx.js.map +1 -0
  46. package/package.json +55 -0
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # Hyperlane Radix SDK
2
+
3
+ The Hyperlane Radix SDK is a fully typed TypeScript SDK for the [Radix Implementation](https://github.com/hyperlane-xyz/hyperlane-radix).
4
+ It can be used as a standalone SDK for frontend or in backend applications which want to connect to a Radix chain which has the Hyperlane blueprint installed.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ # Install with NPM
10
+ npm install @hyperlane-xyz/radix-sdk
11
+
12
+ # Or with Yarn
13
+ yarn add @hyperlane-xyz/radix-sdk
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ```ts
19
+ import { RadixSDK, RadixSigningSDK } from "@hyperlane-xyz/radix-sdk";
20
+
21
+ const signingSdk = await RadixSigningSDK.fromPrivateKey(
22
+ PRIV_KEY,
23
+ {
24
+ networkId: NetworkId.Stokenet,
25
+ },
26
+ );
27
+
28
+ const mailboxAddress = await signingSdk.tx.createMailbox({ domain_id: 75898670 });
29
+
30
+ const mailbox = await signingSdk.query.getMailbox({ mailbox: mailboxAddress });
31
+ ...
32
+
33
+ // performing queries without signer
34
+ const sdk = new RadixSDK({
35
+ networkId: NetworkId.Stokenet,
36
+ })
37
+
38
+ const mailbox = await signingSdk.query.getMailbox({ mailbox: mailboxAddress });
39
+ ```
40
+
41
+ ## Setup
42
+
43
+ Node 18 or newer is required.
@@ -0,0 +1,87 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { RadixBase } from '../utils/base.js';
3
+ export declare class RadixCorePopulate {
4
+ protected gateway: GatewayApiClient;
5
+ protected base: RadixBase;
6
+ protected packageAddress: string;
7
+ constructor(gateway: GatewayApiClient, base: RadixBase, packageAddress: string);
8
+ createMailbox({ from_address, domain_id, }: {
9
+ from_address: string;
10
+ domain_id: number;
11
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
12
+ createMerkleTreeHook({ from_address, mailbox, }: {
13
+ from_address: string;
14
+ mailbox: string;
15
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
16
+ createMerkleRootMultisigIsm({ from_address, validators, threshold, }: {
17
+ from_address: string;
18
+ validators: string[];
19
+ threshold: number;
20
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
21
+ createMessageIdMultisigIsm({ from_address, validators, threshold, }: {
22
+ from_address: string;
23
+ validators: string[];
24
+ threshold: number;
25
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
26
+ createRoutingIsm({ from_address, routes, }: {
27
+ from_address: string;
28
+ routes: {
29
+ ism: string;
30
+ domain: number;
31
+ }[];
32
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
33
+ setRoutingIsmOwner({ from_address, ism, new_owner, }: {
34
+ from_address: string;
35
+ ism: string;
36
+ new_owner: string;
37
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
38
+ createNoopIsm({ from_address }: {
39
+ from_address: string;
40
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
41
+ createIgp({ from_address, denom, }: {
42
+ from_address: string;
43
+ denom: string;
44
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
45
+ setIgpOwner({ from_address, igp, new_owner, }: {
46
+ from_address: string;
47
+ igp: string;
48
+ new_owner: string;
49
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
50
+ setDestinationGasConfig({ from_address, igp, destination_gas_config, }: {
51
+ from_address: string;
52
+ igp: string;
53
+ destination_gas_config: {
54
+ remote_domain: string;
55
+ gas_oracle: {
56
+ token_exchange_rate: string;
57
+ gas_price: string;
58
+ };
59
+ gas_overhead: string;
60
+ };
61
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
62
+ setMailboxOwner({ from_address, mailbox, new_owner, }: {
63
+ from_address: string;
64
+ mailbox: string;
65
+ new_owner: string;
66
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
67
+ createValidatorAnnounce({ from_address, mailbox, }: {
68
+ from_address: string;
69
+ mailbox: string;
70
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
71
+ setRequiredHook({ from_address, mailbox, hook, }: {
72
+ from_address: string;
73
+ mailbox: string;
74
+ hook: string;
75
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
76
+ setDefaultHook({ from_address, mailbox, hook, }: {
77
+ from_address: string;
78
+ mailbox: string;
79
+ hook: string;
80
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
81
+ setDefaultIsm({ from_address, mailbox, ism, }: {
82
+ from_address: string;
83
+ mailbox: string;
84
+ ism: string;
85
+ }): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
86
+ }
87
+ //# sourceMappingURL=populate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/core/populate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import { ValueKind, address, array, tuple, u32, u64, u128, } from '@radixdlt/radix-engine-toolkit';
2
+ import { strip0x } from '@hyperlane-xyz/utils';
3
+ import { INSTRUCTIONS } from '../utils/types.js';
4
+ import { bytes } from '../utils/utils.js';
5
+ export class RadixCorePopulate {
6
+ gateway;
7
+ base;
8
+ packageAddress;
9
+ constructor(gateway, base, packageAddress) {
10
+ this.gateway = gateway;
11
+ this.base = base;
12
+ this.packageAddress = packageAddress;
13
+ }
14
+ createMailbox({ from_address, domain_id, }) {
15
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'Mailbox', INSTRUCTIONS.INSTANTIATE, [u32(domain_id)]);
16
+ }
17
+ createMerkleTreeHook({ from_address, mailbox, }) {
18
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'MerkleTreeHook', INSTRUCTIONS.INSTANTIATE, [address(mailbox)]);
19
+ }
20
+ createMerkleRootMultisigIsm({ from_address, validators, threshold, }) {
21
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'MerkleRootMultisigIsm', INSTRUCTIONS.INSTANTIATE, [
22
+ array(ValueKind.Array, ...validators.map((v) => bytes(strip0x(v)))),
23
+ u64(threshold),
24
+ ]);
25
+ }
26
+ createMessageIdMultisigIsm({ from_address, validators, threshold, }) {
27
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'MessageIdMultisigIsm', INSTRUCTIONS.INSTANTIATE, [
28
+ array(ValueKind.Array, ...validators.map((v) => bytes(strip0x(v)))),
29
+ u64(threshold),
30
+ ]);
31
+ }
32
+ createRoutingIsm({ from_address, routes, }) {
33
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'RoutingIsm', INSTRUCTIONS.INSTANTIATE, [
34
+ array(ValueKind.Tuple, ...routes.map((r) => tuple(u32(r.domain), address(r.ism)))),
35
+ ]);
36
+ }
37
+ async setRoutingIsmOwner({ from_address, ism, new_owner, }) {
38
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(ism);
39
+ const resource = details.details.role_assignments.owner
40
+ .rule.access_rule.proof_rule.requirement.resource;
41
+ return this.base.transfer({
42
+ from_address,
43
+ to_address: new_owner,
44
+ resource_address: resource,
45
+ amount: '1',
46
+ });
47
+ }
48
+ createNoopIsm({ from_address }) {
49
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'NoopIsm', INSTRUCTIONS.INSTANTIATE, []);
50
+ }
51
+ createIgp({ from_address, denom, }) {
52
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'InterchainGasPaymaster', INSTRUCTIONS.INSTANTIATE, [address(denom)]);
53
+ }
54
+ async setIgpOwner({ from_address, igp, new_owner, }) {
55
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(igp);
56
+ const resource = details.details.role_assignments.owner
57
+ .rule.access_rule.proof_rule.requirement.resource;
58
+ return this.base.transfer({
59
+ from_address,
60
+ to_address: new_owner,
61
+ resource_address: resource,
62
+ amount: '1',
63
+ });
64
+ }
65
+ async setDestinationGasConfig({ from_address, igp, destination_gas_config, }) {
66
+ return this.base.createCallMethodManifestWithOwner(from_address, igp, 'set_destination_gas_configs', [
67
+ array(ValueKind.Tuple, tuple(u32(destination_gas_config.remote_domain), tuple(tuple(u128(destination_gas_config.gas_oracle.token_exchange_rate), u128(destination_gas_config.gas_oracle.gas_price)), u128(destination_gas_config.gas_overhead)))),
68
+ ]);
69
+ }
70
+ async setMailboxOwner({ from_address, mailbox, new_owner, }) {
71
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(mailbox);
72
+ const resource = details.details.role_assignments.owner
73
+ .rule.access_rule.proof_rule.requirement.resource;
74
+ return this.base.transfer({
75
+ from_address,
76
+ to_address: new_owner,
77
+ resource_address: resource,
78
+ amount: '1',
79
+ });
80
+ }
81
+ createValidatorAnnounce({ from_address, mailbox, }) {
82
+ return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'ValidatorAnnounce', INSTRUCTIONS.INSTANTIATE, [address(mailbox)]);
83
+ }
84
+ async setRequiredHook({ from_address, mailbox, hook, }) {
85
+ return this.base.createCallMethodManifestWithOwner(from_address, mailbox, 'set_required_hook', [address(hook)]);
86
+ }
87
+ async setDefaultHook({ from_address, mailbox, hook, }) {
88
+ return this.base.createCallMethodManifestWithOwner(from_address, mailbox, 'set_default_hook', [address(hook)]);
89
+ }
90
+ async setDefaultIsm({ from_address, mailbox, ism, }) {
91
+ return this.base.createCallMethodManifestWithOwner(from_address, mailbox, 'set_default_ism', [address(ism)]);
92
+ }
93
+ }
94
+ //# sourceMappingURL=populate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"populate.js","sourceRoot":"","sources":["../../src/core/populate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { RadixBase } from '../utils/base.js';
3
+ import { Isms, MultisigIsms } from '../utils/types.js';
4
+ export declare class RadixCoreQuery {
5
+ protected networkId: number;
6
+ protected gateway: GatewayApiClient;
7
+ protected base: RadixBase;
8
+ constructor(networkId: number, gateway: GatewayApiClient, base: RadixBase);
9
+ getMailbox({ mailbox }: {
10
+ mailbox: string;
11
+ }): Promise<{
12
+ address: string;
13
+ owner: string;
14
+ local_domain: number;
15
+ nonce: number;
16
+ default_ism: string;
17
+ default_hook: string;
18
+ required_hook: string;
19
+ }>;
20
+ getIsmType({ ism }: {
21
+ ism: string;
22
+ }): Promise<Isms>;
23
+ getMultisigIsm({ ism }: {
24
+ ism: string;
25
+ }): Promise<{
26
+ address: string;
27
+ type: MultisigIsms;
28
+ threshold: number;
29
+ validators: string[];
30
+ }>;
31
+ getRoutingIsm({ ism }: {
32
+ ism: string;
33
+ }): Promise<{
34
+ address: string;
35
+ owner: string;
36
+ routes: {
37
+ domain: number;
38
+ ism: string;
39
+ }[];
40
+ }>;
41
+ getIgpHook({ hook }: {
42
+ hook: string;
43
+ }): Promise<{
44
+ address: string;
45
+ owner: string;
46
+ destination_gas_configs: {
47
+ [domain_id: string]: {
48
+ gas_oracle: {
49
+ token_exchange_rate: string;
50
+ gas_price: string;
51
+ };
52
+ gas_overhead: string;
53
+ };
54
+ };
55
+ }>;
56
+ getMerkleTreeHook({ hook }: {
57
+ hook: string;
58
+ }): Promise<{
59
+ address: string;
60
+ }>;
61
+ }
62
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/core/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAGL,IAAI,EACJ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,cAAc;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEd,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS;IAM5D,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACjE,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IA2CW,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,cAAc,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,YAAY,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAoBW,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC5D,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;SACb,EAAE,CAAC;KACL,CAAC;IAsEW,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,uBAAuB,EAAE;YACvB,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,UAAU,EAAE;oBACV,mBAAmB,EAAE,MAAM,CAAC;oBAC5B,SAAS,EAAE,MAAM,CAAC;iBACnB,CAAC;gBACF,YAAY,EAAE,MAAM,CAAC;aACtB,CAAC;SACH,CAAC;KACH,CAAC;IA4FW,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAClE,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAaH"}
@@ -0,0 +1,156 @@
1
+ import { assert, ensure0x } from '@hyperlane-xyz/utils';
2
+ export class RadixCoreQuery {
3
+ networkId;
4
+ gateway;
5
+ base;
6
+ constructor(networkId, gateway, base) {
7
+ this.networkId = networkId;
8
+ this.gateway = gateway;
9
+ this.base = base;
10
+ }
11
+ async getMailbox({ mailbox }) {
12
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(mailbox);
13
+ const fields = details.details.state.fields;
14
+ const ownerResource = details.details.role_assignments
15
+ .owner.rule.access_rule.proof_rule.requirement.resource;
16
+ const { items } = await this.gateway.extensions.getResourceHolders(ownerResource);
17
+ const resourceHolders = [
18
+ ...new Set(items.map((item) => item.holder_address)),
19
+ ];
20
+ assert(resourceHolders.length === 1, `expected token holders of resource ${ownerResource} to be one, found ${resourceHolders.length} holders instead`);
21
+ const result = {
22
+ address: mailbox,
23
+ owner: resourceHolders[0],
24
+ local_domain: parseInt(fields.find((f) => f.field_name === 'local_domain')?.value ?? '0'),
25
+ nonce: parseInt(fields.find((f) => f.field_name === 'nonce')?.value ?? '0'),
26
+ default_ism: fields.find((f) => f.field_name === 'default_ism')?.fields?.at(0)
27
+ ?.value ?? '',
28
+ default_hook: fields.find((f) => f.field_name === 'default_hook')?.fields?.at(0)
29
+ ?.value ?? '',
30
+ required_hook: fields.find((f) => f.field_name === 'required_hook')?.fields?.at(0)
31
+ ?.value ?? '',
32
+ };
33
+ return result;
34
+ }
35
+ async getIsmType({ ism }) {
36
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(ism);
37
+ return details.details.blueprint_name;
38
+ }
39
+ async getMultisigIsm({ ism }) {
40
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(ism);
41
+ const fields = details.details.state.fields;
42
+ const result = {
43
+ address: ism,
44
+ type: details.details.blueprint_name,
45
+ validators: (fields.find((f) => f.field_name === 'validators')?.elements ?? []).map((v) => ensure0x(v.hex)),
46
+ threshold: parseInt(fields.find((f) => f.field_name === 'threshold')?.value ?? '0'),
47
+ };
48
+ return result;
49
+ }
50
+ async getRoutingIsm({ ism }) {
51
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(ism);
52
+ const ownerResource = details.details.role_assignments
53
+ .owner.rule.access_rule.proof_rule.requirement.resource;
54
+ const { items: holders } = await this.gateway.extensions.getResourceHolders(ownerResource);
55
+ const resourceHolders = [
56
+ ...new Set(holders.map((item) => item.holder_address)),
57
+ ];
58
+ assert(resourceHolders.length === 1, `expected token holders of resource ${ownerResource} to be one, found ${resourceHolders.length} holders instead`);
59
+ const type = details.details.blueprint_name;
60
+ assert(type === 'RoutingIsm', `ism is not a RoutingIsm, instead got ${type}`);
61
+ const fields = details.details.state.fields;
62
+ const routesKeyValueStore = fields.find((f) => f.field_name === 'routes')?.value ?? '';
63
+ assert(routesKeyValueStore, `found no routes on RoutingIsm ${ism}`);
64
+ const { items } = await this.gateway.state.innerClient.keyValueStoreKeys({
65
+ stateKeyValueStoreKeysRequest: {
66
+ key_value_store_address: routesKeyValueStore,
67
+ },
68
+ });
69
+ const routes = [];
70
+ for (const { key } of items) {
71
+ const { entries } = await this.gateway.state.innerClient.keyValueStoreData({
72
+ stateKeyValueStoreDataRequest: {
73
+ key_value_store_address: routesKeyValueStore,
74
+ keys: [
75
+ {
76
+ key_hex: key.raw_hex,
77
+ },
78
+ ],
79
+ },
80
+ });
81
+ const domain = parseInt(key.programmatic_json?.value ?? '0');
82
+ const ism = entries[0].value.programmatic_json.value;
83
+ routes.push({
84
+ domain,
85
+ ism,
86
+ });
87
+ }
88
+ return {
89
+ address: ism,
90
+ owner: resourceHolders[0],
91
+ routes,
92
+ };
93
+ }
94
+ async getIgpHook({ hook }) {
95
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(hook);
96
+ assert(details.details.blueprint_name ===
97
+ 'InterchainGasPaymaster', `Expected contract at address ${hook} to be "InterchainGasPaymaster" but got ${details.details.blueprint_name}`);
98
+ const ownerResource = details.details.role_assignments
99
+ .owner.rule.access_rule.proof_rule.requirement.resource;
100
+ const { items: holders } = await this.gateway.extensions.getResourceHolders(ownerResource);
101
+ const resourceHolders = [
102
+ ...new Set(holders.map((item) => item.holder_address)),
103
+ ];
104
+ assert(resourceHolders.length === 1, `expected token holders of resource ${ownerResource} to be one, found ${resourceHolders.length} holders instead`);
105
+ const fields = details.details.state.fields;
106
+ const destinationGasConfigsKeyValueStore = fields.find((f) => f.field_name === 'destination_gas_configs')?.value ??
107
+ '';
108
+ assert(destinationGasConfigsKeyValueStore, `found no destination gas configs on hook ${hook}`);
109
+ const destination_gas_configs = {};
110
+ const { items } = await this.gateway.state.innerClient.keyValueStoreKeys({
111
+ stateKeyValueStoreKeysRequest: {
112
+ key_value_store_address: destinationGasConfigsKeyValueStore,
113
+ },
114
+ });
115
+ for (const { key } of items) {
116
+ const { entries } = await this.gateway.state.innerClient.keyValueStoreData({
117
+ stateKeyValueStoreDataRequest: {
118
+ key_value_store_address: destinationGasConfigsKeyValueStore,
119
+ keys: [
120
+ {
121
+ key_hex: key.raw_hex,
122
+ },
123
+ ],
124
+ },
125
+ });
126
+ const remoteDomain = key.programmatic_json?.value ?? '0';
127
+ const gasConfigFields = entries[0].value.programmatic_json.fields;
128
+ const gasOracleFields = gasConfigFields?.find((r) => r.field_name === 'gas_oracle')?.fields ??
129
+ [];
130
+ Object.assign(destination_gas_configs, {
131
+ [remoteDomain]: {
132
+ gas_oracle: {
133
+ token_exchange_rate: gasOracleFields.find((r) => r.field_name === 'token_exchange_rate')?.value ?? '0',
134
+ gas_price: gasOracleFields.find((r) => r.field_name === 'gas_price')
135
+ ?.value ?? '0',
136
+ },
137
+ gas_overhead: gasConfigFields?.find((r) => r.field_name === 'gas_overhead')
138
+ ?.value ?? '0',
139
+ },
140
+ });
141
+ }
142
+ return {
143
+ address: hook,
144
+ owner: resourceHolders[0],
145
+ destination_gas_configs,
146
+ };
147
+ }
148
+ async getMerkleTreeHook({ hook }) {
149
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(hook);
150
+ assert(details.details.blueprint_name === 'MerkleTreeHook', `Expected contract at address ${hook} to be "MerkleTreeHook" but got ${details.details.blueprint_name}`);
151
+ return {
152
+ address: hook,
153
+ };
154
+ }
155
+ }
156
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/core/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { RadixBase } from '../utils/base.js';
2
+ import { RadixSigner } from '../utils/signer.js';
3
+ import { Account, MultisigIsmReq } from '../utils/types.js';
4
+ import { RadixCorePopulate } from './populate.js';
5
+ export declare class RadixCoreTx {
6
+ private account;
7
+ protected base: RadixBase;
8
+ protected populate: RadixCorePopulate;
9
+ protected signer: RadixSigner;
10
+ constructor(account: Account, base: RadixBase, signer: RadixSigner, populate: RadixCorePopulate);
11
+ transfer({ to_address, resource_address, amount, }: {
12
+ to_address: string;
13
+ resource_address: string;
14
+ amount: string;
15
+ }): Promise<void>;
16
+ createMailbox({ domain_id }: {
17
+ domain_id: number;
18
+ }): Promise<string>;
19
+ createMerkleTreeHook({ mailbox }: {
20
+ mailbox: string;
21
+ }): Promise<string>;
22
+ createMerkleRootMultisigIsm({ validators, threshold, }: MultisigIsmReq): Promise<string>;
23
+ createMessageIdMultisigIsm({ validators, threshold, }: MultisigIsmReq): Promise<string>;
24
+ createRoutingIsm({ routes, }: {
25
+ routes: {
26
+ ism: string;
27
+ domain: number;
28
+ }[];
29
+ }): Promise<string>;
30
+ setRoutingIsmOwner({ ism, new_owner, }: {
31
+ ism: string;
32
+ new_owner: string;
33
+ }): Promise<void>;
34
+ createNoopIsm(): Promise<string>;
35
+ createIgp({ denom }: {
36
+ denom: string;
37
+ }): Promise<string>;
38
+ setIgpOwner({ igp, new_owner, }: {
39
+ igp: string;
40
+ new_owner: string;
41
+ }): Promise<void>;
42
+ setDestinationGasConfig({ igp, destination_gas_config, }: {
43
+ igp: string;
44
+ destination_gas_config: {
45
+ remote_domain: string;
46
+ gas_oracle: {
47
+ token_exchange_rate: string;
48
+ gas_price: string;
49
+ };
50
+ gas_overhead: string;
51
+ };
52
+ }): Promise<void>;
53
+ setMailboxOwner({ mailbox, new_owner, }: {
54
+ mailbox: string;
55
+ new_owner: string;
56
+ }): Promise<void>;
57
+ createValidatorAnnounce({ mailbox }: {
58
+ mailbox: string;
59
+ }): Promise<string>;
60
+ setRequiredHook({ mailbox, hook, }: {
61
+ mailbox: string;
62
+ hook: string;
63
+ }): Promise<void>;
64
+ setDefaultHook({ mailbox, hook, }: {
65
+ mailbox: string;
66
+ hook: string;
67
+ }): Promise<void>;
68
+ setDefaultIsm({ mailbox, ism, }: {
69
+ mailbox: string;
70
+ ism: string;
71
+ }): Promise<void>;
72
+ }
73
+ //# sourceMappingURL=tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/core/tx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAU;IAEzB,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAG5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB;IAQhB,QAAQ,CAAC,EACpB,UAAU,EACV,gBAAgB,EAChB,MAAM,GACP,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB;IAmBY,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAYlD,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAYrD,2BAA2B,CAAC,EACvC,UAAU,EACV,SAAS,GACV,EAAE,cAAc;IAeJ,0BAA0B,CAAC,EACtC,UAAU,EACV,SAAS,GACV,EAAE,cAAc;IAaJ,gBAAgB,CAAC,EAC5B,MAAM,GACP,EAAE;QACD,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC3C;IAYY,kBAAkB,CAAC,EAC9B,GAAG,EACH,SAAS,GACV,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB;IAUY,aAAa;IAWb,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAYtC,WAAW,CAAC,EACvB,GAAG,EACH,SAAS,GACV,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB;IAUY,uBAAuB,CAAC,EACnC,GAAG,EACH,sBAAsB,GACvB,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,sBAAsB,EAAE;YACtB,aAAa,EAAE,MAAM,CAAC;YACtB,UAAU,EAAE;gBACV,mBAAmB,EAAE,MAAM,CAAC;gBAC5B,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;YACF,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH;IAUY,eAAe,CAAC,EAC3B,OAAO,EACP,SAAS,GACV,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB;IAUY,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAYxD,eAAe,CAAC,EAC3B,OAAO,EACP,IAAI,GACL,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd;IAUY,cAAc,CAAC,EAC1B,OAAO,EACP,IAAI,GACL,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd;IAUY,aAAa,CAAC,EACzB,OAAO,EACP,GAAG,GACJ,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb;CASF"}