@layerzerolabs/verify-contract 1.1.33 → 1.2.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/README.md +248 -60
- package/dist/cli.js +153 -145
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +782 -294
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +782 -294
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -7006,9 +7006,9 @@ var require_winston_transport = __commonJS({
|
|
|
7006
7006
|
this.logv = options.logv;
|
|
7007
7007
|
if (options.close)
|
|
7008
7008
|
this.close = options.close;
|
|
7009
|
-
this.once("pipe", (
|
|
7010
|
-
this.levels =
|
|
7011
|
-
this.parent =
|
|
7009
|
+
this.once("pipe", (logger12) => {
|
|
7010
|
+
this.levels = logger12.levels;
|
|
7011
|
+
this.parent = logger12;
|
|
7012
7012
|
});
|
|
7013
7013
|
this.once("unpipe", (src) => {
|
|
7014
7014
|
if (src === this.parent) {
|
|
@@ -7986,7 +7986,7 @@ var require_diagnostics = __commonJS({
|
|
|
7986
7986
|
"../../node_modules/.pnpm/@dabh+diagnostics@2.0.3/node_modules/@dabh/diagnostics/diagnostics.js"(exports, module) {
|
|
7987
7987
|
var adapters = [];
|
|
7988
7988
|
var modifiers = [];
|
|
7989
|
-
var
|
|
7989
|
+
var logger12 = function devnull() {
|
|
7990
7990
|
};
|
|
7991
7991
|
function use(adapter) {
|
|
7992
7992
|
if (~adapters.indexOf(adapter))
|
|
@@ -7995,7 +7995,7 @@ var require_diagnostics = __commonJS({
|
|
|
7995
7995
|
return true;
|
|
7996
7996
|
}
|
|
7997
7997
|
function set(custom2) {
|
|
7998
|
-
|
|
7998
|
+
logger12 = custom2;
|
|
7999
7999
|
}
|
|
8000
8000
|
function enabled(namespace) {
|
|
8001
8001
|
var async = [];
|
|
@@ -8026,7 +8026,7 @@ var require_diagnostics = __commonJS({
|
|
|
8026
8026
|
return true;
|
|
8027
8027
|
}
|
|
8028
8028
|
function write() {
|
|
8029
|
-
|
|
8029
|
+
logger12.apply(logger12, arguments);
|
|
8030
8030
|
}
|
|
8031
8031
|
function process4(message) {
|
|
8032
8032
|
for (var i = 0; i < modifiers.length; i++) {
|
|
@@ -11180,11 +11180,11 @@ var require_exception_handler = __commonJS({
|
|
|
11180
11180
|
* TODO: add contructor description
|
|
11181
11181
|
* @param {!Logger} logger - TODO: add param description
|
|
11182
11182
|
*/
|
|
11183
|
-
constructor(
|
|
11184
|
-
if (!
|
|
11183
|
+
constructor(logger12) {
|
|
11184
|
+
if (!logger12) {
|
|
11185
11185
|
throw new Error("Logger is required to handle exceptions");
|
|
11186
11186
|
}
|
|
11187
|
-
this.logger =
|
|
11187
|
+
this.logger = logger12;
|
|
11188
11188
|
this.handlers = /* @__PURE__ */ new Map();
|
|
11189
11189
|
}
|
|
11190
11190
|
/**
|
|
@@ -11377,11 +11377,11 @@ var require_rejection_handler = __commonJS({
|
|
|
11377
11377
|
* TODO: add contructor description
|
|
11378
11378
|
* @param {!Logger} logger - TODO: add param description
|
|
11379
11379
|
*/
|
|
11380
|
-
constructor(
|
|
11381
|
-
if (!
|
|
11380
|
+
constructor(logger12) {
|
|
11381
|
+
if (!logger12) {
|
|
11382
11382
|
throw new Error("Logger is required to handle rejections");
|
|
11383
11383
|
}
|
|
11384
|
-
this.logger =
|
|
11384
|
+
this.logger = logger12;
|
|
11385
11385
|
this.handlers = /* @__PURE__ */ new Map();
|
|
11386
11386
|
}
|
|
11387
11387
|
/**
|
|
@@ -11577,12 +11577,12 @@ var require_profiler = __commonJS({
|
|
|
11577
11577
|
* @param {!Logger} logger - TODO: add param description.
|
|
11578
11578
|
* @private
|
|
11579
11579
|
*/
|
|
11580
|
-
constructor(
|
|
11580
|
+
constructor(logger12) {
|
|
11581
11581
|
const Logger2 = require_logger();
|
|
11582
|
-
if (typeof
|
|
11582
|
+
if (typeof logger12 !== "object" || Array.isArray(logger12) || !(logger12 instanceof Logger2)) {
|
|
11583
11583
|
throw new Error("Logger is required for profiling");
|
|
11584
11584
|
} else {
|
|
11585
|
-
this.logger =
|
|
11585
|
+
this.logger = logger12;
|
|
11586
11586
|
this.start = Date.now();
|
|
11587
11587
|
}
|
|
11588
11588
|
}
|
|
@@ -11632,8 +11632,8 @@ var require_logger = __commonJS({
|
|
|
11632
11632
|
this.configure(options);
|
|
11633
11633
|
}
|
|
11634
11634
|
child(defaultRequestMetadata) {
|
|
11635
|
-
const
|
|
11636
|
-
return Object.create(
|
|
11635
|
+
const logger12 = this;
|
|
11636
|
+
return Object.create(logger12, {
|
|
11637
11637
|
write: {
|
|
11638
11638
|
value: function(info) {
|
|
11639
11639
|
const infoClone = Object.assign(
|
|
@@ -11645,7 +11645,7 @@ var require_logger = __commonJS({
|
|
|
11645
11645
|
infoClone.stack = info.stack;
|
|
11646
11646
|
infoClone.message = info.message;
|
|
11647
11647
|
}
|
|
11648
|
-
|
|
11648
|
+
logger12.write(infoClone);
|
|
11649
11649
|
}
|
|
11650
11650
|
}
|
|
11651
11651
|
});
|
|
@@ -12152,7 +12152,7 @@ var require_create_logger = __commonJS({
|
|
|
12152
12152
|
super(options);
|
|
12153
12153
|
}
|
|
12154
12154
|
}
|
|
12155
|
-
const
|
|
12155
|
+
const logger12 = new DerivedLogger(opts);
|
|
12156
12156
|
Object.keys(opts.levels).forEach(function(level) {
|
|
12157
12157
|
debug('Define prototype method for "%s"', level);
|
|
12158
12158
|
if (level === "log") {
|
|
@@ -12160,14 +12160,14 @@ var require_create_logger = __commonJS({
|
|
|
12160
12160
|
return;
|
|
12161
12161
|
}
|
|
12162
12162
|
DerivedLogger.prototype[level] = function(...args) {
|
|
12163
|
-
const self2 = this ||
|
|
12163
|
+
const self2 = this || logger12;
|
|
12164
12164
|
if (args.length === 1) {
|
|
12165
12165
|
const [msg] = args;
|
|
12166
12166
|
const info = msg && msg.message && msg || { message: msg };
|
|
12167
12167
|
info.level = info[LEVEL] = level;
|
|
12168
12168
|
self2._addDefaultMeta(info);
|
|
12169
12169
|
self2.write(info);
|
|
12170
|
-
return this ||
|
|
12170
|
+
return this || logger12;
|
|
12171
12171
|
}
|
|
12172
12172
|
if (args.length === 0) {
|
|
12173
12173
|
self2.log(level, "");
|
|
@@ -12176,10 +12176,10 @@ var require_create_logger = __commonJS({
|
|
|
12176
12176
|
return self2.log(level, ...args);
|
|
12177
12177
|
};
|
|
12178
12178
|
DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function() {
|
|
12179
|
-
return (this ||
|
|
12179
|
+
return (this || logger12).isLevelEnabled(level);
|
|
12180
12180
|
};
|
|
12181
12181
|
});
|
|
12182
|
-
return
|
|
12182
|
+
return logger12;
|
|
12183
12183
|
};
|
|
12184
12184
|
}
|
|
12185
12185
|
});
|
|
@@ -12187,7 +12187,7 @@ var require_create_logger = __commonJS({
|
|
|
12187
12187
|
// ../../node_modules/.pnpm/winston@3.11.0/node_modules/winston/lib/winston/container.js
|
|
12188
12188
|
var require_container = __commonJS({
|
|
12189
12189
|
"../../node_modules/.pnpm/winston@3.11.0/node_modules/winston/lib/winston/container.js"(exports, module) {
|
|
12190
|
-
var
|
|
12190
|
+
var createLogger2 = require_create_logger();
|
|
12191
12191
|
module.exports = class Container {
|
|
12192
12192
|
/**
|
|
12193
12193
|
* Constructor function for the Container object responsible for managing a
|
|
@@ -12214,9 +12214,9 @@ var require_container = __commonJS({
|
|
|
12214
12214
|
} else {
|
|
12215
12215
|
options.transports = [];
|
|
12216
12216
|
}
|
|
12217
|
-
const
|
|
12218
|
-
|
|
12219
|
-
this.loggers.set(id2,
|
|
12217
|
+
const logger12 = createLogger2(options);
|
|
12218
|
+
logger12.on("close", () => this._delete(id2));
|
|
12219
|
+
this.loggers.set(id2, logger12);
|
|
12220
12220
|
}
|
|
12221
12221
|
return this.loggers.get(id2);
|
|
12222
12222
|
}
|
|
@@ -12261,8 +12261,8 @@ var require_container = __commonJS({
|
|
|
12261
12261
|
if (!this.loggers.has(id2)) {
|
|
12262
12262
|
return;
|
|
12263
12263
|
}
|
|
12264
|
-
const
|
|
12265
|
-
|
|
12264
|
+
const logger12 = this.loggers.get(id2);
|
|
12265
|
+
logger12.close();
|
|
12266
12266
|
this._delete(id2);
|
|
12267
12267
|
}
|
|
12268
12268
|
/**
|
|
@@ -64817,8 +64817,555 @@ var require_index_cjs = __commonJS({
|
|
|
64817
64817
|
}
|
|
64818
64818
|
});
|
|
64819
64819
|
|
|
64820
|
+
// src/common/networks.ts
|
|
64821
|
+
var ETHERSCAN_V2_URL = "https://api.etherscan.io/v2/api";
|
|
64822
|
+
var networks = {
|
|
64823
|
+
// Ethereum
|
|
64824
|
+
ethereum: {
|
|
64825
|
+
chainId: 1,
|
|
64826
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64827
|
+
aliases: ["ethereum-mainnet"]
|
|
64828
|
+
},
|
|
64829
|
+
goerli: {
|
|
64830
|
+
// DEPRECATED
|
|
64831
|
+
chainId: 5,
|
|
64832
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64833
|
+
aliases: ["ethereum-goerli"]
|
|
64834
|
+
},
|
|
64835
|
+
sepolia: {
|
|
64836
|
+
chainId: 11155111,
|
|
64837
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64838
|
+
aliases: ["sepolia-testnet", "eth-sepolia", "ethereum-sepolia"]
|
|
64839
|
+
},
|
|
64840
|
+
holesky: {
|
|
64841
|
+
chainId: 17e3,
|
|
64842
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64843
|
+
aliases: ["holesky-testnet", "ethereum-holesky"]
|
|
64844
|
+
},
|
|
64845
|
+
hoodi: {
|
|
64846
|
+
chainId: 560048,
|
|
64847
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64848
|
+
aliases: ["hoodi-testnet", "ethereum-hoodi"]
|
|
64849
|
+
},
|
|
64850
|
+
// Polygon
|
|
64851
|
+
polygon: {
|
|
64852
|
+
chainId: 137,
|
|
64853
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64854
|
+
aliases: ["polygon-mainnet"]
|
|
64855
|
+
},
|
|
64856
|
+
amoy: {
|
|
64857
|
+
chainId: 80002,
|
|
64858
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64859
|
+
aliases: ["polygon-amoy", "polygon-sepolia", "polygon-testnet"]
|
|
64860
|
+
},
|
|
64861
|
+
// Arbitrum
|
|
64862
|
+
arbitrum: {
|
|
64863
|
+
chainId: 42161,
|
|
64864
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64865
|
+
aliases: ["arbitrum-mainnet"]
|
|
64866
|
+
},
|
|
64867
|
+
"arbitrum-nova": {
|
|
64868
|
+
chainId: 42170,
|
|
64869
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64870
|
+
aliases: ["arbitrum-nova-mainnet"]
|
|
64871
|
+
},
|
|
64872
|
+
"arbitrum-goerli": {
|
|
64873
|
+
// DEPRECATED
|
|
64874
|
+
chainId: 421613,
|
|
64875
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64876
|
+
},
|
|
64877
|
+
arbsep: {
|
|
64878
|
+
chainId: 421614,
|
|
64879
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64880
|
+
aliases: ["arbsep-testnet", "arbitrum-sepolia", "arbitrum-testnet"]
|
|
64881
|
+
},
|
|
64882
|
+
// Optimism
|
|
64883
|
+
optimism: {
|
|
64884
|
+
chainId: 10,
|
|
64885
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64886
|
+
aliases: ["optimism-mainnet"]
|
|
64887
|
+
},
|
|
64888
|
+
"optimism-goerli": {
|
|
64889
|
+
// DEPRECATED
|
|
64890
|
+
chainId: 420,
|
|
64891
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64892
|
+
},
|
|
64893
|
+
optsep: {
|
|
64894
|
+
chainId: 11155420,
|
|
64895
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64896
|
+
aliases: ["optsep-testnet", "optimism-sepolia", "optimism-testnet"]
|
|
64897
|
+
},
|
|
64898
|
+
// Base
|
|
64899
|
+
base: {
|
|
64900
|
+
chainId: 8453,
|
|
64901
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64902
|
+
aliases: ["base-mainnet"]
|
|
64903
|
+
},
|
|
64904
|
+
"base-sepolia": {
|
|
64905
|
+
chainId: 84532,
|
|
64906
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64907
|
+
aliases: ["base-testnet", "basesep"]
|
|
64908
|
+
},
|
|
64909
|
+
"base-goerli": {
|
|
64910
|
+
// DEPRECATED
|
|
64911
|
+
chainId: 84531,
|
|
64912
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64913
|
+
},
|
|
64914
|
+
// Avalanche
|
|
64915
|
+
avalanche: {
|
|
64916
|
+
chainId: 43114,
|
|
64917
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64918
|
+
aliases: ["avalanche-mainnet"]
|
|
64919
|
+
},
|
|
64920
|
+
fuji: {
|
|
64921
|
+
chainId: 43113,
|
|
64922
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64923
|
+
aliases: ["avalanche-testnet", "avalanche-fuji"]
|
|
64924
|
+
},
|
|
64925
|
+
// BSC
|
|
64926
|
+
bsc: {
|
|
64927
|
+
chainId: 56,
|
|
64928
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64929
|
+
aliases: ["bsc-mainnet"]
|
|
64930
|
+
},
|
|
64931
|
+
"bsc-testnet": {
|
|
64932
|
+
chainId: 97,
|
|
64933
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64934
|
+
},
|
|
64935
|
+
// Fantom
|
|
64936
|
+
fantom: {
|
|
64937
|
+
chainId: 250,
|
|
64938
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64939
|
+
aliases: ["fantom-mainnet"]
|
|
64940
|
+
},
|
|
64941
|
+
"fantom-testnet": {
|
|
64942
|
+
chainId: 4002,
|
|
64943
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64944
|
+
},
|
|
64945
|
+
// Gnosis
|
|
64946
|
+
gnosis: {
|
|
64947
|
+
chainId: 100,
|
|
64948
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64949
|
+
aliases: ["gnosis-mainnet"]
|
|
64950
|
+
},
|
|
64951
|
+
// Blast
|
|
64952
|
+
blast: {
|
|
64953
|
+
chainId: 81457,
|
|
64954
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64955
|
+
aliases: ["blast-mainnet"]
|
|
64956
|
+
},
|
|
64957
|
+
"blast-sepolia": {
|
|
64958
|
+
chainId: 168587773,
|
|
64959
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64960
|
+
aliases: ["blast-sepolia-testnet", "blast-testnet"]
|
|
64961
|
+
},
|
|
64962
|
+
// Linea / zkConsensys
|
|
64963
|
+
linea: {
|
|
64964
|
+
chainId: 59144,
|
|
64965
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64966
|
+
aliases: ["linea-mainnet", "zkconsensys", "zkconsensys-mainnet"]
|
|
64967
|
+
},
|
|
64968
|
+
"linea-sepolia": {
|
|
64969
|
+
chainId: 59141,
|
|
64970
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64971
|
+
aliases: ["linea-sepolia-testnet", "linea-testnet", "lineasep"]
|
|
64972
|
+
},
|
|
64973
|
+
// Scroll
|
|
64974
|
+
scroll: {
|
|
64975
|
+
chainId: 534352,
|
|
64976
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64977
|
+
aliases: ["scroll-mainnet"]
|
|
64978
|
+
},
|
|
64979
|
+
"scroll-sepolia": {
|
|
64980
|
+
chainId: 534351,
|
|
64981
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64982
|
+
aliases: ["scroll-sepolia-testnet", "scroll-testnet"]
|
|
64983
|
+
},
|
|
64984
|
+
// Moonbeam
|
|
64985
|
+
moonbeam: {
|
|
64986
|
+
chainId: 1284,
|
|
64987
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64988
|
+
aliases: ["moonbeam-mainnet"]
|
|
64989
|
+
},
|
|
64990
|
+
"moonbeam-testnet": {
|
|
64991
|
+
chainId: 1287,
|
|
64992
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64993
|
+
},
|
|
64994
|
+
// Moonriver
|
|
64995
|
+
moonriver: {
|
|
64996
|
+
chainId: 1285,
|
|
64997
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64998
|
+
aliases: ["moonriver-mainnet"]
|
|
64999
|
+
},
|
|
65000
|
+
// Fraxtal
|
|
65001
|
+
fraxtal: {
|
|
65002
|
+
chainId: 252,
|
|
65003
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65004
|
+
aliases: ["fraxtal-mainnet"]
|
|
65005
|
+
},
|
|
65006
|
+
"fraxtal-hoodi": {
|
|
65007
|
+
chainId: 2523,
|
|
65008
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65009
|
+
aliases: ["fraxtal-hoodi-testnet", "fraxtal-testnet"]
|
|
65010
|
+
},
|
|
65011
|
+
// Taiko
|
|
65012
|
+
taiko: {
|
|
65013
|
+
chainId: 167e3,
|
|
65014
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65015
|
+
aliases: ["taiko-mainnet"]
|
|
65016
|
+
},
|
|
65017
|
+
"taiko-hoodi": {
|
|
65018
|
+
chainId: 167013,
|
|
65019
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65020
|
+
aliases: ["taiko-hoodi-testnet", "taiko-testnet"]
|
|
65021
|
+
},
|
|
65022
|
+
// Abstract
|
|
65023
|
+
abstract: {
|
|
65024
|
+
chainId: 2741,
|
|
65025
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65026
|
+
aliases: ["abstract-mainnet"]
|
|
65027
|
+
},
|
|
65028
|
+
"abstract-sepolia": {
|
|
65029
|
+
chainId: 11124,
|
|
65030
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65031
|
+
aliases: ["abstract-sepolia-testnet", "abstract-testnet"]
|
|
65032
|
+
},
|
|
65033
|
+
// ApeChain
|
|
65034
|
+
apechain: {
|
|
65035
|
+
chainId: 33139,
|
|
65036
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65037
|
+
aliases: ["apechain-mainnet", "ape"]
|
|
65038
|
+
},
|
|
65039
|
+
"apechain-curtis": {
|
|
65040
|
+
chainId: 33111,
|
|
65041
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65042
|
+
aliases: ["apechain-curtis-testnet", "apechain-testnet", "curtis"]
|
|
65043
|
+
},
|
|
65044
|
+
// Berachain
|
|
65045
|
+
berachain: {
|
|
65046
|
+
chainId: 80094,
|
|
65047
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65048
|
+
aliases: ["berachain-mainnet", "bera"]
|
|
65049
|
+
},
|
|
65050
|
+
"berachain-bepolia": {
|
|
65051
|
+
chainId: 80069,
|
|
65052
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65053
|
+
aliases: ["berachain-bepolia-testnet", "berachain-testnet", "bepolia"]
|
|
65054
|
+
},
|
|
65055
|
+
// BitTorrent
|
|
65056
|
+
bittorrent: {
|
|
65057
|
+
chainId: 199,
|
|
65058
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65059
|
+
aliases: ["bittorrent-mainnet"]
|
|
65060
|
+
},
|
|
65061
|
+
"bittorrent-testnet": {
|
|
65062
|
+
chainId: 1029,
|
|
65063
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65064
|
+
},
|
|
65065
|
+
// Celo
|
|
65066
|
+
celo: {
|
|
65067
|
+
chainId: 42220,
|
|
65068
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65069
|
+
aliases: ["celo-mainnet"]
|
|
65070
|
+
},
|
|
65071
|
+
"celo-sepolia": {
|
|
65072
|
+
chainId: 11142220,
|
|
65073
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65074
|
+
aliases: ["celo-sepolia-testnet", "celo-testnet"]
|
|
65075
|
+
},
|
|
65076
|
+
// HyperEVM
|
|
65077
|
+
hyperevm: {
|
|
65078
|
+
chainId: 999,
|
|
65079
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65080
|
+
aliases: ["hyperevm-mainnet", "hyperliquid"]
|
|
65081
|
+
},
|
|
65082
|
+
// Katana
|
|
65083
|
+
katana: {
|
|
65084
|
+
chainId: 747474,
|
|
65085
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65086
|
+
aliases: ["katana-mainnet"]
|
|
65087
|
+
},
|
|
65088
|
+
"katana-bokuto": {
|
|
65089
|
+
chainId: 737373,
|
|
65090
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65091
|
+
aliases: ["katana-bokuto-testnet", "katana-testnet"]
|
|
65092
|
+
},
|
|
65093
|
+
// Mantle
|
|
65094
|
+
mantle: {
|
|
65095
|
+
chainId: 5e3,
|
|
65096
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65097
|
+
aliases: ["mantle-mainnet"]
|
|
65098
|
+
},
|
|
65099
|
+
"mantle-sepolia": {
|
|
65100
|
+
chainId: 5003,
|
|
65101
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65102
|
+
aliases: ["mantle-sepolia-testnet", "mantle-testnet", "mantlesep"]
|
|
65103
|
+
},
|
|
65104
|
+
// Memecore
|
|
65105
|
+
"memecore-testnet": {
|
|
65106
|
+
chainId: 43521,
|
|
65107
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65108
|
+
aliases: ["memecoreformicarium"]
|
|
65109
|
+
},
|
|
65110
|
+
// Monad
|
|
65111
|
+
"monad-testnet": {
|
|
65112
|
+
chainId: 10143,
|
|
65113
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65114
|
+
},
|
|
65115
|
+
// opBNB
|
|
65116
|
+
opbnb: {
|
|
65117
|
+
chainId: 204,
|
|
65118
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65119
|
+
aliases: ["opbnb-mainnet"]
|
|
65120
|
+
},
|
|
65121
|
+
"opbnb-testnet": {
|
|
65122
|
+
chainId: 5611,
|
|
65123
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65124
|
+
},
|
|
65125
|
+
// Sei
|
|
65126
|
+
sei: {
|
|
65127
|
+
chainId: 1329,
|
|
65128
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65129
|
+
aliases: ["sei-mainnet"]
|
|
65130
|
+
},
|
|
65131
|
+
"sei-testnet": {
|
|
65132
|
+
chainId: 1328,
|
|
65133
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65134
|
+
},
|
|
65135
|
+
// Sonic
|
|
65136
|
+
sonic: {
|
|
65137
|
+
chainId: 146,
|
|
65138
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65139
|
+
aliases: ["sonic-mainnet"]
|
|
65140
|
+
},
|
|
65141
|
+
"sonic-testnet": {
|
|
65142
|
+
chainId: 14601,
|
|
65143
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65144
|
+
},
|
|
65145
|
+
// Sophon (DEPRECATED - will be deprecated on November 22, 2025)
|
|
65146
|
+
sophon: {
|
|
65147
|
+
chainId: 50104,
|
|
65148
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65149
|
+
aliases: ["sophon-mainnet"]
|
|
65150
|
+
},
|
|
65151
|
+
"sophon-sepolia": {
|
|
65152
|
+
chainId: 531050104,
|
|
65153
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65154
|
+
aliases: ["sophon-sepolia-testnet", "sophon-testnet"]
|
|
65155
|
+
},
|
|
65156
|
+
// Swellchain
|
|
65157
|
+
swellchain: {
|
|
65158
|
+
chainId: 1923,
|
|
65159
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65160
|
+
aliases: ["swellchain-mainnet", "swell"]
|
|
65161
|
+
},
|
|
65162
|
+
"swellchain-testnet": {
|
|
65163
|
+
chainId: 1924,
|
|
65164
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65165
|
+
},
|
|
65166
|
+
// Unichain
|
|
65167
|
+
unichain: {
|
|
65168
|
+
chainId: 130,
|
|
65169
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65170
|
+
aliases: ["unichain-mainnet"]
|
|
65171
|
+
},
|
|
65172
|
+
"unichain-sepolia": {
|
|
65173
|
+
chainId: 1301,
|
|
65174
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65175
|
+
aliases: ["unichain-sepolia-testnet", "unichain-testnet"]
|
|
65176
|
+
},
|
|
65177
|
+
// World
|
|
65178
|
+
world: {
|
|
65179
|
+
chainId: 480,
|
|
65180
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65181
|
+
aliases: ["world-mainnet", "worldchain"]
|
|
65182
|
+
},
|
|
65183
|
+
"world-sepolia": {
|
|
65184
|
+
chainId: 4801,
|
|
65185
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65186
|
+
aliases: ["world-sepolia-testnet", "world-testnet"]
|
|
65187
|
+
},
|
|
65188
|
+
// XDC
|
|
65189
|
+
xdc: {
|
|
65190
|
+
chainId: 50,
|
|
65191
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65192
|
+
aliases: ["xdc-mainnet"]
|
|
65193
|
+
},
|
|
65194
|
+
"xdc-apothem": {
|
|
65195
|
+
chainId: 51,
|
|
65196
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65197
|
+
aliases: ["xdc-apothem-testnet", "xdc-testnet"]
|
|
65198
|
+
},
|
|
65199
|
+
// zkSync
|
|
65200
|
+
zksync: {
|
|
65201
|
+
chainId: 324,
|
|
65202
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65203
|
+
aliases: ["zksync-mainnet"]
|
|
65204
|
+
},
|
|
65205
|
+
"zksync-sepolia": {
|
|
65206
|
+
chainId: 300,
|
|
65207
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65208
|
+
aliases: ["zksync-sepolia-testnet", "zksync-testnet", "zksyncsep"]
|
|
65209
|
+
},
|
|
65210
|
+
// Non-Etherscan Networks (custom explorers)
|
|
65211
|
+
// chainId is not used for these networks
|
|
65212
|
+
// Astar
|
|
65213
|
+
astar: {
|
|
65214
|
+
chainId: 0,
|
|
65215
|
+
apiUrl: "https://astar.blockscout.com/api",
|
|
65216
|
+
aliases: ["astar-mainnet"]
|
|
65217
|
+
},
|
|
65218
|
+
zkatana: {
|
|
65219
|
+
chainId: 0,
|
|
65220
|
+
apiUrl: "https://astar-zkevm.explorer.startale.com/api",
|
|
65221
|
+
aliases: ["zkatana-mainnet"]
|
|
65222
|
+
},
|
|
65223
|
+
// Aurora
|
|
65224
|
+
aurora: {
|
|
65225
|
+
chainId: 0,
|
|
65226
|
+
apiUrl: "https://explorer.mainnet.aurora.dev/api",
|
|
65227
|
+
aliases: ["aurora-mainnet"]
|
|
65228
|
+
},
|
|
65229
|
+
// EBI
|
|
65230
|
+
ebi: {
|
|
65231
|
+
chainId: 0,
|
|
65232
|
+
apiUrl: "https://explorer.ebi.xyz/api",
|
|
65233
|
+
aliases: ["ebi-mainnet"]
|
|
65234
|
+
},
|
|
65235
|
+
// Etherlink
|
|
65236
|
+
etherlink: {
|
|
65237
|
+
chainId: 0,
|
|
65238
|
+
apiUrl: "https://explorer.etherlink.com/api",
|
|
65239
|
+
aliases: ["etherlink-mainnet"]
|
|
65240
|
+
},
|
|
65241
|
+
// Flare
|
|
65242
|
+
flare: {
|
|
65243
|
+
chainId: 0,
|
|
65244
|
+
apiUrl: "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan",
|
|
65245
|
+
aliases: ["flare-mainnet"]
|
|
65246
|
+
},
|
|
65247
|
+
// Gravity
|
|
65248
|
+
gravity: {
|
|
65249
|
+
chainId: 0,
|
|
65250
|
+
apiUrl: "https://explorer.gravity.xyz/api",
|
|
65251
|
+
aliases: ["gravity-mainnet"]
|
|
65252
|
+
},
|
|
65253
|
+
// IOTA
|
|
65254
|
+
iota: {
|
|
65255
|
+
chainId: 0,
|
|
65256
|
+
apiUrl: "https://explorer.evm.iota.org/api",
|
|
65257
|
+
aliases: ["iota-mainnet"]
|
|
65258
|
+
},
|
|
65259
|
+
// Kava
|
|
65260
|
+
kava: {
|
|
65261
|
+
chainId: 0,
|
|
65262
|
+
apiUrl: "https://kavascan.com/api",
|
|
65263
|
+
aliases: ["kava-mainnet"]
|
|
65264
|
+
},
|
|
65265
|
+
"kava-testnet": {
|
|
65266
|
+
chainId: 0,
|
|
65267
|
+
apiUrl: "https://testnet.kavascan.com/api"
|
|
65268
|
+
},
|
|
65269
|
+
// Klaytn
|
|
65270
|
+
klaytn: {
|
|
65271
|
+
chainId: 0,
|
|
65272
|
+
apiUrl: "https://api-cypress.klaytnscope.com/api",
|
|
65273
|
+
aliases: ["klaytn-mainnet"]
|
|
65274
|
+
},
|
|
65275
|
+
"klaytn-testnet": {
|
|
65276
|
+
chainId: 0,
|
|
65277
|
+
apiUrl: "https://api-baobab.klaytnscope.com/api"
|
|
65278
|
+
},
|
|
65279
|
+
// Manta
|
|
65280
|
+
manta: {
|
|
65281
|
+
chainId: 0,
|
|
65282
|
+
apiUrl: "https://pacific-explorer.manta.network/api",
|
|
65283
|
+
aliases: ["manta-mainnet"]
|
|
65284
|
+
},
|
|
65285
|
+
// Metis
|
|
65286
|
+
metis: {
|
|
65287
|
+
chainId: 0,
|
|
65288
|
+
apiUrl: "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan",
|
|
65289
|
+
aliases: ["metis-mainnet"]
|
|
65290
|
+
},
|
|
65291
|
+
// Mode
|
|
65292
|
+
mode: {
|
|
65293
|
+
chainId: 0,
|
|
65294
|
+
apiUrl: "https://explorer.mode.network/api",
|
|
65295
|
+
aliases: ["mode-mainnet"]
|
|
65296
|
+
},
|
|
65297
|
+
// Rarible
|
|
65298
|
+
rarible: {
|
|
65299
|
+
chainId: 0,
|
|
65300
|
+
apiUrl: "https://mainnet.explorer.rarichain.org/api",
|
|
65301
|
+
aliases: ["rarible-mainnet"]
|
|
65302
|
+
},
|
|
65303
|
+
// X Chain
|
|
65304
|
+
xchain: {
|
|
65305
|
+
chainId: 0,
|
|
65306
|
+
apiUrl: "https://xchain-explorer.idex.io/api",
|
|
65307
|
+
aliases: ["xchain-mainnet"]
|
|
65308
|
+
},
|
|
65309
|
+
// X Layer
|
|
65310
|
+
xlayer: {
|
|
65311
|
+
chainId: 0,
|
|
65312
|
+
apiUrl: "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER",
|
|
65313
|
+
aliases: ["xlayer-mainnet"]
|
|
65314
|
+
}
|
|
65315
|
+
};
|
|
65316
|
+
|
|
65317
|
+
// src/common/networks-loader.ts
|
|
65318
|
+
var NetworkRegistry = class {
|
|
65319
|
+
constructor() {
|
|
65320
|
+
__publicField(this, "apiUrls", /* @__PURE__ */ new Map());
|
|
65321
|
+
__publicField(this, "chainIds", /* @__PURE__ */ new Map());
|
|
65322
|
+
for (const [canonicalName, network] of Object.entries(networks)) {
|
|
65323
|
+
const apiUrl = network.apiUrl;
|
|
65324
|
+
const chainId = network.chainId;
|
|
65325
|
+
if (apiUrl) {
|
|
65326
|
+
this.apiUrls.set(canonicalName, apiUrl);
|
|
65327
|
+
}
|
|
65328
|
+
if (chainId) {
|
|
65329
|
+
this.chainIds.set(canonicalName, chainId);
|
|
65330
|
+
}
|
|
65331
|
+
if (network.aliases) {
|
|
65332
|
+
for (const alias of network.aliases) {
|
|
65333
|
+
if (apiUrl) {
|
|
65334
|
+
this.apiUrls.set(alias, apiUrl);
|
|
65335
|
+
}
|
|
65336
|
+
if (chainId) {
|
|
65337
|
+
this.chainIds.set(alias, chainId);
|
|
65338
|
+
}
|
|
65339
|
+
}
|
|
65340
|
+
}
|
|
65341
|
+
}
|
|
65342
|
+
}
|
|
65343
|
+
getApiUrl(networkName) {
|
|
65344
|
+
return this.apiUrls.get(networkName);
|
|
65345
|
+
}
|
|
65346
|
+
getChainId(networkName) {
|
|
65347
|
+
return this.chainIds.get(networkName);
|
|
65348
|
+
}
|
|
65349
|
+
getAllNetworkNames() {
|
|
65350
|
+
return Array.from(/* @__PURE__ */ new Set([...this.apiUrls.keys(), ...this.chainIds.keys()]));
|
|
65351
|
+
}
|
|
65352
|
+
getSupportedNetworks() {
|
|
65353
|
+
const networks2 = /* @__PURE__ */ new Map();
|
|
65354
|
+
const allNames = this.getAllNetworkNames();
|
|
65355
|
+
for (const name of allNames) {
|
|
65356
|
+
networks2.set(name, {
|
|
65357
|
+
chainId: this.getChainId(name),
|
|
65358
|
+
apiUrl: this.getApiUrl(name)
|
|
65359
|
+
});
|
|
65360
|
+
}
|
|
65361
|
+
return networks2;
|
|
65362
|
+
}
|
|
65363
|
+
};
|
|
65364
|
+
var networkRegistry = new NetworkRegistry();
|
|
65365
|
+
var getDefaultScanApiUrl = (networkName) => networkRegistry.getApiUrl(networkName);
|
|
65366
|
+
var getDefaultChainId = (networkName) => networkRegistry.getChainId(networkName);
|
|
65367
|
+
|
|
64820
65368
|
// src/common/url.ts
|
|
64821
|
-
var getDefaultScanApiUrl = (networkName) => DEFAULT_SCAN_API_URLS.get(networkName);
|
|
64822
65369
|
var tryGetScanBrowserUrlFromScanUrl = (scanApiUrl) => {
|
|
64823
65370
|
try {
|
|
64824
65371
|
const urlObject = new URL(scanApiUrl);
|
|
@@ -64841,99 +65388,6 @@ var tryCreateScanContractUrl = (scanBrowserUrl, address) => {
|
|
|
64841
65388
|
return void 0;
|
|
64842
65389
|
}
|
|
64843
65390
|
};
|
|
64844
|
-
var DEFAULT_SCAN_API_URLS = /* @__PURE__ */ new Map([
|
|
64845
|
-
["amoy", "https://amoy.polygonscan.com/api"],
|
|
64846
|
-
["amoy-mainnet", "https://amoy.polygonscan.com/api"],
|
|
64847
|
-
["arbitrum", "https://api.arbiscan.io/api"],
|
|
64848
|
-
["arbitrum-goerli", "https://api-goerli.arbiscan.io/api"],
|
|
64849
|
-
["arbitrum-mainnet", "https://api.arbiscan.io/api"],
|
|
64850
|
-
["arbsep-testnet", "https://api-sepolia.arbiscan.io/api"],
|
|
64851
|
-
["astar", "https://astar.blockscout.com/api"],
|
|
64852
|
-
["astar-mainnet", "https://astar.blockscout.com/api"],
|
|
64853
|
-
["aurora", "https://explorer.mainnet.aurora.dev/api"],
|
|
64854
|
-
["aurora-mainnet", "https://explorer.mainnet.aurora.dev/api"],
|
|
64855
|
-
["avalanche", "https://api.snowtrace.io/api"],
|
|
64856
|
-
["avalanche-mainnet", "https://api.snowtrace.io/api"],
|
|
64857
|
-
["avalanche-testnet", "https://api-testnet.snowtrace.io/api"],
|
|
64858
|
-
["base", "https://api.basescan.org/api"],
|
|
64859
|
-
["base-goerli", "https://api-goerli.basescan.org/api"],
|
|
64860
|
-
["base-mainnet", "https://api.basescan.org/api"],
|
|
64861
|
-
["blast", "https://api.blastscan.io/api"],
|
|
64862
|
-
["blast-mainnet", "https://api.blastscan.io/api"],
|
|
64863
|
-
["bsc", "https://api.bscscan.com/api"],
|
|
64864
|
-
["bsc-mainnet", "https://api.bscscan.com/api"],
|
|
64865
|
-
["bsc-testnet", "https://api-testnet.bscscan.com/api"],
|
|
64866
|
-
["ebi", "https://explorer.ebi.xyz/api"],
|
|
64867
|
-
["ebi-mainnet", "https://explorer.ebi.xyz/api"],
|
|
64868
|
-
["ethereum", "https://api.etherscan.io/api"],
|
|
64869
|
-
["ethereum-goerli", "https://api-goerli.etherscan.io/api"],
|
|
64870
|
-
["ethereum-mainnet", "https://api.etherscan.io/api"],
|
|
64871
|
-
["etherlink", "https://explorer.etherlink.com/api"],
|
|
64872
|
-
["etherlink-mainnet", "https://explorer.etherlink.com/api"],
|
|
64873
|
-
["fantom", "https://api.ftmscan.com/api"],
|
|
64874
|
-
["fantom-mainnet", "https://api.ftmscan.com/api"],
|
|
64875
|
-
["fantom-testnet", "https://api-testnet.ftmscan.com/api"],
|
|
64876
|
-
["flare", "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan"],
|
|
64877
|
-
["flare-mainnet", "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan"],
|
|
64878
|
-
["fraxtal", "https://api.fraxscan.com/api"],
|
|
64879
|
-
["fraxtal-mainnet", "https://api.fraxscan.com/api"],
|
|
64880
|
-
["fuji", "https://api-testnet.snowtrace.io/api"],
|
|
64881
|
-
["fuji-mainnet", "https://api-testnet.snowtrace.io/api"],
|
|
64882
|
-
["gnosis", "https://api.gnosisscan.io/api"],
|
|
64883
|
-
["gnosis-mainnet", "https://api.gnosisscan.io/api"],
|
|
64884
|
-
["goerli", "https://api-goerli.etherscan.io/api"],
|
|
64885
|
-
["goerli-mainnet", "https://api-goerli.etherscan.io/api"],
|
|
64886
|
-
["gravity", "https://explorer.gravity.xyz/api"],
|
|
64887
|
-
["gravity-mainnet", "https://explorer.gravity.xyz/api"],
|
|
64888
|
-
["iota", "https://explorer.evm.iota.org/api"],
|
|
64889
|
-
["iota-mainnet", "https://explorer.evm.iota.org/api"],
|
|
64890
|
-
["kava", "https://kavascan.com/api"],
|
|
64891
|
-
["kava-mainnet", "https://kavascan.com/api"],
|
|
64892
|
-
["kava-testnet", "https://testnet.kavascan.com/api"],
|
|
64893
|
-
["klaytn", "https://api-cypress.klaytnscope.com/api"],
|
|
64894
|
-
["klaytn-mainnet", "https://api-cypress.klaytnscope.com/api"],
|
|
64895
|
-
["klaytn-testnet", "https://api-baobab.klaytnscope.com/api"],
|
|
64896
|
-
["linea", "https://api.lineascan.build/api"],
|
|
64897
|
-
["linea-mainnet", "https://api.lineascan.build/api"],
|
|
64898
|
-
["mantle", "https://explorer.mantle.xyz/api"],
|
|
64899
|
-
["mantle-mainnet", "https://explorer.mantle.xyz/api"],
|
|
64900
|
-
["manta", "https://pacific-explorer.manta.network/api"],
|
|
64901
|
-
["manta-mainnet", "https://pacific-explorer.manta.network/api"],
|
|
64902
|
-
["metis", "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan"],
|
|
64903
|
-
["metis-mainnet", "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan"],
|
|
64904
|
-
["mode", "https://explorer.mode.network/api"],
|
|
64905
|
-
["mode-mainnet", "https://explorer.mode.network/api"],
|
|
64906
|
-
["moonbeam", "https://api-moonbeam.moonscan.io/api"],
|
|
64907
|
-
["moonbeam-mainnet", "https://api-moonbeam.moonscan.io/api"],
|
|
64908
|
-
["moonbeam-testnet", "https://api-moonbase.moonscan.io/api"],
|
|
64909
|
-
["moonriver", "https://api-moonriver.moonscan.io/api"],
|
|
64910
|
-
["moonriver-mainnet", "https://api-moonriver.moonscan.io/api"],
|
|
64911
|
-
["optimism", "https://api-optimistic.etherscan.io/api"],
|
|
64912
|
-
["optimism-goerli", "https://api-goerli-optimistic.etherscan.io/api"],
|
|
64913
|
-
["optimism-mainnet", "https://api-optimistic.etherscan.io/api"],
|
|
64914
|
-
["optsep-testnet", "https://api-sepolia-optimistic.etherscan.io/api"],
|
|
64915
|
-
["polygon", "https://api.polygonscan.com/api"],
|
|
64916
|
-
["polygon-mainnet", "https://api.polygonscan.com/api"],
|
|
64917
|
-
["rarible", "https://mainnet.explorer.rarichain.org/api"],
|
|
64918
|
-
["rarible-mainnet", "https://mainnet.explorer.rarichain.org/api"],
|
|
64919
|
-
["sepolia-testnet", "https://api-sepolia.etherscan.io/api"],
|
|
64920
|
-
["scroll", "https://api.scrollscan.com/api"],
|
|
64921
|
-
["scroll-mainnet", "https://api.scrollscan.com/api"],
|
|
64922
|
-
["sei", "https://seitrace.com/pacific-1/api"],
|
|
64923
|
-
["sei-mainnet", "https://seitrace.com/pacific-1/api"],
|
|
64924
|
-
["taiko", "https://api.taikoscan.io/api"],
|
|
64925
|
-
["taiko-mainnet", "https://api.taikoscan.io/api"],
|
|
64926
|
-
["xchain", "https://xchain-explorer.idex.io/api"],
|
|
64927
|
-
["xchain-mainnet", "https://xchain-explorer.idex.io/api"],
|
|
64928
|
-
["xlayer", "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER"],
|
|
64929
|
-
["xlayer-mainnet", "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER"],
|
|
64930
|
-
["zkatana", "https://astar-zkevm.explorer.startale.com/api"],
|
|
64931
|
-
["zkatana-mainnet", "https://astar-zkevm.explorer.startale.com/api"],
|
|
64932
|
-
["zkconsensys", "https://api.lineascan.build/api"],
|
|
64933
|
-
["zkconsensys-mainnet", "https://api.lineascan.build/api"],
|
|
64934
|
-
["zkpolygon", "https://api-zkevm.polygonscan.com/api"],
|
|
64935
|
-
["zkpolygon-mainnet", "https://api-zkevm.polygonscan.com/api"]
|
|
64936
|
-
]);
|
|
64937
65391
|
|
|
64938
65392
|
// src/common/logger.ts
|
|
64939
65393
|
var import_chalk = __toESM(require_source());
|
|
@@ -64958,16 +65412,16 @@ var anonymizeValue = (value) => {
|
|
|
64958
65412
|
const invisiblePart = Array.from({ length: invisibleLength }).fill("*").join("");
|
|
64959
65413
|
return `${visiblePart}${invisiblePart}`;
|
|
64960
65414
|
};
|
|
64961
|
-
var createRecordLogger = (
|
|
64962
|
-
|
|
65415
|
+
var createRecordLogger = (logger12, separator = " ") => (record) => {
|
|
65416
|
+
logger12.info("");
|
|
64963
65417
|
Object.entries(record).forEach(([label, value]) => {
|
|
64964
65418
|
if (Array.isArray(value)) {
|
|
64965
|
-
|
|
65419
|
+
logger12.info(`${label}:`);
|
|
64966
65420
|
value.forEach((item) => {
|
|
64967
|
-
|
|
65421
|
+
logger12.info(`${separator} - ${import_chalk.default.bold(formatLoggableValue(item))}`);
|
|
64968
65422
|
});
|
|
64969
65423
|
} else {
|
|
64970
|
-
|
|
65424
|
+
logger12.info(`${label}:${separator}${import_chalk.default.bold(formatLoggableValue(value))}`);
|
|
64971
65425
|
}
|
|
64972
65426
|
});
|
|
64973
65427
|
};
|
|
@@ -64987,7 +65441,7 @@ var FALSE_SYMBOL = COLORS.error`⚠`;
|
|
|
64987
65441
|
|
|
64988
65442
|
// src/common/config.ts
|
|
64989
65443
|
var import_chalk2 = __toESM(require_source());
|
|
64990
|
-
var parseNetworksConfig = (
|
|
65444
|
+
var parseNetworksConfig = (logger12, partialNetworksConfig) => {
|
|
64991
65445
|
return Object.entries(partialNetworksConfig != null ? partialNetworksConfig : {}).reduce((networksConfig, [networkName, networkConfig]) => {
|
|
64992
65446
|
if (networkConfig == null) {
|
|
64993
65447
|
return networksConfig;
|
|
@@ -65006,7 +65460,7 @@ Please provide the API URL:
|
|
|
65006
65460
|
);
|
|
65007
65461
|
const apiKey = networkConfig.apiKey || getScanApiKeyFromEnv(networkName);
|
|
65008
65462
|
if (!apiKey) {
|
|
65009
|
-
|
|
65463
|
+
logger12.debug(`Could not find scan API key for network ${import_chalk2.default.bold(networkName)}
|
|
65010
65464
|
|
|
65011
65465
|
Please provide the API key:
|
|
65012
65466
|
|
|
@@ -65016,7 +65470,7 @@ Please provide the API key:
|
|
|
65016
65470
|
}
|
|
65017
65471
|
const browserUrl = networkConfig.browserUrl || getScanBrowserUrlFromEnv(networkName) || tryGetScanBrowserUrlFromScanUrl(apiUrl);
|
|
65018
65472
|
if (!browserUrl) {
|
|
65019
|
-
|
|
65473
|
+
logger12.debug(`Could not find scan browser URL key for network ${import_chalk2.default.bold(networkName)}
|
|
65020
65474
|
|
|
65021
65475
|
Browser URL is used to display a link to the verified contract
|
|
65022
65476
|
after successful verification.
|
|
@@ -65026,10 +65480,22 @@ Please provide the API key:
|
|
|
65026
65480
|
- As an browserUrl config parameter in ${networkName} config
|
|
65027
65481
|
- As a SCAN_BROWSER_URL_${networkName} environment variable
|
|
65028
65482
|
- As a SCAN_BROWSER_URL_${normalizeNetworkName(networkName)} environment variable`);
|
|
65483
|
+
}
|
|
65484
|
+
const chainId = networkConfig.chainId || getChainIdFromEnv(networkName) || getDefaultChainId(networkName);
|
|
65485
|
+
if (!chainId) {
|
|
65486
|
+
logger12.debug(`Could not find chain ID for network ${import_chalk2.default.bold(networkName)}
|
|
65487
|
+
|
|
65488
|
+
Chain ID is required for Etherscan API v2.
|
|
65489
|
+
|
|
65490
|
+
Please provide the chain ID:
|
|
65491
|
+
|
|
65492
|
+
- As a chainId config parameter in ${networkName} config
|
|
65493
|
+
- As a SCAN_CHAIN_ID_${networkName} environment variable
|
|
65494
|
+
- As a SCAN_CHAIN_ID_${normalizeNetworkName(networkName)} environment variable`);
|
|
65029
65495
|
}
|
|
65030
65496
|
return {
|
|
65031
65497
|
...networksConfig,
|
|
65032
|
-
[networkName]: { apiUrl, apiKey, browserUrl }
|
|
65498
|
+
[networkName]: { apiUrl, apiKey, browserUrl, chainId }
|
|
65033
65499
|
};
|
|
65034
65500
|
}, {});
|
|
65035
65501
|
};
|
|
@@ -65045,6 +65511,11 @@ var getScanApiKeyFromEnv = (networkName) => {
|
|
|
65045
65511
|
var _a, _b;
|
|
65046
65512
|
return ((_a = process.env[`SCAN_API_KEY_${networkName}`]) == null ? void 0 : _a.trim()) || ((_b = process.env[`SCAN_API_KEY_${normalizeNetworkName(networkName)}`]) == null ? void 0 : _b.trim());
|
|
65047
65513
|
};
|
|
65514
|
+
var getChainIdFromEnv = (networkName) => {
|
|
65515
|
+
var _a, _b;
|
|
65516
|
+
const chainIdStr = ((_a = process.env[`SCAN_CHAIN_ID_${networkName}`]) == null ? void 0 : _a.trim()) || ((_b = process.env[`SCAN_CHAIN_ID_${normalizeNetworkName(networkName)}`]) == null ? void 0 : _b.trim());
|
|
65517
|
+
return chainIdStr ? parseInt(chainIdStr, 10) : void 0;
|
|
65518
|
+
};
|
|
65048
65519
|
var normalizeNetworkName = (networkName) => networkName.toUpperCase().replaceAll("-", "_");
|
|
65049
65520
|
|
|
65050
65521
|
// src/common/licenses.ts
|
|
@@ -68829,9 +69300,15 @@ var LogLevel = /* @__PURE__ */ ((LogLevel22) => {
|
|
|
68829
69300
|
return LogLevel22;
|
|
68830
69301
|
})(LogLevel || {});
|
|
68831
69302
|
z.nativeEnum(LogLevel);
|
|
68832
|
-
|
|
69303
|
+
var DEFAULT_LOG_LEVEL = "info";
|
|
69304
|
+
var createLogger = (level = DEFAULT_LOG_LEVEL, logFormat = import_winston.format.cli()) => (0, import_winston.createLogger)({
|
|
69305
|
+
level,
|
|
69306
|
+
format: logFormat,
|
|
69307
|
+
transports: [new import_winston.transports.Console()]
|
|
69308
|
+
});
|
|
69309
|
+
(0, import_winston.format)((info, opts) => ({
|
|
68833
69310
|
...info,
|
|
68834
|
-
message: `${label ? `[${label}] ` : ""}${info.message}`
|
|
69311
|
+
message: `${(opts == null ? void 0 : opts.label) ? `[${opts.label}] ` : ""}${info.message}`
|
|
68835
69312
|
}));
|
|
68836
69313
|
({
|
|
68837
69314
|
TRUE: import_chalk3.default.rgb(0, 153, 0),
|
|
@@ -68845,6 +69322,7 @@ z.nativeEnum(LogLevel);
|
|
|
68845
69322
|
DEFAULT_VALUE: import_chalk3.default.rgb(167, 125, 255)
|
|
68846
69323
|
// MAGENTA
|
|
68847
69324
|
});
|
|
69325
|
+
createLogger();
|
|
68848
69326
|
var retry = async (callback, numAttempts, onRetry) => {
|
|
68849
69327
|
assert4(numAttempts > 0, `Number of attempts for retry must be larger than 0, got ${numAttempts}`);
|
|
68850
69328
|
for (let attempt = 0; attempt < numAttempts - 1; attempt++) {
|
|
@@ -74032,10 +74510,10 @@ var source_default2 = got;
|
|
|
74032
74510
|
|
|
74033
74511
|
// src/common/etherscan.ts
|
|
74034
74512
|
var Verification = class extends EventEmitter {
|
|
74035
|
-
constructor(props,
|
|
74513
|
+
constructor(props, logger12) {
|
|
74036
74514
|
super();
|
|
74037
74515
|
this.props = props;
|
|
74038
|
-
this.logger =
|
|
74516
|
+
this.logger = logger12;
|
|
74039
74517
|
}
|
|
74040
74518
|
async verify() {
|
|
74041
74519
|
try {
|
|
@@ -74073,7 +74551,7 @@ var Verification = class extends EventEmitter {
|
|
|
74073
74551
|
${JSON.stringify(request)}`);
|
|
74074
74552
|
return await retry(
|
|
74075
74553
|
async () => {
|
|
74076
|
-
const response = await submitRequest(this.props.apiUrl, request);
|
|
74554
|
+
const response = await submitRequest(this.props.apiUrl, request, this.props.chainId, this.props.apiKey);
|
|
74077
74555
|
this.logger.verbose(`Received raw response from ${this.props.apiUrl}:
|
|
74078
74556
|
|
|
74079
74557
|
${JSON.stringify(response)}`);
|
|
@@ -74094,7 +74572,7 @@ ${JSON.stringify(response)}`);
|
|
|
74094
74572
|
async __poll(guid) {
|
|
74095
74573
|
while (true) {
|
|
74096
74574
|
this.emit("poll", guid);
|
|
74097
|
-
const result = await checkGuid(this.props.apiUrl, guid);
|
|
74575
|
+
const result = await checkGuid(this.props.apiUrl, guid, this.props.chainId, this.props.apiKey);
|
|
74098
74576
|
this.logger.verbose(`Received raw polling response from ${this.props.apiUrl}:
|
|
74099
74577
|
|
|
74100
74578
|
${JSON.stringify(result)}`);
|
|
@@ -74122,29 +74600,37 @@ ${JSON.stringify(result)}`);
|
|
|
74122
74600
|
}
|
|
74123
74601
|
}
|
|
74124
74602
|
};
|
|
74125
|
-
var createVerification = (props,
|
|
74603
|
+
var createVerification = (props, logger12) => new Verification(props, logger12);
|
|
74126
74604
|
var isPendingResult = (result) => !!(result == null ? void 0 : result.match(/Pending/gi));
|
|
74127
74605
|
var isAlreadyVerifiedResult = (result) => !!(result == null ? void 0 : result.match(/already verified/gi));
|
|
74128
74606
|
var isApiRateLimitedResult = (result) => !!(result == null ? void 0 : result.match(/rate/));
|
|
74129
|
-
var submitRequest = async (apiUrl, request) => {
|
|
74130
|
-
|
|
74131
|
-
|
|
74132
|
-
|
|
74133
|
-
|
|
74134
|
-
|
|
74135
|
-
|
|
74136
|
-
|
|
74137
|
-
|
|
74138
|
-
|
|
74139
|
-
|
|
74140
|
-
|
|
74141
|
-
}
|
|
74607
|
+
var submitRequest = async (apiUrl, request, chainId, apiKey) => {
|
|
74608
|
+
const url = new URL(apiUrl);
|
|
74609
|
+
const isEtherscanV2 = apiUrl.includes("api.etherscan.io/v2");
|
|
74610
|
+
if (chainId !== void 0 && isEtherscanV2) {
|
|
74611
|
+
url.searchParams.set("chainid", String(chainId));
|
|
74612
|
+
}
|
|
74613
|
+
if (apiKey) {
|
|
74614
|
+
url.searchParams.set("apikey", apiKey);
|
|
74615
|
+
}
|
|
74616
|
+
const response = await source_default2(url.toString(), {
|
|
74617
|
+
method: "POST",
|
|
74618
|
+
form: request
|
|
74619
|
+
}).json();
|
|
74620
|
+
return ScanResponseSchema.parse(response);
|
|
74142
74621
|
};
|
|
74143
|
-
var checkGuid = async (apiUrl, guid) => {
|
|
74622
|
+
var checkGuid = async (apiUrl, guid, chainId, apiKey) => {
|
|
74144
74623
|
const url = new URL(apiUrl);
|
|
74145
74624
|
url.searchParams.set("module", "contract");
|
|
74146
74625
|
url.searchParams.set("action", "checkverifystatus");
|
|
74147
74626
|
url.searchParams.set("guid", guid);
|
|
74627
|
+
const isEtherscanV2 = apiUrl.includes("api.etherscan.io/v2");
|
|
74628
|
+
if (chainId !== void 0 && isEtherscanV2) {
|
|
74629
|
+
url.searchParams.set("chainid", String(chainId));
|
|
74630
|
+
}
|
|
74631
|
+
if (apiKey) {
|
|
74632
|
+
url.searchParams.set("apikey", apiKey);
|
|
74633
|
+
}
|
|
74148
74634
|
try {
|
|
74149
74635
|
const data = await source_default2(url).json();
|
|
74150
74636
|
return ScanResponseSchema.parse(data);
|
|
@@ -74567,7 +75053,7 @@ Logger.levels = LogLevel2;
|
|
|
74567
75053
|
var version2 = "bytes/5.7.0";
|
|
74568
75054
|
|
|
74569
75055
|
// ../../node_modules/.pnpm/@ethersproject+bytes@5.7.0/node_modules/@ethersproject/bytes/lib.esm/index.js
|
|
74570
|
-
var
|
|
75056
|
+
var logger2 = new Logger(version2);
|
|
74571
75057
|
function isHexable(value) {
|
|
74572
75058
|
return !!value.toHexString;
|
|
74573
75059
|
}
|
|
@@ -74610,7 +75096,7 @@ function arrayify(value, options) {
|
|
|
74610
75096
|
options = {};
|
|
74611
75097
|
}
|
|
74612
75098
|
if (typeof value === "number") {
|
|
74613
|
-
|
|
75099
|
+
logger2.checkSafeUint53(value, "invalid arrayify value");
|
|
74614
75100
|
const result = [];
|
|
74615
75101
|
while (value) {
|
|
74616
75102
|
result.unshift(value & 255);
|
|
@@ -74635,7 +75121,7 @@ function arrayify(value, options) {
|
|
|
74635
75121
|
} else if (options.hexPad === "right") {
|
|
74636
75122
|
hex += "0";
|
|
74637
75123
|
} else {
|
|
74638
|
-
|
|
75124
|
+
logger2.throwArgumentError("hex data is odd-length", "value", value);
|
|
74639
75125
|
}
|
|
74640
75126
|
}
|
|
74641
75127
|
const result = [];
|
|
@@ -74647,7 +75133,7 @@ function arrayify(value, options) {
|
|
|
74647
75133
|
if (isBytes(value)) {
|
|
74648
75134
|
return addSlice(new Uint8Array(value));
|
|
74649
75135
|
}
|
|
74650
|
-
return
|
|
75136
|
+
return logger2.throwArgumentError("invalid arrayify value", "value", value);
|
|
74651
75137
|
}
|
|
74652
75138
|
function concat(items) {
|
|
74653
75139
|
const objects = items.map((item) => arrayify(item));
|
|
@@ -74674,7 +75160,7 @@ function hexlify(value, options) {
|
|
|
74674
75160
|
options = {};
|
|
74675
75161
|
}
|
|
74676
75162
|
if (typeof value === "number") {
|
|
74677
|
-
|
|
75163
|
+
logger2.checkSafeUint53(value, "invalid hexlify value");
|
|
74678
75164
|
let hex = "";
|
|
74679
75165
|
while (value) {
|
|
74680
75166
|
hex = HexCharacters[value & 15] + hex;
|
|
@@ -74708,7 +75194,7 @@ function hexlify(value, options) {
|
|
|
74708
75194
|
} else if (options.hexPad === "right") {
|
|
74709
75195
|
value += "0";
|
|
74710
75196
|
} else {
|
|
74711
|
-
|
|
75197
|
+
logger2.throwArgumentError("hex data is odd-length", "value", value);
|
|
74712
75198
|
}
|
|
74713
75199
|
}
|
|
74714
75200
|
return value.toLowerCase();
|
|
@@ -74721,13 +75207,13 @@ function hexlify(value, options) {
|
|
|
74721
75207
|
}
|
|
74722
75208
|
return result;
|
|
74723
75209
|
}
|
|
74724
|
-
return
|
|
75210
|
+
return logger2.throwArgumentError("invalid hexlify value", "value", value);
|
|
74725
75211
|
}
|
|
74726
75212
|
function hexDataSlice(data, offset, endOffset) {
|
|
74727
75213
|
if (typeof data !== "string") {
|
|
74728
75214
|
data = hexlify(data);
|
|
74729
75215
|
} else if (!isHexString(data) || data.length % 2) {
|
|
74730
|
-
|
|
75216
|
+
logger2.throwArgumentError("invalid hexData", "value", data);
|
|
74731
75217
|
}
|
|
74732
75218
|
offset = 2 + 2 * offset;
|
|
74733
75219
|
if (endOffset != null) {
|
|
@@ -74746,10 +75232,10 @@ function hexZeroPad(value, length) {
|
|
|
74746
75232
|
if (typeof value !== "string") {
|
|
74747
75233
|
value = hexlify(value);
|
|
74748
75234
|
} else if (!isHexString(value)) {
|
|
74749
|
-
|
|
75235
|
+
logger2.throwArgumentError("invalid hex string", "value", value);
|
|
74750
75236
|
}
|
|
74751
75237
|
if (value.length > 2 * length + 2) {
|
|
74752
|
-
|
|
75238
|
+
logger2.throwArgumentError("value out of range", "value", arguments[1]);
|
|
74753
75239
|
}
|
|
74754
75240
|
while (value.length < 2 * length + 2) {
|
|
74755
75241
|
value = "0x0" + value.substring(2);
|
|
@@ -74762,14 +75248,14 @@ var version3 = "bignumber/5.7.0";
|
|
|
74762
75248
|
|
|
74763
75249
|
// ../../node_modules/.pnpm/@ethersproject+bignumber@5.7.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js
|
|
74764
75250
|
var BN = import_bn.default.BN;
|
|
74765
|
-
var
|
|
75251
|
+
var logger3 = new Logger(version3);
|
|
74766
75252
|
var _constructorGuard = {};
|
|
74767
75253
|
var MAX_SAFE = 9007199254740991;
|
|
74768
75254
|
var _warnedToStringRadix = false;
|
|
74769
75255
|
var BigNumber = class _BigNumber {
|
|
74770
75256
|
constructor(constructorGuard, hex) {
|
|
74771
75257
|
if (constructorGuard !== _constructorGuard) {
|
|
74772
|
-
|
|
75258
|
+
logger3.throwError("cannot call constructor directly; use BigNumber.from", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
74773
75259
|
operation: "new (BigNumber)"
|
|
74774
75260
|
});
|
|
74775
75261
|
}
|
|
@@ -74892,7 +75378,7 @@ var BigNumber = class _BigNumber {
|
|
|
74892
75378
|
return BigInt(this.toString());
|
|
74893
75379
|
} catch (e) {
|
|
74894
75380
|
}
|
|
74895
|
-
return
|
|
75381
|
+
return logger3.throwError("this platform does not support BigInt", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
74896
75382
|
value: this.toString()
|
|
74897
75383
|
});
|
|
74898
75384
|
}
|
|
@@ -74901,12 +75387,12 @@ var BigNumber = class _BigNumber {
|
|
|
74901
75387
|
if (arguments[0] === 10) {
|
|
74902
75388
|
if (!_warnedToStringRadix) {
|
|
74903
75389
|
_warnedToStringRadix = true;
|
|
74904
|
-
|
|
75390
|
+
logger3.warn("BigNumber.toString does not accept any parameters; base-10 is assumed");
|
|
74905
75391
|
}
|
|
74906
75392
|
} else if (arguments[0] === 16) {
|
|
74907
|
-
|
|
75393
|
+
logger3.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", Logger.errors.UNEXPECTED_ARGUMENT, {});
|
|
74908
75394
|
} else {
|
|
74909
|
-
|
|
75395
|
+
logger3.throwError("BigNumber.toString does not accept parameters", Logger.errors.UNEXPECTED_ARGUMENT, {});
|
|
74910
75396
|
}
|
|
74911
75397
|
}
|
|
74912
75398
|
return toBN(this).toString(10);
|
|
@@ -74928,7 +75414,7 @@ var BigNumber = class _BigNumber {
|
|
|
74928
75414
|
if (value.match(/^-?[0-9]+$/)) {
|
|
74929
75415
|
return new _BigNumber(_constructorGuard, toHex(new BN(value)));
|
|
74930
75416
|
}
|
|
74931
|
-
return
|
|
75417
|
+
return logger3.throwArgumentError("invalid BigNumber string", "value", value);
|
|
74932
75418
|
}
|
|
74933
75419
|
if (typeof value === "number") {
|
|
74934
75420
|
if (value % 1) {
|
|
@@ -74964,7 +75450,7 @@ var BigNumber = class _BigNumber {
|
|
|
74964
75450
|
}
|
|
74965
75451
|
}
|
|
74966
75452
|
}
|
|
74967
|
-
return
|
|
75453
|
+
return logger3.throwArgumentError("invalid BigNumber value", "value", value);
|
|
74968
75454
|
}
|
|
74969
75455
|
static isBigNumber(value) {
|
|
74970
75456
|
return !!(value && value._isBigNumber);
|
|
@@ -74977,7 +75463,7 @@ function toHex(value) {
|
|
|
74977
75463
|
if (value[0] === "-") {
|
|
74978
75464
|
value = value.substring(1);
|
|
74979
75465
|
if (value[0] === "-") {
|
|
74980
|
-
|
|
75466
|
+
logger3.throwArgumentError("invalid hex", "value", value);
|
|
74981
75467
|
}
|
|
74982
75468
|
value = toHex(value);
|
|
74983
75469
|
if (value === "0x00") {
|
|
@@ -75014,7 +75500,7 @@ function throwFault(fault, operation, value) {
|
|
|
75014
75500
|
if (value != null) {
|
|
75015
75501
|
params.value = value;
|
|
75016
75502
|
}
|
|
75017
|
-
return
|
|
75503
|
+
return logger3.throwError(fault, Logger.errors.NUMERIC_FAULT, params);
|
|
75018
75504
|
}
|
|
75019
75505
|
function _base36To16(value) {
|
|
75020
75506
|
return new BN(value, 36).toString(16);
|
|
@@ -75024,7 +75510,7 @@ function _base36To16(value) {
|
|
|
75024
75510
|
var version4 = "properties/5.7.0";
|
|
75025
75511
|
|
|
75026
75512
|
// ../../node_modules/.pnpm/@ethersproject+properties@5.7.0/node_modules/@ethersproject/properties/lib.esm/index.js
|
|
75027
|
-
var
|
|
75513
|
+
var logger4 = new Logger(version4);
|
|
75028
75514
|
function defineReadOnly(object, name, value) {
|
|
75029
75515
|
Object.defineProperty(object, name, {
|
|
75030
75516
|
enumerable: true,
|
|
@@ -75067,7 +75553,7 @@ function _isFrozen(object) {
|
|
|
75067
75553
|
}
|
|
75068
75554
|
return true;
|
|
75069
75555
|
}
|
|
75070
|
-
return
|
|
75556
|
+
return logger4.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object);
|
|
75071
75557
|
}
|
|
75072
75558
|
function _deepCopy(object) {
|
|
75073
75559
|
if (_isFrozen(object)) {
|
|
@@ -75087,7 +75573,7 @@ function _deepCopy(object) {
|
|
|
75087
75573
|
}
|
|
75088
75574
|
return result;
|
|
75089
75575
|
}
|
|
75090
|
-
return
|
|
75576
|
+
return logger4.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object);
|
|
75091
75577
|
}
|
|
75092
75578
|
function deepCopy(object) {
|
|
75093
75579
|
return _deepCopy(object);
|
|
@@ -75104,7 +75590,7 @@ var Description = class {
|
|
|
75104
75590
|
var version5 = "abi/5.7.0";
|
|
75105
75591
|
|
|
75106
75592
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/fragments.js
|
|
75107
|
-
var
|
|
75593
|
+
var logger5 = new Logger(version5);
|
|
75108
75594
|
var _constructorGuard2 = {};
|
|
75109
75595
|
var ModifiersBytes = { calldata: true, memory: true, storage: true };
|
|
75110
75596
|
var ModifiersNest = { calldata: true, memory: true };
|
|
@@ -75123,14 +75609,14 @@ function checkModifier(type, name) {
|
|
|
75123
75609
|
}
|
|
75124
75610
|
}
|
|
75125
75611
|
if (ModifiersBytes[name] || name === "payable") {
|
|
75126
|
-
|
|
75612
|
+
logger5.throwArgumentError("invalid modifier", "name", name);
|
|
75127
75613
|
}
|
|
75128
75614
|
return false;
|
|
75129
75615
|
}
|
|
75130
75616
|
function parseParamType(param, allowIndexed) {
|
|
75131
75617
|
let originalParam = param;
|
|
75132
75618
|
function throwError(i) {
|
|
75133
|
-
|
|
75619
|
+
logger5.throwArgumentError(`unexpected character at position ${i}`, "param", param);
|
|
75134
75620
|
}
|
|
75135
75621
|
param = param.replace(/\s/g, " ");
|
|
75136
75622
|
function newNode(parent2) {
|
|
@@ -75259,7 +75745,7 @@ function parseParamType(param, allowIndexed) {
|
|
|
75259
75745
|
}
|
|
75260
75746
|
}
|
|
75261
75747
|
if (node.parent) {
|
|
75262
|
-
|
|
75748
|
+
logger5.throwArgumentError("unexpected eof", "param", param);
|
|
75263
75749
|
}
|
|
75264
75750
|
delete parent.state;
|
|
75265
75751
|
if (node.name === "indexed") {
|
|
@@ -75296,7 +75782,7 @@ var paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
|
|
|
75296
75782
|
var ParamType = class _ParamType {
|
|
75297
75783
|
constructor(constructorGuard, params) {
|
|
75298
75784
|
if (constructorGuard !== _constructorGuard2) {
|
|
75299
|
-
|
|
75785
|
+
logger5.throwError("use fromString", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75300
75786
|
operation: "new ParamType()"
|
|
75301
75787
|
});
|
|
75302
75788
|
}
|
|
@@ -75330,7 +75816,7 @@ var ParamType = class _ParamType {
|
|
|
75330
75816
|
format3 = FormatTypes.sighash;
|
|
75331
75817
|
}
|
|
75332
75818
|
if (!FormatTypes[format3]) {
|
|
75333
|
-
|
|
75819
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75334
75820
|
}
|
|
75335
75821
|
if (format3 === FormatTypes.json) {
|
|
75336
75822
|
let result2 = {
|
|
@@ -75407,7 +75893,7 @@ function parseParams(value, allowIndex) {
|
|
|
75407
75893
|
var Fragment = class _Fragment {
|
|
75408
75894
|
constructor(constructorGuard, params) {
|
|
75409
75895
|
if (constructorGuard !== _constructorGuard2) {
|
|
75410
|
-
|
|
75896
|
+
logger5.throwError("use a static from method", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75411
75897
|
operation: "new Fragment()"
|
|
75412
75898
|
});
|
|
75413
75899
|
}
|
|
@@ -75441,7 +75927,7 @@ var Fragment = class _Fragment {
|
|
|
75441
75927
|
case "receive":
|
|
75442
75928
|
return null;
|
|
75443
75929
|
}
|
|
75444
|
-
return
|
|
75930
|
+
return logger5.throwArgumentError("invalid fragment object", "value", value);
|
|
75445
75931
|
}
|
|
75446
75932
|
static fromString(value) {
|
|
75447
75933
|
value = value.replace(/\s/g, " ");
|
|
@@ -75456,7 +75942,7 @@ var Fragment = class _Fragment {
|
|
|
75456
75942
|
} else if (value.split(" ")[0] === "error") {
|
|
75457
75943
|
return ErrorFragment.fromString(value.substring(5).trim());
|
|
75458
75944
|
}
|
|
75459
|
-
return
|
|
75945
|
+
return logger5.throwArgumentError("unsupported fragment", "value", value);
|
|
75460
75946
|
}
|
|
75461
75947
|
static isFragment(value) {
|
|
75462
75948
|
return !!(value && value._isFragment);
|
|
@@ -75468,7 +75954,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75468
75954
|
format3 = FormatTypes.sighash;
|
|
75469
75955
|
}
|
|
75470
75956
|
if (!FormatTypes[format3]) {
|
|
75471
|
-
|
|
75957
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75472
75958
|
}
|
|
75473
75959
|
if (format3 === FormatTypes.json) {
|
|
75474
75960
|
return JSON.stringify({
|
|
@@ -75501,7 +75987,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75501
75987
|
return value;
|
|
75502
75988
|
}
|
|
75503
75989
|
if (value.type !== "event") {
|
|
75504
|
-
|
|
75990
|
+
logger5.throwArgumentError("invalid event object", "value", value);
|
|
75505
75991
|
}
|
|
75506
75992
|
const params = {
|
|
75507
75993
|
name: verifyIdentifier(value.name),
|
|
@@ -75514,7 +76000,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75514
76000
|
static fromString(value) {
|
|
75515
76001
|
let match = value.match(regexParen);
|
|
75516
76002
|
if (!match) {
|
|
75517
|
-
|
|
76003
|
+
logger5.throwArgumentError("invalid event string", "value", value);
|
|
75518
76004
|
}
|
|
75519
76005
|
let anonymous = false;
|
|
75520
76006
|
match[3].split(" ").forEach((modifier) => {
|
|
@@ -75525,7 +76011,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75525
76011
|
case "":
|
|
75526
76012
|
break;
|
|
75527
76013
|
default:
|
|
75528
|
-
|
|
76014
|
+
logger5.warn("unknown modifier: " + modifier);
|
|
75529
76015
|
}
|
|
75530
76016
|
});
|
|
75531
76017
|
return _EventFragment.fromObject({
|
|
@@ -75544,10 +76030,10 @@ function parseGas(value, params) {
|
|
|
75544
76030
|
let comps = value.split("@");
|
|
75545
76031
|
if (comps.length !== 1) {
|
|
75546
76032
|
if (comps.length > 2) {
|
|
75547
|
-
|
|
76033
|
+
logger5.throwArgumentError("invalid human-readable ABI signature", "value", value);
|
|
75548
76034
|
}
|
|
75549
76035
|
if (!comps[1].match(/^[0-9]+$/)) {
|
|
75550
|
-
|
|
76036
|
+
logger5.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
|
|
75551
76037
|
}
|
|
75552
76038
|
params.gas = BigNumber.from(comps[1]);
|
|
75553
76039
|
return comps[0];
|
|
@@ -75599,19 +76085,19 @@ function verifyState(value) {
|
|
|
75599
76085
|
result.constant = result.stateMutability === "view" || result.stateMutability === "pure";
|
|
75600
76086
|
if (value.constant != null) {
|
|
75601
76087
|
if (!!value.constant !== result.constant) {
|
|
75602
|
-
|
|
76088
|
+
logger5.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
|
|
75603
76089
|
}
|
|
75604
76090
|
}
|
|
75605
76091
|
result.payable = result.stateMutability === "payable";
|
|
75606
76092
|
if (value.payable != null) {
|
|
75607
76093
|
if (!!value.payable !== result.payable) {
|
|
75608
|
-
|
|
76094
|
+
logger5.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
|
|
75609
76095
|
}
|
|
75610
76096
|
}
|
|
75611
76097
|
} else if (value.payable != null) {
|
|
75612
76098
|
result.payable = !!value.payable;
|
|
75613
76099
|
if (value.constant == null && !result.payable && value.type !== "constructor") {
|
|
75614
|
-
|
|
76100
|
+
logger5.throwArgumentError("unable to determine stateMutability", "value", value);
|
|
75615
76101
|
}
|
|
75616
76102
|
result.constant = !!value.constant;
|
|
75617
76103
|
if (result.constant) {
|
|
@@ -75620,14 +76106,14 @@ function verifyState(value) {
|
|
|
75620
76106
|
result.stateMutability = result.payable ? "payable" : "nonpayable";
|
|
75621
76107
|
}
|
|
75622
76108
|
if (result.payable && result.constant) {
|
|
75623
|
-
|
|
76109
|
+
logger5.throwArgumentError("cannot have constant payable function", "value", value);
|
|
75624
76110
|
}
|
|
75625
76111
|
} else if (value.constant != null) {
|
|
75626
76112
|
result.constant = !!value.constant;
|
|
75627
76113
|
result.payable = !result.constant;
|
|
75628
76114
|
result.stateMutability = result.constant ? "view" : "payable";
|
|
75629
76115
|
} else if (value.type !== "constructor") {
|
|
75630
|
-
|
|
76116
|
+
logger5.throwArgumentError("unable to determine stateMutability", "value", value);
|
|
75631
76117
|
}
|
|
75632
76118
|
return result;
|
|
75633
76119
|
}
|
|
@@ -75637,7 +76123,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75637
76123
|
format3 = FormatTypes.sighash;
|
|
75638
76124
|
}
|
|
75639
76125
|
if (!FormatTypes[format3]) {
|
|
75640
|
-
|
|
76126
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75641
76127
|
}
|
|
75642
76128
|
if (format3 === FormatTypes.json) {
|
|
75643
76129
|
return JSON.stringify({
|
|
@@ -75649,7 +76135,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75649
76135
|
});
|
|
75650
76136
|
}
|
|
75651
76137
|
if (format3 === FormatTypes.sighash) {
|
|
75652
|
-
|
|
76138
|
+
logger5.throwError("cannot format a constructor for sighash", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75653
76139
|
operation: "format(sighash)"
|
|
75654
76140
|
});
|
|
75655
76141
|
}
|
|
@@ -75670,11 +76156,11 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75670
76156
|
return value;
|
|
75671
76157
|
}
|
|
75672
76158
|
if (value.type !== "constructor") {
|
|
75673
|
-
|
|
76159
|
+
logger5.throwArgumentError("invalid constructor object", "value", value);
|
|
75674
76160
|
}
|
|
75675
76161
|
let state = verifyState(value);
|
|
75676
76162
|
if (state.constant) {
|
|
75677
|
-
|
|
76163
|
+
logger5.throwArgumentError("constructor cannot be constant", "value", value);
|
|
75678
76164
|
}
|
|
75679
76165
|
const params = {
|
|
75680
76166
|
name: null,
|
|
@@ -75691,7 +76177,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75691
76177
|
value = parseGas(value, params);
|
|
75692
76178
|
let parens = value.match(regexParen);
|
|
75693
76179
|
if (!parens || parens[1].trim() !== "constructor") {
|
|
75694
|
-
|
|
76180
|
+
logger5.throwArgumentError("invalid constructor string", "value", value);
|
|
75695
76181
|
}
|
|
75696
76182
|
params.inputs = parseParams(parens[2].trim(), false);
|
|
75697
76183
|
parseModifiers(parens[3].trim(), params);
|
|
@@ -75707,7 +76193,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75707
76193
|
format3 = FormatTypes.sighash;
|
|
75708
76194
|
}
|
|
75709
76195
|
if (!FormatTypes[format3]) {
|
|
75710
|
-
|
|
76196
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75711
76197
|
}
|
|
75712
76198
|
if (format3 === FormatTypes.json) {
|
|
75713
76199
|
return JSON.stringify({
|
|
@@ -75754,7 +76240,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75754
76240
|
return value;
|
|
75755
76241
|
}
|
|
75756
76242
|
if (value.type !== "function") {
|
|
75757
|
-
|
|
76243
|
+
logger5.throwArgumentError("invalid function object", "value", value);
|
|
75758
76244
|
}
|
|
75759
76245
|
let state = verifyState(value);
|
|
75760
76246
|
const params = {
|
|
@@ -75774,11 +76260,11 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75774
76260
|
value = parseGas(value, params);
|
|
75775
76261
|
let comps = value.split(" returns ");
|
|
75776
76262
|
if (comps.length > 2) {
|
|
75777
|
-
|
|
76263
|
+
logger5.throwArgumentError("invalid function string", "value", value);
|
|
75778
76264
|
}
|
|
75779
76265
|
let parens = comps[0].match(regexParen);
|
|
75780
76266
|
if (!parens) {
|
|
75781
|
-
|
|
76267
|
+
logger5.throwArgumentError("invalid function signature", "value", value);
|
|
75782
76268
|
}
|
|
75783
76269
|
params.name = parens[1].trim();
|
|
75784
76270
|
if (params.name) {
|
|
@@ -75789,7 +76275,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75789
76275
|
if (comps.length > 1) {
|
|
75790
76276
|
let returns = comps[1].match(regexParen);
|
|
75791
76277
|
if (returns[1].trim() != "" || returns[3].trim() != "") {
|
|
75792
|
-
|
|
76278
|
+
logger5.throwArgumentError("unexpected tokens", "value", value);
|
|
75793
76279
|
}
|
|
75794
76280
|
params.outputs = parseParams(returns[2], false);
|
|
75795
76281
|
} else {
|
|
@@ -75804,7 +76290,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75804
76290
|
function checkForbidden(fragment) {
|
|
75805
76291
|
const sig = fragment.format();
|
|
75806
76292
|
if (sig === "Error(string)" || sig === "Panic(uint256)") {
|
|
75807
|
-
|
|
76293
|
+
logger5.throwArgumentError(`cannot specify user defined ${sig} error`, "fragment", fragment);
|
|
75808
76294
|
}
|
|
75809
76295
|
return fragment;
|
|
75810
76296
|
}
|
|
@@ -75814,7 +76300,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75814
76300
|
format3 = FormatTypes.sighash;
|
|
75815
76301
|
}
|
|
75816
76302
|
if (!FormatTypes[format3]) {
|
|
75817
|
-
|
|
76303
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75818
76304
|
}
|
|
75819
76305
|
if (format3 === FormatTypes.json) {
|
|
75820
76306
|
return JSON.stringify({
|
|
@@ -75841,7 +76327,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75841
76327
|
return value;
|
|
75842
76328
|
}
|
|
75843
76329
|
if (value.type !== "error") {
|
|
75844
|
-
|
|
76330
|
+
logger5.throwArgumentError("invalid error object", "value", value);
|
|
75845
76331
|
}
|
|
75846
76332
|
const params = {
|
|
75847
76333
|
type: value.type,
|
|
@@ -75854,7 +76340,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75854
76340
|
let params = { type: "error" };
|
|
75855
76341
|
let parens = value.match(regexParen);
|
|
75856
76342
|
if (!parens) {
|
|
75857
|
-
|
|
76343
|
+
logger5.throwArgumentError("invalid error signature", "value", value);
|
|
75858
76344
|
}
|
|
75859
76345
|
params.name = parens[1].trim();
|
|
75860
76346
|
if (params.name) {
|
|
@@ -75878,7 +76364,7 @@ function verifyType(type) {
|
|
|
75878
76364
|
var regexIdentifier = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");
|
|
75879
76365
|
function verifyIdentifier(value) {
|
|
75880
76366
|
if (!value || !value.match(regexIdentifier)) {
|
|
75881
|
-
|
|
76367
|
+
logger5.throwArgumentError(`invalid identifier "${value}"`, "value", value);
|
|
75882
76368
|
}
|
|
75883
76369
|
return value;
|
|
75884
76370
|
}
|
|
@@ -75900,7 +76386,7 @@ function splitNesting(value) {
|
|
|
75900
76386
|
} else if (c === ")") {
|
|
75901
76387
|
depth--;
|
|
75902
76388
|
if (depth === -1) {
|
|
75903
|
-
|
|
76389
|
+
logger5.throwArgumentError("unbalanced parenthesis", "value", value);
|
|
75904
76390
|
}
|
|
75905
76391
|
}
|
|
75906
76392
|
}
|
|
@@ -75912,7 +76398,7 @@ function splitNesting(value) {
|
|
|
75912
76398
|
}
|
|
75913
76399
|
|
|
75914
76400
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js
|
|
75915
|
-
var
|
|
76401
|
+
var logger6 = new Logger(version5);
|
|
75916
76402
|
var Coder = class {
|
|
75917
76403
|
constructor(name, type, localName, dynamic) {
|
|
75918
76404
|
this.name = name;
|
|
@@ -75921,7 +76407,7 @@ var Coder = class {
|
|
|
75921
76407
|
this.dynamic = dynamic;
|
|
75922
76408
|
}
|
|
75923
76409
|
_throwError(message, value) {
|
|
75924
|
-
|
|
76410
|
+
logger6.throwArgumentError(message, this.localName, value);
|
|
75925
76411
|
}
|
|
75926
76412
|
};
|
|
75927
76413
|
var Writer = class {
|
|
@@ -75957,7 +76443,7 @@ var Writer = class {
|
|
|
75957
76443
|
_getValue(value) {
|
|
75958
76444
|
let bytes = arrayify(BigNumber.from(value));
|
|
75959
76445
|
if (bytes.length > this.wordSize) {
|
|
75960
|
-
|
|
76446
|
+
logger6.throwError("value out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
|
|
75961
76447
|
length: this.wordSize,
|
|
75962
76448
|
offset: bytes.length
|
|
75963
76449
|
});
|
|
@@ -76014,7 +76500,7 @@ var Reader = class _Reader {
|
|
|
76014
76500
|
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
|
|
76015
76501
|
alignedLength = length;
|
|
76016
76502
|
} else {
|
|
76017
|
-
|
|
76503
|
+
logger6.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
|
|
76018
76504
|
length: this._data.length,
|
|
76019
76505
|
offset: this._offset + alignedLength
|
|
76020
76506
|
});
|
|
@@ -76045,10 +76531,10 @@ function keccak256(data) {
|
|
|
76045
76531
|
var version6 = "address/5.7.0";
|
|
76046
76532
|
|
|
76047
76533
|
// ../../node_modules/.pnpm/@ethersproject+address@5.7.0/node_modules/@ethersproject/address/lib.esm/index.js
|
|
76048
|
-
var
|
|
76534
|
+
var logger7 = new Logger(version6);
|
|
76049
76535
|
function getChecksumAddress(address) {
|
|
76050
76536
|
if (!isHexString(address, 20)) {
|
|
76051
|
-
|
|
76537
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76052
76538
|
}
|
|
76053
76539
|
address = address.toLowerCase();
|
|
76054
76540
|
const chars = address.substring(2).split("");
|
|
@@ -76101,7 +76587,7 @@ function ibanChecksum(address) {
|
|
|
76101
76587
|
function getAddress(address) {
|
|
76102
76588
|
let result = null;
|
|
76103
76589
|
if (typeof address !== "string") {
|
|
76104
|
-
|
|
76590
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76105
76591
|
}
|
|
76106
76592
|
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
|
|
76107
76593
|
if (address.substring(0, 2) !== "0x") {
|
|
@@ -76109,11 +76595,11 @@ function getAddress(address) {
|
|
|
76109
76595
|
}
|
|
76110
76596
|
result = getChecksumAddress(address);
|
|
76111
76597
|
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
|
|
76112
|
-
|
|
76598
|
+
logger7.throwArgumentError("bad address checksum", "address", address);
|
|
76113
76599
|
}
|
|
76114
76600
|
} else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
|
|
76115
76601
|
if (address.substring(2, 4) !== ibanChecksum(address)) {
|
|
76116
|
-
|
|
76602
|
+
logger7.throwArgumentError("bad icap checksum", "address", address);
|
|
76117
76603
|
}
|
|
76118
76604
|
result = _base36To16(address.substring(4));
|
|
76119
76605
|
while (result.length < 40) {
|
|
@@ -76121,7 +76607,7 @@ function getAddress(address) {
|
|
|
76121
76607
|
}
|
|
76122
76608
|
result = getChecksumAddress("0x" + result);
|
|
76123
76609
|
} else {
|
|
76124
|
-
|
|
76610
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76125
76611
|
}
|
|
76126
76612
|
return result;
|
|
76127
76613
|
}
|
|
@@ -76165,7 +76651,7 @@ var AnonymousCoder = class extends Coder {
|
|
|
76165
76651
|
};
|
|
76166
76652
|
|
|
76167
76653
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/coders/array.js
|
|
76168
|
-
var
|
|
76654
|
+
var logger8 = new Logger(version5);
|
|
76169
76655
|
function pack(writer, coders, values) {
|
|
76170
76656
|
let arrayValues = null;
|
|
76171
76657
|
if (Array.isArray(values)) {
|
|
@@ -76175,14 +76661,14 @@ function pack(writer, coders, values) {
|
|
|
76175
76661
|
arrayValues = coders.map((coder) => {
|
|
76176
76662
|
const name = coder.localName;
|
|
76177
76663
|
if (!name) {
|
|
76178
|
-
|
|
76664
|
+
logger8.throwError("cannot encode object for signature with missing names", Logger.errors.INVALID_ARGUMENT, {
|
|
76179
76665
|
argument: "values",
|
|
76180
76666
|
coder,
|
|
76181
76667
|
value: values
|
|
76182
76668
|
});
|
|
76183
76669
|
}
|
|
76184
76670
|
if (unique[name]) {
|
|
76185
|
-
|
|
76671
|
+
logger8.throwError("cannot encode object for signature with duplicate names", Logger.errors.INVALID_ARGUMENT, {
|
|
76186
76672
|
argument: "values",
|
|
76187
76673
|
coder,
|
|
76188
76674
|
value: values
|
|
@@ -76192,10 +76678,10 @@ function pack(writer, coders, values) {
|
|
|
76192
76678
|
return values[name];
|
|
76193
76679
|
});
|
|
76194
76680
|
} else {
|
|
76195
|
-
|
|
76681
|
+
logger8.throwArgumentError("invalid tuple value", "tuple", values);
|
|
76196
76682
|
}
|
|
76197
76683
|
if (coders.length !== arrayValues.length) {
|
|
76198
|
-
|
|
76684
|
+
logger8.throwArgumentError("types/value length mismatch", "tuple", values);
|
|
76199
76685
|
}
|
|
76200
76686
|
let staticWriter = new Writer(writer.wordSize);
|
|
76201
76687
|
let dynamicWriter = new Writer(writer.wordSize);
|
|
@@ -76327,7 +76813,7 @@ var ArrayCoder = class extends Coder {
|
|
|
76327
76813
|
count = value.length;
|
|
76328
76814
|
writer.writeValue(value.length);
|
|
76329
76815
|
}
|
|
76330
|
-
|
|
76816
|
+
logger8.checkArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : ""));
|
|
76331
76817
|
let coders = [];
|
|
76332
76818
|
for (let i = 0; i < value.length; i++) {
|
|
76333
76819
|
coders.push(this.coder);
|
|
@@ -76339,7 +76825,7 @@ var ArrayCoder = class extends Coder {
|
|
|
76339
76825
|
if (count === -1) {
|
|
76340
76826
|
count = reader.readValue().toNumber();
|
|
76341
76827
|
if (count * 32 > reader._data.length) {
|
|
76342
|
-
|
|
76828
|
+
logger8.throwError("insufficient data length", Logger.errors.BUFFER_OVERRUN, {
|
|
76343
76829
|
length: reader._data.length,
|
|
76344
76830
|
count
|
|
76345
76831
|
});
|
|
@@ -76485,7 +76971,7 @@ var NumberCoder = class extends Coder {
|
|
|
76485
76971
|
var version7 = "strings/5.7.0";
|
|
76486
76972
|
|
|
76487
76973
|
// ../../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/lib.esm/utf8.js
|
|
76488
|
-
var
|
|
76974
|
+
var logger9 = new Logger(version7);
|
|
76489
76975
|
var UnicodeNormalizationForm;
|
|
76490
76976
|
(function(UnicodeNormalizationForm2) {
|
|
76491
76977
|
UnicodeNormalizationForm2["current"] = "";
|
|
@@ -76505,7 +76991,7 @@ var Utf8ErrorReason;
|
|
|
76505
76991
|
Utf8ErrorReason2["OVERLONG"] = "overlong representation";
|
|
76506
76992
|
})(Utf8ErrorReason || (Utf8ErrorReason = {}));
|
|
76507
76993
|
function errorFunc(reason, offset, bytes, output, badCodepoint) {
|
|
76508
|
-
return
|
|
76994
|
+
return logger9.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes);
|
|
76509
76995
|
}
|
|
76510
76996
|
function ignoreFunc(reason, offset, bytes, output, badCodepoint) {
|
|
76511
76997
|
if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {
|
|
@@ -76604,7 +77090,7 @@ function getUtf8CodePoints(bytes, onError) {
|
|
|
76604
77090
|
}
|
|
76605
77091
|
function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {
|
|
76606
77092
|
if (form != UnicodeNormalizationForm.current) {
|
|
76607
|
-
|
|
77093
|
+
logger9.checkNormalize();
|
|
76608
77094
|
str = str.normalize(form);
|
|
76609
77095
|
}
|
|
76610
77096
|
let result = [];
|
|
@@ -76717,7 +77203,7 @@ var TupleCoder = class extends Coder {
|
|
|
76717
77203
|
};
|
|
76718
77204
|
|
|
76719
77205
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/abi-coder.js
|
|
76720
|
-
var
|
|
77206
|
+
var logger10 = new Logger(version5);
|
|
76721
77207
|
var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
|
|
76722
77208
|
var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
|
|
76723
77209
|
var AbiCoder = class {
|
|
@@ -76747,7 +77233,7 @@ var AbiCoder = class {
|
|
|
76747
77233
|
if (match) {
|
|
76748
77234
|
let size = parseInt(match[2] || "256");
|
|
76749
77235
|
if (size === 0 || size > 256 || size % 8 !== 0) {
|
|
76750
|
-
|
|
77236
|
+
logger10.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
|
|
76751
77237
|
}
|
|
76752
77238
|
return new NumberCoder(size / 8, match[1] === "int", param.name);
|
|
76753
77239
|
}
|
|
@@ -76755,11 +77241,11 @@ var AbiCoder = class {
|
|
|
76755
77241
|
if (match) {
|
|
76756
77242
|
let size = parseInt(match[1]);
|
|
76757
77243
|
if (size === 0 || size > 32) {
|
|
76758
|
-
|
|
77244
|
+
logger10.throwArgumentError("invalid bytes length", "param", param);
|
|
76759
77245
|
}
|
|
76760
77246
|
return new FixedBytesCoder(size, param.name);
|
|
76761
77247
|
}
|
|
76762
|
-
return
|
|
77248
|
+
return logger10.throwArgumentError("invalid type", "type", param.type);
|
|
76763
77249
|
}
|
|
76764
77250
|
_getWordSize() {
|
|
76765
77251
|
return 32;
|
|
@@ -76777,7 +77263,7 @@ var AbiCoder = class {
|
|
|
76777
77263
|
}
|
|
76778
77264
|
encode(types2, values) {
|
|
76779
77265
|
if (types2.length !== values.length) {
|
|
76780
|
-
|
|
77266
|
+
logger10.throwError("types/values length mismatch", Logger.errors.INVALID_ARGUMENT, {
|
|
76781
77267
|
count: { types: types2.length, values: values.length },
|
|
76782
77268
|
value: { types: types2, values }
|
|
76783
77269
|
});
|
|
@@ -76802,7 +77288,7 @@ function id(text) {
|
|
|
76802
77288
|
}
|
|
76803
77289
|
|
|
76804
77290
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/interface.js
|
|
76805
|
-
var
|
|
77291
|
+
var logger11 = new Logger(version5);
|
|
76806
77292
|
var LogDescription = class extends Description {
|
|
76807
77293
|
};
|
|
76808
77294
|
var TransactionDescription = class extends Description {
|
|
@@ -76844,7 +77330,7 @@ var Interface = class {
|
|
|
76844
77330
|
switch (fragment.type) {
|
|
76845
77331
|
case "constructor":
|
|
76846
77332
|
if (this.deploy) {
|
|
76847
|
-
|
|
77333
|
+
logger11.warn("duplicate definition - constructor");
|
|
76848
77334
|
return;
|
|
76849
77335
|
}
|
|
76850
77336
|
defineReadOnly(this, "deploy", fragment);
|
|
@@ -76863,7 +77349,7 @@ var Interface = class {
|
|
|
76863
77349
|
}
|
|
76864
77350
|
let signature = fragment.format();
|
|
76865
77351
|
if (bucket[signature]) {
|
|
76866
|
-
|
|
77352
|
+
logger11.warn("duplicate definition - " + signature);
|
|
76867
77353
|
return;
|
|
76868
77354
|
}
|
|
76869
77355
|
bucket[signature] = fragment;
|
|
@@ -76881,7 +77367,7 @@ var Interface = class {
|
|
|
76881
77367
|
format3 = FormatTypes.full;
|
|
76882
77368
|
}
|
|
76883
77369
|
if (format3 === FormatTypes.sighash) {
|
|
76884
|
-
|
|
77370
|
+
logger11.throwArgumentError("interface does not support formatting sighash", "format", format3);
|
|
76885
77371
|
}
|
|
76886
77372
|
const abi = this.fragments.map((fragment) => fragment.format(format3));
|
|
76887
77373
|
if (format3 === FormatTypes.json) {
|
|
@@ -76910,7 +77396,7 @@ var Interface = class {
|
|
|
76910
77396
|
return this.functions[name];
|
|
76911
77397
|
}
|
|
76912
77398
|
}
|
|
76913
|
-
|
|
77399
|
+
logger11.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
|
|
76914
77400
|
}
|
|
76915
77401
|
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
|
|
76916
77402
|
const name = nameOrSignatureOrSighash.trim();
|
|
@@ -76919,15 +77405,15 @@ var Interface = class {
|
|
|
76919
77405
|
/* fix:) */
|
|
76920
77406
|
)[0] === name);
|
|
76921
77407
|
if (matching.length === 0) {
|
|
76922
|
-
|
|
77408
|
+
logger11.throwArgumentError("no matching function", "name", name);
|
|
76923
77409
|
} else if (matching.length > 1) {
|
|
76924
|
-
|
|
77410
|
+
logger11.throwArgumentError("multiple matching functions", "name", name);
|
|
76925
77411
|
}
|
|
76926
77412
|
return this.functions[matching[0]];
|
|
76927
77413
|
}
|
|
76928
77414
|
const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
|
|
76929
77415
|
if (!result) {
|
|
76930
|
-
|
|
77416
|
+
logger11.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
|
|
76931
77417
|
}
|
|
76932
77418
|
return result;
|
|
76933
77419
|
}
|
|
@@ -76940,7 +77426,7 @@ var Interface = class {
|
|
|
76940
77426
|
return this.events[name];
|
|
76941
77427
|
}
|
|
76942
77428
|
}
|
|
76943
|
-
|
|
77429
|
+
logger11.throwArgumentError("no matching event", "topichash", topichash);
|
|
76944
77430
|
}
|
|
76945
77431
|
if (nameOrSignatureOrTopic.indexOf("(") === -1) {
|
|
76946
77432
|
const name = nameOrSignatureOrTopic.trim();
|
|
@@ -76949,15 +77435,15 @@ var Interface = class {
|
|
|
76949
77435
|
/* fix:) */
|
|
76950
77436
|
)[0] === name);
|
|
76951
77437
|
if (matching.length === 0) {
|
|
76952
|
-
|
|
77438
|
+
logger11.throwArgumentError("no matching event", "name", name);
|
|
76953
77439
|
} else if (matching.length > 1) {
|
|
76954
|
-
|
|
77440
|
+
logger11.throwArgumentError("multiple matching events", "name", name);
|
|
76955
77441
|
}
|
|
76956
77442
|
return this.events[matching[0]];
|
|
76957
77443
|
}
|
|
76958
77444
|
const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];
|
|
76959
77445
|
if (!result) {
|
|
76960
|
-
|
|
77446
|
+
logger11.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
|
|
76961
77447
|
}
|
|
76962
77448
|
return result;
|
|
76963
77449
|
}
|
|
@@ -76971,7 +77457,7 @@ var Interface = class {
|
|
|
76971
77457
|
return this.errors[name];
|
|
76972
77458
|
}
|
|
76973
77459
|
}
|
|
76974
|
-
|
|
77460
|
+
logger11.throwArgumentError("no matching error", "sighash", nameOrSignatureOrSighash);
|
|
76975
77461
|
}
|
|
76976
77462
|
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
|
|
76977
77463
|
const name = nameOrSignatureOrSighash.trim();
|
|
@@ -76980,15 +77466,15 @@ var Interface = class {
|
|
|
76980
77466
|
/* fix:) */
|
|
76981
77467
|
)[0] === name);
|
|
76982
77468
|
if (matching.length === 0) {
|
|
76983
|
-
|
|
77469
|
+
logger11.throwArgumentError("no matching error", "name", name);
|
|
76984
77470
|
} else if (matching.length > 1) {
|
|
76985
|
-
|
|
77471
|
+
logger11.throwArgumentError("multiple matching errors", "name", name);
|
|
76986
77472
|
}
|
|
76987
77473
|
return this.errors[matching[0]];
|
|
76988
77474
|
}
|
|
76989
77475
|
const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
|
|
76990
77476
|
if (!result) {
|
|
76991
|
-
|
|
77477
|
+
logger11.throwArgumentError("no matching error", "signature", nameOrSignatureOrSighash);
|
|
76992
77478
|
}
|
|
76993
77479
|
return result;
|
|
76994
77480
|
}
|
|
@@ -77029,7 +77515,7 @@ var Interface = class {
|
|
|
77029
77515
|
}
|
|
77030
77516
|
const bytes = arrayify(data);
|
|
77031
77517
|
if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {
|
|
77032
|
-
|
|
77518
|
+
logger11.throwArgumentError(`data signature does not match error ${fragment.name}.`, "data", hexlify(bytes));
|
|
77033
77519
|
}
|
|
77034
77520
|
return this._decodeParams(fragment.inputs, bytes.slice(4));
|
|
77035
77521
|
}
|
|
@@ -77049,7 +77535,7 @@ var Interface = class {
|
|
|
77049
77535
|
}
|
|
77050
77536
|
const bytes = arrayify(data);
|
|
77051
77537
|
if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
|
|
77052
|
-
|
|
77538
|
+
logger11.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, "data", hexlify(bytes));
|
|
77053
77539
|
}
|
|
77054
77540
|
return this._decodeParams(functionFragment.inputs, bytes.slice(4));
|
|
77055
77541
|
}
|
|
@@ -77108,7 +77594,7 @@ var Interface = class {
|
|
|
77108
77594
|
break;
|
|
77109
77595
|
}
|
|
77110
77596
|
}
|
|
77111
|
-
return
|
|
77597
|
+
return logger11.throwError("call revert exception" + message, Logger.errors.CALL_EXCEPTION, {
|
|
77112
77598
|
method: functionFragment.format(),
|
|
77113
77599
|
data: hexlify(data),
|
|
77114
77600
|
errorArgs,
|
|
@@ -77130,7 +77616,7 @@ var Interface = class {
|
|
|
77130
77616
|
eventFragment = this.getEvent(eventFragment);
|
|
77131
77617
|
}
|
|
77132
77618
|
if (values.length > eventFragment.inputs.length) {
|
|
77133
|
-
|
|
77619
|
+
logger11.throwError("too many arguments for " + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {
|
|
77134
77620
|
argument: "values",
|
|
77135
77621
|
value: values
|
|
77136
77622
|
});
|
|
@@ -77160,14 +77646,14 @@ var Interface = class {
|
|
|
77160
77646
|
let param = eventFragment.inputs[index];
|
|
77161
77647
|
if (!param.indexed) {
|
|
77162
77648
|
if (value != null) {
|
|
77163
|
-
|
|
77649
|
+
logger11.throwArgumentError("cannot filter non-indexed parameters; must be null", "contract." + param.name, value);
|
|
77164
77650
|
}
|
|
77165
77651
|
return;
|
|
77166
77652
|
}
|
|
77167
77653
|
if (value == null) {
|
|
77168
77654
|
topics.push(null);
|
|
77169
77655
|
} else if (param.baseType === "array" || param.baseType === "tuple") {
|
|
77170
|
-
|
|
77656
|
+
logger11.throwArgumentError("filtering with tuples or arrays not supported", "contract." + param.name, value);
|
|
77171
77657
|
} else if (Array.isArray(value)) {
|
|
77172
77658
|
topics.push(value.map((value2) => encodeTopic(param, value2)));
|
|
77173
77659
|
} else {
|
|
@@ -77190,7 +77676,7 @@ var Interface = class {
|
|
|
77190
77676
|
topics.push(this.getEventTopic(eventFragment));
|
|
77191
77677
|
}
|
|
77192
77678
|
if (values.length !== eventFragment.inputs.length) {
|
|
77193
|
-
|
|
77679
|
+
logger11.throwArgumentError("event arguments/values mismatch", "values", values);
|
|
77194
77680
|
}
|
|
77195
77681
|
eventFragment.inputs.forEach((param, index) => {
|
|
77196
77682
|
const value = values[index];
|
|
@@ -77222,7 +77708,7 @@ var Interface = class {
|
|
|
77222
77708
|
if (topics != null && !eventFragment.anonymous) {
|
|
77223
77709
|
let topicHash = this.getEventTopic(eventFragment);
|
|
77224
77710
|
if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
|
|
77225
|
-
|
|
77711
|
+
logger11.throwError("fragment/topic mismatch", Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
|
|
77226
77712
|
}
|
|
77227
77713
|
topics = topics.slice(1);
|
|
77228
77714
|
}
|
|
@@ -77453,38 +77939,38 @@ var isFile2 = (pathlike) => {
|
|
|
77453
77939
|
return false;
|
|
77454
77940
|
}
|
|
77455
77941
|
};
|
|
77456
|
-
var verifyNonTarget = async (config,
|
|
77457
|
-
const
|
|
77942
|
+
var verifyNonTarget = async (config, logger12) => {
|
|
77943
|
+
const networks2 = parseNetworksConfig(logger12, config.networks);
|
|
77458
77944
|
const paths = parsePathsConfig(config.paths);
|
|
77459
|
-
const recordLogger = createRecordLogger(
|
|
77460
|
-
const verifyAll = createVerifyAll(
|
|
77945
|
+
const recordLogger = createRecordLogger(logger12);
|
|
77946
|
+
const verifyAll = createVerifyAll(logger12);
|
|
77461
77947
|
const logResult = createLogVerificationResult(recordLogger);
|
|
77462
77948
|
const verificationArtifacts = config.contracts.flatMap((contract) => {
|
|
77463
77949
|
var _a;
|
|
77464
77950
|
const { address, network, contractName, deployment: deploymentPathOrBasename } = contract;
|
|
77465
|
-
|
|
77466
|
-
const networkConfig =
|
|
77951
|
+
logger12.info(`Collecting information for contract ${contractName} on network ${network}`);
|
|
77952
|
+
const networkConfig = networks2[network];
|
|
77467
77953
|
if (networkConfig == null) {
|
|
77468
|
-
|
|
77954
|
+
logger12.info(`No network configured for contract ${contractName} on network ${network}`);
|
|
77469
77955
|
return [];
|
|
77470
77956
|
}
|
|
77471
77957
|
const deploymentPath = `${basename(deploymentPathOrBasename, ".json")}.json`;
|
|
77472
77958
|
const contractDeploymentPath = resolve(paths.deployments, network, deploymentPath);
|
|
77473
77959
|
if (!isFile2(contractDeploymentPath)) {
|
|
77474
|
-
|
|
77960
|
+
logger12.error(COLORS.error`Deployment file ${contractDeploymentPath} does not exist or is not a file`);
|
|
77475
77961
|
return [];
|
|
77476
77962
|
}
|
|
77477
77963
|
const rawDeployment = __require(contractDeploymentPath);
|
|
77478
77964
|
const deploymentParseResult = DeploymentSchema.safeParse(rawDeployment);
|
|
77479
77965
|
if (!deploymentParseResult.success) {
|
|
77480
|
-
|
|
77966
|
+
logger12.error(COLORS.error`No network configured for contract ${contractName} on network ${network}`);
|
|
77481
77967
|
return [];
|
|
77482
77968
|
}
|
|
77483
77969
|
const deployment = deploymentParseResult.data;
|
|
77484
77970
|
const contractClassName = basename(contractName, ".sol");
|
|
77485
77971
|
const source = deployment.metadata.sources[contractName];
|
|
77486
77972
|
if (source == null) {
|
|
77487
|
-
|
|
77973
|
+
logger12.error(
|
|
77488
77974
|
COLORS.error`Missing source for contract ${contractName} for network ${network} in ${deploymentPath}`
|
|
77489
77975
|
);
|
|
77490
77976
|
return [];
|
|
@@ -77504,6 +77990,7 @@ var verifyNonTarget = async (config, logger11) => {
|
|
|
77504
77990
|
const submitProps = {
|
|
77505
77991
|
apiUrl: networkConfig.apiUrl,
|
|
77506
77992
|
apiKey: networkConfig.apiKey,
|
|
77993
|
+
chainId: networkConfig.chainId,
|
|
77507
77994
|
address,
|
|
77508
77995
|
contractName: `${contractName}:${contractClassName}`,
|
|
77509
77996
|
constructorArguments,
|
|
@@ -77532,38 +78019,38 @@ var verifyNonTarget = async (config, logger11) => {
|
|
|
77532
78019
|
];
|
|
77533
78020
|
});
|
|
77534
78021
|
if (verificationArtifacts.length === 0) {
|
|
77535
|
-
|
|
78022
|
+
logger12.warn("No contracts match the verification criteria, exiting");
|
|
77536
78023
|
return [];
|
|
77537
78024
|
}
|
|
77538
78025
|
if (config.dryRun) {
|
|
77539
|
-
|
|
78026
|
+
logger12.debug("Dry run enabled, exiting");
|
|
77540
78027
|
return [];
|
|
77541
78028
|
}
|
|
77542
78029
|
const results = await Promise.all(verifyAll(verificationArtifacts));
|
|
77543
78030
|
results.forEach(logResult);
|
|
77544
78031
|
return results;
|
|
77545
78032
|
};
|
|
77546
|
-
var verifyTarget = async (config,
|
|
78033
|
+
var verifyTarget = async (config, logger12) => {
|
|
77547
78034
|
const verify = parseFilterConfig(config.filter);
|
|
77548
|
-
const
|
|
78035
|
+
const networks2 = parseNetworksConfig(logger12, config.networks);
|
|
77549
78036
|
const paths = parsePathsConfig(config.paths);
|
|
77550
|
-
const recordLogger = createRecordLogger(
|
|
77551
|
-
const verifyAll = createVerifyAll(
|
|
78037
|
+
const recordLogger = createRecordLogger(logger12);
|
|
78038
|
+
const verifyAll = createVerifyAll(logger12);
|
|
77552
78039
|
const logResult = createLogVerificationResult(recordLogger);
|
|
77553
78040
|
if (!isDirectory(paths.deployments)) {
|
|
77554
78041
|
throw new Error(`Path ${paths.deployments} is not a directory`);
|
|
77555
78042
|
}
|
|
77556
78043
|
const deployedNetworkNames = new Set(readdirSync(paths.deployments));
|
|
77557
|
-
const networkConfigEntries = Object.entries(
|
|
77558
|
-
|
|
78044
|
+
const networkConfigEntries = Object.entries(networks2);
|
|
78045
|
+
logger12.debug("Verifying deployments for following networks:");
|
|
77559
78046
|
networkConfigEntries.forEach(([networkName, networkConfig]) => {
|
|
77560
|
-
|
|
78047
|
+
logger12.debug(` - ${networkName} (API URL ${networkConfig.apiUrl})`);
|
|
77561
78048
|
});
|
|
77562
78049
|
const verificationArtifacts = networkConfigEntries.flatMap(
|
|
77563
78050
|
([networkName, networkConfig]) => {
|
|
77564
|
-
|
|
78051
|
+
logger12.info(`Collecting deployments for ${networkName}...`);
|
|
77565
78052
|
if (!deployedNetworkNames.has(networkName)) {
|
|
77566
|
-
|
|
78053
|
+
logger12.warn(`Could not find deployment for network ${networkName} in ${paths.deployments}`);
|
|
77567
78054
|
return [];
|
|
77568
78055
|
}
|
|
77569
78056
|
const deploymentAbsolutePath = resolve(paths.deployments, networkName);
|
|
@@ -77571,7 +78058,7 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77571
78058
|
(fileName) => fileName.endsWith(".json")
|
|
77572
78059
|
);
|
|
77573
78060
|
return deployedContractFileNames.flatMap((fileName) => {
|
|
77574
|
-
|
|
78061
|
+
logger12.info(`Inspecting deployment file ${fileName} on network ${networkName}`);
|
|
77575
78062
|
const contractDeploymentPath = resolve(deploymentAbsolutePath, fileName);
|
|
77576
78063
|
const rawDeployment = __require(contractDeploymentPath);
|
|
77577
78064
|
const deploymentParseResult = DeploymentSchema.safeParse(rawDeployment);
|
|
@@ -77586,12 +78073,12 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77586
78073
|
var _a;
|
|
77587
78074
|
const shouldVerifyHardhatDeploy = verify(contractName, compilationTarget, networkName);
|
|
77588
78075
|
if (!shouldVerifyHardhatDeploy) {
|
|
77589
|
-
|
|
78076
|
+
logger12.debug(`Not verifying ${contractName} in ${fileName} on network ${networkName}`);
|
|
77590
78077
|
return [];
|
|
77591
78078
|
}
|
|
77592
78079
|
const source = deployment.metadata.sources[compilationTarget];
|
|
77593
78080
|
if (source == null) {
|
|
77594
|
-
|
|
78081
|
+
logger12.error(COLORS.error`Could not find source for ${contractName} (${compilationTarget})`);
|
|
77595
78082
|
return [];
|
|
77596
78083
|
}
|
|
77597
78084
|
const licenseType = findLicenseType(source.content);
|
|
@@ -77600,6 +78087,7 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77600
78087
|
const submitProps = {
|
|
77601
78088
|
apiUrl: networkConfig.apiUrl,
|
|
77602
78089
|
apiKey: networkConfig.apiKey,
|
|
78090
|
+
chainId: networkConfig.chainId,
|
|
77603
78091
|
address: deployment.address,
|
|
77604
78092
|
contractName: `${compilationTarget}:${contractName}`,
|
|
77605
78093
|
constructorArguments,
|
|
@@ -77629,42 +78117,42 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77629
78117
|
}
|
|
77630
78118
|
);
|
|
77631
78119
|
if (verificationArtifacts.length === 0) {
|
|
77632
|
-
|
|
78120
|
+
logger12.warn("No contracts match the verification criteria, exiting");
|
|
77633
78121
|
return [];
|
|
77634
78122
|
}
|
|
77635
78123
|
if (config.dryRun) {
|
|
77636
|
-
|
|
78124
|
+
logger12.debug("Dry run enabled, exiting");
|
|
77637
78125
|
return [];
|
|
77638
78126
|
}
|
|
77639
78127
|
const results = await Promise.all(verifyAll(verificationArtifacts));
|
|
77640
78128
|
results.forEach(logResult);
|
|
77641
78129
|
return results;
|
|
77642
78130
|
};
|
|
77643
|
-
var createVerifyAll = (
|
|
78131
|
+
var createVerifyAll = (logger12) => (artifacts) => {
|
|
77644
78132
|
return artifacts.map(async (artifact, index) => {
|
|
77645
78133
|
const { submitProps } = artifact;
|
|
77646
78134
|
const paletteColor = COLORS.palette[index % COLORS.palette.length];
|
|
77647
78135
|
const counter = `[${index + 1}/${artifacts.length}]`;
|
|
77648
78136
|
const contractName = import_chalk4.default.bold(submitProps.contractName);
|
|
77649
78137
|
const networkName = import_chalk4.default.bold(artifact.networkName);
|
|
77650
|
-
|
|
78138
|
+
logger12.info(paletteColor`Verifying contract ${contractName} for network ${networkName} ${counter}`);
|
|
77651
78139
|
try {
|
|
77652
|
-
const verification = createVerification(submitProps,
|
|
78140
|
+
const verification = createVerification(submitProps, logger12);
|
|
77653
78141
|
verification.on("poll", (guid) => {
|
|
77654
|
-
|
|
78142
|
+
logger12.info(
|
|
77655
78143
|
paletteColor`Polling for verification status of ${contractName} for network ${networkName} (GUID ${guid}) ${counter}`
|
|
77656
78144
|
);
|
|
77657
78145
|
});
|
|
77658
78146
|
verification.on("retry", (error, attempt) => {
|
|
77659
|
-
|
|
77660
|
-
|
|
78147
|
+
logger12.verbose(`Received an error: ${error}`);
|
|
78148
|
+
logger12.info(
|
|
77661
78149
|
paletteColor`Retrying failed verification attempt of ${contractName} for network ${networkName} (attempt ${attempt + 1}) ${counter}`
|
|
77662
78150
|
);
|
|
77663
78151
|
});
|
|
77664
78152
|
const result = await verification.verify();
|
|
77665
78153
|
return { artifact, result };
|
|
77666
78154
|
} catch (error) {
|
|
77667
|
-
|
|
78155
|
+
logger12.error(
|
|
77668
78156
|
COLORS.error`Problem verifying contract ${contractName} for network ${networkName} ${counter}: ${error} `
|
|
77669
78157
|
);
|
|
77670
78158
|
return { artifact, error };
|