@hyperlane-xyz/sdk 8.8.1 → 8.9.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/block-explorer/etherscan.d.ts +41 -0
- package/dist/block-explorer/etherscan.d.ts.map +1 -0
- package/dist/block-explorer/etherscan.js +53 -0
- package/dist/block-explorer/etherscan.js.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts +18 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js +122 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js.map +1 -0
- package/dist/ccip/consts.d.ts +24 -0
- package/dist/ccip/consts.d.ts.map +1 -0
- package/dist/ccip/consts.js +691 -0
- package/dist/ccip/consts.js.map +1 -0
- package/dist/ccip/utils.d.ts +46 -0
- package/dist/ccip/utils.d.ts.map +1 -0
- package/dist/ccip/utils.js +95 -0
- package/dist/ccip/utils.js.map +1 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +27 -9
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/contracts/contracts.d.ts +2 -2
- package/dist/contracts/contracts.d.ts.map +1 -1
- package/dist/contracts/contracts.js +4 -13
- package/dist/contracts/contracts.js.map +1 -1
- package/dist/core/HyperlaneRelayer.d.ts +43 -3
- package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
- package/dist/core/types.d.ts +3558 -2040
- package/dist/core/types.d.ts.map +1 -1
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +4 -0
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +3 -9
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/hook/EvmHookModule.d.ts +12 -4
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.hardhat-test.js +2 -106
- package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
- package/dist/hook/EvmHookModule.js +38 -10
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/hook/EvmHookReader.d.ts +7 -1
- package/dist/hook/EvmHookReader.d.ts.map +1 -1
- package/dist/hook/EvmHookReader.js +69 -4
- package/dist/hook/EvmHookReader.js.map +1 -1
- package/dist/hook/EvmHookReader.test.js +50 -1
- package/dist/hook/EvmHookReader.test.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +4 -2
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +34 -5
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/contracts.d.ts +4 -1
- package/dist/hook/contracts.d.ts.map +1 -1
- package/dist/hook/contracts.js +4 -1
- package/dist/hook/contracts.js.map +1 -1
- package/dist/hook/types.d.ts +2012 -3
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +28 -0
- package/dist/hook/types.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts +4 -2
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js +10 -71
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
- package/dist/ism/EvmIsmModule.js +4 -4
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/EvmIsmReader.d.ts +1 -0
- package/dist/ism/EvmIsmReader.d.ts.map +1 -1
- package/dist/ism/EvmIsmReader.js +45 -7
- package/dist/ism/EvmIsmReader.js.map +1 -1
- package/dist/ism/EvmIsmReader.test.js +4 -1
- package/dist/ism/EvmIsmReader.test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +9 -4
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +15 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +43 -4
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/metadata/builder.d.ts.map +1 -1
- package/dist/ism/metadata/builder.js +1 -0
- package/dist/ism/metadata/builder.js.map +1 -1
- package/dist/ism/metadata/routing.d.ts.map +1 -1
- package/dist/ism/metadata/routing.js +8 -2
- package/dist/ism/metadata/routing.js.map +1 -1
- package/dist/ism/types.d.ts +34 -5
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +15 -0
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +30 -2
- package/dist/ism/utils.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +276 -276
- package/dist/metadata/deploymentArtifacts.d.ts +2 -2
- package/dist/router/types.d.ts +129 -9
- package/dist/router/types.d.ts.map +1 -1
- package/dist/test/testUtils.d.ts +8 -0
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +191 -1
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.d.ts +4 -1
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +12 -8
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -3
- package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +72 -3
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.js +84 -15
- package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +49 -15
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +152 -42
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +19 -0
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/checker.d.ts +4 -1
- package/dist/token/checker.d.ts.map +1 -1
- package/dist/token/checker.js +33 -5
- package/dist/token/checker.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 +1 -0
- package/dist/token/config.js.map +1 -1
- package/dist/token/configUtils.d.ts +10 -0
- package/dist/token/configUtils.d.ts.map +1 -0
- package/dist/token/configUtils.js +48 -0
- package/dist/token/configUtils.js.map +1 -0
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.hardhat-test.js +69 -6
- package/dist/token/deploy.hardhat-test.js.map +1 -1
- package/dist/token/deploy.js +6 -4
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/types.d.ts +1333 -220
- package/dist/token/types.d.ts.map +1 -1
- package/dist/token/types.js +117 -2
- package/dist/token/types.js.map +1 -1
- package/dist/token/xerc20.d.ts +13 -0
- package/dist/token/xerc20.d.ts.map +1 -0
- package/dist/token/xerc20.js +174 -0
- package/dist/token/xerc20.js.map +1 -0
- package/dist/warp/types.d.ts +14 -14
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FpC,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
package/dist/token/types.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { objMap } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { HookType } from '../hook/types.js';
|
|
4
|
+
import { IsmType } from '../ism/types.js';
|
|
3
5
|
import { GasRouterConfigSchema } from '../router/types.js';
|
|
4
6
|
import { isCompliant } from '../utils/schemas.js';
|
|
5
7
|
import { TokenType } from './config.js';
|
|
@@ -25,8 +27,6 @@ export const CollateralTokenConfigSchema = TokenMetadataSchema.partial().extend(
|
|
|
25
27
|
TokenType.collateral,
|
|
26
28
|
TokenType.collateralVault,
|
|
27
29
|
TokenType.collateralVaultRebase,
|
|
28
|
-
TokenType.XERC20,
|
|
29
|
-
TokenType.XERC20Lockbox,
|
|
30
30
|
TokenType.collateralFiat,
|
|
31
31
|
TokenType.fastCollateral,
|
|
32
32
|
TokenType.collateralUri,
|
|
@@ -36,6 +36,26 @@ export const CollateralTokenConfigSchema = TokenMetadataSchema.partial().extend(
|
|
|
36
36
|
.describe('Existing token address to extend with Warp Route functionality'),
|
|
37
37
|
});
|
|
38
38
|
export const isCollateralTokenConfig = isCompliant(CollateralTokenConfigSchema);
|
|
39
|
+
const xERC20LimitConfigSchema = z.object({
|
|
40
|
+
bufferCap: z.string().optional(),
|
|
41
|
+
rateLimitPerSecond: z.string().optional(),
|
|
42
|
+
});
|
|
43
|
+
const xERC20ExtraBridgesLimitConfigsSchema = z.object({
|
|
44
|
+
lockbox: z.string(),
|
|
45
|
+
limits: xERC20LimitConfigSchema,
|
|
46
|
+
});
|
|
47
|
+
const xERC20TokenMetadataSchema = z.object({
|
|
48
|
+
xERC20: z
|
|
49
|
+
.object({
|
|
50
|
+
extraBridges: z.array(xERC20ExtraBridgesLimitConfigsSchema).optional(),
|
|
51
|
+
warpRouteLimits: xERC20LimitConfigSchema,
|
|
52
|
+
})
|
|
53
|
+
.optional(),
|
|
54
|
+
});
|
|
55
|
+
export const XERC20TokenConfigSchema = CollateralTokenConfigSchema.merge(z.object({
|
|
56
|
+
type: z.enum([TokenType.XERC20, TokenType.XERC20Lockbox]),
|
|
57
|
+
})).merge(xERC20TokenMetadataSchema);
|
|
58
|
+
export const isXERC20TokenConfig = isCompliant(XERC20TokenConfigSchema);
|
|
39
59
|
export const CollateralRebaseTokenConfigSchema = TokenMetadataSchema.omit({
|
|
40
60
|
totalSupply: true,
|
|
41
61
|
})
|
|
@@ -65,6 +85,7 @@ export const isSyntheticRebaseTokenConfig = isCompliant(SyntheticRebaseTokenConf
|
|
|
65
85
|
export const HypTokenConfigSchema = z.discriminatedUnion('type', [
|
|
66
86
|
NativeTokenConfigSchema,
|
|
67
87
|
CollateralTokenConfigSchema,
|
|
88
|
+
XERC20TokenConfigSchema,
|
|
68
89
|
SyntheticTokenConfigSchema,
|
|
69
90
|
SyntheticRebaseTokenConfigSchema,
|
|
70
91
|
]);
|
|
@@ -75,8 +96,10 @@ export const WarpRouteDeployConfigSchema = z
|
|
|
75
96
|
const entries = Object.entries(configMap);
|
|
76
97
|
return (entries.some(([_, config]) => isCollateralTokenConfig(config) ||
|
|
77
98
|
isCollateralRebaseTokenConfig(config) ||
|
|
99
|
+
isXERC20TokenConfig(config) ||
|
|
78
100
|
isNativeTokenConfig(config)) || entries.every(([_, config]) => isTokenMetadata(config)));
|
|
79
101
|
}, WarpRouteDeployConfigSchemaErrors.NO_SYNTHETIC_ONLY)
|
|
102
|
+
// Verify synthetic rebase tokens config
|
|
80
103
|
.transform((warpRouteDeployConfig, ctx) => {
|
|
81
104
|
const collateralRebaseEntry = Object.entries(warpRouteDeployConfig).find(([_, config]) => isCollateralRebaseTokenConfig(config));
|
|
82
105
|
const syntheticRebaseEntry = Object.entries(warpRouteDeployConfig).find(([_, config]) => isSyntheticRebaseTokenConfig(config));
|
|
@@ -99,6 +122,37 @@ export const WarpRouteDeployConfigSchema = z
|
|
|
99
122
|
message: WarpRouteDeployConfigSchemaErrors.ONLY_SYNTHETIC_REBASE,
|
|
100
123
|
});
|
|
101
124
|
return z.NEVER; // Causes schema validation to throw with above issue
|
|
125
|
+
})
|
|
126
|
+
// Verify that CCIP hooks are paired with CCIP ISMs
|
|
127
|
+
.transform((warpRouteDeployConfig, ctx) => {
|
|
128
|
+
const { ccipHookMap, ccipIsmMap } = getCCIPConfigMaps(warpRouteDeployConfig);
|
|
129
|
+
// Check hooks have corresponding ISMs
|
|
130
|
+
const hookConfigHasMissingIsms = Object.entries(ccipHookMap).some(([originChain, destinationChains]) => Array.from(destinationChains).some((chain) => {
|
|
131
|
+
if (!ccipIsmMap[originChain]?.has(chain)) {
|
|
132
|
+
ctx.addIssue({
|
|
133
|
+
code: z.ZodIssueCode.custom,
|
|
134
|
+
path: [chain, 'interchainSecurityModule', '...'],
|
|
135
|
+
message: `Required CCIP ISM not found in config for CCIP Hook with origin chain ${originChain} and destination chain ${chain}`,
|
|
136
|
+
});
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
}));
|
|
141
|
+
// Check ISMs have corresponding hooks
|
|
142
|
+
const ismConfigHasMissingHooks = Object.entries(ccipIsmMap).some(([originChain, destinationChains]) => Array.from(destinationChains).some((chain) => {
|
|
143
|
+
if (!ccipHookMap[originChain]?.has(chain)) {
|
|
144
|
+
ctx.addIssue({
|
|
145
|
+
code: z.ZodIssueCode.custom,
|
|
146
|
+
path: [originChain, 'hook', '...'],
|
|
147
|
+
message: `Required CCIP Hook not found in config for CCIP ISM with origin chain ${originChain} and destination chain ${chain}`,
|
|
148
|
+
});
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
return false;
|
|
152
|
+
}));
|
|
153
|
+
return hookConfigHasMissingIsms || ismConfigHasMissingHooks
|
|
154
|
+
? z.NEVER
|
|
155
|
+
: warpRouteDeployConfig;
|
|
102
156
|
});
|
|
103
157
|
function isCollateralRebasePairedCorrectly(warpRouteDeployConfig) {
|
|
104
158
|
// Filter out all the non-collateral rebase configs to check if they are only synthetic rebase tokens
|
|
@@ -109,4 +163,65 @@ function isCollateralRebasePairedCorrectly(warpRouteDeployConfig) {
|
|
|
109
163
|
const allOthersSynthetic = otherConfigs.every(([_, config], _index) => isSyntheticRebaseTokenConfig(config));
|
|
110
164
|
return allOthersSynthetic;
|
|
111
165
|
}
|
|
166
|
+
function getCCIPConfigMaps(warpRouteDeployConfig) {
|
|
167
|
+
const ccipHookMap = {};
|
|
168
|
+
const ccipIsmMap = {};
|
|
169
|
+
Object.entries(warpRouteDeployConfig).forEach(([chainName, config]) => {
|
|
170
|
+
extractCCIPHookMap(chainName, config.hook, ccipHookMap);
|
|
171
|
+
extractCCIPIsmMap(chainName, config.interchainSecurityModule, ccipIsmMap);
|
|
172
|
+
});
|
|
173
|
+
return { ccipHookMap, ccipIsmMap };
|
|
174
|
+
}
|
|
175
|
+
function extractCCIPHookMap(currentChain, hookConfig, existsCCIPHookMap) {
|
|
176
|
+
if (!hookConfig || typeof hookConfig === 'string') {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
switch (hookConfig.type) {
|
|
180
|
+
case HookType.AGGREGATION:
|
|
181
|
+
hookConfig.hooks.forEach((hook) => extractCCIPHookMap(currentChain, hook, existsCCIPHookMap));
|
|
182
|
+
break;
|
|
183
|
+
case HookType.ARB_L2_TO_L1:
|
|
184
|
+
extractCCIPHookMap(currentChain, hookConfig.childHook, existsCCIPHookMap);
|
|
185
|
+
break;
|
|
186
|
+
case HookType.CCIP:
|
|
187
|
+
if (!existsCCIPHookMap[currentChain]) {
|
|
188
|
+
existsCCIPHookMap[currentChain] = new Set();
|
|
189
|
+
}
|
|
190
|
+
existsCCIPHookMap[currentChain].add(hookConfig.destinationChain);
|
|
191
|
+
break;
|
|
192
|
+
case HookType.FALLBACK_ROUTING:
|
|
193
|
+
case HookType.ROUTING:
|
|
194
|
+
Object.entries(hookConfig.domains).forEach(([_, hook]) => {
|
|
195
|
+
extractCCIPHookMap(currentChain, hook, existsCCIPHookMap);
|
|
196
|
+
});
|
|
197
|
+
break;
|
|
198
|
+
default:
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function extractCCIPIsmMap(currentChain, ismConfig, existsCCIPIsmMap) {
|
|
203
|
+
if (!ismConfig || typeof ismConfig === 'string') {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
switch (ismConfig.type) {
|
|
207
|
+
case IsmType.AGGREGATION:
|
|
208
|
+
case IsmType.STORAGE_AGGREGATION:
|
|
209
|
+
ismConfig.modules.forEach((hook) => extractCCIPIsmMap(currentChain, hook, existsCCIPIsmMap));
|
|
210
|
+
break;
|
|
211
|
+
case IsmType.CCIP:
|
|
212
|
+
if (!existsCCIPIsmMap[ismConfig.originChain]) {
|
|
213
|
+
existsCCIPIsmMap[ismConfig.originChain] = new Set();
|
|
214
|
+
}
|
|
215
|
+
existsCCIPIsmMap[ismConfig.originChain].add(currentChain);
|
|
216
|
+
break;
|
|
217
|
+
case IsmType.FALLBACK_ROUTING:
|
|
218
|
+
case IsmType.ROUTING:
|
|
219
|
+
Object.entries(ismConfig.domains).forEach(([_, hook]) => {
|
|
220
|
+
extractCCIPIsmMap(currentChain, hook, existsCCIPIsmMap);
|
|
221
|
+
});
|
|
222
|
+
break;
|
|
223
|
+
default:
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
112
227
|
//# sourceMappingURL=types.js.map
|
package/dist/token/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Logger } from 'pino';
|
|
2
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
4
|
+
import { ChainNameOrId } from '../types.js';
|
|
5
|
+
import { XERC20TokenExtraBridgesLimits } from './types.js';
|
|
6
|
+
export type GetExtraLockboxesOptions = {
|
|
7
|
+
chain: ChainNameOrId;
|
|
8
|
+
xERC20Address: Address;
|
|
9
|
+
multiProvider: MultiProvider;
|
|
10
|
+
logger?: Logger;
|
|
11
|
+
};
|
|
12
|
+
export declare function getExtraLockBoxConfigs({ xERC20Address, chain, multiProvider, logger, }: GetExtraLockboxesOptions): Promise<XERC20TokenExtraBridgesLimits[]>;
|
|
13
|
+
//# sourceMappingURL=xerc20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xerc20.d.ts","sourceRoot":"","sources":["../../src/token/xerc20.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B,OAAO,EAAE,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAQlE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAqC3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,EAC3C,aAAa,EACb,KAAK,EACL,aAAa,EACb,MAAmB,GACpB,EAAE,wBAAwB,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CA6CrE"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { getAbiItem, parseEventLogs, toEventSelector } from 'viem';
|
|
2
|
+
import { IXERC20Lockbox__factory } from '@hyperlane-xyz/core';
|
|
3
|
+
import { rootLogger, sleep } from '@hyperlane-xyz/utils';
|
|
4
|
+
import { getContractDeploymentTransaction, getLogsFromEtherscanLikeExplorerAPI, } from '../block-explorer/etherscan.js';
|
|
5
|
+
import { ExplorerFamily } from '../metadata/chainMetadataTypes.js';
|
|
6
|
+
const minimalXERC20VSABI = [
|
|
7
|
+
{
|
|
8
|
+
anonymous: false,
|
|
9
|
+
inputs: [
|
|
10
|
+
{
|
|
11
|
+
indexed: true,
|
|
12
|
+
internalType: 'address',
|
|
13
|
+
name: 'bridge',
|
|
14
|
+
type: 'address',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
indexed: false,
|
|
18
|
+
internalType: 'uint112',
|
|
19
|
+
name: 'bufferCap',
|
|
20
|
+
type: 'uint112',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
indexed: false,
|
|
24
|
+
internalType: 'uint128',
|
|
25
|
+
name: 'rateLimitPerSecond',
|
|
26
|
+
type: 'uint128',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
name: 'ConfigurationChanged',
|
|
30
|
+
type: 'event',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
const CONFIGURATION_CHANGED_EVENT_SELECTOR = toEventSelector(getAbiItem({
|
|
34
|
+
abi: minimalXERC20VSABI,
|
|
35
|
+
name: 'ConfigurationChanged',
|
|
36
|
+
}));
|
|
37
|
+
export async function getExtraLockBoxConfigs({ xERC20Address, chain, multiProvider, logger = rootLogger, }) {
|
|
38
|
+
const { family, apiKey } = multiProvider.getExplorerApi(chain);
|
|
39
|
+
// Fallback to use the rpc if the user has not provided an API key and the explorer family is Etherscan
|
|
40
|
+
// because the endpoint requires it or the explorer family is not known
|
|
41
|
+
const isExplorerConfiguredCorrectly = family === ExplorerFamily.Etherscan ? !!apiKey : true;
|
|
42
|
+
const canUseExplorerApi = family !== ExplorerFamily.Other && isExplorerConfiguredCorrectly;
|
|
43
|
+
const provider = multiProvider.getProvider(chain);
|
|
44
|
+
let logs;
|
|
45
|
+
if (canUseExplorerApi) {
|
|
46
|
+
logs = await getConfigurationChangedLogsFromExplorerApi({
|
|
47
|
+
chain,
|
|
48
|
+
multiProvider,
|
|
49
|
+
xERC20Address,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
logger.debug(`Using rpc request to retrieve bridges on on lockbox contract ${xERC20Address} on chain ${chain}`);
|
|
54
|
+
// Should be safe to use even with public RPCs as the total number of events in this topic should be low
|
|
55
|
+
logs = await getConfigurationChangedLogsFromRpc({
|
|
56
|
+
chain,
|
|
57
|
+
multiProvider,
|
|
58
|
+
xERC20Address,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const viemLogs = logs.map((log) => ({
|
|
62
|
+
address: log.address,
|
|
63
|
+
data: log.data,
|
|
64
|
+
blockNumber: BigInt(log.blockNumber),
|
|
65
|
+
transactionHash: log.transactionHash,
|
|
66
|
+
logIndex: Number(log.logIndex),
|
|
67
|
+
transactionIndex: Number(log.transactionIndex),
|
|
68
|
+
topics: log.topics,
|
|
69
|
+
}));
|
|
70
|
+
return getLockboxesFromLogs(viemLogs, provider, chain, logger);
|
|
71
|
+
}
|
|
72
|
+
async function getConfigurationChangedLogsFromExplorerApi({ xERC20Address, chain, multiProvider, }) {
|
|
73
|
+
const { apiUrl, apiKey } = multiProvider.getExplorerApi(chain);
|
|
74
|
+
const contractDeploymentTx = await getContractDeploymentTransaction({ apiUrl, apiKey }, { contractAddress: xERC20Address });
|
|
75
|
+
const provider = multiProvider.getProvider(chain);
|
|
76
|
+
const [currentBlockNumber, deploymentTransactionReceipt] = await Promise.all([
|
|
77
|
+
provider.getBlockNumber(),
|
|
78
|
+
provider.getTransactionReceipt(contractDeploymentTx.txHash),
|
|
79
|
+
]);
|
|
80
|
+
return getLogsFromEtherscanLikeExplorerAPI({ apiUrl, apiKey }, {
|
|
81
|
+
address: xERC20Address,
|
|
82
|
+
fromBlock: deploymentTransactionReceipt.blockNumber,
|
|
83
|
+
toBlock: currentBlockNumber,
|
|
84
|
+
topic0: CONFIGURATION_CHANGED_EVENT_SELECTOR,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
async function getConfigurationChangedLogsFromRpc({ xERC20Address, chain, multiProvider, }) {
|
|
88
|
+
const provider = multiProvider.getProvider(chain);
|
|
89
|
+
const endBlock = await provider.getBlockNumber();
|
|
90
|
+
let currentStartBlock = await getContractCreationBlockFromRpc(xERC20Address, provider);
|
|
91
|
+
const logs = [];
|
|
92
|
+
const range = 5000;
|
|
93
|
+
while (currentStartBlock < endBlock) {
|
|
94
|
+
const currentLogs = await provider.getLogs({
|
|
95
|
+
address: xERC20Address,
|
|
96
|
+
fromBlock: currentStartBlock,
|
|
97
|
+
toBlock: currentStartBlock + range,
|
|
98
|
+
topics: [CONFIGURATION_CHANGED_EVENT_SELECTOR],
|
|
99
|
+
});
|
|
100
|
+
logs.push(...currentLogs);
|
|
101
|
+
currentStartBlock += range;
|
|
102
|
+
// Sleep to avoid being rate limited with public RPCs
|
|
103
|
+
await sleep(350);
|
|
104
|
+
}
|
|
105
|
+
return logs;
|
|
106
|
+
}
|
|
107
|
+
// Retrieves the contract deployment number by performing a binary search
|
|
108
|
+
// calling getCode until the creation block is found
|
|
109
|
+
async function getContractCreationBlockFromRpc(contractAddress, provider) {
|
|
110
|
+
const latestBlock = await provider.getBlockNumber();
|
|
111
|
+
const latestCode = await provider.getCode(contractAddress, latestBlock);
|
|
112
|
+
if (latestCode === '0x') {
|
|
113
|
+
throw new Error('Provided address is not a contract');
|
|
114
|
+
}
|
|
115
|
+
let low = 0;
|
|
116
|
+
let high = latestBlock;
|
|
117
|
+
let creationBlock = latestBlock;
|
|
118
|
+
while (low <= high) {
|
|
119
|
+
const mid = Math.floor((low + high) / 2);
|
|
120
|
+
const code = await provider.getCode(contractAddress, mid);
|
|
121
|
+
if (code !== '0x') {
|
|
122
|
+
creationBlock = mid;
|
|
123
|
+
high = mid - 1;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
low = mid + 1;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return creationBlock;
|
|
130
|
+
}
|
|
131
|
+
async function getLockboxesFromLogs(logs, provider, chain, logger) {
|
|
132
|
+
const parsedLogs = parseEventLogs({
|
|
133
|
+
abi: minimalXERC20VSABI,
|
|
134
|
+
eventName: 'ConfigurationChanged',
|
|
135
|
+
logs,
|
|
136
|
+
});
|
|
137
|
+
// A bridge might appear more than once in the event logs, we are only
|
|
138
|
+
// interested in the most recent one for each bridge so we deduplicate
|
|
139
|
+
// entries here
|
|
140
|
+
const dedupedBridges = parsedLogs.reduce((acc, log) => {
|
|
141
|
+
const bridgeAddress = log.args.bridge;
|
|
142
|
+
const isMostRecentLogForBridge = log.blockNumber > (acc[bridgeAddress]?.blockNumber ?? 0n);
|
|
143
|
+
if (isMostRecentLogForBridge) {
|
|
144
|
+
acc[bridgeAddress] = log;
|
|
145
|
+
}
|
|
146
|
+
return acc;
|
|
147
|
+
}, {});
|
|
148
|
+
const lockboxPromises = Object.values(dedupedBridges)
|
|
149
|
+
// Removing bridges where the limits are set to 0 because it is equivalent of being deactivated
|
|
150
|
+
.filter((log) => log.args.bufferCap !== 0n && log.args.rateLimitPerSecond !== 0n)
|
|
151
|
+
.map(async (log) => {
|
|
152
|
+
try {
|
|
153
|
+
const maybeXERC20Lockbox = IXERC20Lockbox__factory.connect(log.args.bridge, provider);
|
|
154
|
+
await maybeXERC20Lockbox.callStatic.XERC20();
|
|
155
|
+
return log;
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
logger.debug(`Contract at address ${log.args.bridge} on chain ${chain} is not a XERC20Lockbox contract.`);
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
const lockboxes = await Promise.all(lockboxPromises);
|
|
163
|
+
return lockboxes
|
|
164
|
+
.filter((log) => log !== undefined)
|
|
165
|
+
.map((log) => log)
|
|
166
|
+
.map((log) => ({
|
|
167
|
+
lockbox: log.args.bridge,
|
|
168
|
+
limits: {
|
|
169
|
+
bufferCap: log.args.bufferCap.toString(),
|
|
170
|
+
rateLimitPerSecond: log.args.rateLimitPerSecond.toString(),
|
|
171
|
+
},
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=xerc20.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xerc20.js","sourceRoot":"","sources":["../../src/token/xerc20.ts"],"names":[],"mappings":"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"}
|
package/dist/warp/types.d.ts
CHANGED
|
@@ -12,13 +12,13 @@ declare const FeeConstantConfigSchema: z.ZodArray<z.ZodObject<{
|
|
|
12
12
|
amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
|
|
13
13
|
addressOrDenom: z.ZodOptional<z.ZodString>;
|
|
14
14
|
}, "strip", z.ZodTypeAny, {
|
|
15
|
-
amount: string | number | bigint;
|
|
16
15
|
origin: string;
|
|
16
|
+
amount: string | number | bigint;
|
|
17
17
|
destination: string;
|
|
18
18
|
addressOrDenom?: string | undefined;
|
|
19
19
|
}, {
|
|
20
|
-
amount: string | number | bigint;
|
|
21
20
|
origin: string;
|
|
21
|
+
amount: string | number | bigint;
|
|
22
22
|
destination: string;
|
|
23
23
|
addressOrDenom?: string | undefined;
|
|
24
24
|
}>, "many">;
|
|
@@ -147,13 +147,13 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
147
147
|
amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
|
|
148
148
|
addressOrDenom: z.ZodOptional<z.ZodString>;
|
|
149
149
|
}, "strip", z.ZodTypeAny, {
|
|
150
|
-
amount: string | number | bigint;
|
|
151
150
|
origin: string;
|
|
151
|
+
amount: string | number | bigint;
|
|
152
152
|
destination: string;
|
|
153
153
|
addressOrDenom?: string | undefined;
|
|
154
154
|
}, {
|
|
155
|
-
amount: string | number | bigint;
|
|
156
155
|
origin: string;
|
|
156
|
+
amount: string | number | bigint;
|
|
157
157
|
destination: string;
|
|
158
158
|
addressOrDenom?: string | undefined;
|
|
159
159
|
}>, "many">>;
|
|
@@ -163,13 +163,13 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
163
163
|
amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
|
|
164
164
|
addressOrDenom: z.ZodOptional<z.ZodString>;
|
|
165
165
|
}, "strip", z.ZodTypeAny, {
|
|
166
|
-
amount: string | number | bigint;
|
|
167
166
|
origin: string;
|
|
167
|
+
amount: string | number | bigint;
|
|
168
168
|
destination: string;
|
|
169
169
|
addressOrDenom?: string | undefined;
|
|
170
170
|
}, {
|
|
171
|
-
amount: string | number | bigint;
|
|
172
171
|
origin: string;
|
|
172
|
+
amount: string | number | bigint;
|
|
173
173
|
destination: string;
|
|
174
174
|
addressOrDenom?: string | undefined;
|
|
175
175
|
}>, "many">>;
|
|
@@ -185,14 +185,14 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
185
185
|
}>, "many">>;
|
|
186
186
|
}, "strip", z.ZodTypeAny, {
|
|
187
187
|
localFeeConstants?: {
|
|
188
|
-
amount: string | number | bigint;
|
|
189
188
|
origin: string;
|
|
189
|
+
amount: string | number | bigint;
|
|
190
190
|
destination: string;
|
|
191
191
|
addressOrDenom?: string | undefined;
|
|
192
192
|
}[] | undefined;
|
|
193
193
|
interchainFeeConstants?: {
|
|
194
|
-
amount: string | number | bigint;
|
|
195
194
|
origin: string;
|
|
195
|
+
amount: string | number | bigint;
|
|
196
196
|
destination: string;
|
|
197
197
|
addressOrDenom?: string | undefined;
|
|
198
198
|
}[] | undefined;
|
|
@@ -202,14 +202,14 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
202
202
|
}[] | undefined;
|
|
203
203
|
}, {
|
|
204
204
|
localFeeConstants?: {
|
|
205
|
-
amount: string | number | bigint;
|
|
206
205
|
origin: string;
|
|
206
|
+
amount: string | number | bigint;
|
|
207
207
|
destination: string;
|
|
208
208
|
addressOrDenom?: string | undefined;
|
|
209
209
|
}[] | undefined;
|
|
210
210
|
interchainFeeConstants?: {
|
|
211
|
-
amount: string | number | bigint;
|
|
212
211
|
origin: string;
|
|
212
|
+
amount: string | number | bigint;
|
|
213
213
|
destination: string;
|
|
214
214
|
addressOrDenom?: string | undefined;
|
|
215
215
|
}[] | undefined;
|
|
@@ -250,14 +250,14 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
250
250
|
}[];
|
|
251
251
|
options?: {
|
|
252
252
|
localFeeConstants?: {
|
|
253
|
-
amount: string | number | bigint;
|
|
254
253
|
origin: string;
|
|
254
|
+
amount: string | number | bigint;
|
|
255
255
|
destination: string;
|
|
256
256
|
addressOrDenom?: string | undefined;
|
|
257
257
|
}[] | undefined;
|
|
258
258
|
interchainFeeConstants?: {
|
|
259
|
-
amount: string | number | bigint;
|
|
260
259
|
origin: string;
|
|
260
|
+
amount: string | number | bigint;
|
|
261
261
|
destination: string;
|
|
262
262
|
addressOrDenom?: string | undefined;
|
|
263
263
|
}[] | undefined;
|
|
@@ -298,14 +298,14 @@ export declare const WarpCoreConfigSchema: z.ZodObject<{
|
|
|
298
298
|
}[];
|
|
299
299
|
options?: {
|
|
300
300
|
localFeeConstants?: {
|
|
301
|
-
amount: string | number | bigint;
|
|
302
301
|
origin: string;
|
|
302
|
+
amount: string | number | bigint;
|
|
303
303
|
destination: string;
|
|
304
304
|
addressOrDenom?: string | undefined;
|
|
305
305
|
}[] | undefined;
|
|
306
306
|
interchainFeeConstants?: {
|
|
307
|
-
amount: string | number | bigint;
|
|
308
307
|
origin: string;
|
|
308
|
+
amount: string | number | bigint;
|
|
309
309
|
destination: string;
|
|
310
310
|
addressOrDenom?: string | undefined;
|
|
311
311
|
}[] | undefined;
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/sdk",
|
|
3
3
|
"description": "The official SDK for the Hyperlane Network",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.9.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@arbitrum/sdk": "^4.0.0",
|
|
7
7
|
"@aws-sdk/client-s3": "^3.577.0",
|
|
8
8
|
"@chain-registry/types": "^0.50.14",
|
|
9
9
|
"@cosmjs/cosmwasm-stargate": "^0.32.4",
|
|
10
10
|
"@cosmjs/stargate": "^0.32.4",
|
|
11
|
-
"@hyperlane-xyz/core": "5.
|
|
12
|
-
"@hyperlane-xyz/utils": "8.
|
|
11
|
+
"@hyperlane-xyz/core": "5.12.0",
|
|
12
|
+
"@hyperlane-xyz/utils": "8.9.0",
|
|
13
13
|
"@safe-global/api-kit": "1.3.0",
|
|
14
14
|
"@safe-global/protocol-kit": "1.3.0",
|
|
15
15
|
"@safe-global/safe-deployments": "1.37.23",
|