@hyperlane-xyz/sdk 38.0.0 → 39.1.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.
- package/dist/ccip/consts.d.ts.map +1 -1
- package/dist/ccip/consts.js +20 -0
- package/dist/ccip/consts.js.map +1 -1
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +12 -9
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/adapters/StarknetCoreAdapter.js +2 -2
- package/dist/core/adapters/StarknetCoreAdapter.js.map +1 -1
- package/dist/deploy/warp.d.ts.map +1 -1
- package/dist/deploy/warp.js +22 -1
- package/dist/deploy/warp.js.map +1 -1
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.js +6 -16
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +11 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +44 -2
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +45 -3
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +910 -12
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +9 -1
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/agentConfig.test.js +53 -1
- package/dist/metadata/agentConfig.test.js.map +1 -1
- package/dist/providers/MinimalProviderRegistry.js +2 -2
- package/dist/providers/MinimalProviderRegistry.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +2 -2
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.test.js +1 -1
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +4 -4
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/MultiProviderAdapter.js +4 -4
- package/dist/providers/MultiProviderAdapter.js.map +1 -1
- package/dist/providers/builders/aleo.browser.d.ts +13 -0
- package/dist/providers/builders/aleo.browser.d.ts.map +1 -0
- package/dist/providers/builders/aleo.browser.js +54 -0
- package/dist/providers/builders/aleo.browser.js.map +1 -0
- package/dist/providers/builders/aleo.js +2 -2
- package/dist/providers/builders/aleo.js.map +1 -1
- package/dist/providers/builders/aleo.test.d.ts +2 -0
- package/dist/providers/builders/aleo.test.d.ts.map +1 -0
- package/dist/providers/builders/aleo.test.js +99 -0
- package/dist/providers/builders/aleo.test.js.map +1 -0
- package/dist/providers/builders/cosmos.d.ts.map +1 -1
- package/dist/providers/builders/cosmos.js +7 -4
- package/dist/providers/builders/cosmos.js.map +1 -1
- package/dist/providers/builders/ethersV5.d.ts +3 -3
- package/dist/providers/builders/ethersV5.d.ts.map +1 -1
- package/dist/providers/builders/ethersV5.js +8 -9
- package/dist/providers/builders/ethersV5.js.map +1 -1
- package/dist/providers/builders/radix.browser.d.ts +18 -0
- package/dist/providers/builders/radix.browser.d.ts.map +1 -0
- package/dist/providers/builders/radix.browser.js +46 -0
- package/dist/providers/builders/radix.browser.js.map +1 -0
- package/dist/providers/builders/radix.d.ts.map +1 -1
- package/dist/providers/builders/radix.js +5 -3
- package/dist/providers/builders/radix.js.map +1 -1
- package/dist/providers/builders/radix.test.d.ts +2 -0
- package/dist/providers/builders/radix.test.d.ts.map +1 -0
- package/dist/providers/builders/radix.test.js +81 -0
- package/dist/providers/builders/radix.test.js.map +1 -0
- package/dist/providers/builders/solana.d.ts.map +1 -1
- package/dist/providers/builders/solana.js +2 -1
- package/dist/providers/builders/solana.js.map +1 -1
- package/dist/providers/builders/starknet.d.ts.map +1 -1
- package/dist/providers/builders/starknet.js +2 -1
- package/dist/providers/builders/starknet.js.map +1 -1
- package/dist/providers/builders/tron.d.ts +2 -2
- package/dist/providers/builders/tron.d.ts.map +1 -1
- package/dist/providers/builders/tron.js +6 -4
- package/dist/providers/builders/tron.js.map +1 -1
- package/dist/providers/builders/types.d.ts +1 -1
- package/dist/providers/builders/types.d.ts.map +1 -1
- package/dist/providers/builders/viem.js +5 -4
- package/dist/providers/builders/viem.js.map +1 -1
- package/dist/providers/builders/zksync.d.ts +2 -2
- package/dist/providers/builders/zksync.d.ts.map +1 -1
- package/dist/providers/builders/zksync.js +5 -4
- package/dist/providers/builders/zksync.js.map +1 -1
- package/dist/providers/rpcHealthTest.d.ts.map +1 -1
- package/dist/providers/rpcHealthTest.js +3 -1
- package/dist/providers/rpcHealthTest.js.map +1 -1
- package/dist/signers/radix/radix-toolkit.d.ts.map +1 -1
- package/dist/signers/radix/radix-toolkit.js +1 -3
- package/dist/signers/radix/radix-toolkit.js.map +1 -1
- package/dist/signers/signers.d.ts.map +1 -1
- package/dist/signers/signers.js +3 -2
- package/dist/signers/signers.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmWarpRouteReader.hardhat-test.js +5 -3
- package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.js +10 -11
- package/dist/token/EvmWarpRouteReader.js.map +1 -1
- package/dist/token/adapters/AleoTokenAdapter.d.ts +1 -2
- package/dist/token/adapters/AleoTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/AleoTokenAdapter.js +1 -1
- package/dist/token/adapters/AleoTokenAdapter.js.map +1 -1
- package/dist/token/adapters/RadixTokenAdapter.d.ts +1 -2
- package/dist/token/adapters/RadixTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/RadixTokenAdapter.js +1 -4
- package/dist/token/adapters/RadixTokenAdapter.js.map +1 -1
- package/dist/token/config.d.ts +1 -0
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js +8 -0
- package/dist/token/config.js.map +1 -1
- package/dist/token/configUtils.d.ts.map +1 -1
- package/dist/token/configUtils.js +5 -2
- package/dist/token/configUtils.js.map +1 -1
- package/dist/token/warpCheck.d.ts +25 -4
- package/dist/token/warpCheck.d.ts.map +1 -1
- package/dist/token/warpCheck.js +135 -10
- package/dist/token/warpCheck.js.map +1 -1
- package/dist/token/warpCheck.test.js +346 -2
- package/dist/token/warpCheck.test.js.map +1 -1
- package/dist/utils/starknet.d.ts +1 -1
- package/dist/utils/starknet.d.ts.map +1 -1
- package/dist/utils/starknet.js +2 -3
- package/dist/utils/starknet.js.map +1 -1
- package/dist/zksync/ZKSyncDeployer.d.ts.map +1 -1
- package/dist/zksync/ZKSyncDeployer.js +12 -3
- package/dist/zksync/ZKSyncDeployer.js.map +1 -1
- package/package.json +14 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aleo.browser.js","sourceRoot":"","sources":["../../../src/providers/builders/aleo.browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AleoProvider as AleoSDKProvider } from '@hyperlane-xyz/aleo-sdk/runtime';
|
|
2
2
|
import { ProviderType } from '../ProviderType.js';
|
|
3
|
-
export const defaultAleoProviderBuilder = (
|
|
4
|
-
const provider = new AleoSDKProvider(rpcUrls.map((rpc) => rpc.http),
|
|
3
|
+
export const defaultAleoProviderBuilder = (metadata) => {
|
|
4
|
+
const provider = new AleoSDKProvider(metadata.rpcUrls.map((rpc) => rpc.http), metadata.chainId, metadata);
|
|
5
5
|
return { provider, type: ProviderType.Aleo };
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=aleo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aleo.js","sourceRoot":"","sources":["../../../src/providers/builders/aleo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIlF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CACzE,
|
|
1
|
+
{"version":3,"file":"aleo.js","sourceRoot":"","sources":["../../../src/providers/builders/aleo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIlF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CACzE,QAAuB,EACvB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,eAAe,CAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EACvC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CACT,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aleo.test.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/aleo.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { ProviderType } from '../ProviderType.js';
|
|
4
|
+
import { createLazyAleoProvider, defaultAleoProviderBuilder, } from './aleo.browser.js';
|
|
5
|
+
function aleoMetadata(chainId, rpcUrl) {
|
|
6
|
+
return {
|
|
7
|
+
name: `aleo${chainId}`,
|
|
8
|
+
chainId,
|
|
9
|
+
domainId: chainId,
|
|
10
|
+
protocol: ProtocolType.Aleo,
|
|
11
|
+
rpcUrls: [{ http: rpcUrl }],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
describe('createLazyAleoProvider', () => {
|
|
15
|
+
it('builds a lazy provider from full chain metadata', () => {
|
|
16
|
+
const result = defaultAleoProviderBuilder(aleoMetadata(0, 'https://rpc.example/mainnet'));
|
|
17
|
+
expect(result.type).to.equal(ProviderType.Aleo);
|
|
18
|
+
expect(result.provider.getRpcUrls()).to.deep.equal(['https://rpc.example']);
|
|
19
|
+
});
|
|
20
|
+
it('loads and reuses the Aleo runtime on first async provider use', async () => {
|
|
21
|
+
let loadCount = 0;
|
|
22
|
+
let constructionCount = 0;
|
|
23
|
+
const metadata = aleoMetadata(0, 'https://rpc.example/mainnet');
|
|
24
|
+
class FakeAleoProvider {
|
|
25
|
+
rpcUrls;
|
|
26
|
+
network;
|
|
27
|
+
chainMetadata;
|
|
28
|
+
constructor(rpcUrls, network, chainMetadata) {
|
|
29
|
+
this.rpcUrls = rpcUrls;
|
|
30
|
+
this.network = network;
|
|
31
|
+
this.chainMetadata = chainMetadata;
|
|
32
|
+
expect(chainMetadata).to.equal(metadata);
|
|
33
|
+
constructionCount++;
|
|
34
|
+
}
|
|
35
|
+
async isHealthy() {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
async getHeight() {
|
|
39
|
+
return 42;
|
|
40
|
+
}
|
|
41
|
+
getAleoClient() {
|
|
42
|
+
return { getLatestHeight: async () => 42 };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const provider = createLazyAleoProvider(metadata,
|
|
46
|
+
// CAST: The fake only implements methods exercised by this proxy test.
|
|
47
|
+
(async (network) => {
|
|
48
|
+
expect(network).to.equal(0);
|
|
49
|
+
loadCount++;
|
|
50
|
+
return { AleoProvider: FakeAleoProvider };
|
|
51
|
+
}));
|
|
52
|
+
expect(provider.getRpcUrls()).to.deep.equal(['https://rpc.example']);
|
|
53
|
+
expect(loadCount).to.equal(0);
|
|
54
|
+
expect(constructionCount).to.equal(0);
|
|
55
|
+
expect(await provider.isHealthy()).to.equal(true);
|
|
56
|
+
expect(await provider.getHeight()).to.equal(42);
|
|
57
|
+
expect(await provider.getAleoClient().getLatestHeight()).to.equal(42);
|
|
58
|
+
expect(loadCount).to.equal(1);
|
|
59
|
+
expect(constructionCount).to.equal(1);
|
|
60
|
+
});
|
|
61
|
+
it('selects and caches each configured network independently', async () => {
|
|
62
|
+
const loadedNetworks = [];
|
|
63
|
+
class FakeAleoProvider {
|
|
64
|
+
rpcUrls;
|
|
65
|
+
network;
|
|
66
|
+
chainMetadata;
|
|
67
|
+
constructor(rpcUrls, network, chainMetadata) {
|
|
68
|
+
this.rpcUrls = rpcUrls;
|
|
69
|
+
this.network = network;
|
|
70
|
+
this.chainMetadata = chainMetadata;
|
|
71
|
+
}
|
|
72
|
+
async getHeight() {
|
|
73
|
+
return +this.network;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const loadProvider = async (network) => {
|
|
77
|
+
loadedNetworks.push(network);
|
|
78
|
+
return { AleoProvider: FakeAleoProvider };
|
|
79
|
+
};
|
|
80
|
+
const mainnetProvider = createLazyAleoProvider(aleoMetadata(0, 'https://rpc.example/mainnet'),
|
|
81
|
+
// CAST: The fake only implements methods exercised by this proxy test.
|
|
82
|
+
loadProvider);
|
|
83
|
+
const testnetProvider = createLazyAleoProvider(aleoMetadata(1, 'https://rpc.example/testnet'),
|
|
84
|
+
// CAST: The fake only implements methods exercised by this proxy test.
|
|
85
|
+
loadProvider);
|
|
86
|
+
expect(loadedNetworks).to.deep.equal([]);
|
|
87
|
+
expect(await mainnetProvider.getHeight()).to.equal(0);
|
|
88
|
+
expect(await mainnetProvider.getHeight()).to.equal(0);
|
|
89
|
+
expect(loadedNetworks).to.deep.equal([0]);
|
|
90
|
+
expect(await testnetProvider.getHeight()).to.equal(1);
|
|
91
|
+
expect(loadedNetworks).to.deep.equal([0, 1]);
|
|
92
|
+
});
|
|
93
|
+
it('rejects unsupported Aleo network ids before loading a runtime', async () => {
|
|
94
|
+
const provider = createLazyAleoProvider(aleoMetadata(2, 'https://rpc.example'));
|
|
95
|
+
const error = await provider.getHeight().then(() => undefined, (reason) => String(reason));
|
|
96
|
+
expect(error).to.equal('Error: Unsupported Aleo network id 2');
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=aleo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aleo.test.js","sourceRoot":"","sources":["../../../src/providers/builders/aleo.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/cosmos.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/cosmos.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,cAAc,CAS1E,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAC9D,kBAAkB,CAQnB,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAChE,oBAAoB,CAQrB,CAAC"}
|
|
@@ -3,25 +3,28 @@ import { StargateClient } from '@cosmjs/stargate';
|
|
|
3
3
|
import { CosmosNativeProvider } from '@hyperlane-xyz/cosmos-sdk/runtime';
|
|
4
4
|
import { assert } from '@hyperlane-xyz/utils';
|
|
5
5
|
import { ProviderType } from '../ProviderType.js';
|
|
6
|
-
export const defaultCosmJsProviderBuilder = (
|
|
6
|
+
export const defaultCosmJsProviderBuilder = (metadata) => {
|
|
7
|
+
const { rpcUrls } = metadata;
|
|
7
8
|
assert(rpcUrls.length > 0, 'No RPC URLs provided');
|
|
8
9
|
return {
|
|
9
10
|
type: ProviderType.CosmJs,
|
|
10
11
|
provider: StargateClient.connect(rpcUrls[0].http),
|
|
11
12
|
};
|
|
12
13
|
};
|
|
13
|
-
export const defaultCosmJsWasmProviderBuilder = (
|
|
14
|
+
export const defaultCosmJsWasmProviderBuilder = (metadata) => {
|
|
15
|
+
const { rpcUrls } = metadata;
|
|
14
16
|
assert(rpcUrls.length > 0, 'No RPC URLs provided');
|
|
15
17
|
return {
|
|
16
18
|
type: ProviderType.CosmJsWasm,
|
|
17
19
|
provider: CosmWasmClient.connect(rpcUrls[0].http),
|
|
18
20
|
};
|
|
19
21
|
};
|
|
20
|
-
export const defaultCosmJsNativeProviderBuilder = (
|
|
22
|
+
export const defaultCosmJsNativeProviderBuilder = (metadata) => {
|
|
23
|
+
const { rpcUrls } = metadata;
|
|
21
24
|
assert(rpcUrls.length > 0, 'No RPC URLs provided');
|
|
22
25
|
return {
|
|
23
26
|
type: ProviderType.CosmJsNative,
|
|
24
|
-
provider: CosmosNativeProvider.connect(
|
|
27
|
+
provider: CosmosNativeProvider.connect(metadata),
|
|
25
28
|
};
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=cosmos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../src/providers/builders/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,4BAA4B,GAAsC,CAC7E,
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../src/providers/builders/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,4BAA4B,GAAsC,CAC7E,QAAuB,EACvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,MAAM;QACzB,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,QAAuB,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,UAAU;QAC7B,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAE3C,CAAC,QAAuB,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,YAAY;QAC/B,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChainMetadata } from '../../metadata/chainMetadataTypes.js';
|
|
2
2
|
import type { EthersV5Provider, GnosisTxBuilderProvider } from '../ProviderType.js';
|
|
3
3
|
import type { ProviderBuilderFn } from './types.js';
|
|
4
4
|
export declare const defaultEthersV5ProviderBuilder: ProviderBuilderFn<EthersV5Provider>;
|
|
5
5
|
export declare const defaultGnosisTxBuilderProviderBuilder: ProviderBuilderFn<GnosisTxBuilderProvider>;
|
|
6
|
-
export declare function defaultFuelProviderBuilder(
|
|
7
|
-
export declare function defaultProviderBuilder(
|
|
6
|
+
export declare function defaultFuelProviderBuilder(metadata: ChainMetadata): EthersV5Provider;
|
|
7
|
+
export declare function defaultProviderBuilder(metadata: ChainMetadata): EthersV5Provider['provider'];
|
|
8
8
|
//# sourceMappingURL=ethersV5.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethersV5.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ethersV5.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAC5D,gBAAgB,CASjB,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CACnE,uBAAuB,CAIvB,CAAC;AAEH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAGlB;AAGD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAAC,UAAU,CAAC,CAE9B"}
|
|
@@ -4,22 +4,21 @@ const DEFAULT_RETRY_OPTIONS = {
|
|
|
4
4
|
maxRetries: 3,
|
|
5
5
|
baseRetryDelayMs: 250,
|
|
6
6
|
};
|
|
7
|
-
export const defaultEthersV5ProviderBuilder = (
|
|
8
|
-
const provider = new HyperlaneSmartProvider(
|
|
7
|
+
export const defaultEthersV5ProviderBuilder = (metadata, retryOverride) => {
|
|
8
|
+
const provider = new HyperlaneSmartProvider(metadata.chainId, metadata.rpcUrls, undefined, retryOverride || DEFAULT_RETRY_OPTIONS);
|
|
9
9
|
return { type: ProviderType.EthersV5, provider };
|
|
10
10
|
};
|
|
11
|
-
export const defaultGnosisTxBuilderProviderBuilder = (
|
|
11
|
+
export const defaultGnosisTxBuilderProviderBuilder = (metadata, retryOverride) => ({
|
|
12
12
|
type: ProviderType.GnosisTxBuilder,
|
|
13
|
-
provider: defaultEthersV5ProviderBuilder(
|
|
14
|
-
.provider,
|
|
13
|
+
provider: defaultEthersV5ProviderBuilder(metadata, retryOverride).provider,
|
|
15
14
|
});
|
|
16
|
-
export function defaultFuelProviderBuilder(
|
|
17
|
-
if (!rpcUrls.length)
|
|
15
|
+
export function defaultFuelProviderBuilder(metadata) {
|
|
16
|
+
if (!metadata.rpcUrls.length)
|
|
18
17
|
throw new Error('No RPC URLs provided');
|
|
19
18
|
throw new Error('TODO fuel support');
|
|
20
19
|
}
|
|
21
20
|
// Kept for backwards compatibility
|
|
22
|
-
export function defaultProviderBuilder(
|
|
23
|
-
return defaultEthersV5ProviderBuilder(
|
|
21
|
+
export function defaultProviderBuilder(metadata) {
|
|
22
|
+
return defaultEthersV5ProviderBuilder(metadata).provider;
|
|
24
23
|
}
|
|
25
24
|
//# sourceMappingURL=ethersV5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethersV5.js","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK3E,MAAM,qBAAqB,GAAyB;IAClD,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAEvC,
|
|
1
|
+
{"version":3,"file":"ethersV5.js","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK3E,MAAM,qBAAqB,GAAyB;IAClD,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAEvC,CAAC,QAAuB,EAAE,aAAoC,EAAE,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,OAAO,EAChB,SAAS,EACT,aAAa,IAAI,qBAAqB,CACvC,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAE9C,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC,eAAe;IAClC,QAAQ,EAAE,8BAA8B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ;CAC3E,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B,CACxC,QAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,sBAAsB,CACpC,QAAuB;IAEvB,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RadixProvider as RadixSDKProvider } from '@hyperlane-xyz/radix-sdk/runtime';
|
|
2
|
+
import type { ChainMetadata } from '../../metadata/chainMetadataTypes.js';
|
|
3
|
+
import type { RadixProvider } from '../ProviderType.js';
|
|
4
|
+
import type { ProviderBuilderFn } from './types.js';
|
|
5
|
+
interface RadixProviderOptions {
|
|
6
|
+
rpcUrls: string[];
|
|
7
|
+
networkId: number;
|
|
8
|
+
chainMetadata: ChainMetadata;
|
|
9
|
+
}
|
|
10
|
+
type RadixProviderConstructor = new (options: RadixProviderOptions) => RadixSDKProvider;
|
|
11
|
+
interface RadixRuntimeModule {
|
|
12
|
+
RadixProvider: RadixProviderConstructor;
|
|
13
|
+
}
|
|
14
|
+
type RadixProviderLoader = () => Promise<RadixRuntimeModule>;
|
|
15
|
+
export declare function createLazyRadixProvider(metadata: ChainMetadata, loadProvider?: RadixProviderLoader): RadixSDKProvider;
|
|
16
|
+
export declare const defaultRadixProviderBuilder: ProviderBuilderFn<RadixProvider>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=radix.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radix.browser.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/radix.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,KAAK,wBAAwB,GAAG,KAC9B,OAAO,EAAE,oBAAoB,KAC1B,gBAAgB,CAAC;AAEtB,UAAU,kBAAkB;IAC1B,aAAa,EAAE,wBAAwB,CAAC;CACzC;AAED,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;AA8B7D,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EACvB,YAAY,GAAE,mBAAuC,GACpD,gBAAgB,CAyBlB;AAED,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,aAAa,CAKxE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { LazyAsync, assert, isNumeric } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { ProviderType } from '../ProviderType.js';
|
|
3
|
+
const loadRadixProvider = () => import('@hyperlane-xyz/radix-sdk/runtime');
|
|
4
|
+
function createAsyncMethodProxy(getTarget) {
|
|
5
|
+
// CAST: The proxy preserves RadixProvider's async method surface while
|
|
6
|
+
// deferring construction; getRpcUrls is handled synchronously by its caller.
|
|
7
|
+
return new Proxy({}, {
|
|
8
|
+
get: (_, property) => {
|
|
9
|
+
if (property === 'then')
|
|
10
|
+
return undefined;
|
|
11
|
+
return async (...args) => {
|
|
12
|
+
const target = await getTarget();
|
|
13
|
+
const method = Reflect.get(target, property);
|
|
14
|
+
if (typeof method !== 'function') {
|
|
15
|
+
throw new Error(`Radix provider property ${String(property)} is not callable`);
|
|
16
|
+
}
|
|
17
|
+
return Reflect.apply(method, target, args);
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function createLazyRadixProvider(metadata, loadProvider = loadRadixProvider) {
|
|
23
|
+
const { rpcUrls, chainId } = metadata;
|
|
24
|
+
assert(rpcUrls.length > 0, 'Radix requires at least one rpcUrl');
|
|
25
|
+
assert(isNumeric(chainId), 'Radix requires a numeric network id');
|
|
26
|
+
const urls = rpcUrls.map((rpc) => rpc.http);
|
|
27
|
+
const networkId = parseInt(chainId.toString(), 10);
|
|
28
|
+
const provider = new LazyAsync(() => loadProvider().then(({ RadixProvider }) => new RadixProvider({
|
|
29
|
+
rpcUrls: urls,
|
|
30
|
+
networkId,
|
|
31
|
+
chainMetadata: metadata,
|
|
32
|
+
})));
|
|
33
|
+
const asyncProvider = createAsyncMethodProxy(() => provider.get());
|
|
34
|
+
return new Proxy(asyncProvider, {
|
|
35
|
+
get: (target, property, receiver) => {
|
|
36
|
+
if (property === 'getRpcUrls')
|
|
37
|
+
return () => urls;
|
|
38
|
+
return Reflect.get(target, property, receiver);
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export const defaultRadixProviderBuilder = (metadata) => {
|
|
43
|
+
const provider = createLazyRadixProvider(metadata);
|
|
44
|
+
return { provider, type: ProviderType.Radix };
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=radix.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radix.browser.js","sourceRoot":"","sources":["../../../src/providers/builders/radix.browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoBlD,MAAM,iBAAiB,GAAwB,GAAG,EAAE,CAClD,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAE7C,SAAS,sBAAsB,CAC7B,SAA2B;IAE3B,uEAAuE;IACvE,6EAA6E;IAC7E,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;YACnB,IAAI,QAAQ,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC1C,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC7C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAC9D,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC;QACJ,CAAC;KACF,CACG,CAAC;AACT,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAuB,EACvB,eAAoC,iBAAiB;IAErD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACjE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAClC,YAAY,EAAE,CAAC,IAAI,CACjB,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CACpB,IAAI,aAAa,CAAC;QAChB,OAAO,EAAE,IAAI;QACb,SAAS;QACT,aAAa,EAAE,QAAQ;KACxB,CAAC,CACL,CACF,CAAC;IACF,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAEnE,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE;QAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAClC,IAAI,QAAQ,KAAK,YAAY;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;YACjD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAC3E,QAAuB,EACvB,EAAE;IACF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;AAChD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/radix.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"radix.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/radix.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,aAAa,CAaxE,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { RadixProvider as RadixSDKProvider } from '@hyperlane-xyz/radix-sdk/runtime';
|
|
2
2
|
import { assert, isNumeric } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { ProviderType } from '../ProviderType.js';
|
|
4
|
-
export const defaultRadixProviderBuilder = (
|
|
4
|
+
export const defaultRadixProviderBuilder = (metadata) => {
|
|
5
|
+
const { rpcUrls, chainId } = metadata;
|
|
5
6
|
assert(rpcUrls.length > 0, 'Radix requires at least one rpcUrl');
|
|
6
|
-
assert(isNumeric(
|
|
7
|
-
const networkId = parseInt(
|
|
7
|
+
assert(isNumeric(chainId), 'Radix requires a numeric network id');
|
|
8
|
+
const networkId = parseInt(chainId.toString(), 10);
|
|
8
9
|
const provider = new RadixSDKProvider({
|
|
9
10
|
rpcUrls: rpcUrls.map((rpc) => rpc.http),
|
|
10
11
|
networkId,
|
|
12
|
+
chainMetadata: metadata,
|
|
11
13
|
});
|
|
12
14
|
return { provider, type: ProviderType.Radix };
|
|
13
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix.js","sourceRoot":"","sources":["../../../src/providers/builders/radix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAC3E,
|
|
1
|
+
{"version":3,"file":"radix.js","sourceRoot":"","sources":["../../../src/providers/builders/radix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAC3E,QAAuB,EACvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACjE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QACvC,SAAS;QACT,aAAa,EAAE,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;AAChD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radix.test.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/radix.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { ProviderType } from '../ProviderType.js';
|
|
4
|
+
import { createLazyRadixProvider, defaultRadixProviderBuilder, } from './radix.browser.js';
|
|
5
|
+
function radixMetadata(chainId = 1, rpcUrls = [{ http: 'https://rpc.example' }]) {
|
|
6
|
+
return {
|
|
7
|
+
name: 'radix',
|
|
8
|
+
chainId,
|
|
9
|
+
domainId: 1,
|
|
10
|
+
protocol: ProtocolType.Radix,
|
|
11
|
+
rpcUrls,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
describe('createLazyRadixProvider', () => {
|
|
15
|
+
it('builds a lazy provider while preserving synchronous RPC URLs', () => {
|
|
16
|
+
const result = defaultRadixProviderBuilder(radixMetadata());
|
|
17
|
+
expect(result.type).to.equal(ProviderType.Radix);
|
|
18
|
+
expect(result.provider.getRpcUrls()).to.deep.equal(['https://rpc.example']);
|
|
19
|
+
});
|
|
20
|
+
it('loads and reuses the Radix runtime on first async use', async () => {
|
|
21
|
+
let loadCount = 0;
|
|
22
|
+
let constructionCount = 0;
|
|
23
|
+
const metadata = radixMetadata();
|
|
24
|
+
class FakeRadixProvider {
|
|
25
|
+
options;
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.options = options;
|
|
28
|
+
expect(options).to.deep.equal({
|
|
29
|
+
rpcUrls: ['https://rpc.example'],
|
|
30
|
+
networkId: 1,
|
|
31
|
+
chainMetadata: metadata,
|
|
32
|
+
});
|
|
33
|
+
constructionCount++;
|
|
34
|
+
}
|
|
35
|
+
async isHealthy() {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
async getHeight() {
|
|
39
|
+
return this.options.networkId;
|
|
40
|
+
}
|
|
41
|
+
async getTokenMetadata(resource) {
|
|
42
|
+
return {
|
|
43
|
+
name: resource,
|
|
44
|
+
symbol: 'TKN',
|
|
45
|
+
description: '',
|
|
46
|
+
decimals: 18,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const provider = createLazyRadixProvider(metadata,
|
|
51
|
+
// CAST: The fake implements only the methods exercised by this proxy test.
|
|
52
|
+
(async () => {
|
|
53
|
+
loadCount++;
|
|
54
|
+
return { RadixProvider: FakeRadixProvider };
|
|
55
|
+
}));
|
|
56
|
+
expect(provider.getRpcUrls()).to.deep.equal(['https://rpc.example']);
|
|
57
|
+
expect(loadCount).to.equal(0);
|
|
58
|
+
expect(constructionCount).to.equal(0);
|
|
59
|
+
const [healthy, height] = await Promise.all([
|
|
60
|
+
provider.isHealthy(),
|
|
61
|
+
provider.getHeight(),
|
|
62
|
+
]);
|
|
63
|
+
expect(healthy).to.equal(true);
|
|
64
|
+
expect(height).to.equal(1);
|
|
65
|
+
expect(loadCount).to.equal(1);
|
|
66
|
+
expect(constructionCount).to.equal(1);
|
|
67
|
+
expect(await provider.getHeight()).to.equal(1);
|
|
68
|
+
expect(await provider.getTokenMetadata('resource_rdx1token')).to.deep.equal({
|
|
69
|
+
name: 'resource_rdx1token',
|
|
70
|
+
symbol: 'TKN',
|
|
71
|
+
description: '',
|
|
72
|
+
decimals: 18,
|
|
73
|
+
});
|
|
74
|
+
expect(loadCount).to.equal(1);
|
|
75
|
+
});
|
|
76
|
+
it('validates metadata without loading the runtime', () => {
|
|
77
|
+
expect(() => createLazyRadixProvider(radixMetadata(1, []))).to.throw('Radix requires at least one rpcUrl');
|
|
78
|
+
expect(() => createLazyRadixProvider(radixMetadata('mainnet'))).to.throw('Radix requires a numeric network id');
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=radix.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radix.test.js","sourceRoot":"","sources":["../../../src/providers/builders/radix.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/solana.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CACvD,kBAAkB,
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/solana.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CACvD,kBAAkB,CAQnB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Connection } from '@solana/web3.js';
|
|
2
2
|
import { ProviderType } from '../ProviderType.js';
|
|
3
|
-
export const defaultSolProviderBuilder = (
|
|
3
|
+
export const defaultSolProviderBuilder = (metadata) => {
|
|
4
|
+
const { rpcUrls } = metadata;
|
|
4
5
|
if (!rpcUrls.length)
|
|
5
6
|
throw new Error('No RPC URLs provided');
|
|
6
7
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../src/providers/builders/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,yBAAyB,GAElC,CAAC,
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../src/providers/builders/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,yBAAyB,GAElC,CAAC,QAAuB,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,UAAU;QAC7B,QAAQ,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/starknet.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAC9D,kBAAkB,
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/starknet.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAC9D,kBAAkB,CAenB,CAAC"}
|
|
@@ -2,7 +2,8 @@ import { BlockTag, RpcProvider as StarknetRpcProvider } from 'starknet';
|
|
|
2
2
|
import { assert } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { parseCustomRpcHeaders } from '../../utils/provider.js';
|
|
4
4
|
import { ProviderType } from '../ProviderType.js';
|
|
5
|
-
export const defaultStarknetJsProviderBuilder = (
|
|
5
|
+
export const defaultStarknetJsProviderBuilder = (metadata) => {
|
|
6
|
+
const { rpcUrls } = metadata;
|
|
6
7
|
assert(rpcUrls.length, 'No RPC URLs provided');
|
|
7
8
|
const { url, headers } = parseCustomRpcHeaders(rpcUrls[0].http);
|
|
8
9
|
const provider = new StarknetRpcProvider({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starknet.js","sourceRoot":"","sources":["../../../src/providers/builders/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,
|
|
1
|
+
{"version":3,"file":"starknet.js","sourceRoot":"","sources":["../../../src/providers/builders/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,QAAuB,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC;QACvC,OAAO,EAAE,GAAG;QACZ,OAAO;QACP,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,eAAe,EAAE,QAAQ,CAAC,MAAM;KACjC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;AACnD,CAAC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChainMetadata } from '../../metadata/chainMetadataTypes.js';
|
|
2
2
|
import type { EthersV5Provider, TronProvider } from '../ProviderType.js';
|
|
3
3
|
import type { ProviderBuilderFn } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Returns an ethers-compatible TronJsonRpcProvider for use in MultiProvider.
|
|
6
6
|
* This handles Tron's missing eth_getTransactionCount and returns the raw provider.
|
|
7
7
|
*/
|
|
8
|
-
export declare function defaultTronEthersProviderBuilder(
|
|
8
|
+
export declare function defaultTronEthersProviderBuilder(metadata: ChainMetadata): EthersV5Provider['provider'];
|
|
9
9
|
export declare const defaultTronProviderBuilder: ProviderBuilderFn<TronProvider>;
|
|
10
10
|
//# sourceMappingURL=tron.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/tron.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/tron.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAAC,UAAU,CAAC,CAI9B;AAED,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,YAAY,CAStE,CAAC"}
|
|
@@ -5,14 +5,16 @@ import { ProviderType } from '../ProviderType.js';
|
|
|
5
5
|
* Returns an ethers-compatible TronJsonRpcProvider for use in MultiProvider.
|
|
6
6
|
* This handles Tron's missing eth_getTransactionCount and returns the raw provider.
|
|
7
7
|
*/
|
|
8
|
-
export function defaultTronEthersProviderBuilder(
|
|
8
|
+
export function defaultTronEthersProviderBuilder(metadata) {
|
|
9
|
+
const { rpcUrls, chainId } = metadata;
|
|
9
10
|
assert(rpcUrls.length > 0, 'At least one RPC URL required for Tron');
|
|
10
|
-
return new TronJsonRpcProvider(rpcUrls[0].http,
|
|
11
|
+
return new TronJsonRpcProvider(rpcUrls[0].http, chainId);
|
|
11
12
|
}
|
|
12
|
-
export const defaultTronProviderBuilder = (
|
|
13
|
+
export const defaultTronProviderBuilder = (metadata) => {
|
|
14
|
+
const { rpcUrls, chainId } = metadata;
|
|
13
15
|
assert(rpcUrls.length > 0, 'At least one RPC URL required for Tron');
|
|
14
16
|
return {
|
|
15
|
-
provider: new TronJsonRpcProvider(rpcUrls[0].http,
|
|
17
|
+
provider: new TronJsonRpcProvider(rpcUrls[0].http, chainId),
|
|
16
18
|
type: ProviderType.Tron,
|
|
17
19
|
};
|
|
18
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../src/providers/builders/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../src/providers/builders/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAuB;IAEvB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,wCAAwC,CAAC,CAAC;IACrE,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CACzE,QAAuB,EACvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,wCAAwC,CAAC,CAAC;IACrE,OAAO;QACL,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;QAC3D,IAAI,EAAE,YAAY,CAAC,IAAI;KACxB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChainMetadata } from '../../metadata/chainMetadataTypes.js';
|
|
2
2
|
import type { TypedProvider } from '../ProviderType.js';
|
|
3
3
|
import type { SmartProviderOptions } from '../SmartProvider/types.js';
|
|
4
|
-
export type ProviderBuilderFn<P> = (
|
|
4
|
+
export type ProviderBuilderFn<P> = (metadata: ChainMetadata, retryOverride?: SmartProviderOptions) => P;
|
|
5
5
|
export type TypedProviderBuilderFn = ProviderBuilderFn<TypedProvider>;
|
|
6
6
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CACjC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CACjC,QAAQ,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,oBAAoB,KACjC,CAAC,CAAC;AAEP,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { createPublicClient, http } from 'viem';
|
|
2
2
|
import { isNumeric } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { ProviderType } from '../ProviderType.js';
|
|
4
|
-
export const defaultViemProviderBuilder = (
|
|
4
|
+
export const defaultViemProviderBuilder = (metadata) => {
|
|
5
|
+
const { rpcUrls, chainId } = metadata;
|
|
5
6
|
if (!rpcUrls.length)
|
|
6
7
|
throw new Error('No RPC URLs provided');
|
|
7
|
-
if (!isNumeric(
|
|
8
|
+
if (!isNumeric(chainId))
|
|
8
9
|
throw new Error('Viem requires a numeric network');
|
|
9
|
-
const id = parseInt(
|
|
10
|
-
const name =
|
|
10
|
+
const id = parseInt(chainId.toString(), 10);
|
|
11
|
+
const name = chainId.toString();
|
|
11
12
|
const url = rpcUrls[0].http;
|
|
12
13
|
const client = createPublicClient({
|
|
13
14
|
chain: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viem.js","sourceRoot":"","sources":["../../../src/providers/builders/viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CACzE,
|
|
1
|
+
{"version":3,"file":"viem.js","sourceRoot":"","sources":["../../../src/providers/builders/viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAoC,CACzE,QAAuB,EACvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC5E,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAChC,KAAK,EAAE;YACL,EAAE;YACF,IAAI;YACJ,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;YACrD,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;SAC/D;QACD,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACvD,CAAC,CAAC"}
|