@hyperlane-xyz/cli 24.0.0 → 25.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/index.js +1181 -378
- package/package.json +12 -12
package/bundle/index.js
CHANGED
|
@@ -553756,6 +553756,12 @@ class AleoProvider extends _base_js__WEBPACK_IMPORTED_MODULE_9__/* .AleoBase */
|
|
|
553756
553756
|
inputs: [address, `${localDomain}u32`],
|
|
553757
553757
|
};
|
|
553758
553758
|
}
|
|
553759
|
+
async getCreateProxyAdminTransaction(_req) {
|
|
553760
|
+
throw new Error('ProxyAdmin is not supported on Aleo');
|
|
553761
|
+
}
|
|
553762
|
+
async getSetProxyAdminOwnerTransaction(_req) {
|
|
553763
|
+
throw new Error('ProxyAdmin is not supported on Aleo');
|
|
553764
|
+
}
|
|
553759
553765
|
// ### GET WARP TXS ###
|
|
553760
553766
|
async getCreateNativeTokenTransaction(_req) {
|
|
553761
553767
|
return {
|
|
@@ -554063,6 +554069,9 @@ class AleoSigner extends _provider_js__WEBPACK_IMPORTED_MODULE_1__/* .AleoProvid
|
|
|
554063
554069
|
}
|
|
554064
554070
|
// ### TX CORE ###
|
|
554065
554071
|
async createMailbox(req) {
|
|
554072
|
+
if (req.proxyAdminAddress) {
|
|
554073
|
+
throw new Error('ProxyAdmin is not supported on Aleo. Remove proxyAdmin from config.');
|
|
554074
|
+
}
|
|
554066
554075
|
const mailboxSuffix = this.generateSuffix(_utils_helper_js__WEBPACK_IMPORTED_MODULE_0__/* .SUFFIX_LENGTH_LONG */ .SO);
|
|
554067
554076
|
const programs = await this.deployProgram('dispatch_proxy', mailboxSuffix);
|
|
554068
554077
|
const tx = await this.getCreateMailboxTransaction({
|
|
@@ -554344,8 +554353,17 @@ class AleoSigner extends _provider_js__WEBPACK_IMPORTED_MODULE_1__/* .AleoProvid
|
|
|
554344
554353
|
validatorAnnounceId: (0,_utils_helper_js__WEBPACK_IMPORTED_MODULE_0__/* .toAleoAddress */ .j2)(validatorAnnounceId),
|
|
554345
554354
|
};
|
|
554346
554355
|
}
|
|
554356
|
+
async createProxyAdmin(_req) {
|
|
554357
|
+
throw new Error('ProxyAdmin is not supported on Aleo');
|
|
554358
|
+
}
|
|
554359
|
+
async setProxyAdminOwner(_req) {
|
|
554360
|
+
throw new Error('ProxyAdmin is not supported on Aleo');
|
|
554361
|
+
}
|
|
554347
554362
|
// ### TX WARP ###
|
|
554348
554363
|
async createNativeToken(req) {
|
|
554364
|
+
if (req.proxyAdminAddress) {
|
|
554365
|
+
throw new Error('ProxyAdmin is not supported on Aleo. Remove proxyAdmin from config.');
|
|
554366
|
+
}
|
|
554349
554367
|
const suffix = req.warpSuffix || this.warpSuffix;
|
|
554350
554368
|
if (suffix) {
|
|
554351
554369
|
const isAlreadyDeployed = await this.isProgramDeployed(`${this.prefix}_native_${suffix}.aleo`);
|
|
@@ -554370,6 +554388,9 @@ class AleoSigner extends _provider_js__WEBPACK_IMPORTED_MODULE_1__/* .AleoProvid
|
|
|
554370
554388
|
};
|
|
554371
554389
|
}
|
|
554372
554390
|
async createCollateralToken(req) {
|
|
554391
|
+
if (req.proxyAdminAddress) {
|
|
554392
|
+
throw new Error('ProxyAdmin is not supported on Aleo. Remove proxyAdmin from config.');
|
|
554393
|
+
}
|
|
554373
554394
|
const suffix = req.warpSuffix || this.warpSuffix;
|
|
554374
554395
|
if (suffix) {
|
|
554375
554396
|
const isAlreadyDeployed = await this.isProgramDeployed(`${this.prefix}_collateral_${suffix}.aleo`);
|
|
@@ -554394,6 +554415,9 @@ class AleoSigner extends _provider_js__WEBPACK_IMPORTED_MODULE_1__/* .AleoProvid
|
|
|
554394
554415
|
};
|
|
554395
554416
|
}
|
|
554396
554417
|
async createSyntheticToken(req) {
|
|
554418
|
+
if (req.proxyAdminAddress) {
|
|
554419
|
+
throw new Error('ProxyAdmin is not supported on Aleo. Remove proxyAdmin from config.');
|
|
554420
|
+
}
|
|
554397
554421
|
const suffix = req.warpSuffix || this.warpSuffix;
|
|
554398
554422
|
if (suffix) {
|
|
554399
554423
|
const isAlreadyDeployed = await this.isProgramDeployed(`${this.prefix}_synthetic_${suffix}.aleo`);
|
|
@@ -560912,18 +560936,20 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
560912
560936
|
/* harmony export */ H: () => (/* binding */ resolveChains)
|
|
560913
560937
|
/* harmony export */ });
|
|
560914
560938
|
/* harmony import */ var _hyperlane_xyz_rebalancer__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(97772);
|
|
560915
|
-
/* harmony import */ var
|
|
560916
|
-
/* harmony import */ var
|
|
560917
|
-
/* harmony import */ var
|
|
560918
|
-
/* harmony import */ var
|
|
560939
|
+
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(6374);
|
|
560940
|
+
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(29459);
|
|
560941
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(21387);
|
|
560942
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(16639);
|
|
560919
560943
|
/* harmony import */ var _commands_signCommands_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(29781);
|
|
560920
560944
|
/* harmony import */ var _config_core_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(36789);
|
|
560921
|
-
/* harmony import */ var
|
|
560922
|
-
/* harmony import */ var
|
|
560923
|
-
/* harmony import */ var
|
|
560924
|
-
/* harmony import */ var
|
|
560925
|
-
|
|
560926
|
-
([_hyperlane_xyz_rebalancer__WEBPACK_IMPORTED_MODULE_0__, _config_core_js__WEBPACK_IMPORTED_MODULE_2__,
|
|
560945
|
+
/* harmony import */ var _config_submit_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(21106);
|
|
560946
|
+
/* harmony import */ var _config_warp_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(10392);
|
|
560947
|
+
/* harmony import */ var _utils_chains_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(80881);
|
|
560948
|
+
/* harmony import */ var _utils_warp_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(85361);
|
|
560949
|
+
/* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(94986);
|
|
560950
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_hyperlane_xyz_rebalancer__WEBPACK_IMPORTED_MODULE_0__, _config_core_js__WEBPACK_IMPORTED_MODULE_2__, _config_submit_js__WEBPACK_IMPORTED_MODULE_3__, _config_warp_js__WEBPACK_IMPORTED_MODULE_4__, _utils_chains_js__WEBPACK_IMPORTED_MODULE_5__, _utils_warp_js__WEBPACK_IMPORTED_MODULE_6__, _context_js__WEBPACK_IMPORTED_MODULE_7__]);
|
|
560951
|
+
([_hyperlane_xyz_rebalancer__WEBPACK_IMPORTED_MODULE_0__, _config_core_js__WEBPACK_IMPORTED_MODULE_2__, _config_submit_js__WEBPACK_IMPORTED_MODULE_3__, _config_warp_js__WEBPACK_IMPORTED_MODULE_4__, _utils_chains_js__WEBPACK_IMPORTED_MODULE_5__, _utils_warp_js__WEBPACK_IMPORTED_MODULE_6__, _context_js__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
560952
|
+
|
|
560927
560953
|
|
|
560928
560954
|
|
|
560929
560955
|
|
|
@@ -560957,7 +560983,7 @@ async function resolveChains(argv) {
|
|
|
560957
560983
|
case _commands_signCommands_js__WEBPACK_IMPORTED_MODULE_1__/* .CommandType */ .g4.WARP_REBALANCER:
|
|
560958
560984
|
return resolveWarpRebalancerChains(argv);
|
|
560959
560985
|
case _commands_signCommands_js__WEBPACK_IMPORTED_MODULE_1__/* .CommandType */ .g4.SUBMIT:
|
|
560960
|
-
return
|
|
560986
|
+
return resolveSubmitChains(argv);
|
|
560961
560987
|
case _commands_signCommands_js__WEBPACK_IMPORTED_MODULE_1__/* .CommandType */ .g4.CORE_APPLY:
|
|
560962
560988
|
return resolveCoreApplyChains(argv);
|
|
560963
560989
|
case _commands_signCommands_js__WEBPACK_IMPORTED_MODULE_1__/* .CommandType */ .g4.CORE_DEPLOY:
|
|
@@ -560974,7 +561000,7 @@ async function resolveChains(argv) {
|
|
|
560974
561000
|
}
|
|
560975
561001
|
}
|
|
560976
561002
|
async function resolveWarpRouteConfigChains(argv) {
|
|
560977
|
-
const warpDeployConfig = await (0,
|
|
561003
|
+
const warpDeployConfig = await (0,_config_warp_js__WEBPACK_IMPORTED_MODULE_4__/* .getWarpRouteDeployConfig */ .Rj)({
|
|
560978
561004
|
context: argv.context,
|
|
560979
561005
|
warpRouteDeployConfigPath: argv.config,
|
|
560980
561006
|
warpRouteId: argv.warpRouteId,
|
|
@@ -560982,7 +561008,7 @@ async function resolveWarpRouteConfigChains(argv) {
|
|
|
560982
561008
|
});
|
|
560983
561009
|
argv.context.warpDeployConfig = warpDeployConfig;
|
|
560984
561010
|
argv.context.chains = Object.keys(warpDeployConfig);
|
|
560985
|
-
(0,
|
|
561011
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(argv.context.chains.length !== 0, 'No chains found in warp route deployment config');
|
|
560986
561012
|
return argv.context.chains;
|
|
560987
561013
|
}
|
|
560988
561014
|
async function resolveWarpReadChains(argv) {
|
|
@@ -560990,23 +561016,23 @@ async function resolveWarpReadChains(argv) {
|
|
|
560990
561016
|
argv.context.chains = await resolveChain(argv);
|
|
560991
561017
|
}
|
|
560992
561018
|
if (argv.symbol || argv.warpRouteId) {
|
|
560993
|
-
const warpCoreConfig = await (0,
|
|
561019
|
+
const warpCoreConfig = await (0,_utils_warp_js__WEBPACK_IMPORTED_MODULE_6__/* .getWarpCoreConfigOrExit */ .ff)({
|
|
560994
561020
|
context: argv.context,
|
|
560995
561021
|
symbol: argv.symbol,
|
|
560996
561022
|
warpRouteId: argv.warpRouteId,
|
|
560997
561023
|
});
|
|
560998
561024
|
argv.context.chains = warpCoreConfig.tokens.map((token) => token.chainName);
|
|
560999
561025
|
}
|
|
561000
|
-
(0,
|
|
561026
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(argv.context.chains && argv.context.chains.length !== 0, 'No chains found set in parameters');
|
|
561001
561027
|
return argv.context.chains;
|
|
561002
561028
|
}
|
|
561003
561029
|
async function resolveChain(argv) {
|
|
561004
561030
|
const chains = argv.chain ? [argv.chain] : [];
|
|
561005
|
-
(0,
|
|
561031
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(chains.length !== 0, 'No chains found set in parameters');
|
|
561006
561032
|
return chains;
|
|
561007
561033
|
}
|
|
561008
561034
|
async function resolveWarpConfigChains(argv) {
|
|
561009
|
-
const { warpCoreConfig, warpDeployConfig } = await (0,
|
|
561035
|
+
const { warpCoreConfig, warpDeployConfig } = await (0,_utils_warp_js__WEBPACK_IMPORTED_MODULE_6__/* .getWarpConfigs */ .Yb)({
|
|
561010
561036
|
context: argv.context,
|
|
561011
561037
|
warpRouteId: argv.warpRouteId,
|
|
561012
561038
|
symbol: argv.symbol,
|
|
@@ -561016,7 +561042,7 @@ async function resolveWarpConfigChains(argv) {
|
|
|
561016
561042
|
argv.context.warpCoreConfig = warpCoreConfig;
|
|
561017
561043
|
argv.context.warpDeployConfig = warpDeployConfig;
|
|
561018
561044
|
argv.context.chains = Object.keys(warpDeployConfig);
|
|
561019
|
-
(0,
|
|
561045
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(argv.context.chains.length !== 0, 'No chains found in warp route deployment config');
|
|
561020
561046
|
return argv.context.chains;
|
|
561021
561047
|
}
|
|
561022
561048
|
async function resolveWarpRebalancerChains(argv) {
|
|
@@ -561025,7 +561051,7 @@ async function resolveWarpRebalancerChains(argv) {
|
|
|
561025
561051
|
// Extract chain names from all strategies in the rebalancer config
|
|
561026
561052
|
// This ensures we only create signers for chains we can actually rebalance
|
|
561027
561053
|
const chains = (0,_hyperlane_xyz_rebalancer__WEBPACK_IMPORTED_MODULE_0__/* .getStrategyChainNames */ .zj)(rebalancerConfig.strategyConfig);
|
|
561028
|
-
(0,
|
|
561054
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(chains.length !== 0, 'No chains configured in rebalancer config');
|
|
561029
561055
|
return chains;
|
|
561030
561056
|
}
|
|
561031
561057
|
/**
|
|
@@ -561038,7 +561064,7 @@ async function resolveSendMessageChains(argv) {
|
|
|
561038
561064
|
const { multiProvider } = argv.context;
|
|
561039
561065
|
const selectedChains = [argv.origin, argv.destination].filter(Boolean);
|
|
561040
561066
|
if (selectedChains.length > 0) {
|
|
561041
|
-
const nonEvmChains = selectedChains.filter((chain) => multiProvider.getProtocol(chain) !==
|
|
561067
|
+
const nonEvmChains = selectedChains.filter((chain) => multiProvider.getProtocol(chain) !== _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__/* .ProtocolType */ .Hb.Ethereum);
|
|
561042
561068
|
if (nonEvmChains.length > 0) {
|
|
561043
561069
|
const chainDetails = nonEvmChains
|
|
561044
561070
|
.map((chain) => `'${chain}' (${multiProvider.getProtocol(chain)})`)
|
|
@@ -561064,8 +561090,8 @@ async function resolveRelayerChains(argv) {
|
|
|
561064
561090
|
}
|
|
561065
561091
|
// If no destination is specified, return all EVM chains only
|
|
561066
561092
|
if (!argv.destination) {
|
|
561067
|
-
const chains = Object.keys((0,
|
|
561068
|
-
return chains.filter((chain) =>
|
|
561093
|
+
const chains = Object.keys((0,_utils_chains_js__WEBPACK_IMPORTED_MODULE_5__/* .filterOutDisabledChains */ .zC)(chainMetadata));
|
|
561094
|
+
return chains.filter((chain) => _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__/* .ProtocolType */ .Hb.Ethereum === multiProvider.getProtocol(chain));
|
|
561069
561095
|
}
|
|
561070
561096
|
chains.add(argv.destination);
|
|
561071
561097
|
return Array.from(chains);
|
|
@@ -561077,11 +561103,11 @@ async function resolveCoreApplyChains(argv) {
|
|
|
561077
561103
|
return [argv.chain];
|
|
561078
561104
|
}
|
|
561079
561105
|
const addresses = await argv.context.registry.getChainAddresses(argv.chain);
|
|
561080
|
-
const coreAddresses =
|
|
561106
|
+
const coreAddresses = _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_10__/* .DeployedCoreAddressesSchema */ .Vd.parse(addresses);
|
|
561081
561107
|
const protocolType = argv.context.multiProvider.getProtocol(argv.chain);
|
|
561082
561108
|
switch (protocolType) {
|
|
561083
|
-
case
|
|
561084
|
-
const evmCoreModule = new
|
|
561109
|
+
case _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__/* .ProtocolType */ .Hb.Ethereum: {
|
|
561110
|
+
const evmCoreModule = new _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_11__/* .EvmCoreModule */ .a(argv.context.multiProvider, {
|
|
561085
561111
|
chain: argv.chain,
|
|
561086
561112
|
config,
|
|
561087
561113
|
addresses: coreAddresses,
|
|
@@ -561110,10 +561136,10 @@ async function resolveCoreDeployChains(argv) {
|
|
|
561110
561136
|
else {
|
|
561111
561137
|
if (skipConfirmation)
|
|
561112
561138
|
throw new Error('No chain provided');
|
|
561113
|
-
chain = await (0,
|
|
561139
|
+
chain = await (0,_utils_chains_js__WEBPACK_IMPORTED_MODULE_5__/* .runSingleChainSelectionStep */ .jZ)(chainMetadata, 'Select chain to connect:');
|
|
561114
561140
|
}
|
|
561115
561141
|
if (!skipConfirmation) {
|
|
561116
|
-
argv.context.apiKeys = await (0,
|
|
561142
|
+
argv.context.apiKeys = await (0,_context_js__WEBPACK_IMPORTED_MODULE_7__/* .requestAndSaveApiKeys */ .SH)([chain], chainMetadata, registry);
|
|
561117
561143
|
}
|
|
561118
561144
|
argv.chain = chain;
|
|
561119
561145
|
return [chain];
|
|
@@ -561130,9 +561156,26 @@ async function resolveIcaDeployChains(argv) {
|
|
|
561130
561156
|
chains.add(argv.origin);
|
|
561131
561157
|
if (argv.chains?.length)
|
|
561132
561158
|
argv.chains.forEach((c) => chains.add(c));
|
|
561133
|
-
(0,
|
|
561159
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(chains.size > 0, 'No chains provided for ICA deploy');
|
|
561134
561160
|
return Array.from(chains);
|
|
561135
561161
|
}
|
|
561162
|
+
async function resolveSubmitChains(argv) {
|
|
561163
|
+
try {
|
|
561164
|
+
const { multiProvider } = argv.context;
|
|
561165
|
+
const transactionFilePath = argv.transactions;
|
|
561166
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(transactionFilePath, 'Expected transactions file path to be provided for submit command');
|
|
561167
|
+
const transactions = (0,_config_submit_js__WEBPACK_IMPORTED_MODULE_3__/* .getTransactions */ .I)(transactionFilePath);
|
|
561168
|
+
const chainIds = new Set(transactions.map((tx) => tx.chainId));
|
|
561169
|
+
const chains = Array.from(chainIds).map((chainId) => multiProvider.getChainName(chainId));
|
|
561170
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .assert */ .v)(chains.length > 0, 'No transactions found in file');
|
|
561171
|
+
return chains;
|
|
561172
|
+
}
|
|
561173
|
+
catch (error) {
|
|
561174
|
+
throw new Error(`Failed to resolve submit command chains`, {
|
|
561175
|
+
cause: error,
|
|
561176
|
+
});
|
|
561177
|
+
}
|
|
561178
|
+
}
|
|
561136
561179
|
//# sourceMappingURL=chainResolver.js.map
|
|
561137
561180
|
__webpack_async_result__();
|
|
561138
561181
|
} catch(e) { __webpack_async_result__(e); } });
|
|
@@ -562052,8 +562095,8 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
562052
562095
|
/* harmony import */ var _utils_relay_js__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(92941);
|
|
562053
562096
|
/* harmony import */ var _configValidation_js__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(34804);
|
|
562054
562097
|
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(62356);
|
|
562055
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_context_context_js__WEBPACK_IMPORTED_MODULE_5__, _send_transfer_js__WEBPACK_IMPORTED_MODULE_6__, _submitters_EV5FileSubmitter_js__WEBPACK_IMPORTED_MODULE_7__, _submitters_types_js__WEBPACK_IMPORTED_MODULE_8__, _utils_relay_js__WEBPACK_IMPORTED_MODULE_10__, _configValidation_js__WEBPACK_IMPORTED_MODULE_11__, _utils_js__WEBPACK_IMPORTED_MODULE_12__, _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_16__]);
|
|
562056
|
-
([_context_context_js__WEBPACK_IMPORTED_MODULE_5__, _send_transfer_js__WEBPACK_IMPORTED_MODULE_6__, _submitters_EV5FileSubmitter_js__WEBPACK_IMPORTED_MODULE_7__, _submitters_types_js__WEBPACK_IMPORTED_MODULE_8__, _utils_relay_js__WEBPACK_IMPORTED_MODULE_10__, _configValidation_js__WEBPACK_IMPORTED_MODULE_11__, _utils_js__WEBPACK_IMPORTED_MODULE_12__, _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_16__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
562098
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_context_context_js__WEBPACK_IMPORTED_MODULE_5__, _send_transfer_js__WEBPACK_IMPORTED_MODULE_6__, _submitters_EV5FileSubmitter_js__WEBPACK_IMPORTED_MODULE_7__, _submitters_types_js__WEBPACK_IMPORTED_MODULE_8__, _utils_relay_js__WEBPACK_IMPORTED_MODULE_10__, _configValidation_js__WEBPACK_IMPORTED_MODULE_11__, _utils_js__WEBPACK_IMPORTED_MODULE_12__, _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_13__, _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_16__, _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_28__]);
|
|
562099
|
+
([_context_context_js__WEBPACK_IMPORTED_MODULE_5__, _send_transfer_js__WEBPACK_IMPORTED_MODULE_6__, _submitters_EV5FileSubmitter_js__WEBPACK_IMPORTED_MODULE_7__, _submitters_types_js__WEBPACK_IMPORTED_MODULE_8__, _utils_relay_js__WEBPACK_IMPORTED_MODULE_10__, _configValidation_js__WEBPACK_IMPORTED_MODULE_11__, _utils_js__WEBPACK_IMPORTED_MODULE_12__, _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_13__, _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_16__, _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_28__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
562057
562100
|
|
|
562058
562101
|
|
|
562059
562102
|
|
|
@@ -563579,7 +563622,7 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
563579
563622
|
/* harmony import */ var _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(71711);
|
|
563580
563623
|
/* harmony import */ var _hyperlane_xyz_deploy_sdk__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(41724);
|
|
563581
563624
|
/* harmony import */ var _hyperlane_xyz_provider_sdk__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(18951);
|
|
563582
|
-
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(
|
|
563625
|
+
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(40945);
|
|
563583
563626
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(22887);
|
|
563584
563627
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(4879);
|
|
563585
563628
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(73938);
|
|
@@ -571872,7 +571915,7 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
571872
571915
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(1330);
|
|
571873
571916
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(2202);
|
|
571874
571917
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(26492);
|
|
571875
|
-
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(
|
|
571918
|
+
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(40945);
|
|
571876
571919
|
/* harmony import */ var _hyperlane_xyz_sdk__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(4169);
|
|
571877
571920
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(21387);
|
|
571878
571921
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(73938);
|
|
@@ -571956,7 +571999,7 @@ __webpack_async_result__();
|
|
|
571956
571999
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
571957
572000
|
/* harmony export */ x: () => (/* binding */ VERSION)
|
|
571958
572001
|
/* harmony export */ });
|
|
571959
|
-
const VERSION = '
|
|
572002
|
+
const VERSION = '25.0.0';
|
|
571960
572003
|
//# sourceMappingURL=version.js.map
|
|
571961
572004
|
|
|
571962
572005
|
/***/ }),
|
|
@@ -571981,6 +572024,8 @@ var build = __nccwpck_require__(69403);
|
|
|
571981
572024
|
var tendermint_rpc_build = __nccwpck_require__(83071);
|
|
571982
572025
|
// EXTERNAL MODULE: ../provider-sdk/dist/index.js + 2 modules
|
|
571983
572026
|
var dist = __nccwpck_require__(18951);
|
|
572027
|
+
// EXTERNAL MODULE: ../utils/dist/async.js
|
|
572028
|
+
var dist_async = __nccwpck_require__(14918);
|
|
571984
572029
|
// EXTERNAL MODULE: ../../node_modules/.pnpm/protobufjs@7.5.4/node_modules/protobufjs/minimal.js
|
|
571985
572030
|
var minimal = __nccwpck_require__(98942);
|
|
571986
572031
|
;// CONCATENATED MODULE: ../cosmos-types/dist/types/hyperlane/core/v1/events.js
|
|
@@ -587353,7 +587398,7 @@ class CosmosMerkleTreeHookWriter extends CosmosMerkleTreeHookReader {
|
|
|
587353
587398
|
*/
|
|
587354
587399
|
class CosmosHookArtifactManager {
|
|
587355
587400
|
config;
|
|
587356
|
-
|
|
587401
|
+
query = new dist_async/* LazyAsync */.Ru(() => this.createQuery());
|
|
587357
587402
|
constructor(config) {
|
|
587358
587403
|
this.config = config;
|
|
587359
587404
|
}
|
|
@@ -587361,11 +587406,8 @@ class CosmosHookArtifactManager {
|
|
|
587361
587406
|
* Lazy initialization - creates query client on first use.
|
|
587362
587407
|
* Subsequent calls return the cached promise.
|
|
587363
587408
|
*/
|
|
587364
|
-
|
|
587365
|
-
|
|
587366
|
-
this.queryPromise = this.createQuery();
|
|
587367
|
-
}
|
|
587368
|
-
return this.queryPromise;
|
|
587409
|
+
getQuery() {
|
|
587410
|
+
return this.query.get();
|
|
587369
587411
|
}
|
|
587370
587412
|
/**
|
|
587371
587413
|
* Creates a Cosmos query client with PostDispatch extension.
|
|
@@ -588042,6 +588084,7 @@ class CosmosTestIsmWriter extends CosmosTestIsmReader {
|
|
|
588042
588084
|
|
|
588043
588085
|
|
|
588044
588086
|
|
|
588087
|
+
|
|
588045
588088
|
/**
|
|
588046
588089
|
* Cosmos ISM Artifact Manager implementing IRawIsmArtifactManager.
|
|
588047
588090
|
*
|
|
@@ -588055,7 +588098,7 @@ class CosmosTestIsmWriter extends CosmosTestIsmReader {
|
|
|
588055
588098
|
*/
|
|
588056
588099
|
class CosmosIsmArtifactManager {
|
|
588057
588100
|
rpcUrls;
|
|
588058
|
-
|
|
588101
|
+
query = new dist_async/* LazyAsync */.Ru(() => this.createQuery());
|
|
588059
588102
|
constructor(rpcUrls) {
|
|
588060
588103
|
this.rpcUrls = rpcUrls;
|
|
588061
588104
|
}
|
|
@@ -588063,11 +588106,8 @@ class CosmosIsmArtifactManager {
|
|
|
588063
588106
|
* Lazy initialization - creates query client on first use.
|
|
588064
588107
|
* Subsequent calls return the cached promise.
|
|
588065
588108
|
*/
|
|
588066
|
-
|
|
588067
|
-
|
|
588068
|
-
this.queryPromise = this.createQuery();
|
|
588069
|
-
}
|
|
588070
|
-
return this.queryPromise;
|
|
588109
|
+
getQuery() {
|
|
588110
|
+
return this.query.get();
|
|
588071
588111
|
}
|
|
588072
588112
|
/**
|
|
588073
588113
|
* Creates a Cosmos query client with ISM extension.
|
|
@@ -588546,6 +588586,12 @@ class CosmosNativeProvider {
|
|
|
588546
588586
|
async getCreateValidatorAnnounceTransaction(_req) {
|
|
588547
588587
|
throw new Error('Cosmos Native does not support populateCreateValidatorAnnounce');
|
|
588548
588588
|
}
|
|
588589
|
+
async getCreateProxyAdminTransaction(_req) {
|
|
588590
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native');
|
|
588591
|
+
}
|
|
588592
|
+
async getSetProxyAdminOwnerTransaction(_req) {
|
|
588593
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native');
|
|
588594
|
+
}
|
|
588549
588595
|
// ### GET WARP TXS ###
|
|
588550
588596
|
async getCreateNativeTokenTransaction(_req) {
|
|
588551
588597
|
throw new Error(`Native Token is not supported on Cosmos Native`);
|
|
@@ -588781,6 +588827,9 @@ class CosmosNativeSigner extends CosmosNativeProvider {
|
|
|
588781
588827
|
}
|
|
588782
588828
|
// ### TX CORE ###
|
|
588783
588829
|
async createMailbox(req) {
|
|
588830
|
+
if (req.proxyAdminAddress) {
|
|
588831
|
+
throw new Error('ProxyAdmin is not supported on Cosmos. Remove proxyAdmin from config.');
|
|
588832
|
+
}
|
|
588784
588833
|
const msg = await this.getCreateMailboxTransaction({
|
|
588785
588834
|
...req,
|
|
588786
588835
|
signer: this.account.address,
|
|
@@ -588958,11 +589007,20 @@ class CosmosNativeSigner extends CosmosNativeProvider {
|
|
|
588958
589007
|
// Cosmos Native has no validator announce
|
|
588959
589008
|
return { validatorAnnounceId: '' };
|
|
588960
589009
|
}
|
|
589010
|
+
async createProxyAdmin(_req) {
|
|
589011
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native');
|
|
589012
|
+
}
|
|
589013
|
+
async setProxyAdminOwner(_req) {
|
|
589014
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native');
|
|
589015
|
+
}
|
|
588961
589016
|
// ### TX WARP ###
|
|
588962
589017
|
async createNativeToken(_req) {
|
|
588963
589018
|
throw new Error(`Native Token is not supported on Cosmos Native`);
|
|
588964
589019
|
}
|
|
588965
589020
|
async createCollateralToken(req) {
|
|
589021
|
+
if (req.proxyAdminAddress) {
|
|
589022
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native. Remove proxyAdmin from config.');
|
|
589023
|
+
}
|
|
588966
589024
|
const msg = await this.getCreateCollateralTokenTransaction({
|
|
588967
589025
|
...req,
|
|
588968
589026
|
signer: this.account.address,
|
|
@@ -588973,6 +589031,9 @@ class CosmosNativeSigner extends CosmosNativeProvider {
|
|
|
588973
589031
|
};
|
|
588974
589032
|
}
|
|
588975
589033
|
async createSyntheticToken(req) {
|
|
589034
|
+
if (req.proxyAdminAddress) {
|
|
589035
|
+
throw new Error('ProxyAdmin is not supported on Cosmos Native. Remove proxyAdmin from config.');
|
|
589036
|
+
}
|
|
588976
589037
|
const msg = await this.getCreateSyntheticTokenTransaction({
|
|
588977
589038
|
...req,
|
|
588978
589039
|
signer: this.account.address,
|
|
@@ -591704,8 +591765,9 @@ __nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependen
|
|
|
591704
591765
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
591705
591766
|
/* harmony export */ x: () => (/* binding */ RegistryService)
|
|
591706
591767
|
/* harmony export */ });
|
|
591707
|
-
/* harmony import */ var
|
|
591708
|
-
/* harmony import */ var
|
|
591768
|
+
/* harmony import */ var _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(97031);
|
|
591769
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(14918);
|
|
591770
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(21387);
|
|
591709
591771
|
|
|
591710
591772
|
|
|
591711
591773
|
class RegistryService {
|
|
@@ -591715,9 +591777,9 @@ class RegistryService {
|
|
|
591715
591777
|
fileRegistryWatcher;
|
|
591716
591778
|
registry = null;
|
|
591717
591779
|
lastRefresh = Date.now();
|
|
591718
|
-
refreshPromise = null;
|
|
591719
591780
|
isDirty = false;
|
|
591720
591781
|
isWatcherActive = false;
|
|
591782
|
+
registryRefresh = new _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_0__/* .LazyAsync */ .Ru(() => this.getRegistry());
|
|
591721
591783
|
constructor(getRegistry, refreshInterval, logger, fileRegistryWatcher) {
|
|
591722
591784
|
this.getRegistry = getRegistry;
|
|
591723
591785
|
this.refreshInterval = refreshInterval;
|
|
@@ -591725,21 +591787,28 @@ class RegistryService {
|
|
|
591725
591787
|
this.fileRegistryWatcher = fileRegistryWatcher;
|
|
591726
591788
|
}
|
|
591727
591789
|
async initialize() {
|
|
591728
|
-
|
|
591790
|
+
try {
|
|
591791
|
+
this.registry = await this.registryRefresh.get();
|
|
591792
|
+
this.lastRefresh = Date.now();
|
|
591793
|
+
}
|
|
591794
|
+
catch (err) {
|
|
591795
|
+
this.logger.error({ err }, 'Registry initialization failed');
|
|
591796
|
+
throw err;
|
|
591797
|
+
}
|
|
591729
591798
|
this.startWatching();
|
|
591730
591799
|
}
|
|
591731
591800
|
getFileSystemRegistryUri() {
|
|
591732
591801
|
if (!this.registry)
|
|
591733
591802
|
return null;
|
|
591734
|
-
if (this.registry.type ===
|
|
591803
|
+
if (this.registry.type === _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_1__/* .RegistryType */ .o.FileSystem) {
|
|
591735
591804
|
return this.registry.uri;
|
|
591736
591805
|
}
|
|
591737
|
-
if (this.registry.type ===
|
|
591806
|
+
if (this.registry.type === _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_1__/* .RegistryType */ .o.Merged) {
|
|
591738
591807
|
// Return the first FileSystem registry within a MergedRegistry
|
|
591739
591808
|
// TODO: Add support for multiple File registries when needed
|
|
591740
591809
|
// We should also consider using a better watcher for performances reasons
|
|
591741
591810
|
const merged = this.registry;
|
|
591742
|
-
const fsRegistry = merged.registries.find((r) => r.type ===
|
|
591811
|
+
const fsRegistry = merged.registries.find((r) => r.type === _hyperlane_xyz_registry__WEBPACK_IMPORTED_MODULE_1__/* .RegistryType */ .o.FileSystem);
|
|
591743
591812
|
return fsRegistry?.uri ?? null;
|
|
591744
591813
|
}
|
|
591745
591814
|
return null;
|
|
@@ -591776,21 +591845,19 @@ class RegistryService {
|
|
|
591776
591845
|
now - this.lastRefresh > this.refreshInterval) ||
|
|
591777
591846
|
!this.registry;
|
|
591778
591847
|
if (shouldRefresh) {
|
|
591779
|
-
if (this.refreshPromise) {
|
|
591780
|
-
return this.refreshPromise;
|
|
591781
|
-
}
|
|
591782
591848
|
this.logger.info('Refreshing registry cache...');
|
|
591783
|
-
this.
|
|
591849
|
+
this.registryRefresh.reset();
|
|
591784
591850
|
try {
|
|
591785
|
-
this.registry = await this.
|
|
591851
|
+
this.registry = await this.registryRefresh.get();
|
|
591786
591852
|
this.isDirty = false;
|
|
591787
591853
|
this.lastRefresh = now;
|
|
591788
591854
|
}
|
|
591789
|
-
|
|
591790
|
-
this.
|
|
591855
|
+
catch (err) {
|
|
591856
|
+
this.logger.error({ err }, 'Registry refresh failed');
|
|
591857
|
+
throw err;
|
|
591791
591858
|
}
|
|
591792
591859
|
}
|
|
591793
|
-
(0,
|
|
591860
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_2__/* .assert */ .v)(this.registry, 'Could not fetch current registry');
|
|
591794
591861
|
return this.registry;
|
|
591795
591862
|
}
|
|
591796
591863
|
async withRegistry(operation) {
|
|
@@ -630845,6 +630912,12 @@ class RadixProvider {
|
|
|
630845
630912
|
manifest: await getCreateValidatorAnnounceTx(this.base, req.signer, req.mailboxAddress),
|
|
630846
630913
|
};
|
|
630847
630914
|
}
|
|
630915
|
+
async getCreateProxyAdminTransaction(_req) {
|
|
630916
|
+
throw new Error('ProxyAdmin is not supported on Radix');
|
|
630917
|
+
}
|
|
630918
|
+
async getSetProxyAdminOwnerTransaction(_req) {
|
|
630919
|
+
throw new Error('ProxyAdmin is not supported on Radix');
|
|
630920
|
+
}
|
|
630848
630921
|
// ### GET WARP TXS ###
|
|
630849
630922
|
async getCreateNativeTokenTransaction(_req) {
|
|
630850
630923
|
throw new Error(`Native Token is not supported on Radix`);
|
|
@@ -631170,6 +631243,9 @@ class RadixSigner extends RadixProvider {
|
|
|
631170
631243
|
}
|
|
631171
631244
|
// ### TX CORE ###
|
|
631172
631245
|
async createMailbox(req) {
|
|
631246
|
+
if (req.proxyAdminAddress) {
|
|
631247
|
+
throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
|
|
631248
|
+
}
|
|
631173
631249
|
const transactionManifest = await getCreateMailboxTx(this.base, this.account.address, req.domainId);
|
|
631174
631250
|
const receipt = await this.signer.signAndBroadcast(transactionManifest);
|
|
631175
631251
|
const mailboxAddress = await this.base.getNewComponent(receipt);
|
|
@@ -631336,11 +631412,20 @@ class RadixSigner extends RadixProvider {
|
|
|
631336
631412
|
validatorAnnounceId,
|
|
631337
631413
|
};
|
|
631338
631414
|
}
|
|
631415
|
+
async createProxyAdmin(_req) {
|
|
631416
|
+
throw new Error('ProxyAdmin is not supported on Radix');
|
|
631417
|
+
}
|
|
631418
|
+
async setProxyAdminOwner(_req) {
|
|
631419
|
+
throw new Error('ProxyAdmin is not supported on Radix');
|
|
631420
|
+
}
|
|
631339
631421
|
// ### TX WARP ###
|
|
631340
631422
|
async createNativeToken(_req) {
|
|
631341
631423
|
throw new Error(`Native Token is not supported on Radix`);
|
|
631342
631424
|
}
|
|
631343
631425
|
async createCollateralToken(req) {
|
|
631426
|
+
if (req.proxyAdminAddress) {
|
|
631427
|
+
throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
|
|
631428
|
+
}
|
|
631344
631429
|
return {
|
|
631345
631430
|
tokenAddress: await this.tx.warp.createCollateralToken({
|
|
631346
631431
|
mailbox: req.mailboxAddress,
|
|
@@ -631349,6 +631434,9 @@ class RadixSigner extends RadixProvider {
|
|
|
631349
631434
|
};
|
|
631350
631435
|
}
|
|
631351
631436
|
async createSyntheticToken(req) {
|
|
631437
|
+
if (req.proxyAdminAddress) {
|
|
631438
|
+
throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
|
|
631439
|
+
}
|
|
631352
631440
|
return {
|
|
631353
631441
|
tokenAddress: await this.tx.warp.createSyntheticToken({
|
|
631354
631442
|
mailbox: req.mailboxAddress,
|
|
@@ -644802,8 +644890,9 @@ async function getImplementationInput({ bytecode, chainName, contractName, imple
|
|
|
644802
644890
|
/***/ }),
|
|
644803
644891
|
|
|
644804
644892
|
/***/ 38231:
|
|
644805
|
-
/***/ ((
|
|
644893
|
+
/***/ ((__webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
644806
644894
|
|
|
644895
|
+
__nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
644807
644896
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
644808
644897
|
/* harmony export */ $: () => (/* binding */ executeWarpDeploy),
|
|
644809
644898
|
/* harmony export */ A: () => (/* binding */ enrollCrossChainRouters)
|
|
@@ -644830,6 +644919,8 @@ async function getImplementationInput({ bytecode, chainName, contractName, imple
|
|
|
644830
644919
|
/* harmony import */ var _utils_ism_js__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(764);
|
|
644831
644920
|
/* harmony import */ var _HyperlaneProxyFactoryDeployer_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(84387);
|
|
644832
644921
|
/* harmony import */ var _verify_ContractVerifier_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(76939);
|
|
644922
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_token_EvmWarpModule_js__WEBPACK_IMPORTED_MODULE_20__]);
|
|
644923
|
+
_token_EvmWarpModule_js__WEBPACK_IMPORTED_MODULE_20__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
644833
644924
|
|
|
644834
644925
|
|
|
644835
644926
|
|
|
@@ -645116,6 +645207,8 @@ function getRouter(contracts) {
|
|
|
645116
645207
|
throw new Error('No matching contract found.');
|
|
645117
645208
|
}
|
|
645118
645209
|
//# sourceMappingURL=warp.js.map
|
|
645210
|
+
__webpack_async_result__();
|
|
645211
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
645119
645212
|
|
|
645120
645213
|
/***/ }),
|
|
645121
645214
|
|
|
@@ -693300,38 +693393,42 @@ const GasRouterConfigSchema = RouterConfigSchema.extend({
|
|
|
693300
693393
|
/***/ }),
|
|
693301
693394
|
|
|
693302
693395
|
/***/ 48807:
|
|
693303
|
-
/***/ ((
|
|
693396
|
+
/***/ ((__webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
693304
693397
|
|
|
693398
|
+
__nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
693305
693399
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
693306
693400
|
/* harmony export */ N: () => (/* binding */ EvmWarpModule)
|
|
693307
693401
|
/* harmony export */ });
|
|
693308
|
-
/* harmony import */ var
|
|
693309
|
-
/* harmony import */ var
|
|
693402
|
+
/* harmony import */ var compare_versions__WEBPACK_IMPORTED_MODULE_25__ = __nccwpck_require__(95416);
|
|
693403
|
+
/* harmony import */ var ethers__WEBPACK_IMPORTED_MODULE_21__ = __nccwpck_require__(61934);
|
|
693310
693404
|
/* harmony import */ var starknet__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(98954);
|
|
693311
693405
|
/* harmony import */ var _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(71711);
|
|
693312
693406
|
/* harmony import */ var _hyperlane_xyz_core_buildArtifact_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(74119);
|
|
693313
693407
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(73938);
|
|
693314
693408
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(93142);
|
|
693315
693409
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(94523);
|
|
693316
|
-
/* harmony import */ var
|
|
693317
|
-
/* harmony import */ var
|
|
693318
|
-
/* harmony import */ var
|
|
693410
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__ = __nccwpck_require__(21387);
|
|
693411
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(52193);
|
|
693412
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_16__ = __nccwpck_require__(73689);
|
|
693319
693413
|
/* harmony import */ var _block_explorer_etherscan_js__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(26492);
|
|
693320
|
-
/* harmony import */ var
|
|
693414
|
+
/* harmony import */ var _contracts_contracts_js__WEBPACK_IMPORTED_MODULE_22__ = __nccwpck_require__(15570);
|
|
693321
693415
|
/* harmony import */ var _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(53387);
|
|
693322
|
-
/* harmony import */ var
|
|
693416
|
+
/* harmony import */ var _deploy_proxy_js__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(83697);
|
|
693323
693417
|
/* harmony import */ var _deploy_verify_ContractVerifier_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(76939);
|
|
693324
|
-
/* harmony import */ var
|
|
693325
|
-
/* harmony import */ var
|
|
693326
|
-
/* harmony import */ var
|
|
693327
|
-
/* harmony import */ var
|
|
693328
|
-
/* harmony import */ var
|
|
693329
|
-
/* harmony import */ var _EvmWarpRouteReader_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(
|
|
693330
|
-
/* harmony import */ var
|
|
693331
|
-
/* harmony import */ var
|
|
693332
|
-
/* harmony import */ var
|
|
693333
|
-
/* harmony import */ var
|
|
693418
|
+
/* harmony import */ var _fee_EvmTokenFeeModule_js__WEBPACK_IMPORTED_MODULE_20__ = __nccwpck_require__(43313);
|
|
693419
|
+
/* harmony import */ var _hook_updates_js__WEBPACK_IMPORTED_MODULE_17__ = __nccwpck_require__(69203);
|
|
693420
|
+
/* harmony import */ var _ism_EvmIsmModule_js__WEBPACK_IMPORTED_MODULE_23__ = __nccwpck_require__(3612);
|
|
693421
|
+
/* harmony import */ var _router_types_js__WEBPACK_IMPORTED_MODULE_15__ = __nccwpck_require__(38230);
|
|
693422
|
+
/* harmony import */ var _utils_ism_js__WEBPACK_IMPORTED_MODULE_18__ = __nccwpck_require__(764);
|
|
693423
|
+
/* harmony import */ var _EvmWarpRouteReader_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(40945);
|
|
693424
|
+
/* harmony import */ var _EvmXERC20Module_js__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(5715);
|
|
693425
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_24__ = __nccwpck_require__(4169);
|
|
693426
|
+
/* harmony import */ var _configUtils_js__WEBPACK_IMPORTED_MODULE_19__ = __nccwpck_require__(63776);
|
|
693427
|
+
/* harmony import */ var _contracts_js__WEBPACK_IMPORTED_MODULE_27__ = __nccwpck_require__(81504);
|
|
693428
|
+
/* harmony import */ var _deploy_js__WEBPACK_IMPORTED_MODULE_26__ = __nccwpck_require__(90162);
|
|
693334
693429
|
/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(38466);
|
|
693430
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_EvmXERC20Module_js__WEBPACK_IMPORTED_MODULE_11__]);
|
|
693431
|
+
_EvmXERC20Module_js__WEBPACK_IMPORTED_MODULE_11__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
693335
693432
|
// import { expect } from 'chai';
|
|
693336
693433
|
|
|
693337
693434
|
|
|
@@ -693353,6 +693450,7 @@ const GasRouterConfigSchema = RouterConfigSchema.extend({
|
|
|
693353
693450
|
|
|
693354
693451
|
|
|
693355
693452
|
|
|
693453
|
+
|
|
693356
693454
|
|
|
693357
693455
|
|
|
693358
693456
|
const getAllowedRebalancingBridgesByDomain = (allowedRebalancingBridgesByDomain) => {
|
|
@@ -693402,13 +693500,18 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693402
693500
|
_types_js__WEBPACK_IMPORTED_MODULE_10__/* .HypTokenRouterConfigSchema */ .db.parse(expectedConfig);
|
|
693403
693501
|
const actualConfig = await this.read();
|
|
693404
693502
|
const transactions = [];
|
|
693503
|
+
let xerc20Txs = [];
|
|
693504
|
+
if ((0,_types_js__WEBPACK_IMPORTED_MODULE_10__/* .isXERC20TokenConfig */ .Kh)(expectedConfig)) {
|
|
693505
|
+
const { module, config } = await _EvmXERC20Module_js__WEBPACK_IMPORTED_MODULE_11__/* .EvmXERC20Module */ .J.fromWarpRouteConfig(this.multiProvider, this.chainName, expectedConfig, this.args.addresses.deployedTokenRoute);
|
|
693506
|
+
xerc20Txs = await module.update(config);
|
|
693507
|
+
}
|
|
693405
693508
|
/**
|
|
693406
693509
|
* @remark
|
|
693407
693510
|
* The order of operations matter
|
|
693408
693511
|
* 1. createOwnershipUpdateTxs() must always be LAST because no updates possible after ownership transferred
|
|
693409
693512
|
* 2. createRemoteRoutersUpdateTxs() must always be BEFORE createSetDestinationGasUpdateTxs() because gas enumeration depends on domains
|
|
693410
693513
|
*/
|
|
693411
|
-
transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.createHookUpdateTxs(actualConfig, expectedConfig)), ...(await this.createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams)), ...this.createEnrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createUnenrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createSetDestinationGasUpdateTxs(actualConfig, expectedConfig), ...this.createAddRebalancersUpdateTxs(actualConfig, expectedConfig), ...this.createRemoveRebalancersUpdateTxs(actualConfig, expectedConfig), ...(await this.createAddAllowedBridgesUpdateTxs(actualConfig, expectedConfig)), ...this.createRemoveBridgesTxs(actualConfig, expectedConfig), ...this.createAddRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createRemoveRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createUpdateEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createRemoveEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createOwnershipUpdateTxs(actualConfig, expectedConfig), ...(0,
|
|
693514
|
+
transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.createHookUpdateTxs(actualConfig, expectedConfig)), ...(await this.createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams)), ...this.createEnrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createUnenrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createSetDestinationGasUpdateTxs(actualConfig, expectedConfig), ...this.createAddRebalancersUpdateTxs(actualConfig, expectedConfig), ...this.createRemoveRebalancersUpdateTxs(actualConfig, expectedConfig), ...(await this.createAddAllowedBridgesUpdateTxs(actualConfig, expectedConfig)), ...this.createRemoveBridgesTxs(actualConfig, expectedConfig), ...this.createAddRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createRemoveRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createUpdateEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createRemoveEverclearFeeParamsTxs(actualConfig, expectedConfig), ...xerc20Txs, ...this.createOwnershipUpdateTxs(actualConfig, expectedConfig), ...(0,_deploy_proxy_js__WEBPACK_IMPORTED_MODULE_12__/* .proxyAdminUpdateTxs */ .CK)(this.chainId, this.args.addresses.deployedTokenRoute, actualConfig, expectedConfig));
|
|
693412
693515
|
return transactions;
|
|
693413
693516
|
}
|
|
693414
693517
|
/**
|
|
@@ -693423,8 +693526,8 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693423
693526
|
if (!expectedConfig.remoteRouters) {
|
|
693424
693527
|
return [];
|
|
693425
693528
|
}
|
|
693426
|
-
(0,
|
|
693427
|
-
(0,
|
|
693529
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(actualConfig.remoteRouters, 'actualRemoteRouters is undefined');
|
|
693530
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(expectedConfig.remoteRouters, 'actualRemoteRouters is undefined');
|
|
693428
693531
|
const { remoteRouters: actualRemoteRouters } = actualConfig;
|
|
693429
693532
|
const { remoteRouters: expectedRemoteRouters } = expectedConfig;
|
|
693430
693533
|
const routesToEnroll = Object.entries(expectedRemoteRouters)
|
|
@@ -693458,11 +693561,11 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693458
693561
|
if (!expectedConfig.remoteRouters) {
|
|
693459
693562
|
return [];
|
|
693460
693563
|
}
|
|
693461
|
-
(0,
|
|
693462
|
-
(0,
|
|
693564
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(actualConfig.remoteRouters, 'actualRemoteRouters is undefined');
|
|
693565
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(expectedConfig.remoteRouters, 'actualRemoteRouters is undefined');
|
|
693463
693566
|
const { remoteRouters: actualRemoteRouters } = actualConfig;
|
|
693464
693567
|
const { remoteRouters: expectedRemoteRouters } = expectedConfig;
|
|
693465
|
-
const routesToUnenroll = Array.from((0,
|
|
693568
|
+
const routesToUnenroll = Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(new Set(Object.keys(actualRemoteRouters)), new Set(Object.keys(expectedRemoteRouters))));
|
|
693466
693569
|
if (routesToUnenroll.length === 0) {
|
|
693467
693570
|
return updateTransactions;
|
|
693468
693571
|
}
|
|
@@ -693486,7 +693589,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693486
693589
|
}
|
|
693487
693590
|
const formattedExpectedRebalancers = new Set(expectedConfig.allowedRebalancers.map(_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .normalizeAddressEvm */ .Ek));
|
|
693488
693591
|
const formattedActualRebalancers = new Set((actualConfig.allowedRebalancers ?? []).map(_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .normalizeAddressEvm */ .Ek));
|
|
693489
|
-
const rebalancersToAdd = Array.from((0,
|
|
693592
|
+
const rebalancersToAdd = Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(formattedExpectedRebalancers, formattedActualRebalancers));
|
|
693490
693593
|
if (rebalancersToAdd.length === 0) {
|
|
693491
693594
|
return [];
|
|
693492
693595
|
}
|
|
@@ -693508,7 +693611,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693508
693611
|
}
|
|
693509
693612
|
const formattedExpectedRebalancers = new Set(expectedConfig.allowedRebalancers.map(_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .normalizeAddressEvm */ .Ek));
|
|
693510
693613
|
const formattedActualRebalancers = new Set((actualConfig.allowedRebalancers ?? []).map(_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .normalizeAddressEvm */ .Ek));
|
|
693511
|
-
const rebalancersToRemove = Array.from((0,
|
|
693614
|
+
const rebalancersToRemove = Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(formattedActualRebalancers, formattedExpectedRebalancers));
|
|
693512
693615
|
if (rebalancersToRemove.length === 0) {
|
|
693513
693616
|
return [];
|
|
693514
693617
|
}
|
|
@@ -693562,11 +693665,11 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693562
693665
|
if (!expectedConfig.allowedRebalancingBridges) {
|
|
693563
693666
|
return [];
|
|
693564
693667
|
}
|
|
693565
|
-
const actualAllowedBridges = getAllowedRebalancingBridgesByDomain((0,
|
|
693566
|
-
const expectedAllowedBridges = getAllowedRebalancingBridgesByDomain((0,
|
|
693668
|
+
const actualAllowedBridges = getAllowedRebalancingBridgesByDomain((0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.allowedRebalancingBridges ?? {}));
|
|
693669
|
+
const expectedAllowedBridges = getAllowedRebalancingBridgesByDomain((0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.allowedRebalancingBridges));
|
|
693567
693670
|
const rebalancingBridgesToAddByDomain = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objMap */ .Yp)(expectedAllowedBridges, (domain, bridges) => {
|
|
693568
693671
|
const actualBridges = actualAllowedBridges[domain] ?? new Set();
|
|
693569
|
-
return Array.from((0,
|
|
693672
|
+
return Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(bridges, actualBridges));
|
|
693570
693673
|
});
|
|
693571
693674
|
const bridgesToAllow = Object.entries(rebalancingBridgesToAddByDomain).flatMap(([domain, allowedBridgesToAdd]) => {
|
|
693572
693675
|
return allowedBridgesToAdd.map((bridgeToAdd) => {
|
|
@@ -693589,11 +693692,11 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693589
693692
|
if (!expectedConfig.allowedRebalancingBridges) {
|
|
693590
693693
|
return [];
|
|
693591
693694
|
}
|
|
693592
|
-
const actualAllowedBridges = getAllowedRebalancingBridgesByDomain((0,
|
|
693593
|
-
const expectedAllowedBridges = getAllowedRebalancingBridgesByDomain((0,
|
|
693695
|
+
const actualAllowedBridges = getAllowedRebalancingBridgesByDomain((0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.allowedRebalancingBridges ?? {}));
|
|
693696
|
+
const expectedAllowedBridges = getAllowedRebalancingBridgesByDomain((0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.allowedRebalancingBridges));
|
|
693594
693697
|
const rebalancingBridgesToAddByDomain = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objMap */ .Yp)(actualAllowedBridges, (domain, bridges) => {
|
|
693595
693698
|
const expectedBridges = expectedAllowedBridges[domain] ?? new Set();
|
|
693596
|
-
return Array.from((0,
|
|
693699
|
+
return Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(bridges, expectedBridges));
|
|
693597
693700
|
});
|
|
693598
693701
|
return Object.entries(rebalancingBridgesToAddByDomain).flatMap(([domain, allowedBridgesToAdd]) => {
|
|
693599
693702
|
return allowedBridgesToAdd.map((bridgeToAdd) => {
|
|
@@ -693611,8 +693714,8 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693611
693714
|
!(0,_types_js__WEBPACK_IMPORTED_MODULE_10__/* .isEverclearTokenBridgeConfig */ .e6)(actualConfig)) {
|
|
693612
693715
|
return [];
|
|
693613
693716
|
}
|
|
693614
|
-
const actualOutputAssets = (0,
|
|
693615
|
-
const expectedOutputAssets = (0,
|
|
693717
|
+
const actualOutputAssets = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.outputAssets);
|
|
693718
|
+
const expectedOutputAssets = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.outputAssets);
|
|
693616
693719
|
const outputAssetsToAdd = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objDiff */ .bJ)(expectedOutputAssets, actualOutputAssets, (address, address2) => (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .addressToBytes32 */ .In)(address) === (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .addressToBytes32 */ .In)(address2));
|
|
693617
693720
|
if ((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .isObjEmpty */ .XY)(outputAssetsToAdd)) {
|
|
693618
693721
|
return [];
|
|
@@ -693635,9 +693738,9 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693635
693738
|
!(0,_types_js__WEBPACK_IMPORTED_MODULE_10__/* .isEverclearTokenBridgeConfig */ .e6)(actualConfig)) {
|
|
693636
693739
|
return [];
|
|
693637
693740
|
}
|
|
693638
|
-
const actualOutputAssets = (0,
|
|
693639
|
-
const expectedOutputAssets = (0,
|
|
693640
|
-
const outputAssetsToRemove = Array.from((0,
|
|
693741
|
+
const actualOutputAssets = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.outputAssets);
|
|
693742
|
+
const expectedOutputAssets = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.outputAssets);
|
|
693743
|
+
const outputAssetsToRemove = Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(new Set((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objKeys */ .cG)(actualOutputAssets)), new Set((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objKeys */ .cG)(expectedOutputAssets))));
|
|
693641
693744
|
if (outputAssetsToRemove.length === 0) {
|
|
693642
693745
|
return [];
|
|
693643
693746
|
}
|
|
@@ -693662,10 +693765,10 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693662
693765
|
if ((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .deepEquals */ .c2)(expectedConfig.everclearFeeParams, actualConfig.everclearFeeParams)) {
|
|
693663
693766
|
return [];
|
|
693664
693767
|
}
|
|
693665
|
-
const resolvedEverclearExpectedFeeConfig = (0,
|
|
693666
|
-
const resolvedActualEverclearFeeConfig = (0,
|
|
693768
|
+
const resolvedEverclearExpectedFeeConfig = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.everclearFeeParams);
|
|
693769
|
+
const resolvedActualEverclearFeeConfig = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.everclearFeeParams);
|
|
693667
693770
|
const feesToSet = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objFilter */ .s3)(resolvedEverclearExpectedFeeConfig, (domainId, currentDomainConfig) => {
|
|
693668
|
-
return ((0,
|
|
693771
|
+
return ((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_16__/* .isNullish */ .u)(resolvedActualEverclearFeeConfig[Number(domainId)]) ||
|
|
693669
693772
|
!(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .deepEquals */ .c2)(currentDomainConfig, resolvedActualEverclearFeeConfig[Number(domainId)]));
|
|
693670
693773
|
});
|
|
693671
693774
|
return Object.entries(feesToSet).map(([domainId, feeConfig]) => {
|
|
@@ -693685,9 +693788,9 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693685
693788
|
!(0,_types_js__WEBPACK_IMPORTED_MODULE_10__/* .isEverclearTokenBridgeConfig */ .e6)(actualConfig)) {
|
|
693686
693789
|
return [];
|
|
693687
693790
|
}
|
|
693688
|
-
const resolvedEverclearExpectedFeeConfig = (0,
|
|
693689
|
-
const resolvedActualEverclearFeeConfig = (0,
|
|
693690
|
-
const outputAssetsToRemove = Array.from((0,
|
|
693791
|
+
const resolvedEverclearExpectedFeeConfig = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.everclearFeeParams);
|
|
693792
|
+
const resolvedActualEverclearFeeConfig = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.everclearFeeParams);
|
|
693793
|
+
const outputAssetsToRemove = Array.from((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_14__/* .difference */ .iv)(new Set((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objKeys */ .cG)(resolvedActualEverclearFeeConfig)), new Set((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .objKeys */ .cG)(resolvedEverclearExpectedFeeConfig))));
|
|
693691
693794
|
if (outputAssetsToRemove.length === 0) {
|
|
693692
693795
|
return [];
|
|
693693
693796
|
}
|
|
@@ -693714,10 +693817,10 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693714
693817
|
if (!expectedConfig.destinationGas) {
|
|
693715
693818
|
return [];
|
|
693716
693819
|
}
|
|
693717
|
-
(0,
|
|
693718
|
-
(0,
|
|
693719
|
-
const actualDestinationGas = (0,
|
|
693720
|
-
const expectedDestinationGas = (0,
|
|
693820
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(actualConfig.destinationGas, 'actualDestinationGas is undefined');
|
|
693821
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(expectedConfig.destinationGas, 'expectedDestinationGas is undefined');
|
|
693822
|
+
const actualDestinationGas = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, actualConfig.destinationGas);
|
|
693823
|
+
const expectedDestinationGas = (0,_router_types_js__WEBPACK_IMPORTED_MODULE_15__/* .resolveRouterMapConfig */ .c0)(this.multiProvider, expectedConfig.destinationGas);
|
|
693721
693824
|
if (!(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .deepEquals */ .c2)(actualDestinationGas, expectedDestinationGas)) {
|
|
693722
693825
|
const contractToUpdate = _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_1__/* .GasRouter__factory */ .rFD.connect(this.args.addresses.deployedTokenRoute, this.multiProvider.getProvider(this.domainId));
|
|
693723
693826
|
// Convert { 1: 2, 2: 3, ... } to [{ 1: 2 }, { 2: 3 }]
|
|
@@ -693771,14 +693874,14 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693771
693874
|
return [];
|
|
693772
693875
|
}
|
|
693773
693876
|
const proxyAdminAddress = expectedConfig.proxyAdmin?.address ?? actualConfig.proxyAdmin?.address;
|
|
693774
|
-
(0,
|
|
693775
|
-
return (0,
|
|
693877
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(proxyAdminAddress, 'ProxyAdmin address is undefined');
|
|
693878
|
+
return (0,_hook_updates_js__WEBPACK_IMPORTED_MODULE_17__/* .getEvmHookUpdateTransactions */ .m)(this.args.addresses.deployedTokenRoute, {
|
|
693776
693879
|
actualConfig: actualConfig.hook,
|
|
693777
693880
|
expectedConfig: expectedConfig.hook,
|
|
693778
693881
|
ccipContractCache: this.ccipContractCache,
|
|
693779
693882
|
contractVerifier: this.contractVerifier,
|
|
693780
693883
|
evmChainName: this.chainName,
|
|
693781
|
-
hookAndIsmFactories: (0,
|
|
693884
|
+
hookAndIsmFactories: (0,_utils_ism_js__WEBPACK_IMPORTED_MODULE_18__/* .extractIsmAndHookFactoryAddresses */ .zs)(this.args.addresses),
|
|
693782
693885
|
setHookFunctionCallEncoder: (newHookAddress) => _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_1__/* .MailboxClient__factory */ .mG7.createInterface().encodeFunctionData('setHook', [newHookAddress]),
|
|
693783
693886
|
logger: this.logger,
|
|
693784
693887
|
mailbox: actualConfig.mailbox,
|
|
@@ -693798,16 +693901,16 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693798
693901
|
return [];
|
|
693799
693902
|
}
|
|
693800
693903
|
const routerAddress = this.args.addresses.deployedTokenRoute;
|
|
693801
|
-
const resolvedTokenFee = (0,
|
|
693904
|
+
const resolvedTokenFee = (0,_configUtils_js__WEBPACK_IMPORTED_MODULE_19__/* .resolveTokenFeeAddress */ .i0)(expectedConfig.tokenFee, routerAddress, expectedConfig);
|
|
693802
693905
|
const currentTokenFee = actualConfig.tokenFee;
|
|
693803
693906
|
if (!currentTokenFee) {
|
|
693804
693907
|
this.logger.info('No existing token fee found, creating new one');
|
|
693805
|
-
const expandedExpectedConfig = await
|
|
693908
|
+
const expandedExpectedConfig = await _fee_EvmTokenFeeModule_js__WEBPACK_IMPORTED_MODULE_20__/* .EvmTokenFeeModule */ .e.expandConfig({
|
|
693806
693909
|
config: resolvedTokenFee,
|
|
693807
693910
|
multiProvider: this.multiProvider,
|
|
693808
693911
|
chainName: this.chainName,
|
|
693809
693912
|
});
|
|
693810
|
-
const tokenFeeModule = await
|
|
693913
|
+
const tokenFeeModule = await _fee_EvmTokenFeeModule_js__WEBPACK_IMPORTED_MODULE_20__/* .EvmTokenFeeModule */ .e.create({
|
|
693811
693914
|
multiProvider: this.multiProvider,
|
|
693812
693915
|
chain: this.chainName,
|
|
693813
693916
|
config: expandedExpectedConfig,
|
|
@@ -693820,7 +693923,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693820
693923
|
.feeRecipient()
|
|
693821
693924
|
.catch((error) => {
|
|
693822
693925
|
this.logger.warn(`Failed to read feeRecipient, defaulting to generate setFeeRecipient tx`, error);
|
|
693823
|
-
return
|
|
693926
|
+
return ethers__WEBPACK_IMPORTED_MODULE_21__.constants.AddressZero;
|
|
693824
693927
|
});
|
|
693825
693928
|
if ((0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .eqAddress */ .fv)(currentFeeRecipient, deployedFee)) {
|
|
693826
693929
|
return [];
|
|
@@ -693835,7 +693938,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693835
693938
|
];
|
|
693836
693939
|
}
|
|
693837
693940
|
this.logger.info('Updating existing token fee configuration');
|
|
693838
|
-
const tokenFeeModule = new
|
|
693941
|
+
const tokenFeeModule = new _fee_EvmTokenFeeModule_js__WEBPACK_IMPORTED_MODULE_20__/* .EvmTokenFeeModule */ .e(this.multiProvider, {
|
|
693839
693942
|
chain: this.chainName,
|
|
693840
693943
|
config: currentTokenFee,
|
|
693841
693944
|
addresses: {
|
|
@@ -693863,7 +693966,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693863
693966
|
* @returns Ethereum transaction that need to be executed to update the owner.
|
|
693864
693967
|
*/
|
|
693865
693968
|
createOwnershipUpdateTxs(actualConfig, expectedConfig) {
|
|
693866
|
-
return (0,
|
|
693969
|
+
return (0,_contracts_contracts_js__WEBPACK_IMPORTED_MODULE_22__/* .transferOwnershipTransactions */ .Yg)(this.multiProvider.getEvmChainId(this.args.chain), this.args.addresses.deployedTokenRoute, actualConfig, expectedConfig, `${expectedConfig.type} Warp Route`);
|
|
693867
693970
|
}
|
|
693868
693971
|
/**
|
|
693869
693972
|
* Updates or deploys the ISM using the provided configuration.
|
|
@@ -693871,7 +693974,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693871
693974
|
* @returns Object with deployedIsm address, and update Transactions
|
|
693872
693975
|
*/
|
|
693873
693976
|
async deployOrUpdateIsm(actualConfig, expectedConfig) {
|
|
693874
|
-
(0,
|
|
693977
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(expectedConfig.interchainSecurityModule, 'Ism derived incorrectly');
|
|
693875
693978
|
if (typeof expectedConfig.interchainSecurityModule === 'string' &&
|
|
693876
693979
|
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .isZeroishAddress */ .Hi)(expectedConfig.interchainSecurityModule)) {
|
|
693877
693980
|
return {
|
|
@@ -693879,7 +693982,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693879
693982
|
updateTransactions: [],
|
|
693880
693983
|
};
|
|
693881
693984
|
}
|
|
693882
|
-
const ismModule = new
|
|
693985
|
+
const ismModule = new _ism_EvmIsmModule_js__WEBPACK_IMPORTED_MODULE_23__/* .EvmIsmModule */ .a(this.multiProvider, {
|
|
693883
693986
|
chain: this.args.chain,
|
|
693884
693987
|
config: actualConfig.interchainSecurityModule,
|
|
693885
693988
|
addresses: {
|
|
@@ -693902,15 +694005,15 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693902
694005
|
*/
|
|
693903
694006
|
async upgradeWarpRouteImplementationTx(actualConfig, expectedConfig) {
|
|
693904
694007
|
const updateTransactions = [];
|
|
693905
|
-
(0,
|
|
694008
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(expectedConfig.type !== _config_js__WEBPACK_IMPORTED_MODULE_24__/* .TokenType */ .ks.unknown, 'Cannot upgrade warp route with unknown token type');
|
|
693906
694009
|
// This should be impossible since we try catch the call to `PACKAGE_VERSION`
|
|
693907
694010
|
// in `EvmWarpRouteReader.fetchPackageVersion`
|
|
693908
|
-
(0,
|
|
694011
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(actualConfig.contractVersion, 'Actual contract version is undefined');
|
|
693909
694012
|
// Only upgrade if the user specifies a version
|
|
693910
694013
|
if (!expectedConfig.contractVersion) {
|
|
693911
694014
|
return [];
|
|
693912
694015
|
}
|
|
693913
|
-
const comparisonValue = (0,
|
|
694016
|
+
const comparisonValue = (0,compare_versions__WEBPACK_IMPORTED_MODULE_25__.compareVersions)(expectedConfig.contractVersion, actualConfig.contractVersion);
|
|
693914
694017
|
// Expected version is lower than actual version, no upgrade is possible
|
|
693915
694018
|
if (comparisonValue === -1) {
|
|
693916
694019
|
throw new Error(`Expected contract version ${expectedConfig.contractVersion} is lower than actual contract version ${actualConfig.contractVersion}`);
|
|
@@ -693921,16 +694024,16 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693921
694024
|
}
|
|
693922
694025
|
// You can only upgrade to the contract version (see `PackageVersioned`)
|
|
693923
694026
|
// defined by the @hyperlane-xyz/core package
|
|
693924
|
-
(0,
|
|
694027
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)((0,_types_js__WEBPACK_IMPORTED_MODULE_10__/* .contractVersionMatchesDependency */ .Vx)(expectedConfig.contractVersion), _types_js__WEBPACK_IMPORTED_MODULE_10__/* .VERSION_ERROR_MESSAGE */ .eh);
|
|
693925
694028
|
this.logger.info(`Upgrading Warp Route implementation on ${this.args.chain} from ${actualConfig.contractVersion} to ${expectedConfig.contractVersion}`);
|
|
693926
|
-
const deployer = new
|
|
694029
|
+
const deployer = new _deploy_js__WEBPACK_IMPORTED_MODULE_26__/* .HypERC20Deployer */ .A7(this.multiProvider);
|
|
693927
694030
|
const constructorArgs = await deployer.constructorArgs(this.chainName, expectedConfig);
|
|
693928
694031
|
const tokenType = expectedConfig.type;
|
|
693929
|
-
const implementation = await deployer.deployContractWithName(this.chainName, tokenType,
|
|
694032
|
+
const implementation = await deployer.deployContractWithName(this.chainName, tokenType, _contracts_js__WEBPACK_IMPORTED_MODULE_27__/* .hypERC20contracts */ .LW[tokenType], constructorArgs, undefined, false);
|
|
693930
694033
|
const provider = this.multiProvider.getProvider(this.domainId);
|
|
693931
694034
|
const proxyAddress = this.args.addresses.deployedTokenRoute;
|
|
693932
|
-
const proxyAdminAddress = await (0,
|
|
693933
|
-
(0,
|
|
694035
|
+
const proxyAdminAddress = await (0,_deploy_proxy_js__WEBPACK_IMPORTED_MODULE_12__/* .proxyAdmin */ .Ey)(provider, proxyAddress);
|
|
694036
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_13__/* .assert */ .v)(await (0,_deploy_proxy_js__WEBPACK_IMPORTED_MODULE_12__/* .isInitialized */ .Dp)(provider, proxyAddress), 'Proxy is not initialized');
|
|
693934
694037
|
updateTransactions.push({
|
|
693935
694038
|
chainId: this.chainId,
|
|
693936
694039
|
annotation: `Upgrading Warp Route implementation on ${this.args.chain}`,
|
|
@@ -693950,7 +694053,7 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693950
694053
|
static async create(params) {
|
|
693951
694054
|
const { chain, config, multiProvider, ccipContractCache, contractVerifier, proxyFactoryFactories, } = params;
|
|
693952
694055
|
const chainName = multiProvider.getChainName(chain);
|
|
693953
|
-
const deployer = new
|
|
694056
|
+
const deployer = new _deploy_js__WEBPACK_IMPORTED_MODULE_26__/* .HypERC20Deployer */ .A7(multiProvider);
|
|
693954
694057
|
const deployedContracts = await deployer.deployContracts(chainName, config);
|
|
693955
694058
|
const warpModule = new EvmWarpModule(multiProvider, {
|
|
693956
694059
|
addresses: {
|
|
@@ -693997,10 +694100,12 @@ class EvmWarpModule extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_M
|
|
|
693997
694100
|
}
|
|
693998
694101
|
}
|
|
693999
694102
|
//# sourceMappingURL=EvmWarpModule.js.map
|
|
694103
|
+
__webpack_async_result__();
|
|
694104
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
694000
694105
|
|
|
694001
694106
|
/***/ }),
|
|
694002
694107
|
|
|
694003
|
-
/***/
|
|
694108
|
+
/***/ 40945:
|
|
694004
694109
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
694005
694110
|
|
|
694006
694111
|
|
|
@@ -694059,193 +694164,8 @@ var proxy = __nccwpck_require__(83697);
|
|
|
694059
694164
|
var token_config = __nccwpck_require__(4169);
|
|
694060
694165
|
// EXTERNAL MODULE: ../sdk/dist/token/types.js
|
|
694061
694166
|
var types = __nccwpck_require__(38466);
|
|
694062
|
-
// EXTERNAL MODULE:
|
|
694063
|
-
var
|
|
694064
|
-
// EXTERNAL MODULE: ../../node_modules/.pnpm/viem@2.39.3_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/_esm/utils/abi/getAbiItem.js
|
|
694065
|
-
var getAbiItem = __nccwpck_require__(60613);
|
|
694066
|
-
// EXTERNAL MODULE: ../../node_modules/.pnpm/viem@2.39.3_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/_esm/utils/abi/parseEventLogs.js
|
|
694067
|
-
var parseEventLogs = __nccwpck_require__(94762);
|
|
694068
|
-
;// CONCATENATED MODULE: ../sdk/dist/rpc/evm/utils.js
|
|
694069
|
-
|
|
694070
|
-
// calling getCode until the creation block is found
|
|
694071
|
-
async function getContractCreationBlockFromRpc(chain, contractAddress, multiProvider) {
|
|
694072
|
-
await assertIsContractAddress(multiProvider, chain, contractAddress);
|
|
694073
|
-
const provider = multiProvider.getProvider(chain);
|
|
694074
|
-
const latestBlock = await provider.getBlockNumber();
|
|
694075
|
-
let low = 0;
|
|
694076
|
-
let high = latestBlock;
|
|
694077
|
-
let creationBlock = latestBlock;
|
|
694078
|
-
while (low <= high) {
|
|
694079
|
-
const mid = Math.floor((low + high) / 2);
|
|
694080
|
-
const isContract = await isContractAddress(multiProvider, chain, contractAddress, mid);
|
|
694081
|
-
if (isContract) {
|
|
694082
|
-
creationBlock = mid;
|
|
694083
|
-
high = mid - 1;
|
|
694084
|
-
}
|
|
694085
|
-
else {
|
|
694086
|
-
low = mid + 1;
|
|
694087
|
-
}
|
|
694088
|
-
}
|
|
694089
|
-
return creationBlock;
|
|
694090
|
-
}
|
|
694091
|
-
async function getLogsFromRpc({ chain, contractAddress, multiProvider, fromBlock, topic, toBlock, range = 500, }) {
|
|
694092
|
-
const provider = multiProvider.getProvider(chain);
|
|
694093
|
-
let currentStartBlock = fromBlock;
|
|
694094
|
-
const endBlock = toBlock ?? (await provider.getBlockNumber());
|
|
694095
|
-
const logs = [];
|
|
694096
|
-
while (currentStartBlock <= endBlock) {
|
|
694097
|
-
const currentEndBlock = currentStartBlock + range < endBlock
|
|
694098
|
-
? currentStartBlock + range
|
|
694099
|
-
: endBlock;
|
|
694100
|
-
const currentLogs = await provider.getLogs({
|
|
694101
|
-
address: contractAddress,
|
|
694102
|
-
fromBlock: currentStartBlock,
|
|
694103
|
-
toBlock: currentEndBlock,
|
|
694104
|
-
topics: [topic],
|
|
694105
|
-
});
|
|
694106
|
-
logs.push(...currentLogs);
|
|
694107
|
-
// +1 because getLogs range is inclusive
|
|
694108
|
-
currentStartBlock += range + 1;
|
|
694109
|
-
}
|
|
694110
|
-
return logs.map((rawLog) => {
|
|
694111
|
-
return {
|
|
694112
|
-
address: rawLog.address,
|
|
694113
|
-
blockNumber: rawLog.blockNumber,
|
|
694114
|
-
data: rawLog.data,
|
|
694115
|
-
logIndex: rawLog.logIndex,
|
|
694116
|
-
topics: rawLog.topics,
|
|
694117
|
-
transactionHash: rawLog.transactionHash,
|
|
694118
|
-
transactionIndex: rawLog.transactionIndex,
|
|
694119
|
-
};
|
|
694120
|
-
});
|
|
694121
|
-
}
|
|
694122
|
-
function viemLogFromGetEventLogsResponse(log) {
|
|
694123
|
-
return {
|
|
694124
|
-
address: log.address,
|
|
694125
|
-
data: log.data,
|
|
694126
|
-
blockNumber: BigInt(log.blockNumber),
|
|
694127
|
-
transactionHash: log.transactionHash,
|
|
694128
|
-
logIndex: Number(log.logIndex),
|
|
694129
|
-
transactionIndex: Number(log.transactionIndex),
|
|
694130
|
-
topics: log.topics,
|
|
694131
|
-
blockHash: null,
|
|
694132
|
-
removed: false,
|
|
694133
|
-
};
|
|
694134
|
-
}
|
|
694135
|
-
//# sourceMappingURL=utils.js.map
|
|
694136
|
-
;// CONCATENATED MODULE: ../sdk/dist/token/xerc20.js
|
|
694137
|
-
|
|
694138
|
-
|
|
694139
|
-
|
|
694140
|
-
|
|
694141
|
-
|
|
694142
|
-
|
|
694143
|
-
const minimalXERC20VSABI = [
|
|
694144
|
-
{
|
|
694145
|
-
anonymous: false,
|
|
694146
|
-
inputs: [
|
|
694147
|
-
{
|
|
694148
|
-
indexed: true,
|
|
694149
|
-
internalType: 'address',
|
|
694150
|
-
name: 'bridge',
|
|
694151
|
-
type: 'address',
|
|
694152
|
-
},
|
|
694153
|
-
{
|
|
694154
|
-
indexed: false,
|
|
694155
|
-
internalType: 'uint112',
|
|
694156
|
-
name: 'bufferCap',
|
|
694157
|
-
type: 'uint112',
|
|
694158
|
-
},
|
|
694159
|
-
{
|
|
694160
|
-
indexed: false,
|
|
694161
|
-
internalType: 'uint128',
|
|
694162
|
-
name: 'rateLimitPerSecond',
|
|
694163
|
-
type: 'uint128',
|
|
694164
|
-
},
|
|
694165
|
-
],
|
|
694166
|
-
name: 'ConfigurationChanged',
|
|
694167
|
-
type: 'event',
|
|
694168
|
-
},
|
|
694169
|
-
];
|
|
694170
|
-
const CONFIGURATION_CHANGED_EVENT_SELECTOR = (0,toEventSelector/* toEventSelector */.h)((0,getAbiItem/* getAbiItem */.iY)({
|
|
694171
|
-
abi: minimalXERC20VSABI,
|
|
694172
|
-
name: 'ConfigurationChanged',
|
|
694173
|
-
}));
|
|
694174
|
-
async function getExtraLockBoxConfigs({ xERC20Address, chain, multiProvider, logger = logging/* rootLogger */.Jk, }) {
|
|
694175
|
-
const explorer = multiProvider.tryGetEvmExplorerMetadata(chain);
|
|
694176
|
-
if (!explorer) {
|
|
694177
|
-
logger.warn(`No block explorer was configured correctly, skipping lockbox derivation on chain ${chain}`);
|
|
694178
|
-
return [];
|
|
694179
|
-
}
|
|
694180
|
-
const logs = await getConfigurationChangedLogsFromExplorerApi({
|
|
694181
|
-
chain,
|
|
694182
|
-
multiProvider,
|
|
694183
|
-
xERC20Address,
|
|
694184
|
-
explorerUrl: explorer.apiUrl,
|
|
694185
|
-
apiKey: explorer.apiKey,
|
|
694186
|
-
});
|
|
694187
|
-
const viemLogs = logs.map(viemLogFromGetEventLogsResponse);
|
|
694188
|
-
return getLockboxesFromLogs(viemLogs, multiProvider.getProvider(chain), chain, logger);
|
|
694189
|
-
}
|
|
694190
|
-
async function getConfigurationChangedLogsFromExplorerApi({ xERC20Address, chain, multiProvider, explorerUrl, apiKey, }) {
|
|
694191
|
-
const contractDeploymentTx = await (0,etherscan/* getContractDeploymentTransaction */.sG)({ apiUrl: explorerUrl, apiKey }, { contractAddress: xERC20Address });
|
|
694192
|
-
const provider = multiProvider.getProvider(chain);
|
|
694193
|
-
const [currentBlockNumber, deploymentTransactionReceipt] = await Promise.all([
|
|
694194
|
-
provider.getBlockNumber(),
|
|
694195
|
-
provider.getTransactionReceipt(contractDeploymentTx.txHash),
|
|
694196
|
-
]);
|
|
694197
|
-
return (0,etherscan/* getLogsFromEtherscanLikeExplorerAPI */.Bf)({ apiUrl: explorerUrl, apiKey }, {
|
|
694198
|
-
address: xERC20Address,
|
|
694199
|
-
fromBlock: deploymentTransactionReceipt.blockNumber,
|
|
694200
|
-
toBlock: currentBlockNumber,
|
|
694201
|
-
topic0: CONFIGURATION_CHANGED_EVENT_SELECTOR,
|
|
694202
|
-
});
|
|
694203
|
-
}
|
|
694204
|
-
async function getLockboxesFromLogs(logs, provider, chain, logger) {
|
|
694205
|
-
const parsedLogs = (0,parseEventLogs/* parseEventLogs */.p)({
|
|
694206
|
-
abi: minimalXERC20VSABI,
|
|
694207
|
-
eventName: 'ConfigurationChanged',
|
|
694208
|
-
logs,
|
|
694209
|
-
});
|
|
694210
|
-
// A bridge might appear more than once in the event logs, we are only
|
|
694211
|
-
// interested in the most recent one for each bridge so we deduplicate
|
|
694212
|
-
// entries here
|
|
694213
|
-
const dedupedBridges = parsedLogs.reduce((acc, log) => {
|
|
694214
|
-
const bridgeAddress = log.args.bridge;
|
|
694215
|
-
const isMostRecentLogForBridge = log.blockNumber > (acc[bridgeAddress]?.blockNumber ?? 0n);
|
|
694216
|
-
if (isMostRecentLogForBridge) {
|
|
694217
|
-
acc[bridgeAddress] = log;
|
|
694218
|
-
}
|
|
694219
|
-
return acc;
|
|
694220
|
-
}, {});
|
|
694221
|
-
const lockboxPromises = Object.values(dedupedBridges)
|
|
694222
|
-
// Removing bridges where the limits are set to 0 because it is equivalent of being deactivated
|
|
694223
|
-
.filter((log) => log.args.bufferCap !== 0n && log.args.rateLimitPerSecond !== 0n)
|
|
694224
|
-
.map(async (log) => {
|
|
694225
|
-
try {
|
|
694226
|
-
const maybeXERC20Lockbox = dist/* IXERC20Lockbox__factory */.Cns.connect(log.args.bridge, provider);
|
|
694227
|
-
await maybeXERC20Lockbox.callStatic.XERC20();
|
|
694228
|
-
return log;
|
|
694229
|
-
}
|
|
694230
|
-
catch {
|
|
694231
|
-
logger.debug(`Contract at address ${log.args.bridge} on chain ${chain} is not a XERC20Lockbox contract.`);
|
|
694232
|
-
return undefined;
|
|
694233
|
-
}
|
|
694234
|
-
});
|
|
694235
|
-
const lockboxes = await Promise.all(lockboxPromises);
|
|
694236
|
-
return lockboxes
|
|
694237
|
-
.filter((log) => log !== undefined)
|
|
694238
|
-
.map((log) => log)
|
|
694239
|
-
.map((log) => ({
|
|
694240
|
-
lockbox: log.args.bridge,
|
|
694241
|
-
limits: {
|
|
694242
|
-
type: types/* XERC20Type */.FT.Velo,
|
|
694243
|
-
bufferCap: log.args.bufferCap.toString(),
|
|
694244
|
-
rateLimitPerSecond: log.args.rateLimitPerSecond.toString(),
|
|
694245
|
-
},
|
|
694246
|
-
}));
|
|
694247
|
-
}
|
|
694248
|
-
//# sourceMappingURL=xerc20.js.map
|
|
694167
|
+
// EXTERNAL MODULE: ../sdk/dist/token/xerc20.js + 1 modules
|
|
694168
|
+
var xerc20 = __nccwpck_require__(32892);
|
|
694249
694169
|
;// CONCATENATED MODULE: ../sdk/dist/token/EvmWarpRouteReader.js
|
|
694250
694170
|
|
|
694251
694171
|
|
|
@@ -694628,7 +694548,7 @@ class EvmWarpRouteReader extends EvmRouterReader/* EvmRouterReader */.V {
|
|
|
694628
694548
|
];
|
|
694629
694549
|
const xERC20 = new lib.Contract(xERC20Address, rateLimitsABI, this.provider);
|
|
694630
694550
|
try {
|
|
694631
|
-
const extraBridgesLimits = await getExtraLockBoxConfigs({
|
|
694551
|
+
const extraBridgesLimits = await (0,xerc20/* getExtraLockBoxConfigs */.g5)({
|
|
694632
694552
|
chain: this.chain,
|
|
694633
694553
|
multiProvider: this.multiProvider,
|
|
694634
694554
|
xERC20Address,
|
|
@@ -694938,6 +694858,426 @@ class EvmWarpRouteReader extends EvmRouterReader/* EvmRouterReader */.V {
|
|
|
694938
694858
|
|
|
694939
694859
|
/***/ }),
|
|
694940
694860
|
|
|
694861
|
+
/***/ 5715:
|
|
694862
|
+
/***/ ((__webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
694863
|
+
|
|
694864
|
+
__nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
694865
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
694866
|
+
/* harmony export */ J: () => (/* binding */ EvmXERC20Module)
|
|
694867
|
+
/* harmony export */ });
|
|
694868
|
+
/* harmony import */ var _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(71711);
|
|
694869
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(94523);
|
|
694870
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(21387);
|
|
694871
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(93142);
|
|
694872
|
+
/* harmony import */ var _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(53387);
|
|
694873
|
+
/* harmony import */ var _providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(95176);
|
|
694874
|
+
/* harmony import */ var _EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(60116);
|
|
694875
|
+
/* harmony import */ var _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(58686);
|
|
694876
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(4169);
|
|
694877
|
+
/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(38466);
|
|
694878
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__, _providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_4__]);
|
|
694879
|
+
([_EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__, _providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
694880
|
+
|
|
694881
|
+
|
|
694882
|
+
|
|
694883
|
+
|
|
694884
|
+
|
|
694885
|
+
|
|
694886
|
+
|
|
694887
|
+
|
|
694888
|
+
/**
|
|
694889
|
+
* Module for managing XERC20 mint/burn limits and bridges.
|
|
694890
|
+
* Follows HyperlaneModule pattern with read() and update() methods.
|
|
694891
|
+
* Supports both Standard XERC20 (setLimits) and Velodrome XERC20 (setBufferCap/addBridge/removeBridge).
|
|
694892
|
+
*/
|
|
694893
|
+
class EvmXERC20Module extends _core_AbstractHyperlaneModule_js__WEBPACK_IMPORTED_MODULE_1__/* .HyperlaneModule */ .x {
|
|
694894
|
+
multiProvider;
|
|
694895
|
+
logger = _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_2__/* .rootLogger */ .Jk.child({ module: 'EvmXERC20Module' });
|
|
694896
|
+
reader;
|
|
694897
|
+
multiProtocolProvider;
|
|
694898
|
+
chainName;
|
|
694899
|
+
constructor(multiProvider, args) {
|
|
694900
|
+
super(args);
|
|
694901
|
+
this.multiProvider = multiProvider;
|
|
694902
|
+
this.chainName = this.multiProvider.getChainName(args.chain);
|
|
694903
|
+
this.reader = new _EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__/* .EvmXERC20Reader */ .gx(multiProvider, args.chain);
|
|
694904
|
+
this.multiProtocolProvider =
|
|
694905
|
+
_providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_4__/* .MultiProtocolProvider */ .f.fromMultiProvider(multiProvider);
|
|
694906
|
+
}
|
|
694907
|
+
async read() {
|
|
694908
|
+
const type = await this.reader.deriveXERC20TokenType(this.args.addresses.xERC20);
|
|
694909
|
+
let bridges = this.getExpectedBridges();
|
|
694910
|
+
if (type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo) {
|
|
694911
|
+
const onChainBridges = await this.reader.readOnChainBridges(this.args.addresses.xERC20, type);
|
|
694912
|
+
bridges = [...new Set([...bridges, ...onChainBridges])];
|
|
694913
|
+
}
|
|
694914
|
+
const limits = await this.reader.readLimits(this.args.addresses.xERC20, bridges, type);
|
|
694915
|
+
return { type, limits };
|
|
694916
|
+
}
|
|
694917
|
+
/**
|
|
694918
|
+
* Generate transactions to update XERC20 limits to match expected config.
|
|
694919
|
+
* Detects drift and generates correction transactions.
|
|
694920
|
+
*/
|
|
694921
|
+
async update(expectedConfig) {
|
|
694922
|
+
const actualConfig = await this.read();
|
|
694923
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_6__/* .assert */ .v)(expectedConfig.type === actualConfig.type, `XERC20 type mismatch: expected ${expectedConfig.type} but on-chain is ${actualConfig.type}`);
|
|
694924
|
+
const transactions = [];
|
|
694925
|
+
const { missingBridges, extraBridges, limitMismatches } = this.detectDriftFromConfigs(expectedConfig, actualConfig);
|
|
694926
|
+
for (const bridge of missingBridges) {
|
|
694927
|
+
const limits = expectedConfig.limits[bridge];
|
|
694928
|
+
if (limits) {
|
|
694929
|
+
const txs = await this.generateAddBridgeTxs(bridge, limits);
|
|
694930
|
+
transactions.push(...txs);
|
|
694931
|
+
}
|
|
694932
|
+
}
|
|
694933
|
+
for (const { bridge, expected } of limitMismatches) {
|
|
694934
|
+
const txs = await this.generateSetLimitsTxs(bridge, expected);
|
|
694935
|
+
transactions.push(...txs);
|
|
694936
|
+
}
|
|
694937
|
+
if (expectedConfig.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo) {
|
|
694938
|
+
for (const bridge of extraBridges) {
|
|
694939
|
+
const txs = await this.generateRemoveBridgeTxs(bridge);
|
|
694940
|
+
transactions.push(...txs);
|
|
694941
|
+
}
|
|
694942
|
+
}
|
|
694943
|
+
if (transactions.length > 0) {
|
|
694944
|
+
this.logger.info(`Generated ${transactions.length} XERC20 correction txs: ` +
|
|
694945
|
+
`${missingBridges.length} missing, ${limitMismatches.length} mismatches, ${extraBridges.length} extra`);
|
|
694946
|
+
}
|
|
694947
|
+
return transactions;
|
|
694948
|
+
}
|
|
694949
|
+
/**
|
|
694950
|
+
* Detect drift between expected and actual configurations.
|
|
694951
|
+
*/
|
|
694952
|
+
detectDriftFromConfigs(expected, actual) {
|
|
694953
|
+
const missingBridges = [];
|
|
694954
|
+
const limitMismatches = [];
|
|
694955
|
+
const expectedBridges = Object.keys(expected.limits).map((addr) => (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_7__/* .normalizeAddress */ .Qh)(addr));
|
|
694956
|
+
const expectedBridgesSet = new Set(expectedBridges);
|
|
694957
|
+
for (const [bridge, expectedLimits] of Object.entries(expected.limits)) {
|
|
694958
|
+
const normalizedBridge = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_7__/* .normalizeAddress */ .Qh)(bridge);
|
|
694959
|
+
const actualLimits = actual.limits[normalizedBridge] ?? actual.limits[bridge];
|
|
694960
|
+
if (!actualLimits || (0,_EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__/* .limitsAreZero */ .JT)(actualLimits)) {
|
|
694961
|
+
missingBridges.push(bridge);
|
|
694962
|
+
continue;
|
|
694963
|
+
}
|
|
694964
|
+
if (!(0,_EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__/* .limitsMatch */ .EE)(expectedLimits, actualLimits)) {
|
|
694965
|
+
limitMismatches.push({
|
|
694966
|
+
bridge,
|
|
694967
|
+
expected: expectedLimits,
|
|
694968
|
+
actual: actualLimits,
|
|
694969
|
+
});
|
|
694970
|
+
}
|
|
694971
|
+
}
|
|
694972
|
+
let extraBridges = [];
|
|
694973
|
+
if (expected.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo) {
|
|
694974
|
+
extraBridges = Object.keys(actual.limits)
|
|
694975
|
+
.filter((addr) => {
|
|
694976
|
+
const normalized = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_7__/* .normalizeAddress */ .Qh)(addr);
|
|
694977
|
+
return (!expectedBridgesSet.has(normalized) &&
|
|
694978
|
+
!(0,_EvmXERC20Reader_js__WEBPACK_IMPORTED_MODULE_3__/* .limitsAreZero */ .JT)(actual.limits[addr]));
|
|
694979
|
+
})
|
|
694980
|
+
.map((addr) => (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_7__/* .normalizeAddress */ .Qh)(addr));
|
|
694981
|
+
}
|
|
694982
|
+
return { missingBridges, extraBridges, limitMismatches };
|
|
694983
|
+
}
|
|
694984
|
+
/**
|
|
694985
|
+
* Get expected bridge addresses from config.
|
|
694986
|
+
*/
|
|
694987
|
+
getExpectedBridges() {
|
|
694988
|
+
return Object.keys(this.args.config.limits);
|
|
694989
|
+
}
|
|
694990
|
+
/**
|
|
694991
|
+
* Generate transactions to set limits for a bridge.
|
|
694992
|
+
*/
|
|
694993
|
+
async generateSetLimitsTxs(bridge, limits) {
|
|
694994
|
+
const xERC20Address = this.args.addresses.xERC20;
|
|
694995
|
+
const chainId = this.multiProvider.getEvmChainId(this.chainName);
|
|
694996
|
+
const transactions = [];
|
|
694997
|
+
if (limits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard) {
|
|
694998
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_8__/* .EvmXERC20Adapter */ .EE(this.chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
694999
|
+
const tx = await adapter.populateSetLimitsTx(bridge, BigInt(limits.mint), BigInt(limits.burn));
|
|
695000
|
+
transactions.push(this.annotateTransaction(tx, chainId, xERC20Address));
|
|
695001
|
+
}
|
|
695002
|
+
else {
|
|
695003
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_8__/* .EvmXERC20VSAdapter */ .rQ(this.chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
695004
|
+
const bufferCapTx = await adapter.populateSetBufferCapTx(bridge, BigInt(limits.bufferCap));
|
|
695005
|
+
transactions.push(this.annotateTransaction(bufferCapTx, chainId, xERC20Address));
|
|
695006
|
+
const rateLimitTx = await adapter.populateSetRateLimitPerSecondTx(bridge, BigInt(limits.rateLimitPerSecond));
|
|
695007
|
+
transactions.push(this.annotateTransaction(rateLimitTx, chainId, xERC20Address));
|
|
695008
|
+
}
|
|
695009
|
+
return transactions;
|
|
695010
|
+
}
|
|
695011
|
+
/**
|
|
695012
|
+
* Generate transactions to add a bridge.
|
|
695013
|
+
* For Standard XERC20, equivalent to setLimits.
|
|
695014
|
+
* For Velodrome, uses addBridge function.
|
|
695015
|
+
*/
|
|
695016
|
+
async generateAddBridgeTxs(bridge, limits) {
|
|
695017
|
+
if (limits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard) {
|
|
695018
|
+
return this.generateSetLimitsTxs(bridge, limits);
|
|
695019
|
+
}
|
|
695020
|
+
const xERC20Address = this.args.addresses.xERC20;
|
|
695021
|
+
const chainId = this.multiProvider.getEvmChainId(this.chainName);
|
|
695022
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_8__/* .EvmXERC20VSAdapter */ .rQ(this.chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
695023
|
+
const tx = await adapter.populateAddBridgeTx(BigInt(limits.bufferCap), BigInt(limits.rateLimitPerSecond), bridge);
|
|
695024
|
+
return [this.annotateTransaction(tx, chainId, xERC20Address)];
|
|
695025
|
+
}
|
|
695026
|
+
/**
|
|
695027
|
+
* Generate transactions to remove a bridge (Velodrome only).
|
|
695028
|
+
*/
|
|
695029
|
+
async generateRemoveBridgeTxs(bridge) {
|
|
695030
|
+
const xERC20Address = this.args.addresses.xERC20;
|
|
695031
|
+
const chainId = this.multiProvider.getEvmChainId(this.chainName);
|
|
695032
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_8__/* .EvmXERC20VSAdapter */ .rQ(this.chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
695033
|
+
const tx = await adapter.populateRemoveBridgeTx(bridge);
|
|
695034
|
+
return [this.annotateTransaction(tx, chainId, xERC20Address)];
|
|
695035
|
+
}
|
|
695036
|
+
annotateTransaction(tx, chainId, to) {
|
|
695037
|
+
return {
|
|
695038
|
+
...tx,
|
|
695039
|
+
chainId,
|
|
695040
|
+
to,
|
|
695041
|
+
annotation: `XERC20 limit update for ${to}`,
|
|
695042
|
+
};
|
|
695043
|
+
}
|
|
695044
|
+
static async fromWarpRouteConfig(multiProvider, chain, warpRouteConfig, warpRouteAddress) {
|
|
695045
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_6__/* .assert */ .v)(warpRouteConfig.type === _config_js__WEBPACK_IMPORTED_MODULE_9__/* .TokenType */ .ks.XERC20 ||
|
|
695046
|
+
warpRouteConfig.type === _config_js__WEBPACK_IMPORTED_MODULE_9__/* .TokenType */ .ks.XERC20Lockbox, `Expected XERC20 or XERC20Lockbox token type, got ${warpRouteConfig.type}`);
|
|
695047
|
+
let xERC20Address = warpRouteConfig.token;
|
|
695048
|
+
if (warpRouteConfig.type === _config_js__WEBPACK_IMPORTED_MODULE_9__/* .TokenType */ .ks.XERC20Lockbox) {
|
|
695049
|
+
const provider = multiProvider.getProvider(chain);
|
|
695050
|
+
const hypXERC20Lockbox = _hyperlane_xyz_core__WEBPACK_IMPORTED_MODULE_0__/* .HypXERC20Lockbox__factory */ .OK0.connect(warpRouteConfig.token, provider);
|
|
695051
|
+
xERC20Address = await hypXERC20Lockbox.xERC20();
|
|
695052
|
+
}
|
|
695053
|
+
const limits = {};
|
|
695054
|
+
const xERC20Config = warpRouteConfig.xERC20;
|
|
695055
|
+
if (xERC20Config?.warpRouteLimits) {
|
|
695056
|
+
const warpRouteLimits = xERC20Config.warpRouteLimits;
|
|
695057
|
+
if (warpRouteLimits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard) {
|
|
695058
|
+
if (warpRouteLimits.mint != null && warpRouteLimits.burn != null) {
|
|
695059
|
+
limits[warpRouteAddress] = {
|
|
695060
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard,
|
|
695061
|
+
mint: warpRouteLimits.mint,
|
|
695062
|
+
burn: warpRouteLimits.burn,
|
|
695063
|
+
};
|
|
695064
|
+
}
|
|
695065
|
+
}
|
|
695066
|
+
else if (warpRouteLimits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo) {
|
|
695067
|
+
if (warpRouteLimits.bufferCap != null &&
|
|
695068
|
+
warpRouteLimits.rateLimitPerSecond != null) {
|
|
695069
|
+
limits[warpRouteAddress] = {
|
|
695070
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo,
|
|
695071
|
+
bufferCap: warpRouteLimits.bufferCap,
|
|
695072
|
+
rateLimitPerSecond: warpRouteLimits.rateLimitPerSecond,
|
|
695073
|
+
};
|
|
695074
|
+
}
|
|
695075
|
+
}
|
|
695076
|
+
}
|
|
695077
|
+
if (xERC20Config?.extraBridges) {
|
|
695078
|
+
for (const extraBridge of xERC20Config.extraBridges) {
|
|
695079
|
+
const { lockbox, limits: bridgeLimits } = extraBridge;
|
|
695080
|
+
if (bridgeLimits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard) {
|
|
695081
|
+
if (bridgeLimits.mint != null && bridgeLimits.burn != null) {
|
|
695082
|
+
limits[lockbox] = {
|
|
695083
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard,
|
|
695084
|
+
mint: bridgeLimits.mint,
|
|
695085
|
+
burn: bridgeLimits.burn,
|
|
695086
|
+
};
|
|
695087
|
+
}
|
|
695088
|
+
}
|
|
695089
|
+
else if (bridgeLimits.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo) {
|
|
695090
|
+
if (bridgeLimits.bufferCap != null &&
|
|
695091
|
+
bridgeLimits.rateLimitPerSecond != null) {
|
|
695092
|
+
limits[lockbox] = {
|
|
695093
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo,
|
|
695094
|
+
bufferCap: bridgeLimits.bufferCap,
|
|
695095
|
+
rateLimitPerSecond: bridgeLimits.rateLimitPerSecond,
|
|
695096
|
+
};
|
|
695097
|
+
}
|
|
695098
|
+
}
|
|
695099
|
+
}
|
|
695100
|
+
}
|
|
695101
|
+
const type = xERC20Config?.warpRouteLimits?.type === _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo
|
|
695102
|
+
? _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Velo
|
|
695103
|
+
: _types_js__WEBPACK_IMPORTED_MODULE_5__/* .XERC20Type */ .FT.Standard;
|
|
695104
|
+
const config = { type, limits };
|
|
695105
|
+
const module = new EvmXERC20Module(multiProvider, {
|
|
695106
|
+
addresses: { xERC20: xERC20Address, warpRoute: warpRouteAddress },
|
|
695107
|
+
chain,
|
|
695108
|
+
config,
|
|
695109
|
+
});
|
|
695110
|
+
return { module, config };
|
|
695111
|
+
}
|
|
695112
|
+
}
|
|
695113
|
+
//# sourceMappingURL=EvmXERC20Module.js.map
|
|
695114
|
+
__webpack_async_result__();
|
|
695115
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
695116
|
+
|
|
695117
|
+
/***/ }),
|
|
695118
|
+
|
|
695119
|
+
/***/ 60116:
|
|
695120
|
+
/***/ ((__webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
695121
|
+
|
|
695122
|
+
__nccwpck_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
695123
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
695124
|
+
/* harmony export */ EE: () => (/* binding */ limitsMatch),
|
|
695125
|
+
/* harmony export */ JT: () => (/* binding */ limitsAreZero),
|
|
695126
|
+
/* harmony export */ gx: () => (/* binding */ EvmXERC20Reader)
|
|
695127
|
+
/* harmony export */ });
|
|
695128
|
+
/* harmony import */ var viem__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(94762);
|
|
695129
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(94523);
|
|
695130
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(93142);
|
|
695131
|
+
/* harmony import */ var _providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(95176);
|
|
695132
|
+
/* harmony import */ var _utils_HyperlaneReader_js__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(49680);
|
|
695133
|
+
/* harmony import */ var _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(58686);
|
|
695134
|
+
/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(38466);
|
|
695135
|
+
/* harmony import */ var _xerc20_abi_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(48798);
|
|
695136
|
+
/* harmony import */ var _xerc20_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(32892);
|
|
695137
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_2__]);
|
|
695138
|
+
_providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
695139
|
+
|
|
695140
|
+
|
|
695141
|
+
|
|
695142
|
+
|
|
695143
|
+
|
|
695144
|
+
|
|
695145
|
+
|
|
695146
|
+
|
|
695147
|
+
/**
|
|
695148
|
+
* Reader for on-chain XERC20 state.
|
|
695149
|
+
* Reads limits and bridge configurations from XERC20 contracts.
|
|
695150
|
+
*/
|
|
695151
|
+
class EvmXERC20Reader extends _utils_HyperlaneReader_js__WEBPACK_IMPORTED_MODULE_0__/* .HyperlaneReader */ .S {
|
|
695152
|
+
multiProvider;
|
|
695153
|
+
logger = _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_1__/* .rootLogger */ .Jk.child({ module: 'EvmXERC20Reader' });
|
|
695154
|
+
multiProtocolProvider;
|
|
695155
|
+
constructor(multiProvider, chain) {
|
|
695156
|
+
super(multiProvider, chain);
|
|
695157
|
+
this.multiProvider = multiProvider;
|
|
695158
|
+
this.multiProtocolProvider =
|
|
695159
|
+
_providers_MultiProtocolProvider_js__WEBPACK_IMPORTED_MODULE_2__/* .MultiProtocolProvider */ .f.fromMultiProvider(multiProvider);
|
|
695160
|
+
}
|
|
695161
|
+
async deriveXERC20TokenType(xERC20Address) {
|
|
695162
|
+
return (0,_xerc20_js__WEBPACK_IMPORTED_MODULE_3__/* .deriveXERC20TokenType */ .bL)(this.multiProvider, this.chain, xERC20Address);
|
|
695163
|
+
}
|
|
695164
|
+
/**
|
|
695165
|
+
* Read current limits for the specified bridges.
|
|
695166
|
+
*/
|
|
695167
|
+
async readLimits(xERC20Address, bridges, type) {
|
|
695168
|
+
const limitsMap = {};
|
|
695169
|
+
const chainName = this.multiProvider.getChainName(this.chain);
|
|
695170
|
+
if (type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard) {
|
|
695171
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_5__/* .EvmXERC20Adapter */ .EE(chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
695172
|
+
for (const bridge of bridges) {
|
|
695173
|
+
const limits = await adapter.getLimits(bridge);
|
|
695174
|
+
limitsMap[bridge] = this.toStandardLimits(limits);
|
|
695175
|
+
}
|
|
695176
|
+
}
|
|
695177
|
+
else {
|
|
695178
|
+
const adapter = new _adapters_EvmTokenAdapter_js__WEBPACK_IMPORTED_MODULE_5__/* .EvmXERC20VSAdapter */ .rQ(chainName, this.multiProtocolProvider, { token: xERC20Address });
|
|
695179
|
+
for (const bridge of bridges) {
|
|
695180
|
+
const rateLimits = await adapter.getRateLimits(bridge);
|
|
695181
|
+
limitsMap[bridge] = this.toVeloLimits(rateLimits);
|
|
695182
|
+
}
|
|
695183
|
+
}
|
|
695184
|
+
return limitsMap;
|
|
695185
|
+
}
|
|
695186
|
+
/**
|
|
695187
|
+
* Read all bridges configured on-chain for a Velodrome XERC20 by parsing ConfigurationChanged events.
|
|
695188
|
+
* Returns empty array for Standard XERC20 since it has no event-based bridge enumeration.
|
|
695189
|
+
* Note: Queries from block 0 which may be slow on chains with long histories.
|
|
695190
|
+
*/
|
|
695191
|
+
async readOnChainBridges(xERC20Address, type) {
|
|
695192
|
+
if (type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard) {
|
|
695193
|
+
this.logger.debug('Standard XERC20 does not support on-chain bridge enumeration');
|
|
695194
|
+
return [];
|
|
695195
|
+
}
|
|
695196
|
+
const filter = {
|
|
695197
|
+
address: xERC20Address,
|
|
695198
|
+
topics: [_xerc20_abi_js__WEBPACK_IMPORTED_MODULE_6__/* .CONFIGURATION_CHANGED_EVENT_SELECTOR */ .v],
|
|
695199
|
+
fromBlock: 0,
|
|
695200
|
+
toBlock: 'latest',
|
|
695201
|
+
};
|
|
695202
|
+
const rawLogs = await this.provider.getLogs(filter);
|
|
695203
|
+
const logs = rawLogs.map((log) => ({
|
|
695204
|
+
address: log.address,
|
|
695205
|
+
blockHash: log.blockHash,
|
|
695206
|
+
blockNumber: BigInt(log.blockNumber),
|
|
695207
|
+
data: log.data,
|
|
695208
|
+
logIndex: log.logIndex,
|
|
695209
|
+
transactionHash: log.transactionHash,
|
|
695210
|
+
transactionIndex: log.transactionIndex,
|
|
695211
|
+
removed: log.removed,
|
|
695212
|
+
topics: log.topics,
|
|
695213
|
+
}));
|
|
695214
|
+
const parsedLogs = (0,viem__WEBPACK_IMPORTED_MODULE_7__/* .parseEventLogs */ .p)({
|
|
695215
|
+
abi: _xerc20_abi_js__WEBPACK_IMPORTED_MODULE_6__/* .XERC20_VS_ABI */ .y,
|
|
695216
|
+
eventName: 'ConfigurationChanged',
|
|
695217
|
+
logs,
|
|
695218
|
+
});
|
|
695219
|
+
// Track latest log per bridge (use logIndex as tiebreaker for same block)
|
|
695220
|
+
const bridgeToLatestLog = new Map();
|
|
695221
|
+
for (const log of parsedLogs) {
|
|
695222
|
+
const bridge = (0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .normalizeAddress */ .Qh)(log.args.bridge);
|
|
695223
|
+
const existing = bridgeToLatestLog.get(bridge);
|
|
695224
|
+
const isMoreRecent = !existing ||
|
|
695225
|
+
log.blockNumber > existing.blockNumber ||
|
|
695226
|
+
(log.blockNumber === existing.blockNumber &&
|
|
695227
|
+
log.logIndex > existing.logIndex);
|
|
695228
|
+
if (isMoreRecent) {
|
|
695229
|
+
bridgeToLatestLog.set(bridge, log);
|
|
695230
|
+
}
|
|
695231
|
+
}
|
|
695232
|
+
// Filter to active bridges (non-zero limits)
|
|
695233
|
+
const activeBridges = [];
|
|
695234
|
+
for (const [bridge, log] of bridgeToLatestLog) {
|
|
695235
|
+
const hasNonZeroLimits = log.args.bufferCap !== 0n || log.args.rateLimitPerSecond !== 0n;
|
|
695236
|
+
if (hasNonZeroLimits) {
|
|
695237
|
+
activeBridges.push(bridge);
|
|
695238
|
+
}
|
|
695239
|
+
}
|
|
695240
|
+
return activeBridges;
|
|
695241
|
+
}
|
|
695242
|
+
toStandardLimits(limits) {
|
|
695243
|
+
return {
|
|
695244
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard,
|
|
695245
|
+
mint: limits.mint.toString(),
|
|
695246
|
+
burn: limits.burn.toString(),
|
|
695247
|
+
};
|
|
695248
|
+
}
|
|
695249
|
+
toVeloLimits(rateLimits) {
|
|
695250
|
+
return {
|
|
695251
|
+
type: _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Velo,
|
|
695252
|
+
bufferCap: rateLimits.bufferCap.toString(),
|
|
695253
|
+
rateLimitPerSecond: rateLimits.rateLimitPerSecond.toString(),
|
|
695254
|
+
};
|
|
695255
|
+
}
|
|
695256
|
+
}
|
|
695257
|
+
function limitsAreZero(limits) {
|
|
695258
|
+
if (limits.type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard) {
|
|
695259
|
+
return limits.mint === '0' && limits.burn === '0';
|
|
695260
|
+
}
|
|
695261
|
+
return limits.bufferCap === '0' && limits.rateLimitPerSecond === '0';
|
|
695262
|
+
}
|
|
695263
|
+
function limitsMatch(a, b) {
|
|
695264
|
+
if (a.type !== b.type)
|
|
695265
|
+
return false;
|
|
695266
|
+
if (a.type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard && b.type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Standard) {
|
|
695267
|
+
return a.mint === b.mint && a.burn === b.burn;
|
|
695268
|
+
}
|
|
695269
|
+
if (a.type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Velo && b.type === _types_js__WEBPACK_IMPORTED_MODULE_4__/* .XERC20Type */ .FT.Velo) {
|
|
695270
|
+
return (a.bufferCap === b.bufferCap &&
|
|
695271
|
+
a.rateLimitPerSecond === b.rateLimitPerSecond);
|
|
695272
|
+
}
|
|
695273
|
+
return false;
|
|
695274
|
+
}
|
|
695275
|
+
//# sourceMappingURL=EvmXERC20Reader.js.map
|
|
695276
|
+
__webpack_async_result__();
|
|
695277
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
695278
|
+
|
|
695279
|
+
/***/ }),
|
|
695280
|
+
|
|
694941
695281
|
/***/ 97518:
|
|
694942
695282
|
/***/ ((__webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
694943
695283
|
|
|
@@ -696838,10 +697178,12 @@ __nccwpck_require__.d(__webpack_exports__, {
|
|
|
696838
697178
|
D8: () => (/* binding */ EvmHypXERC20LockboxAdapter),
|
|
696839
697179
|
vo: () => (/* binding */ EvmMovableCollateralAdapter),
|
|
696840
697180
|
L8: () => (/* binding */ EvmNativeTokenAdapter),
|
|
696841
|
-
d8: () => (/* binding */ EvmTokenAdapter)
|
|
697181
|
+
d8: () => (/* binding */ EvmTokenAdapter),
|
|
697182
|
+
EE: () => (/* binding */ EvmXERC20Adapter),
|
|
697183
|
+
rQ: () => (/* binding */ EvmXERC20VSAdapter)
|
|
696842
697184
|
});
|
|
696843
697185
|
|
|
696844
|
-
// UNUSED EXPORTS: EvmHypCollateralAdapter, EvmHypVSXERC20Adapter, EvmHypVSXERC20LockboxAdapter
|
|
697186
|
+
// UNUSED EXPORTS: EvmHypCollateralAdapter, EvmHypVSXERC20Adapter, EvmHypVSXERC20LockboxAdapter
|
|
696845
697187
|
|
|
696846
697188
|
// EXTERNAL MODULE: ../../node_modules/.pnpm/ethers@5.8.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib/index.js
|
|
696847
697189
|
var lib = __nccwpck_require__(61934);
|
|
@@ -696853,6 +697195,8 @@ var validation = __nccwpck_require__(21387);
|
|
|
696853
697195
|
var addresses = __nccwpck_require__(93142);
|
|
696854
697196
|
// EXTERNAL MODULE: ../utils/dist/typeof.js
|
|
696855
697197
|
var dist_typeof = __nccwpck_require__(73689);
|
|
697198
|
+
// EXTERNAL MODULE: ../utils/dist/async.js
|
|
697199
|
+
var dist_async = __nccwpck_require__(14918);
|
|
696856
697200
|
// EXTERNAL MODULE: ../sdk/dist/app/MultiProtocolApp.js
|
|
696857
697201
|
var MultiProtocolApp = __nccwpck_require__(48381);
|
|
696858
697202
|
;// CONCATENATED MODULE: ../sdk/dist/consts/numbers.js
|
|
@@ -697075,7 +697419,7 @@ class BaseEvmHypCollateralAdapter extends EvmHypSyntheticAdapter {
|
|
|
697075
697419
|
multiProvider;
|
|
697076
697420
|
addresses;
|
|
697077
697421
|
collateralContract;
|
|
697078
|
-
wrappedTokenAddress;
|
|
697422
|
+
wrappedTokenAddress = new dist_async/* LazyAsync */.Ru(() => this.loadWrappedTokenAddress());
|
|
697079
697423
|
constructor(chainName, multiProvider, addresses) {
|
|
697080
697424
|
super(chainName, multiProvider, addresses);
|
|
697081
697425
|
this.chainName = chainName;
|
|
@@ -697084,10 +697428,10 @@ class BaseEvmHypCollateralAdapter extends EvmHypSyntheticAdapter {
|
|
|
697084
697428
|
this.collateralContract = dist/* TokenRouter__factory */.NgW.connect(addresses.token, this.getProvider());
|
|
697085
697429
|
}
|
|
697086
697430
|
async getWrappedTokenAddress() {
|
|
697087
|
-
|
|
697088
|
-
|
|
697089
|
-
|
|
697090
|
-
return this.
|
|
697431
|
+
return this.wrappedTokenAddress.get();
|
|
697432
|
+
}
|
|
697433
|
+
async loadWrappedTokenAddress() {
|
|
697434
|
+
return this.collateralContract.token();
|
|
697091
697435
|
}
|
|
697092
697436
|
async getWrappedTokenAdapter() {
|
|
697093
697437
|
return new EvmTokenAdapter(this.chainName, this.multiProvider, {
|
|
@@ -697135,11 +697479,8 @@ class EvmHypCollateralAdapter extends BaseEvmHypCollateralAdapter {
|
|
|
697135
697479
|
this.addresses = addresses;
|
|
697136
697480
|
this.collateralContract = dist/* HypERC20Collateral__factory */.Nfu.connect(addresses.token, this.getProvider());
|
|
697137
697481
|
}
|
|
697138
|
-
async
|
|
697139
|
-
|
|
697140
|
-
this.wrappedTokenAddress = await this.collateralContract.wrappedToken();
|
|
697141
|
-
}
|
|
697142
|
-
return this.wrappedTokenAddress;
|
|
697482
|
+
async loadWrappedTokenAddress() {
|
|
697483
|
+
return this.collateralContract.wrappedToken();
|
|
697143
697484
|
}
|
|
697144
697485
|
}
|
|
697145
697486
|
class EvmMovableCollateralAdapter extends EvmHypCollateralAdapter {
|
|
@@ -697233,11 +697574,8 @@ class EvmHypRebaseCollateralAdapter extends BaseEvmHypCollateralAdapter {
|
|
|
697233
697574
|
this.addresses = addresses;
|
|
697234
697575
|
this.collateralContract = dist/* HypERC4626Collateral__factory */.ns7.connect(addresses.token, this.getProvider());
|
|
697235
697576
|
}
|
|
697236
|
-
async
|
|
697237
|
-
|
|
697238
|
-
this.wrappedTokenAddress = await this.collateralContract.wrappedToken();
|
|
697239
|
-
}
|
|
697240
|
-
return this.wrappedTokenAddress;
|
|
697577
|
+
async loadWrappedTokenAddress() {
|
|
697578
|
+
return this.collateralContract.wrappedToken();
|
|
697241
697579
|
}
|
|
697242
697580
|
async getBridgedSupply(options) {
|
|
697243
697581
|
const vault = dist/* ERC4626__factory */.RTL.connect(await this.collateralContract.vault(), this.getProvider());
|
|
@@ -701616,6 +701954,8 @@ function decodeTransferInstructionUnchecked({ programId, keys: [source, destinat
|
|
|
701616
701954
|
var lib = __nccwpck_require__(95932);
|
|
701617
701955
|
// EXTERNAL MODULE: ../utils/dist/validation.js
|
|
701618
701956
|
var validation = __nccwpck_require__(21387);
|
|
701957
|
+
// EXTERNAL MODULE: ../utils/dist/async.js
|
|
701958
|
+
var dist_async = __nccwpck_require__(14918);
|
|
701619
701959
|
// EXTERNAL MODULE: ../utils/dist/typeof.js
|
|
701620
701960
|
var dist_typeof = __nccwpck_require__(73689);
|
|
701621
701961
|
// EXTERNAL MODULE: ../utils/dist/addresses.js
|
|
@@ -702965,7 +703305,7 @@ class SealevelHypTokenAdapter extends SealevelTokenAdapter {
|
|
|
702965
703305
|
multiProvider;
|
|
702966
703306
|
warpProgramPubKey;
|
|
702967
703307
|
addresses;
|
|
702968
|
-
|
|
703308
|
+
tokenAccountData = new dist_async/* LazyAsync */.Ru(() => this.loadTokenAccountData());
|
|
702969
703309
|
constructor(chainName, multiProvider, addresses) {
|
|
702970
703310
|
super(chainName, multiProvider, { token: addresses.token });
|
|
702971
703311
|
this.chainName = chainName;
|
|
@@ -702974,16 +703314,15 @@ class SealevelHypTokenAdapter extends SealevelTokenAdapter {
|
|
|
702974
703314
|
this.warpProgramPubKey = new index_cjs/* PublicKey */.J3(addresses.warpRouter);
|
|
702975
703315
|
}
|
|
702976
703316
|
async getTokenAccountData() {
|
|
702977
|
-
|
|
702978
|
-
|
|
702979
|
-
|
|
702980
|
-
|
|
702981
|
-
|
|
702982
|
-
|
|
702983
|
-
|
|
702984
|
-
|
|
702985
|
-
|
|
702986
|
-
return this.cachedTokenAccountData;
|
|
703317
|
+
return this.tokenAccountData.get();
|
|
703318
|
+
}
|
|
703319
|
+
async loadTokenAccountData() {
|
|
703320
|
+
const tokenPda = this.deriveHypTokenAccount();
|
|
703321
|
+
const accountInfo = await this.getProvider().getAccountInfo(tokenPda);
|
|
703322
|
+
if (!accountInfo)
|
|
703323
|
+
throw new Error(`No account info found for ${tokenPda}`);
|
|
703324
|
+
const wrappedData = (0,lib.deserializeUnchecked)(SealevelHyperlaneTokenDataSchema, sealevelSerialization/* SealevelAccountDataWrapper */.aU, accountInfo.data);
|
|
703325
|
+
return wrappedData.data;
|
|
702987
703326
|
}
|
|
702988
703327
|
async getMetadata() {
|
|
702989
703328
|
const tokenData = await this.getTokenAccountData();
|
|
@@ -703409,15 +703748,16 @@ class SealevelHypSyntheticAdapter extends SealevelHypTokenAdapter {
|
|
|
703409
703748
|
/* harmony export */ r9: () => (/* binding */ StarknetTokenAdapter),
|
|
703410
703749
|
/* harmony export */ zR: () => (/* binding */ StarknetHypFeeAdapter)
|
|
703411
703750
|
/* harmony export */ });
|
|
703412
|
-
/* harmony import */ var
|
|
703751
|
+
/* harmony import */ var ethers__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(61934);
|
|
703413
703752
|
/* harmony import */ var starknet__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(98954);
|
|
703414
703753
|
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(93142);
|
|
703415
|
-
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(
|
|
703416
|
-
/* harmony import */ var
|
|
703417
|
-
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(
|
|
703754
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(14918);
|
|
703755
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(73689);
|
|
703756
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(16639);
|
|
703757
|
+
/* harmony import */ var _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(21387);
|
|
703418
703758
|
/* harmony import */ var _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(48381);
|
|
703419
|
-
/* harmony import */ var
|
|
703420
|
-
/* harmony import */ var
|
|
703759
|
+
/* harmony import */ var _utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(84779);
|
|
703760
|
+
/* harmony import */ var _nativeTokenMetadata_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(50302);
|
|
703421
703761
|
|
|
703422
703762
|
|
|
703423
703763
|
|
|
@@ -703429,7 +703769,7 @@ class StarknetTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MO
|
|
|
703429
703769
|
chainName;
|
|
703430
703770
|
multiProvider;
|
|
703431
703771
|
addresses;
|
|
703432
|
-
tokenContract;
|
|
703772
|
+
tokenContract = new _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .LazyAsync */ .Ru(() => this.createContractInstance());
|
|
703433
703773
|
constructor(chainName, multiProvider, addresses) {
|
|
703434
703774
|
super(chainName, multiProvider, addresses);
|
|
703435
703775
|
this.chainName = chainName;
|
|
@@ -703439,10 +703779,10 @@ class StarknetTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MO
|
|
|
703439
703779
|
// This function returns the Contract instance for the given token
|
|
703440
703780
|
// If the contract is a Proxy: retrieves the implementation contract ABI and returns that Contract
|
|
703441
703781
|
// If the contract is not a Proxy: returns the contract with the token address ABI
|
|
703442
|
-
|
|
703443
|
-
|
|
703444
|
-
|
|
703445
|
-
|
|
703782
|
+
getContractInstance() {
|
|
703783
|
+
return this.tokenContract.get();
|
|
703784
|
+
}
|
|
703785
|
+
async createContractInstance() {
|
|
703446
703786
|
const provider = this.getProvider();
|
|
703447
703787
|
const { abi } = await provider.getClassAt(this.addresses.tokenAddress);
|
|
703448
703788
|
const contractInstance = new starknet__WEBPACK_IMPORTED_MODULE_0__/* .Contract */ .NZ(abi, this.addresses.tokenAddress, provider);
|
|
@@ -703450,9 +703790,8 @@ class StarknetTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MO
|
|
|
703450
703790
|
const { implementation } = await contractInstance.get_implementation();
|
|
703451
703791
|
const contractClass = await provider.getClassByHash(implementation);
|
|
703452
703792
|
const implementationContract = new starknet__WEBPACK_IMPORTED_MODULE_0__/* .Contract */ .NZ(contractClass.abi, this.addresses.tokenAddress, provider);
|
|
703453
|
-
return
|
|
703793
|
+
return implementationContract;
|
|
703454
703794
|
}
|
|
703455
|
-
this.tokenContract = contractInstance;
|
|
703456
703795
|
return contractInstance;
|
|
703457
703796
|
}
|
|
703458
703797
|
async getBalance(address) {
|
|
@@ -703460,7 +703799,7 @@ class StarknetTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MO
|
|
|
703460
703799
|
if (contract.balance_of)
|
|
703461
703800
|
return contract.balance_of(address);
|
|
703462
703801
|
const response = await contract.balanceOf(address);
|
|
703463
|
-
if (!(0,
|
|
703802
|
+
if (!(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_4__/* .isNullish */ .u)(response.balance?.low)) {
|
|
703464
703803
|
return starknet__WEBPACK_IMPORTED_MODULE_0__/* .uint256 */ .iN.uint256ToBN(response.balance);
|
|
703465
703804
|
}
|
|
703466
703805
|
return response;
|
|
@@ -703487,7 +703826,7 @@ class StarknetTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPORTED_MO
|
|
|
703487
703826
|
async isApproveRequired(owner, spender, weiAmountOrId) {
|
|
703488
703827
|
const contract = await this.getContractInstance();
|
|
703489
703828
|
const allowance = await contract.allowance(owner, spender);
|
|
703490
|
-
return
|
|
703829
|
+
return ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(allowance.toString()).lt(ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(weiAmountOrId));
|
|
703491
703830
|
}
|
|
703492
703831
|
async isRevokeApprovalRequired(_owner, _spender) {
|
|
703493
703832
|
return false;
|
|
@@ -703515,7 +703854,7 @@ class BaseStarknetHypTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPO
|
|
|
703515
703854
|
this.chainName = chainName;
|
|
703516
703855
|
this.multiProvider = multiProvider;
|
|
703517
703856
|
this.addresses = addresses;
|
|
703518
|
-
this.contract = (0,
|
|
703857
|
+
this.contract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetHypERC20Contract */ .ei)(addresses.warpRouter, multiProvider.getStarknetProvider(chainName));
|
|
703519
703858
|
}
|
|
703520
703859
|
async getBalance(address) {
|
|
703521
703860
|
if (this.contract.balance_of)
|
|
@@ -703535,7 +703874,7 @@ class BaseStarknetHypTokenAdapter extends _app_MultiProtocolApp_js__WEBPACK_IMPO
|
|
|
703535
703874
|
}
|
|
703536
703875
|
async isApproveRequired(owner, spender, weiAmountOrId) {
|
|
703537
703876
|
const allowance = await this.contract.allowance(owner, spender);
|
|
703538
|
-
return
|
|
703877
|
+
return ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(allowance.toString()).lt(ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(weiAmountOrId));
|
|
703539
703878
|
}
|
|
703540
703879
|
async isRevokeApprovalRequired(_owner, _spender) {
|
|
703541
703880
|
return false;
|
|
@@ -703593,16 +703932,16 @@ class StarknetHypSyntheticAdapter extends BaseStarknetHypTokenAdapter {
|
|
|
703593
703932
|
}
|
|
703594
703933
|
class StarknetHypCollateralAdapter extends StarknetHypSyntheticAdapter {
|
|
703595
703934
|
collateralContract;
|
|
703596
|
-
wrappedTokenAddress;
|
|
703935
|
+
wrappedTokenAddress = new _hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_3__/* .LazyAsync */ .Ru(() => this.loadWrappedTokenAddress());
|
|
703597
703936
|
constructor(chainName, multiProvider, addresses) {
|
|
703598
703937
|
super(chainName, multiProvider, addresses);
|
|
703599
|
-
this.collateralContract = (0,
|
|
703938
|
+
this.collateralContract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetHypERC20CollateralContract */ .fF)(addresses.warpRouter, multiProvider.getStarknetProvider(chainName));
|
|
703600
703939
|
}
|
|
703601
703940
|
async getWrappedTokenAddress() {
|
|
703602
|
-
|
|
703603
|
-
|
|
703604
|
-
|
|
703605
|
-
return this.
|
|
703941
|
+
return this.wrappedTokenAddress.get();
|
|
703942
|
+
}
|
|
703943
|
+
async loadWrappedTokenAddress() {
|
|
703944
|
+
return starknet__WEBPACK_IMPORTED_MODULE_0__/* .num */ .bu.toHex64(await this.collateralContract.get_wrapped_token());
|
|
703606
703945
|
}
|
|
703607
703946
|
async getWrappedTokenAdapter() {
|
|
703608
703947
|
return new StarknetTokenAdapter(this.chainName, this.multiProvider, {
|
|
@@ -703634,19 +703973,19 @@ class StarknetHypNativeAdapter extends StarknetHypSyntheticAdapter {
|
|
|
703634
703973
|
nativeContract;
|
|
703635
703974
|
constructor(chainName, multiProvider, addresses) {
|
|
703636
703975
|
super(chainName, multiProvider, addresses);
|
|
703637
|
-
this.collateralContract = (0,
|
|
703976
|
+
this.collateralContract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetHypERC20CollateralContract */ .fF)(addresses.warpRouter, multiProvider.getStarknetProvider(chainName));
|
|
703638
703977
|
const nativeAddress = multiProvider.getChainMetadata(chainName)?.nativeToken?.denom;
|
|
703639
703978
|
const tokenAddress = nativeAddress ??
|
|
703640
|
-
|
|
703641
|
-
(0,
|
|
703642
|
-
this.nativeContract = (0,
|
|
703979
|
+
_nativeTokenMetadata_js__WEBPACK_IMPORTED_MODULE_7__/* .PROTOCOL_TO_DEFAULT_NATIVE_TOKEN */ .V[_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_8__/* .ProtocolType */ .Hb.Starknet].denom;
|
|
703980
|
+
(0,_hyperlane_xyz_utils__WEBPACK_IMPORTED_MODULE_9__/* .assert */ .v)(tokenAddress, `Native address not found for chain ${chainName}`);
|
|
703981
|
+
this.nativeContract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetEtherContract */ .Rd)(tokenAddress, multiProvider.getStarknetProvider(chainName));
|
|
703643
703982
|
}
|
|
703644
703983
|
async getBalance(address) {
|
|
703645
703984
|
return this.nativeContract.balanceOf(address);
|
|
703646
703985
|
}
|
|
703647
703986
|
async isApproveRequired(owner, spender, weiAmountOrId) {
|
|
703648
703987
|
const allowance = await this.nativeContract.allowance(owner, spender);
|
|
703649
|
-
return
|
|
703988
|
+
return ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(allowance.toString()).lt(ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(weiAmountOrId));
|
|
703650
703989
|
}
|
|
703651
703990
|
async populateApproveTx({ weiAmountOrId, recipient, }) {
|
|
703652
703991
|
return this.nativeContract.populateTransaction.approve(recipient, weiAmountOrId);
|
|
@@ -703664,15 +704003,15 @@ class StarknetHypFeeAdapter extends StarknetHypSyntheticAdapter {
|
|
|
703664
704003
|
feeTokenContract;
|
|
703665
704004
|
constructor(chainName, multiProvider, addresses) {
|
|
703666
704005
|
super(chainName, multiProvider, addresses);
|
|
703667
|
-
this.collateralContract = (0,
|
|
703668
|
-
this.feeTokenContract = (0,
|
|
704006
|
+
this.collateralContract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetHypERC20CollateralContract */ .fF)(addresses.warpRouter, multiProvider.getStarknetProvider(chainName));
|
|
704007
|
+
this.feeTokenContract = (0,_utils_starknet_js__WEBPACK_IMPORTED_MODULE_6__/* .getStarknetEtherContract */ .Rd)(addresses.warpRouter, multiProvider.getStarknetProvider(chainName));
|
|
703669
704008
|
}
|
|
703670
704009
|
async getBalance(address) {
|
|
703671
704010
|
return this.feeTokenContract.balanceOf(address);
|
|
703672
704011
|
}
|
|
703673
704012
|
async isApproveRequired(owner, spender, weiAmountOrId) {
|
|
703674
704013
|
const allowance = await this.feeTokenContract.allowance(owner, spender);
|
|
703675
|
-
return
|
|
704014
|
+
return ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(allowance.toString()).lt(ethers__WEBPACK_IMPORTED_MODULE_5__.BigNumber.from(weiAmountOrId));
|
|
703676
704015
|
}
|
|
703677
704016
|
async populateApproveTx({ weiAmountOrId, recipient, }) {
|
|
703678
704017
|
return this.feeTokenContract.populateTransaction.approve(recipient, weiAmountOrId);
|
|
@@ -703783,7 +704122,7 @@ const NON_ZERO_SENDER_ADDRESS = '0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba';
|
|
|
703783
704122
|
/* harmony import */ var _fee_types_js__WEBPACK_IMPORTED_MODULE_13__ = __nccwpck_require__(52555);
|
|
703784
704123
|
/* harmony import */ var _hook_EvmHookReader_js__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(69319);
|
|
703785
704124
|
/* harmony import */ var _ism_EvmIsmReader_js__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(60715);
|
|
703786
|
-
/* harmony import */ var _EvmWarpRouteReader_js__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(
|
|
704125
|
+
/* harmony import */ var _EvmWarpRouteReader_js__WEBPACK_IMPORTED_MODULE_14__ = __nccwpck_require__(40945);
|
|
703787
704126
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(4169);
|
|
703788
704127
|
/* harmony import */ var _deploy_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(90162);
|
|
703789
704128
|
/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(38466);
|
|
@@ -705342,6 +705681,417 @@ const isMovableCollateralTokenConfig = (0,_utils_schemas_js__WEBPACK_IMPORTED_MO
|
|
|
705342
705681
|
|
|
705343
705682
|
/***/ }),
|
|
705344
705683
|
|
|
705684
|
+
/***/ 48798:
|
|
705685
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
705686
|
+
|
|
705687
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
705688
|
+
/* harmony export */ v: () => (/* binding */ CONFIGURATION_CHANGED_EVENT_SELECTOR),
|
|
705689
|
+
/* harmony export */ y: () => (/* binding */ XERC20_VS_ABI)
|
|
705690
|
+
/* harmony export */ });
|
|
705691
|
+
/* harmony import */ var viem__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(83698);
|
|
705692
|
+
/* harmony import */ var viem__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(60613);
|
|
705693
|
+
|
|
705694
|
+
/**
|
|
705695
|
+
* Minimal ABI for parsing ConfigurationChanged events from Velodrome XERC20.
|
|
705696
|
+
* Shared between EvmXERC20Reader and xerc20 utilities.
|
|
705697
|
+
*/
|
|
705698
|
+
const XERC20_VS_ABI = [
|
|
705699
|
+
{
|
|
705700
|
+
anonymous: false,
|
|
705701
|
+
inputs: [
|
|
705702
|
+
{
|
|
705703
|
+
indexed: true,
|
|
705704
|
+
internalType: 'address',
|
|
705705
|
+
name: 'bridge',
|
|
705706
|
+
type: 'address',
|
|
705707
|
+
},
|
|
705708
|
+
{
|
|
705709
|
+
indexed: false,
|
|
705710
|
+
internalType: 'uint112',
|
|
705711
|
+
name: 'bufferCap',
|
|
705712
|
+
type: 'uint112',
|
|
705713
|
+
},
|
|
705714
|
+
{
|
|
705715
|
+
indexed: false,
|
|
705716
|
+
internalType: 'uint128',
|
|
705717
|
+
name: 'rateLimitPerSecond',
|
|
705718
|
+
type: 'uint128',
|
|
705719
|
+
},
|
|
705720
|
+
],
|
|
705721
|
+
name: 'ConfigurationChanged',
|
|
705722
|
+
type: 'event',
|
|
705723
|
+
},
|
|
705724
|
+
];
|
|
705725
|
+
const CONFIGURATION_CHANGED_EVENT_SELECTOR = (0,viem__WEBPACK_IMPORTED_MODULE_0__/* .toEventSelector */ .h)((0,viem__WEBPACK_IMPORTED_MODULE_1__/* .getAbiItem */ .iY)({
|
|
705726
|
+
abi: XERC20_VS_ABI,
|
|
705727
|
+
name: 'ConfigurationChanged',
|
|
705728
|
+
}));
|
|
705729
|
+
//# sourceMappingURL=xerc20-abi.js.map
|
|
705730
|
+
|
|
705731
|
+
/***/ }),
|
|
705732
|
+
|
|
705733
|
+
/***/ 32892:
|
|
705734
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
705735
|
+
|
|
705736
|
+
|
|
705737
|
+
// EXPORTS
|
|
705738
|
+
__nccwpck_require__.d(__webpack_exports__, {
|
|
705739
|
+
bL: () => (/* binding */ deriveXERC20TokenType),
|
|
705740
|
+
g5: () => (/* binding */ getExtraLockBoxConfigs)
|
|
705741
|
+
});
|
|
705742
|
+
|
|
705743
|
+
// UNUSED EXPORTS: deriveBridgesConfig, deriveStandardBridgesConfig
|
|
705744
|
+
|
|
705745
|
+
// EXTERNAL MODULE: ../../node_modules/.pnpm/ethers@5.8.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib/index.js
|
|
705746
|
+
var lib = __nccwpck_require__(61934);
|
|
705747
|
+
// EXTERNAL MODULE: ../../node_modules/.pnpm/viem@2.39.3_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/_esm/utils/abi/parseEventLogs.js
|
|
705748
|
+
var parseEventLogs = __nccwpck_require__(94762);
|
|
705749
|
+
// EXTERNAL MODULE: ../../solidity/dist/index.js + 417 modules
|
|
705750
|
+
var dist = __nccwpck_require__(71711);
|
|
705751
|
+
// EXTERNAL MODULE: ../utils/dist/logging.js
|
|
705752
|
+
var logging = __nccwpck_require__(94523);
|
|
705753
|
+
// EXTERNAL MODULE: ../sdk/dist/block-explorer/etherscan.js
|
|
705754
|
+
var etherscan = __nccwpck_require__(26492);
|
|
705755
|
+
// EXTERNAL MODULE: ../sdk/dist/contracts/contracts.js
|
|
705756
|
+
var contracts = __nccwpck_require__(15570);
|
|
705757
|
+
;// CONCATENATED MODULE: ../sdk/dist/rpc/evm/utils.js
|
|
705758
|
+
|
|
705759
|
+
// calling getCode until the creation block is found
|
|
705760
|
+
async function getContractCreationBlockFromRpc(chain, contractAddress, multiProvider) {
|
|
705761
|
+
await assertIsContractAddress(multiProvider, chain, contractAddress);
|
|
705762
|
+
const provider = multiProvider.getProvider(chain);
|
|
705763
|
+
const latestBlock = await provider.getBlockNumber();
|
|
705764
|
+
let low = 0;
|
|
705765
|
+
let high = latestBlock;
|
|
705766
|
+
let creationBlock = latestBlock;
|
|
705767
|
+
while (low <= high) {
|
|
705768
|
+
const mid = Math.floor((low + high) / 2);
|
|
705769
|
+
const isContract = await isContractAddress(multiProvider, chain, contractAddress, mid);
|
|
705770
|
+
if (isContract) {
|
|
705771
|
+
creationBlock = mid;
|
|
705772
|
+
high = mid - 1;
|
|
705773
|
+
}
|
|
705774
|
+
else {
|
|
705775
|
+
low = mid + 1;
|
|
705776
|
+
}
|
|
705777
|
+
}
|
|
705778
|
+
return creationBlock;
|
|
705779
|
+
}
|
|
705780
|
+
async function getLogsFromRpc({ chain, contractAddress, multiProvider, fromBlock, topic, toBlock, range = 500, }) {
|
|
705781
|
+
const provider = multiProvider.getProvider(chain);
|
|
705782
|
+
let currentStartBlock = fromBlock;
|
|
705783
|
+
const endBlock = toBlock ?? (await provider.getBlockNumber());
|
|
705784
|
+
const logs = [];
|
|
705785
|
+
while (currentStartBlock <= endBlock) {
|
|
705786
|
+
const currentEndBlock = currentStartBlock + range < endBlock
|
|
705787
|
+
? currentStartBlock + range
|
|
705788
|
+
: endBlock;
|
|
705789
|
+
const currentLogs = await provider.getLogs({
|
|
705790
|
+
address: contractAddress,
|
|
705791
|
+
fromBlock: currentStartBlock,
|
|
705792
|
+
toBlock: currentEndBlock,
|
|
705793
|
+
topics: [topic],
|
|
705794
|
+
});
|
|
705795
|
+
logs.push(...currentLogs);
|
|
705796
|
+
// +1 because getLogs range is inclusive
|
|
705797
|
+
currentStartBlock += range + 1;
|
|
705798
|
+
}
|
|
705799
|
+
return logs.map((rawLog) => {
|
|
705800
|
+
return {
|
|
705801
|
+
address: rawLog.address,
|
|
705802
|
+
blockNumber: rawLog.blockNumber,
|
|
705803
|
+
data: rawLog.data,
|
|
705804
|
+
logIndex: rawLog.logIndex,
|
|
705805
|
+
topics: rawLog.topics,
|
|
705806
|
+
transactionHash: rawLog.transactionHash,
|
|
705807
|
+
transactionIndex: rawLog.transactionIndex,
|
|
705808
|
+
};
|
|
705809
|
+
});
|
|
705810
|
+
}
|
|
705811
|
+
function viemLogFromGetEventLogsResponse(log) {
|
|
705812
|
+
return {
|
|
705813
|
+
address: log.address,
|
|
705814
|
+
data: log.data,
|
|
705815
|
+
blockNumber: BigInt(log.blockNumber),
|
|
705816
|
+
transactionHash: log.transactionHash,
|
|
705817
|
+
logIndex: Number(log.logIndex),
|
|
705818
|
+
transactionIndex: Number(log.transactionIndex),
|
|
705819
|
+
topics: log.topics,
|
|
705820
|
+
blockHash: null,
|
|
705821
|
+
removed: false,
|
|
705822
|
+
};
|
|
705823
|
+
}
|
|
705824
|
+
//# sourceMappingURL=utils.js.map
|
|
705825
|
+
// EXTERNAL MODULE: ../sdk/dist/token/types.js
|
|
705826
|
+
var types = __nccwpck_require__(38466);
|
|
705827
|
+
// EXTERNAL MODULE: ../sdk/dist/token/xerc20-abi.js
|
|
705828
|
+
var xerc20_abi = __nccwpck_require__(48798);
|
|
705829
|
+
;// CONCATENATED MODULE: ../sdk/dist/token/xerc20.js
|
|
705830
|
+
|
|
705831
|
+
|
|
705832
|
+
|
|
705833
|
+
|
|
705834
|
+
|
|
705835
|
+
|
|
705836
|
+
|
|
705837
|
+
|
|
705838
|
+
|
|
705839
|
+
|
|
705840
|
+
async function getExtraLockBoxConfigs({ xERC20Address, chain, multiProvider, logger = logging/* rootLogger */.Jk, }) {
|
|
705841
|
+
const explorer = multiProvider.tryGetEvmExplorerMetadata(chain);
|
|
705842
|
+
if (!explorer) {
|
|
705843
|
+
logger.warn(`No block explorer was configured correctly, skipping lockbox derivation on chain ${chain}`);
|
|
705844
|
+
return [];
|
|
705845
|
+
}
|
|
705846
|
+
const logs = await getConfigurationChangedLogsFromExplorerApi({
|
|
705847
|
+
chain,
|
|
705848
|
+
multiProvider,
|
|
705849
|
+
xERC20Address,
|
|
705850
|
+
explorerUrl: explorer.apiUrl,
|
|
705851
|
+
apiKey: explorer.apiKey,
|
|
705852
|
+
});
|
|
705853
|
+
const viemLogs = logs.map(viemLogFromGetEventLogsResponse);
|
|
705854
|
+
return getLockboxesFromLogs(viemLogs, multiProvider.getProvider(chain), chain, logger);
|
|
705855
|
+
}
|
|
705856
|
+
async function getConfigurationChangedLogsFromExplorerApi({ xERC20Address, chain, multiProvider, explorerUrl, apiKey, }) {
|
|
705857
|
+
const contractDeploymentTx = await (0,etherscan/* getContractDeploymentTransaction */.sG)({ apiUrl: explorerUrl, apiKey }, { contractAddress: xERC20Address });
|
|
705858
|
+
const provider = multiProvider.getProvider(chain);
|
|
705859
|
+
const [currentBlockNumber, deploymentTransactionReceipt] = await Promise.all([
|
|
705860
|
+
provider.getBlockNumber(),
|
|
705861
|
+
provider.getTransactionReceipt(contractDeploymentTx.txHash),
|
|
705862
|
+
]);
|
|
705863
|
+
return (0,etherscan/* getLogsFromEtherscanLikeExplorerAPI */.Bf)({ apiUrl: explorerUrl, apiKey }, {
|
|
705864
|
+
address: xERC20Address,
|
|
705865
|
+
fromBlock: deploymentTransactionReceipt.blockNumber,
|
|
705866
|
+
toBlock: currentBlockNumber,
|
|
705867
|
+
topic0: xerc20_abi/* CONFIGURATION_CHANGED_EVENT_SELECTOR */.v,
|
|
705868
|
+
});
|
|
705869
|
+
}
|
|
705870
|
+
async function getLockboxesFromLogs(logs, provider, chain, logger) {
|
|
705871
|
+
const parsedLogs = (0,parseEventLogs/* parseEventLogs */.p)({
|
|
705872
|
+
abi: xerc20_abi/* XERC20_VS_ABI */.y,
|
|
705873
|
+
eventName: 'ConfigurationChanged',
|
|
705874
|
+
logs,
|
|
705875
|
+
});
|
|
705876
|
+
// A bridge might appear more than once in the event logs, we are only
|
|
705877
|
+
// interested in the most recent one for each bridge so we deduplicate
|
|
705878
|
+
// entries here
|
|
705879
|
+
const dedupedBridges = parsedLogs.reduce((acc, log) => {
|
|
705880
|
+
const bridgeAddress = log.args.bridge;
|
|
705881
|
+
const isMostRecentLogForBridge = log.blockNumber > (acc[bridgeAddress]?.blockNumber ?? 0n);
|
|
705882
|
+
if (isMostRecentLogForBridge) {
|
|
705883
|
+
acc[bridgeAddress] = log;
|
|
705884
|
+
}
|
|
705885
|
+
return acc;
|
|
705886
|
+
}, {});
|
|
705887
|
+
const lockboxPromises = Object.values(dedupedBridges)
|
|
705888
|
+
// Removing bridges where the limits are set to 0 because it is equivalent of being deactivated
|
|
705889
|
+
// A bridge is active if EITHER bufferCap OR rateLimitPerSecond is non-zero
|
|
705890
|
+
.filter((log) => log.args.bufferCap !== 0n || log.args.rateLimitPerSecond !== 0n)
|
|
705891
|
+
.map(async (log) => {
|
|
705892
|
+
try {
|
|
705893
|
+
const maybeXERC20Lockbox = dist/* IXERC20Lockbox__factory */.Cns.connect(log.args.bridge, provider);
|
|
705894
|
+
await maybeXERC20Lockbox.callStatic.XERC20();
|
|
705895
|
+
return log;
|
|
705896
|
+
}
|
|
705897
|
+
catch {
|
|
705898
|
+
logger.debug(`Contract at address ${log.args.bridge} on chain ${chain} is not a XERC20Lockbox contract.`);
|
|
705899
|
+
return undefined;
|
|
705900
|
+
}
|
|
705901
|
+
});
|
|
705902
|
+
const lockboxes = await Promise.all(lockboxPromises);
|
|
705903
|
+
return lockboxes
|
|
705904
|
+
.filter((log) => log !== undefined)
|
|
705905
|
+
.map((log) => log)
|
|
705906
|
+
.map((log) => ({
|
|
705907
|
+
lockbox: log.args.bridge,
|
|
705908
|
+
limits: {
|
|
705909
|
+
type: types/* XERC20Type */.FT.Velo,
|
|
705910
|
+
bufferCap: log.args.bufferCap.toString(),
|
|
705911
|
+
rateLimitPerSecond: log.args.rateLimitPerSecond.toString(),
|
|
705912
|
+
},
|
|
705913
|
+
}));
|
|
705914
|
+
}
|
|
705915
|
+
/**
|
|
705916
|
+
* Derives bridge configurations for Velodrome XERC20 tokens.
|
|
705917
|
+
* Extracts bufferCap and rateLimitPerSecond limits from warp deploy config.
|
|
705918
|
+
* @param warpDeployConfig - Warp route deployment configuration
|
|
705919
|
+
* @param warpCoreConfig - Warp core configuration with token metadata
|
|
705920
|
+
* @param multiProvider - Multi-chain provider for contract interactions
|
|
705921
|
+
* @returns Array of bridge configurations for Velodrome XERC20
|
|
705922
|
+
*/
|
|
705923
|
+
async function deriveBridgesConfig(warpDeployConfig, warpCoreConfig, multiProvider) {
|
|
705924
|
+
const bridgesConfig = [];
|
|
705925
|
+
for (const [chainName, chainConfig] of Object.entries(warpDeployConfig)) {
|
|
705926
|
+
if (!isXERC20TokenConfig(chainConfig)) {
|
|
705927
|
+
throw new Error(`Chain "${chainName}" is not an xERC20 compliant deployment`);
|
|
705928
|
+
}
|
|
705929
|
+
const { token, type, owner, xERC20 } = chainConfig;
|
|
705930
|
+
const decimals = warpCoreConfig.tokens.find((t) => t.chainName === chainName)?.decimals;
|
|
705931
|
+
if (!decimals) {
|
|
705932
|
+
throw new Error(`Missing "decimals" for chain: ${chainName}`);
|
|
705933
|
+
}
|
|
705934
|
+
if (!xERC20 || xERC20.warpRouteLimits.type !== XERC20Type.Velo) {
|
|
705935
|
+
rootLogger.debug(`Skip deriving bridges config because ${XERC20Type.Velo} type is expected`);
|
|
705936
|
+
continue;
|
|
705937
|
+
}
|
|
705938
|
+
if (!xERC20.warpRouteLimits.bufferCap ||
|
|
705939
|
+
!xERC20.warpRouteLimits.rateLimitPerSecond) {
|
|
705940
|
+
throw new Error(`Missing "limits" for chain: ${chainName}`);
|
|
705941
|
+
}
|
|
705942
|
+
let xERC20Address = token;
|
|
705943
|
+
const bridgeAddress = warpCoreConfig.tokens.find((t) => t.chainName === chainName)?.addressOrDenom;
|
|
705944
|
+
if (!bridgeAddress) {
|
|
705945
|
+
throw new Error(`Missing router address for chain ${chainName} and type ${type}`);
|
|
705946
|
+
}
|
|
705947
|
+
const { bufferCap: bufferCapStr, rateLimitPerSecond: rateLimitPerSecondStr, } = xERC20.warpRouteLimits;
|
|
705948
|
+
const bufferCap = Number(bufferCapStr);
|
|
705949
|
+
const rateLimitPerSecond = Number(rateLimitPerSecondStr);
|
|
705950
|
+
if (type === TokenType.XERC20Lockbox) {
|
|
705951
|
+
const provider = multiProvider.getProvider(chainName);
|
|
705952
|
+
const hypXERC20Lockbox = HypXERC20Lockbox__factory.connect(bridgeAddress, provider);
|
|
705953
|
+
xERC20Address = await hypXERC20Lockbox.xERC20();
|
|
705954
|
+
}
|
|
705955
|
+
if (xERC20.extraBridges) {
|
|
705956
|
+
for (const extraLockboxLimit of xERC20.extraBridges) {
|
|
705957
|
+
const { lockbox, limits } = extraLockboxLimit;
|
|
705958
|
+
assert(limits.type === XERC20Type.Velo, `Only supports ${XERC20Type.Velo}`);
|
|
705959
|
+
const { bufferCap: extraBufferCap, rateLimitPerSecond: extraRateLimit, } = limits;
|
|
705960
|
+
if (!extraBufferCap || !extraRateLimit) {
|
|
705961
|
+
throw new Error(`Missing "bufferCap" or "rateLimitPerSecond" limits for extra lockbox: ${lockbox} on chain: ${chainName}`);
|
|
705962
|
+
}
|
|
705963
|
+
bridgesConfig.push({
|
|
705964
|
+
chain: chainName,
|
|
705965
|
+
type,
|
|
705966
|
+
xERC20Address,
|
|
705967
|
+
bridgeAddress: lockbox,
|
|
705968
|
+
owner,
|
|
705969
|
+
decimals,
|
|
705970
|
+
bufferCap: Number(extraBufferCap),
|
|
705971
|
+
rateLimitPerSecond: Number(extraRateLimit),
|
|
705972
|
+
});
|
|
705973
|
+
}
|
|
705974
|
+
}
|
|
705975
|
+
bridgesConfig.push({
|
|
705976
|
+
chain: chainName,
|
|
705977
|
+
type,
|
|
705978
|
+
xERC20Address,
|
|
705979
|
+
bridgeAddress,
|
|
705980
|
+
owner,
|
|
705981
|
+
decimals,
|
|
705982
|
+
bufferCap,
|
|
705983
|
+
rateLimitPerSecond,
|
|
705984
|
+
});
|
|
705985
|
+
}
|
|
705986
|
+
return bridgesConfig;
|
|
705987
|
+
}
|
|
705988
|
+
/**
|
|
705989
|
+
* Derives bridge configurations for Standard XERC20 tokens.
|
|
705990
|
+
* Extracts mint and burn limits from warp deploy config.
|
|
705991
|
+
* @param chains - Optional list of chains to filter by
|
|
705992
|
+
* @param warpDeployConfig - Warp route deployment configuration
|
|
705993
|
+
* @param warpCoreConfig - Warp core configuration with token metadata
|
|
705994
|
+
* @param multiProvider - Multi-chain provider for contract interactions
|
|
705995
|
+
* @returns Array of bridge configurations for Standard XERC20
|
|
705996
|
+
*/
|
|
705997
|
+
async function deriveStandardBridgesConfig(chains = [], warpDeployConfig, warpCoreConfig, multiProvider) {
|
|
705998
|
+
const bridgesConfig = [];
|
|
705999
|
+
for (const [chainName, chainConfig] of Object.entries(warpDeployConfig)) {
|
|
706000
|
+
if (chains.length > 0 && !chains.includes(chainName)) {
|
|
706001
|
+
rootLogger.debug(`Skipping ${chainName} because its not included in chains`);
|
|
706002
|
+
continue;
|
|
706003
|
+
}
|
|
706004
|
+
if (!isXERC20TokenConfig(chainConfig)) {
|
|
706005
|
+
throw new Error(`Chain "${chainName}" is not an xERC20 compliant deployment`);
|
|
706006
|
+
}
|
|
706007
|
+
const { token, type, owner, xERC20 } = chainConfig;
|
|
706008
|
+
const decimals = warpCoreConfig.tokens.find((t) => t.chainName === chainName)?.decimals;
|
|
706009
|
+
if (!decimals) {
|
|
706010
|
+
throw new Error(`Missing "decimals" for chain: ${chainName}`);
|
|
706011
|
+
}
|
|
706012
|
+
if (!xERC20 || xERC20.warpRouteLimits.type !== XERC20Type.Standard) {
|
|
706013
|
+
rootLogger.debug(`Skip deriving bridges config because ${XERC20Type.Standard} type is expected`);
|
|
706014
|
+
continue;
|
|
706015
|
+
}
|
|
706016
|
+
if (!xERC20.warpRouteLimits.mint || !xERC20.warpRouteLimits.burn) {
|
|
706017
|
+
throw new Error(`Missing "limits" for chain: ${chainName}`);
|
|
706018
|
+
}
|
|
706019
|
+
let xERC20Address = token;
|
|
706020
|
+
const bridgeAddress = warpCoreConfig.tokens.find((t) => t.chainName === chainName)?.addressOrDenom;
|
|
706021
|
+
if (!bridgeAddress) {
|
|
706022
|
+
throw new Error(`Missing router address for chain ${chainName} and type ${type}`);
|
|
706023
|
+
}
|
|
706024
|
+
const mint = Number(xERC20.warpRouteLimits.mint);
|
|
706025
|
+
const burn = Number(xERC20.warpRouteLimits.burn);
|
|
706026
|
+
if (type === TokenType.XERC20Lockbox) {
|
|
706027
|
+
const provider = multiProvider.getProvider(chainName);
|
|
706028
|
+
const hypXERC20Lockbox = HypXERC20Lockbox__factory.connect(bridgeAddress, provider);
|
|
706029
|
+
xERC20Address = await hypXERC20Lockbox.xERC20();
|
|
706030
|
+
}
|
|
706031
|
+
if (xERC20.extraBridges) {
|
|
706032
|
+
for (const extraLockboxLimit of xERC20.extraBridges) {
|
|
706033
|
+
const { lockbox, limits } = extraLockboxLimit;
|
|
706034
|
+
assert(limits.type === XERC20Type.Standard, `Only supports ${XERC20Type.Standard}`);
|
|
706035
|
+
const extraBridgeMint = Number(limits.mint);
|
|
706036
|
+
const extraBridgeBurn = Number(limits.burn);
|
|
706037
|
+
if (!extraBridgeMint || !extraBridgeBurn) {
|
|
706038
|
+
throw new Error(`Missing "extraBridgeMint" or "extraBridgeBurn" limits for extra lockbox: ${lockbox} on chain: ${chainName}`);
|
|
706039
|
+
}
|
|
706040
|
+
bridgesConfig.push({
|
|
706041
|
+
chain: chainName,
|
|
706042
|
+
type,
|
|
706043
|
+
xERC20Address,
|
|
706044
|
+
bridgeAddress: lockbox,
|
|
706045
|
+
owner,
|
|
706046
|
+
decimals,
|
|
706047
|
+
mint: extraBridgeMint,
|
|
706048
|
+
burn: extraBridgeBurn,
|
|
706049
|
+
});
|
|
706050
|
+
}
|
|
706051
|
+
}
|
|
706052
|
+
bridgesConfig.push({
|
|
706053
|
+
chain: chainName,
|
|
706054
|
+
type,
|
|
706055
|
+
xERC20Address,
|
|
706056
|
+
bridgeAddress,
|
|
706057
|
+
owner,
|
|
706058
|
+
decimals,
|
|
706059
|
+
mint,
|
|
706060
|
+
burn,
|
|
706061
|
+
});
|
|
706062
|
+
}
|
|
706063
|
+
return bridgesConfig;
|
|
706064
|
+
}
|
|
706065
|
+
async function deriveXERC20TokenType(multiProvider, chain, address) {
|
|
706066
|
+
const isContract = await (0,contracts/* isContractAddress */.Dj)(multiProvider, chain, address);
|
|
706067
|
+
if (!isContract) {
|
|
706068
|
+
throw new Error(`Unable to detect XERC20 type for ${address}. Contract has no bytecode.`);
|
|
706069
|
+
}
|
|
706070
|
+
const provider = multiProvider.getProvider(chain);
|
|
706071
|
+
const code = await provider.getCode(address);
|
|
706072
|
+
const normalizedCode = code.toLowerCase();
|
|
706073
|
+
const setBufferCapSelector = lib.ethers.utils
|
|
706074
|
+
.id('setBufferCap(address,uint256)')
|
|
706075
|
+
.slice(2, 10)
|
|
706076
|
+
.toLowerCase();
|
|
706077
|
+
const setLimitsSelector = lib.ethers.utils
|
|
706078
|
+
.id('setLimits(address,uint256,uint256)')
|
|
706079
|
+
.slice(2, 10)
|
|
706080
|
+
.toLowerCase();
|
|
706081
|
+
// Prefer Velodrome if both selectors are present.
|
|
706082
|
+
if (normalizedCode.includes(setBufferCapSelector)) {
|
|
706083
|
+
return types/* XERC20Type */.FT.Velo;
|
|
706084
|
+
}
|
|
706085
|
+
if (normalizedCode.includes(setLimitsSelector)) {
|
|
706086
|
+
return types/* XERC20Type */.FT.Standard;
|
|
706087
|
+
}
|
|
706088
|
+
// Neither type detected
|
|
706089
|
+
throw new Error(`Unable to detect XERC20 type for ${address}. Contract does not implement Standard or Velodrome XERC20 interface.`);
|
|
706090
|
+
}
|
|
706091
|
+
//# sourceMappingURL=xerc20.js.map
|
|
706092
|
+
|
|
706093
|
+
/***/ }),
|
|
706094
|
+
|
|
705345
706095
|
/***/ 88832:
|
|
705346
706096
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
705347
706097
|
|
|
@@ -707875,6 +708625,7 @@ function arrayEqual(a, b) {
|
|
|
707875
708625
|
|
|
707876
708626
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
707877
708627
|
/* harmony export */ F2: () => (/* binding */ runWithTimeout),
|
|
708628
|
+
/* harmony export */ Ru: () => (/* binding */ LazyAsync),
|
|
707878
708629
|
/* harmony export */ bh: () => (/* binding */ mapAllSettled),
|
|
707879
708630
|
/* harmony export */ kp: () => (/* binding */ pollAsync),
|
|
707880
708631
|
/* harmony export */ q1: () => (/* binding */ concurrentMap),
|
|
@@ -707889,6 +708640,58 @@ function arrayEqual(a, b) {
|
|
|
707889
708640
|
/* harmony import */ var _validation_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(21387);
|
|
707890
708641
|
|
|
707891
708642
|
|
|
708643
|
+
/**
|
|
708644
|
+
* Lazily initialized async value with deduplication.
|
|
708645
|
+
* Concurrent callers share the same initialization promise.
|
|
708646
|
+
* After successful init, returns cached value immediately.
|
|
708647
|
+
* On error, clears state to allow retry on next call.
|
|
708648
|
+
*/
|
|
708649
|
+
class LazyAsync {
|
|
708650
|
+
initializer;
|
|
708651
|
+
promise;
|
|
708652
|
+
value;
|
|
708653
|
+
hasValue = false;
|
|
708654
|
+
generation = 0;
|
|
708655
|
+
constructor(initializer) {
|
|
708656
|
+
this.initializer = initializer;
|
|
708657
|
+
}
|
|
708658
|
+
get() {
|
|
708659
|
+
if (this.hasValue)
|
|
708660
|
+
return Promise.resolve(this.value);
|
|
708661
|
+
this.promise ??= this.initialize(this.generation);
|
|
708662
|
+
return this.promise;
|
|
708663
|
+
}
|
|
708664
|
+
reset() {
|
|
708665
|
+
this.generation++;
|
|
708666
|
+
this.promise = undefined;
|
|
708667
|
+
this.value = undefined;
|
|
708668
|
+
this.hasValue = false;
|
|
708669
|
+
}
|
|
708670
|
+
isInitialized() {
|
|
708671
|
+
return this.hasValue;
|
|
708672
|
+
}
|
|
708673
|
+
peek() {
|
|
708674
|
+
return this.hasValue ? this.value : undefined;
|
|
708675
|
+
}
|
|
708676
|
+
async initialize(gen) {
|
|
708677
|
+
try {
|
|
708678
|
+
const result = await this.initializer();
|
|
708679
|
+
// Only store if generation hasn't changed (no reset during init)
|
|
708680
|
+
if (gen === this.generation) {
|
|
708681
|
+
this.value = result;
|
|
708682
|
+
this.hasValue = true;
|
|
708683
|
+
}
|
|
708684
|
+
return result;
|
|
708685
|
+
}
|
|
708686
|
+
catch (error) {
|
|
708687
|
+
// Only clear promise if generation hasn't changed
|
|
708688
|
+
if (gen === this.generation) {
|
|
708689
|
+
this.promise = undefined;
|
|
708690
|
+
}
|
|
708691
|
+
throw error;
|
|
708692
|
+
}
|
|
708693
|
+
}
|
|
708694
|
+
}
|
|
707892
708695
|
/**
|
|
707893
708696
|
* Return a promise that resolves in ms milliseconds.
|
|
707894
708697
|
* @param ms Time to wait
|
|
@@ -711355,7 +712158,7 @@ module.exports = /*#__PURE__*/JSON.parse('[{"type":"function","name":"proveL2Lea
|
|
|
711355
712158
|
/***/ 77087:
|
|
711356
712159
|
/***/ ((module) => {
|
|
711357
712160
|
|
|
711358
|
-
module.exports = {"rE":"
|
|
712161
|
+
module.exports = {"rE":"25.0.0"};
|
|
711359
712162
|
|
|
711360
712163
|
/***/ })
|
|
711361
712164
|
|