@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,130 @@
|
|
|
1
|
+
import { assert, ensure0x } from '@recoillink/utils';
|
|
2
|
+
import { getComponentOwner, getComponentState, getFieldHexValueFromEntityState, getFieldPropertyFromEntityState, getFieldValueFromEntityState, getKeysFromKvStore, getRadixComponentDetails, getResourceAddress, tryGetFieldValueFromEntityState, } from '../utils/base-query.js';
|
|
3
|
+
import { RADIX_COMPONENT_NAMES, RADIX_WARP_TOKEN_FIELD_NAMES, RadixWarpTokenType, } from '../utils/types.js';
|
|
4
|
+
export function providerWarpTokenTypeFromRadixTokenType(tokenType) {
|
|
5
|
+
switch (tokenType) {
|
|
6
|
+
case RadixWarpTokenType.COLLATERAL:
|
|
7
|
+
return 'collateral';
|
|
8
|
+
case RadixWarpTokenType.SYNTHETIC:
|
|
9
|
+
return 'synthetic';
|
|
10
|
+
default: {
|
|
11
|
+
const invalidValue = tokenType;
|
|
12
|
+
throw new Error(`Unknown warp token type: ${invalidValue}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function getRadixWarpTokenType(gateway, tokenAddress) {
|
|
17
|
+
const { tokenType } = await getRawWarpTokenData(gateway, tokenAddress);
|
|
18
|
+
return tokenType;
|
|
19
|
+
}
|
|
20
|
+
export async function getCollateralWarpTokenConfig(gateway, base, tokenAddress) {
|
|
21
|
+
const [tokenState, baseTokenData] = await getWarpTokenConfig(gateway, tokenAddress);
|
|
22
|
+
assert(baseTokenData.type === RadixWarpTokenType.COLLATERAL, `Expected token at address ${tokenAddress} to be of type ${RadixWarpTokenType.COLLATERAL} but got ${baseTokenData.type}`);
|
|
23
|
+
const tokenTypeFields = getFieldPropertyFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.TOKEN_TYPE, tokenAddress, tokenState, 'fields');
|
|
24
|
+
const collateralTokenAddress = getResourceAddress(tokenAddress, {
|
|
25
|
+
fields: tokenTypeFields,
|
|
26
|
+
});
|
|
27
|
+
const metadata = await base.getMetadata({ resource: collateralTokenAddress });
|
|
28
|
+
return {
|
|
29
|
+
mailbox: baseTokenData.mailbox,
|
|
30
|
+
owner: baseTokenData.owner,
|
|
31
|
+
token: collateralTokenAddress,
|
|
32
|
+
type: RadixWarpTokenType.COLLATERAL,
|
|
33
|
+
destinationGas: baseTokenData.destinationGas,
|
|
34
|
+
interchainSecurityModule: baseTokenData.interchainSecurityModule,
|
|
35
|
+
remoteRouters: baseTokenData.remoteRouters,
|
|
36
|
+
decimals: metadata.decimals,
|
|
37
|
+
name: metadata.name,
|
|
38
|
+
symbol: metadata.symbol,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export async function getSyntheticWarpTokenConfig(gateway, base, tokenAddress) {
|
|
42
|
+
const [tokenState, baseTokenData] = await getWarpTokenConfig(gateway, tokenAddress);
|
|
43
|
+
assert(baseTokenData.type === RadixWarpTokenType.SYNTHETIC, `Expected token at address ${tokenAddress} to be of type ${RadixWarpTokenType.SYNTHETIC} but got ${baseTokenData.type}`);
|
|
44
|
+
const resourceManagerFields = tokenState.fields.find((f) => f.field_name === RADIX_WARP_TOKEN_FIELD_NAMES.RESOURCE_MANAGER)?.fields ?? [];
|
|
45
|
+
const syntheticResourceAddress = getResourceAddress(tokenAddress, {
|
|
46
|
+
fields: resourceManagerFields,
|
|
47
|
+
});
|
|
48
|
+
const metadata = await base.getMetadata({
|
|
49
|
+
resource: syntheticResourceAddress,
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
mailbox: baseTokenData.mailbox,
|
|
53
|
+
owner: baseTokenData.owner,
|
|
54
|
+
type: RadixWarpTokenType.SYNTHETIC,
|
|
55
|
+
destinationGas: baseTokenData.destinationGas,
|
|
56
|
+
interchainSecurityModule: baseTokenData.interchainSecurityModule,
|
|
57
|
+
remoteRouters: baseTokenData.remoteRouters,
|
|
58
|
+
decimals: metadata.decimals,
|
|
59
|
+
name: metadata.name,
|
|
60
|
+
symbol: metadata.symbol,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function getRawWarpTokenData(gateway, tokenAddress) {
|
|
64
|
+
const tokenDetails = await getRadixComponentDetails(gateway, tokenAddress, RADIX_COMPONENT_NAMES.HYP_TOKEN);
|
|
65
|
+
assert(tokenDetails.blueprint_name === RADIX_COMPONENT_NAMES.HYP_TOKEN, `Expected component at address ${tokenAddress} to be "HypToken" but got ${tokenDetails.blueprint_name}`);
|
|
66
|
+
const tokenState = getComponentState(tokenAddress, tokenDetails);
|
|
67
|
+
const tokenType = getFieldPropertyFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.TOKEN_TYPE, tokenAddress, tokenState, 'variant_name');
|
|
68
|
+
assert(tokenType === RadixWarpTokenType.COLLATERAL ||
|
|
69
|
+
tokenType === RadixWarpTokenType.SYNTHETIC, `Unknown token type: ${tokenType}`);
|
|
70
|
+
return {
|
|
71
|
+
tokenType,
|
|
72
|
+
tokenDetails,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async function getWarpTokenConfig(gateway, tokenAddress) {
|
|
76
|
+
const { tokenDetails, tokenType } = await getRawWarpTokenData(gateway, tokenAddress);
|
|
77
|
+
const owner = await getComponentOwner(gateway, tokenAddress, tokenDetails);
|
|
78
|
+
const tokenState = getComponentState(tokenAddress, tokenDetails);
|
|
79
|
+
const ismAddress = tryGetFieldValueFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.ISM, tokenState);
|
|
80
|
+
const mailboxAddress = getFieldValueFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.MAILBOX, tokenAddress, tokenState);
|
|
81
|
+
const { destinationGas, remoteRouters } = await getWarpTokenRemoteRoutersConfig(gateway, tokenAddress, tokenState);
|
|
82
|
+
return [
|
|
83
|
+
tokenState,
|
|
84
|
+
{
|
|
85
|
+
type: tokenType,
|
|
86
|
+
mailbox: mailboxAddress,
|
|
87
|
+
owner,
|
|
88
|
+
destinationGas,
|
|
89
|
+
interchainSecurityModule: ismAddress,
|
|
90
|
+
remoteRouters,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
async function getWarpTokenRemoteRoutersConfig(gateway, tokenAddress, tokenState) {
|
|
95
|
+
const destinationGas = {};
|
|
96
|
+
const remoteRouters = {};
|
|
97
|
+
const remote_routers_kv_address = getFieldValueFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.ENROLLED_ROUTERS, tokenAddress, tokenState);
|
|
98
|
+
const keys = await getKeysFromKvStore(gateway, remote_routers_kv_address);
|
|
99
|
+
for (const key of keys) {
|
|
100
|
+
const { entries } = await gateway.state.innerClient.keyValueStoreData({
|
|
101
|
+
stateKeyValueStoreDataRequest: {
|
|
102
|
+
key_value_store_address: remote_routers_kv_address,
|
|
103
|
+
keys: [{ key_hex: key.raw_hex }],
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
const rawRemoteDomain = key.programmatic_json;
|
|
107
|
+
assert(rawRemoteDomain.kind === 'U32', `Expected domain id to be stored as a number on warp token at address ${tokenAddress}`);
|
|
108
|
+
const domainId = parseInt(rawRemoteDomain.value);
|
|
109
|
+
const [entry] = entries;
|
|
110
|
+
assert(entry, `Expected to find at least one entry with key ${domainId} on warp token at address ${tokenAddress}`);
|
|
111
|
+
const rawRouter = entry.value.programmatic_json;
|
|
112
|
+
assert(rawRouter.kind === 'Tuple', `Expected router to be an object on warp token at address ${tokenAddress}`);
|
|
113
|
+
const routerFields = rawRouter.fields ?? [];
|
|
114
|
+
const remoteAddress = getFieldHexValueFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.RECIPIENT, tokenAddress, {
|
|
115
|
+
fields: routerFields,
|
|
116
|
+
}, ensure0x);
|
|
117
|
+
const gas = tryGetFieldValueFromEntityState(RADIX_WARP_TOKEN_FIELD_NAMES.GAS, {
|
|
118
|
+
fields: routerFields,
|
|
119
|
+
}) ?? '0';
|
|
120
|
+
destinationGas[domainId] = gas;
|
|
121
|
+
remoteRouters[domainId] = {
|
|
122
|
+
address: remoteAddress,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
destinationGas,
|
|
127
|
+
remoteRouters,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=warp-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp-query.js","sourceRoot":"","sources":["../../src/warp/warp-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { TransactionManifest } from '@radixdlt/radix-engine-toolkit';
|
|
3
|
+
import { ArtifactDeployed } from '@recoillink/provider-sdk/artifact';
|
|
4
|
+
import { DeployedWarpAddress, RawWarpArtifactConfig } from '@recoillink/provider-sdk/warp';
|
|
5
|
+
import { RadixBase } from '../utils/base.js';
|
|
6
|
+
import { AnnotatedRadixTransaction } from '../utils/types.js';
|
|
7
|
+
export declare function getCreateCollateralTokenTx(base: Readonly<RadixBase>, fromAddress: string, { mailbox, originDenom, }: {
|
|
8
|
+
mailbox: string;
|
|
9
|
+
originDenom: string;
|
|
10
|
+
}): Promise<TransactionManifest>;
|
|
11
|
+
export declare function getCreateSyntheticTokenTx(base: Readonly<RadixBase>, fromAddress: string, { mailbox, name, symbol, divisibility, }: {
|
|
12
|
+
mailbox: string;
|
|
13
|
+
name: string;
|
|
14
|
+
symbol: string;
|
|
15
|
+
divisibility: number;
|
|
16
|
+
}): Promise<TransactionManifest>;
|
|
17
|
+
export declare function getSetTokenOwnerTx(base: Readonly<RadixBase>, gateway: Readonly<GatewayApiClient>, fromAddress: string, { tokenAddress, newOwner, }: {
|
|
18
|
+
tokenAddress: string;
|
|
19
|
+
newOwner: string;
|
|
20
|
+
}): Promise<TransactionManifest>;
|
|
21
|
+
export declare function getSetTokenIsmTx(base: Readonly<RadixBase>, fromAddress: string, { tokenAddress, ismAddress, }: {
|
|
22
|
+
tokenAddress: string;
|
|
23
|
+
ismAddress?: string;
|
|
24
|
+
}): Promise<TransactionManifest>;
|
|
25
|
+
export declare function getEnrollRemoteRouterTx(base: Readonly<RadixBase>, fromAddress: string, { tokenAddress, remoteDomainId, remoteRouterAddress, destinationGas, }: {
|
|
26
|
+
tokenAddress: string;
|
|
27
|
+
remoteDomainId: number;
|
|
28
|
+
remoteRouterAddress: string;
|
|
29
|
+
destinationGas: string;
|
|
30
|
+
}): Promise<TransactionManifest>;
|
|
31
|
+
export declare function getUnenrollRemoteRouterTx(base: Readonly<RadixBase>, fromAddress: string, { tokenAddress, remoteDomainId, }: {
|
|
32
|
+
tokenAddress: string;
|
|
33
|
+
remoteDomainId: number;
|
|
34
|
+
}): Promise<TransactionManifest>;
|
|
35
|
+
/**
|
|
36
|
+
* Generates update transactions for a warp token by comparing current on-chain state
|
|
37
|
+
* with desired configuration. Returns transactions for ISM updates, router enrollment/unenrollment,
|
|
38
|
+
* and ownership transfer (always last).
|
|
39
|
+
*
|
|
40
|
+
* @param expectedArtifactState The desired warp token configuration with deployment address
|
|
41
|
+
* @param reader Reader instance to fetch current on-chain state
|
|
42
|
+
* @param base RadixBase instance for transaction building
|
|
43
|
+
* @param gateway GatewayApiClient for owner queries
|
|
44
|
+
* @param signerAddress Address of the transaction signer
|
|
45
|
+
* @returns Array of transactions to execute in order
|
|
46
|
+
*/
|
|
47
|
+
export declare function getWarpTokenUpdateTxs<TConfig extends RawWarpArtifactConfig>(expectedArtifactState: ArtifactDeployed<TConfig, DeployedWarpAddress>, currentArtifactState: ArtifactDeployed<TConfig, DeployedWarpAddress>, base: Readonly<RadixBase>, gateway: Readonly<GatewayApiClient>, signerAddress: string): Promise<AnnotatedRadixTransaction[]>;
|
|
48
|
+
//# sourceMappingURL=warp-tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp-tx.d.ts","sourceRoot":"","sources":["../../src/warp/warp-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,mBAAmB,EAOpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,+BAA+B,CAAC;AAavC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,yBAAyB,EAG1B,MAAM,mBAAmB,CAAC;AAQ3B,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,OAAO,EACP,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,OAAO,EACP,IAAI,EACJ,MAAM,EACN,YAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,EACE,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,YAAY,EACZ,UAAU,GACX,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,YAAY,EACZ,cAAc,GACf,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,SAAS,qBAAqB,EAErC,qBAAqB,EAAE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,EACrE,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,EACpE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAsEtC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { address, decimal, enumeration, str, u8, u32, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { computeRemoteRoutersUpdates, } from '@recoillink/provider-sdk/warp';
|
|
3
|
+
import { assert, eqAddressRadix, eqOptionalAddress, isZeroishAddress, strip0x, } from '@recoillink/utils';
|
|
4
|
+
import { getComponentOwnershipInfo, getRadixComponentDetails, } from '../utils/base-query.js';
|
|
5
|
+
import { INSTRUCTIONS, RADIX_COMPONENT_NAMES, } from '../utils/types.js';
|
|
6
|
+
import { bytes } from '../utils/utils.js';
|
|
7
|
+
function withErrorContext(context, error) {
|
|
8
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
9
|
+
return new Error(`${context}: ${message}`);
|
|
10
|
+
}
|
|
11
|
+
export async function getCreateCollateralTokenTx(base, fromAddress, { mailbox, originDenom, }) {
|
|
12
|
+
return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RADIX_COMPONENT_NAMES.HYP_TOKEN, INSTRUCTIONS.INSTANTIATE, [enumeration(0, address(originDenom)), address(mailbox)]);
|
|
13
|
+
}
|
|
14
|
+
export async function getCreateSyntheticTokenTx(base, fromAddress, { mailbox, name, symbol, divisibility, }) {
|
|
15
|
+
return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RADIX_COMPONENT_NAMES.HYP_TOKEN, INSTRUCTIONS.INSTANTIATE, [
|
|
16
|
+
enumeration(1, str(name), str(symbol), str(''), u8(divisibility)),
|
|
17
|
+
address(mailbox),
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
export async function getSetTokenOwnerTx(base, gateway, fromAddress, { tokenAddress, newOwner, }) {
|
|
21
|
+
const tokenDetails = await getRadixComponentDetails(gateway, tokenAddress, RADIX_COMPONENT_NAMES.HYP_TOKEN).catch((error) => {
|
|
22
|
+
throw withErrorContext(`Failed to fetch Radix token details for ownership transfer (token=${tokenAddress})`, error);
|
|
23
|
+
});
|
|
24
|
+
const ownershipInfo = getComponentOwnershipInfo(tokenAddress, tokenDetails);
|
|
25
|
+
const resourceAddress = ownershipInfo.rule?.access_rule?.proof_rule?.requirement?.resource;
|
|
26
|
+
assert(resourceAddress, `Expected ownershipInfo.rule.access_rule.proof_rule.requirement.resource for token ${tokenAddress}`);
|
|
27
|
+
return base.transfer({
|
|
28
|
+
from_address: fromAddress,
|
|
29
|
+
to_address: newOwner,
|
|
30
|
+
resource_address: resourceAddress,
|
|
31
|
+
amount: '1',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export async function getSetTokenIsmTx(base, fromAddress, { tokenAddress, ismAddress, }) {
|
|
35
|
+
return base.createCallMethodManifestWithOwner(fromAddress, tokenAddress, 'set_ism', [
|
|
36
|
+
// Set or unset the ism based on the input value
|
|
37
|
+
// undefined or zero address → unset (use default ISM)
|
|
38
|
+
ismAddress && !isZeroishAddress(ismAddress)
|
|
39
|
+
? enumeration(1, address(ismAddress))
|
|
40
|
+
: enumeration(0),
|
|
41
|
+
]);
|
|
42
|
+
}
|
|
43
|
+
export async function getEnrollRemoteRouterTx(base, fromAddress, { tokenAddress, remoteDomainId, remoteRouterAddress, destinationGas, }) {
|
|
44
|
+
return base.createCallMethodManifestWithOwner(fromAddress, tokenAddress, 'enroll_remote_router', [
|
|
45
|
+
u32(remoteDomainId),
|
|
46
|
+
bytes(strip0x(remoteRouterAddress)),
|
|
47
|
+
decimal(destinationGas),
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
export async function getUnenrollRemoteRouterTx(base, fromAddress, { tokenAddress, remoteDomainId, }) {
|
|
51
|
+
return base.createCallMethodManifestWithOwner(fromAddress, tokenAddress, 'unroll_remote_router', [u32(remoteDomainId)]);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generates update transactions for a warp token by comparing current on-chain state
|
|
55
|
+
* with desired configuration. Returns transactions for ISM updates, router enrollment/unenrollment,
|
|
56
|
+
* and ownership transfer (always last).
|
|
57
|
+
*
|
|
58
|
+
* @param expectedArtifactState The desired warp token configuration with deployment address
|
|
59
|
+
* @param reader Reader instance to fetch current on-chain state
|
|
60
|
+
* @param base RadixBase instance for transaction building
|
|
61
|
+
* @param gateway GatewayApiClient for owner queries
|
|
62
|
+
* @param signerAddress Address of the transaction signer
|
|
63
|
+
* @returns Array of transactions to execute in order
|
|
64
|
+
*/
|
|
65
|
+
export async function getWarpTokenUpdateTxs(expectedArtifactState, currentArtifactState, base, gateway, signerAddress) {
|
|
66
|
+
const { config: expectedConfig, deployed } = expectedArtifactState;
|
|
67
|
+
const { config: currentConfig } = currentArtifactState;
|
|
68
|
+
const updateTxs = [];
|
|
69
|
+
// Update ISM if changed
|
|
70
|
+
const currentIsm = currentConfig.interchainSecurityModule?.deployed.address;
|
|
71
|
+
const newIsm = expectedConfig.interchainSecurityModule?.deployed.address;
|
|
72
|
+
if (!eqOptionalAddress(currentIsm, newIsm, eqAddressRadix)) {
|
|
73
|
+
const setIsmTx = await getSetTokenIsmTx(base, signerAddress, {
|
|
74
|
+
tokenAddress: deployed.address,
|
|
75
|
+
ismAddress: newIsm,
|
|
76
|
+
});
|
|
77
|
+
updateTxs.push({
|
|
78
|
+
annotation: 'Updating token ISM',
|
|
79
|
+
networkId: base.getNetworkId(),
|
|
80
|
+
manifest: setIsmTx,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Compute router updates
|
|
84
|
+
const routerDiff = computeRemoteRoutersUpdates(currentConfig, expectedConfig, eqAddressRadix);
|
|
85
|
+
// Unenroll removed routers
|
|
86
|
+
for (const domainId of routerDiff.toUnenroll) {
|
|
87
|
+
const unenrollTx = await getUnenrollRemoteRouterTx(base, signerAddress, {
|
|
88
|
+
tokenAddress: deployed.address,
|
|
89
|
+
remoteDomainId: domainId,
|
|
90
|
+
});
|
|
91
|
+
updateTxs.push({
|
|
92
|
+
annotation: `Unenrolling router for domain ${domainId}`,
|
|
93
|
+
networkId: base.getNetworkId(),
|
|
94
|
+
manifest: unenrollTx,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// Enroll or update routers
|
|
98
|
+
for (const { domainId, routerAddress, gas } of routerDiff.toEnroll) {
|
|
99
|
+
const enrollTx = await getEnrollRemoteRouterTx(base, signerAddress, {
|
|
100
|
+
tokenAddress: deployed.address,
|
|
101
|
+
remoteDomainId: domainId,
|
|
102
|
+
remoteRouterAddress: routerAddress,
|
|
103
|
+
destinationGas: gas,
|
|
104
|
+
});
|
|
105
|
+
updateTxs.push({
|
|
106
|
+
annotation: `Enrolling/updating router for domain ${domainId}`,
|
|
107
|
+
networkId: base.getNetworkId(),
|
|
108
|
+
manifest: enrollTx,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// Owner transfer must be last transaction as the current owner executes all updates
|
|
112
|
+
if (!eqAddressRadix(currentConfig.owner, expectedConfig.owner)) {
|
|
113
|
+
const setOwnerTx = await getSetTokenOwnerTx(base, gateway, signerAddress, {
|
|
114
|
+
tokenAddress: deployed.address,
|
|
115
|
+
newOwner: expectedConfig.owner,
|
|
116
|
+
});
|
|
117
|
+
updateTxs.push({
|
|
118
|
+
annotation: 'Setting new token owner',
|
|
119
|
+
networkId: base.getNetworkId(),
|
|
120
|
+
manifest: setOwnerTx,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return updateTxs;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=warp-tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp-tx.js","sourceRoot":"","sources":["../../src/warp/warp-tx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Modified from rust/main/utils/run-locally/src/radix/docker-compose.yml
|
|
2
|
+
services:
|
|
3
|
+
fullnode:
|
|
4
|
+
image: 'radixdlt/babylon-node:v1.3.0.1'
|
|
5
|
+
profiles: ['fullnode']
|
|
6
|
+
init: true
|
|
7
|
+
ports:
|
|
8
|
+
- '127.0.0.1:${RADIX_CORE_PORT:-3333}:3333'
|
|
9
|
+
cap_add:
|
|
10
|
+
- NET_ADMIN
|
|
11
|
+
deploy:
|
|
12
|
+
restart_policy:
|
|
13
|
+
condition: on-failure
|
|
14
|
+
environment:
|
|
15
|
+
# Full node configuration
|
|
16
|
+
FULLNODE_NETWORK_ID: 240
|
|
17
|
+
FULLNODE_LOG_LEVEL: info
|
|
18
|
+
FULLNODE_NETWORK_BOOTSTRAP_NODE: 'radix://node_tdx_2_1qwz237kqdpct5l3yjhmna66uxja2ymrf3x6hh528ng3gtvnwndtn5rsrad4@3.210.187.161'
|
|
19
|
+
FULLNODE_KEY_PASSWORD: 'fullnode_key_password'
|
|
20
|
+
RADIXDLT_LOG_LEVEL: info
|
|
21
|
+
RADIXDLT_CORE_API_PORT: 3333
|
|
22
|
+
RADIXDLT_SYSTEM_API_PORT: 3334
|
|
23
|
+
RADIXDLT_PROMETHEUS_API_PORT: 3335
|
|
24
|
+
RADIXDLT_ENGINE_STATE_API_PORT: 3336
|
|
25
|
+
RADIXDLT_NETWORK_SEEDS_REMOTE: ''
|
|
26
|
+
JAVA_OPTS: -server -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:+AlwaysPreTouch -Dguice_bytecode_gen_option=DISABLED -Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts -Djavax.net.ssl.trustStoreType=jks -Djava.security.egd=file:/dev/urandom -Dcom.sun.management.jmxremote.port=9011 -Dcom.sun.management.jmxremote.rmi.port=9011 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=core -agentlib:jdwp=transport=dt_socket,address=*:50505,suspend=n,server=y --enable-preview
|
|
27
|
+
RADIXDLT_HOST_IP_ADDRESS: core0
|
|
28
|
+
RADIXDLT_NODE_KEY: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY=
|
|
29
|
+
RADIXDLT_GENESIS_DATA: /wYAAHNOYVBwWQAHAgCfdxlxngUUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQYoABAehDzWgUVMgEAIKAAAGSns7bgDTIWAAFWDVUuRAAYABBjLV7HaxWBDQHAICICAAEgIQEGIAchA//5e9V1Xu6kIEU6FDVSNdOC9kcvhWihiy8FehRgKXVWAQEBAWJ1APCVICECAgwEbmFtZSIAAQwTRGVmYXVsdCB2YWxpZGF0b3IgMQIMCGluZm9fdXJsIg0BDBhodHRwczovL3d3dy5yYWRpeGRsdC5jb22A0V2lblLuqlWNSPddLPYcqXQbJq7Y9QscHefNoU86AQIggAHR0ouStuhEmbg7B5fvUjVVPut+2qDOokPBEowv5zcgIQECIAchA//5dtEAASgACSEKAKBeSwE0oAAAAEDq7XRG0JwsnwwBKw0B4CAMCgx0cmFuc2Zlcl94cmQIcmFkaXN3YXAIbWV0YWRhdGERZnVuZ2libGVfcmVzb3VyY2UVbm9uX0IWAPBpHWFjY291bnRfYXV0aG9yaXplZF9kZXBvc2l0b3JzDmdsb2JhbF9uX293bmVkJm5vbl9mdW5naWJsZV9yZXNvdXJjZV93aXRoX3JlbW90ZV90eXBlGWt2X3N0b3JlX3dpdGhfcmVtb3RlXwEaPA9tYXhfdHJhbnNhY3Rpb24=
|
|
30
|
+
RADIXDLT_DB_HISTORICAL_SUBSTATE_VALUES_ENABLE: true
|
|
31
|
+
|
|
32
|
+
postgres_db:
|
|
33
|
+
image: 'postgres:15.2-alpine'
|
|
34
|
+
shm_size: 256m
|
|
35
|
+
profiles:
|
|
36
|
+
[
|
|
37
|
+
'network-gateway-built',
|
|
38
|
+
'network-gateway-image',
|
|
39
|
+
'network-gateway-resources',
|
|
40
|
+
]
|
|
41
|
+
# The default shutdown mode for this container is SIGINT:
|
|
42
|
+
# https://github.com/docker-library/postgres/blob/e483778176ca34bcbe83ee17000820d4f6e64c28/12/alpine/Dockerfile
|
|
43
|
+
# This enables fast Shutdown mode - see eg https://www.postgresql.org/docs/10/server-shutdown.html
|
|
44
|
+
stop_grace_period: 90s # Ensure the DB is allowed time to stop to prevent needing to recover on next start-up
|
|
45
|
+
deploy:
|
|
46
|
+
restart_policy:
|
|
47
|
+
condition: on-failure
|
|
48
|
+
environment:
|
|
49
|
+
# Database configuration
|
|
50
|
+
POSTGRES_USER: 'db_dev_superuser'
|
|
51
|
+
POSTGRES_PASSWORD: 'db_dev_password'
|
|
52
|
+
POSTGRES_DB: 'radixdlt_ledger'
|
|
53
|
+
healthcheck:
|
|
54
|
+
test: pg_isready -U db_dev_superuser -d radixdlt_ledger
|
|
55
|
+
interval: 10s
|
|
56
|
+
timeout: 3s
|
|
57
|
+
retries: 3
|
|
58
|
+
|
|
59
|
+
database_migrations: # This is the base -- the _image and _built containers are defined below
|
|
60
|
+
image: 'radixdlt/babylon-ng-database-migrations:v1.10.3'
|
|
61
|
+
profiles: ['NONE']
|
|
62
|
+
environment:
|
|
63
|
+
# Database configuration
|
|
64
|
+
ConnectionStrings__NetworkGatewayMigrations: 'Host=postgres_db:5432;Database=radixdlt_ledger;Username=db_dev_superuser;Password=db_dev_password'
|
|
65
|
+
|
|
66
|
+
data_aggregator:
|
|
67
|
+
image: 'radixdlt/babylon-ng-data-aggregator:v1.10.3'
|
|
68
|
+
profiles: ['NONE']
|
|
69
|
+
deploy:
|
|
70
|
+
restart_policy:
|
|
71
|
+
condition: on-failure
|
|
72
|
+
environment:
|
|
73
|
+
# WIPE_DATABASE: "true"
|
|
74
|
+
ASPNETCORE_URLS: 'http://*:8080' # Binds to 8080 on all interfaces
|
|
75
|
+
CustomJsonConfigurationFilePath: '/home/radixdlt/network-gateway/config.json'
|
|
76
|
+
ConnectionStrings__NetworkGatewayReadWrite: 'Host=postgres_db:5432;Database=radixdlt_ledger;Username=db_dev_superuser;Password=db_dev_password'
|
|
77
|
+
DataAggregator__Network__NetworkName: 'localnet'
|
|
78
|
+
DataAggregator__Network__DisableCoreApiHttpsCertificateChecks: 'false'
|
|
79
|
+
# Node configuration
|
|
80
|
+
DataAggregator__Network__CoreApiNodes__0__Name: 'One'
|
|
81
|
+
DataAggregator__Network__CoreApiNodes__0__CoreApiAddress: 'http://fullnode:3333/core'
|
|
82
|
+
DataAggregator__Network__CoreApiNodes__0__CoreApiAuthorizationHeader: ''
|
|
83
|
+
DataAggregator__Network__CoreApiNodes__0__Enabled: 'true'
|
|
84
|
+
GatewayApi__Network__CoreApiNodes__1__Enabled: 'false'
|
|
85
|
+
GatewayApi__Network__CoreApiNodes__2__Enabled: 'false'
|
|
86
|
+
GatewayApi__Network__CoreApiNodes__3__Enabled: 'false'
|
|
87
|
+
|
|
88
|
+
gateway_api:
|
|
89
|
+
image: 'radixdlt/babylon-ng-gateway-api:v1.10.3'
|
|
90
|
+
profiles: ['NONE']
|
|
91
|
+
ports:
|
|
92
|
+
- '127.0.0.1:${RADIX_GATEWAY_PORT:-5308}:8080'
|
|
93
|
+
deploy:
|
|
94
|
+
restart_policy:
|
|
95
|
+
condition: on-failure
|
|
96
|
+
environment:
|
|
97
|
+
ASPNETCORE_URLS: 'http://*:8080'
|
|
98
|
+
CustomJsonConfigurationFilePath: '/home/radixdlt/network-gateway/config.json'
|
|
99
|
+
ConnectionStrings__NetworkGatewayReadOnly: 'Host=postgres_db:5432;Database=radixdlt_ledger;Username=db_dev_superuser;Password=db_dev_password'
|
|
100
|
+
ConnectionStrings__NetworkGatewayReadWrite: 'Host=postgres_db:5432;Database=radixdlt_ledger;Username=db_dev_superuser;Password=db_dev_password'
|
|
101
|
+
GatewayApi__Endpoint__MaxPageSize: '30'
|
|
102
|
+
GatewayApi__Endpoint__DefaultPageSize: '30'
|
|
103
|
+
GatewayApi__AcceptableLedgerLag__PreventReadRequestsIfDbLedgerIsBehind: 'true'
|
|
104
|
+
GatewayApi__AcceptableLedgerLag__PreventConstructionRequestsIfDbLedgerIsBehind: 'true'
|
|
105
|
+
GatewayApi__Network__NetworkName: 'localnet'
|
|
106
|
+
GatewayApi__Network__DisableCoreApiHttpsCertificateChecks: 'false'
|
|
107
|
+
# Node configuration
|
|
108
|
+
GatewayApi__Network__CoreApiNodes__0__Name: 'One'
|
|
109
|
+
GatewayApi__Network__CoreApiNodes__0__CoreApiAddress: 'http://fullnode:3333/core'
|
|
110
|
+
GatewayApi__Network__CoreApiNodes__0__CoreApiAuthorizationHeader: ''
|
|
111
|
+
GatewayApi__Network__CoreApiNodes__0__RequestWeighting: '1'
|
|
112
|
+
GatewayApi__Network__CoreApiNodes__0__Enabled: 'true'
|
|
113
|
+
GatewayApi__Network__CoreApiNodes__1__Enabled: 'false'
|
|
114
|
+
GatewayApi__Network__CoreApiNodes__2__Enabled: 'false'
|
|
115
|
+
GatewayApi__Network__CoreApiNodes__3__Enabled: 'false'
|
|
116
|
+
|
|
117
|
+
database_migrations_image:
|
|
118
|
+
extends:
|
|
119
|
+
service: database_migrations
|
|
120
|
+
profiles: ['network-gateway-image']
|
|
121
|
+
depends_on:
|
|
122
|
+
postgres_db:
|
|
123
|
+
condition: service_healthy
|
|
124
|
+
|
|
125
|
+
data_aggregator_image:
|
|
126
|
+
extends:
|
|
127
|
+
service: data_aggregator
|
|
128
|
+
profiles: ['network-gateway-image']
|
|
129
|
+
depends_on:
|
|
130
|
+
database_migrations_image:
|
|
131
|
+
condition: service_completed_successfully
|
|
132
|
+
|
|
133
|
+
gateway_api_image:
|
|
134
|
+
extends:
|
|
135
|
+
service: gateway_api
|
|
136
|
+
profiles: ['network-gateway-image']
|
|
137
|
+
depends_on:
|
|
138
|
+
database_migrations_image:
|
|
139
|
+
condition: service_completed_successfully
|
package/package.json
CHANGED
|
@@ -1,6 +1,77 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@recoillink/radix-sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "45.0.1",
|
|
4
|
+
"description": "Recoil Link TypeScript SDK for the Radix Hyperlane SDK module",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"blockchain",
|
|
7
|
+
"hyperlane",
|
|
8
|
+
"radix",
|
|
9
|
+
"sdk"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://github.com/recoil-labs/recoil-link",
|
|
12
|
+
"license": "Apache-2.0",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/recoil-labs/recoil-link"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"/dist",
|
|
19
|
+
"docker-compose.yml"
|
|
20
|
+
],
|
|
21
|
+
"type": "module",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"default": "./dist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./runtime": {
|
|
29
|
+
"types": "./dist/runtime.d.ts",
|
|
30
|
+
"default": "./dist/runtime.js"
|
|
31
|
+
},
|
|
32
|
+
"./testing": {
|
|
33
|
+
"types": "./dist/testing/index.d.ts",
|
|
34
|
+
"default": "./dist/testing/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@recoillink/provider-sdk": "11.0.1",
|
|
39
|
+
"@recoillink/utils": "45.0.1",
|
|
40
|
+
"@radixdlt/babylon-core-api-sdk": "^1.3.0",
|
|
41
|
+
"@radixdlt/babylon-gateway-api-sdk": "^1.10.1",
|
|
42
|
+
"@radixdlt/radix-engine-toolkit": "^1.0.5",
|
|
43
|
+
"bignumber.js": "^9.1.1",
|
|
44
|
+
"decimal.js": "^10.4.3",
|
|
45
|
+
"ethers": "^5.8.0"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@recoillink/tsconfig": "^45.0.1",
|
|
49
|
+
"@types/chai": "^4.3.11",
|
|
50
|
+
"@types/chai-as-promised": "^8",
|
|
51
|
+
"@types/mocha": "^10.0.1",
|
|
52
|
+
"@types/node": "^26.1.2",
|
|
53
|
+
"chai": "^4.5.0",
|
|
54
|
+
"chai-as-promised": "^8.0.1",
|
|
55
|
+
"mocha": "^11.7.6",
|
|
56
|
+
"mocha-steps": "^1.3.0",
|
|
57
|
+
"oxfmt": "^0.62.0",
|
|
58
|
+
"testcontainers": "11.12.0",
|
|
59
|
+
"ts-node": "^10.9.2",
|
|
60
|
+
"tsx": "^4.23.1",
|
|
61
|
+
"typescript": "npm:@typescript/typescript6@6.0.2"
|
|
62
|
+
},
|
|
63
|
+
"engines": {
|
|
64
|
+
"node": ">=22"
|
|
65
|
+
},
|
|
66
|
+
"scripts": {
|
|
67
|
+
"build": "rm -rf ./dist && tsc",
|
|
68
|
+
"format": "oxfmt --write ./src",
|
|
69
|
+
"lint": "oxlint -c ../../oxlint.json",
|
|
70
|
+
"clean": "rm -rf ./dist ./cache",
|
|
71
|
+
"dev": "tsc --watch",
|
|
72
|
+
"test": "echo \"no tests in radix-sdk\"",
|
|
73
|
+
"test:unit": "mocha --config .mocharc.json",
|
|
74
|
+
"test:ci": "pnpm test:unit",
|
|
75
|
+
"test:e2e": "mocha --config .mocharc.e2e.json"
|
|
76
|
+
}
|
|
6
77
|
}
|