@layerzerolabs/verify-contract 1.1.32 → 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.js
CHANGED
|
@@ -7022,9 +7022,9 @@ var require_winston_transport = __commonJS({
|
|
|
7022
7022
|
this.logv = options.logv;
|
|
7023
7023
|
if (options.close)
|
|
7024
7024
|
this.close = options.close;
|
|
7025
|
-
this.once("pipe", (
|
|
7026
|
-
this.levels =
|
|
7027
|
-
this.parent =
|
|
7025
|
+
this.once("pipe", (logger12) => {
|
|
7026
|
+
this.levels = logger12.levels;
|
|
7027
|
+
this.parent = logger12;
|
|
7028
7028
|
});
|
|
7029
7029
|
this.once("unpipe", (src) => {
|
|
7030
7030
|
if (src === this.parent) {
|
|
@@ -8002,7 +8002,7 @@ var require_diagnostics = __commonJS({
|
|
|
8002
8002
|
"../../node_modules/.pnpm/@dabh+diagnostics@2.0.3/node_modules/@dabh/diagnostics/diagnostics.js"(exports, module) {
|
|
8003
8003
|
var adapters = [];
|
|
8004
8004
|
var modifiers = [];
|
|
8005
|
-
var
|
|
8005
|
+
var logger12 = function devnull() {
|
|
8006
8006
|
};
|
|
8007
8007
|
function use(adapter) {
|
|
8008
8008
|
if (~adapters.indexOf(adapter))
|
|
@@ -8011,7 +8011,7 @@ var require_diagnostics = __commonJS({
|
|
|
8011
8011
|
return true;
|
|
8012
8012
|
}
|
|
8013
8013
|
function set(custom2) {
|
|
8014
|
-
|
|
8014
|
+
logger12 = custom2;
|
|
8015
8015
|
}
|
|
8016
8016
|
function enabled(namespace) {
|
|
8017
8017
|
var async = [];
|
|
@@ -8042,7 +8042,7 @@ var require_diagnostics = __commonJS({
|
|
|
8042
8042
|
return true;
|
|
8043
8043
|
}
|
|
8044
8044
|
function write() {
|
|
8045
|
-
|
|
8045
|
+
logger12.apply(logger12, arguments);
|
|
8046
8046
|
}
|
|
8047
8047
|
function process4(message) {
|
|
8048
8048
|
for (var i = 0; i < modifiers.length; i++) {
|
|
@@ -11196,11 +11196,11 @@ var require_exception_handler = __commonJS({
|
|
|
11196
11196
|
* TODO: add contructor description
|
|
11197
11197
|
* @param {!Logger} logger - TODO: add param description
|
|
11198
11198
|
*/
|
|
11199
|
-
constructor(
|
|
11200
|
-
if (!
|
|
11199
|
+
constructor(logger12) {
|
|
11200
|
+
if (!logger12) {
|
|
11201
11201
|
throw new Error("Logger is required to handle exceptions");
|
|
11202
11202
|
}
|
|
11203
|
-
this.logger =
|
|
11203
|
+
this.logger = logger12;
|
|
11204
11204
|
this.handlers = /* @__PURE__ */ new Map();
|
|
11205
11205
|
}
|
|
11206
11206
|
/**
|
|
@@ -11393,11 +11393,11 @@ var require_rejection_handler = __commonJS({
|
|
|
11393
11393
|
* TODO: add contructor description
|
|
11394
11394
|
* @param {!Logger} logger - TODO: add param description
|
|
11395
11395
|
*/
|
|
11396
|
-
constructor(
|
|
11397
|
-
if (!
|
|
11396
|
+
constructor(logger12) {
|
|
11397
|
+
if (!logger12) {
|
|
11398
11398
|
throw new Error("Logger is required to handle rejections");
|
|
11399
11399
|
}
|
|
11400
|
-
this.logger =
|
|
11400
|
+
this.logger = logger12;
|
|
11401
11401
|
this.handlers = /* @__PURE__ */ new Map();
|
|
11402
11402
|
}
|
|
11403
11403
|
/**
|
|
@@ -11593,12 +11593,12 @@ var require_profiler = __commonJS({
|
|
|
11593
11593
|
* @param {!Logger} logger - TODO: add param description.
|
|
11594
11594
|
* @private
|
|
11595
11595
|
*/
|
|
11596
|
-
constructor(
|
|
11596
|
+
constructor(logger12) {
|
|
11597
11597
|
const Logger2 = require_logger();
|
|
11598
|
-
if (typeof
|
|
11598
|
+
if (typeof logger12 !== "object" || Array.isArray(logger12) || !(logger12 instanceof Logger2)) {
|
|
11599
11599
|
throw new Error("Logger is required for profiling");
|
|
11600
11600
|
} else {
|
|
11601
|
-
this.logger =
|
|
11601
|
+
this.logger = logger12;
|
|
11602
11602
|
this.start = Date.now();
|
|
11603
11603
|
}
|
|
11604
11604
|
}
|
|
@@ -11648,8 +11648,8 @@ var require_logger = __commonJS({
|
|
|
11648
11648
|
this.configure(options);
|
|
11649
11649
|
}
|
|
11650
11650
|
child(defaultRequestMetadata) {
|
|
11651
|
-
const
|
|
11652
|
-
return Object.create(
|
|
11651
|
+
const logger12 = this;
|
|
11652
|
+
return Object.create(logger12, {
|
|
11653
11653
|
write: {
|
|
11654
11654
|
value: function(info) {
|
|
11655
11655
|
const infoClone = Object.assign(
|
|
@@ -11661,7 +11661,7 @@ var require_logger = __commonJS({
|
|
|
11661
11661
|
infoClone.stack = info.stack;
|
|
11662
11662
|
infoClone.message = info.message;
|
|
11663
11663
|
}
|
|
11664
|
-
|
|
11664
|
+
logger12.write(infoClone);
|
|
11665
11665
|
}
|
|
11666
11666
|
}
|
|
11667
11667
|
});
|
|
@@ -12168,7 +12168,7 @@ var require_create_logger = __commonJS({
|
|
|
12168
12168
|
super(options);
|
|
12169
12169
|
}
|
|
12170
12170
|
}
|
|
12171
|
-
const
|
|
12171
|
+
const logger12 = new DerivedLogger(opts);
|
|
12172
12172
|
Object.keys(opts.levels).forEach(function(level) {
|
|
12173
12173
|
debug('Define prototype method for "%s"', level);
|
|
12174
12174
|
if (level === "log") {
|
|
@@ -12176,14 +12176,14 @@ var require_create_logger = __commonJS({
|
|
|
12176
12176
|
return;
|
|
12177
12177
|
}
|
|
12178
12178
|
DerivedLogger.prototype[level] = function(...args) {
|
|
12179
|
-
const self2 = this ||
|
|
12179
|
+
const self2 = this || logger12;
|
|
12180
12180
|
if (args.length === 1) {
|
|
12181
12181
|
const [msg] = args;
|
|
12182
12182
|
const info = msg && msg.message && msg || { message: msg };
|
|
12183
12183
|
info.level = info[LEVEL] = level;
|
|
12184
12184
|
self2._addDefaultMeta(info);
|
|
12185
12185
|
self2.write(info);
|
|
12186
|
-
return this ||
|
|
12186
|
+
return this || logger12;
|
|
12187
12187
|
}
|
|
12188
12188
|
if (args.length === 0) {
|
|
12189
12189
|
self2.log(level, "");
|
|
@@ -12192,10 +12192,10 @@ var require_create_logger = __commonJS({
|
|
|
12192
12192
|
return self2.log(level, ...args);
|
|
12193
12193
|
};
|
|
12194
12194
|
DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function() {
|
|
12195
|
-
return (this ||
|
|
12195
|
+
return (this || logger12).isLevelEnabled(level);
|
|
12196
12196
|
};
|
|
12197
12197
|
});
|
|
12198
|
-
return
|
|
12198
|
+
return logger12;
|
|
12199
12199
|
};
|
|
12200
12200
|
}
|
|
12201
12201
|
});
|
|
@@ -12203,7 +12203,7 @@ var require_create_logger = __commonJS({
|
|
|
12203
12203
|
// ../../node_modules/.pnpm/winston@3.11.0/node_modules/winston/lib/winston/container.js
|
|
12204
12204
|
var require_container = __commonJS({
|
|
12205
12205
|
"../../node_modules/.pnpm/winston@3.11.0/node_modules/winston/lib/winston/container.js"(exports, module) {
|
|
12206
|
-
var
|
|
12206
|
+
var createLogger2 = require_create_logger();
|
|
12207
12207
|
module.exports = class Container {
|
|
12208
12208
|
/**
|
|
12209
12209
|
* Constructor function for the Container object responsible for managing a
|
|
@@ -12230,9 +12230,9 @@ var require_container = __commonJS({
|
|
|
12230
12230
|
} else {
|
|
12231
12231
|
options.transports = [];
|
|
12232
12232
|
}
|
|
12233
|
-
const
|
|
12234
|
-
|
|
12235
|
-
this.loggers.set(id2,
|
|
12233
|
+
const logger12 = createLogger2(options);
|
|
12234
|
+
logger12.on("close", () => this._delete(id2));
|
|
12235
|
+
this.loggers.set(id2, logger12);
|
|
12236
12236
|
}
|
|
12237
12237
|
return this.loggers.get(id2);
|
|
12238
12238
|
}
|
|
@@ -12277,8 +12277,8 @@ var require_container = __commonJS({
|
|
|
12277
12277
|
if (!this.loggers.has(id2)) {
|
|
12278
12278
|
return;
|
|
12279
12279
|
}
|
|
12280
|
-
const
|
|
12281
|
-
|
|
12280
|
+
const logger12 = this.loggers.get(id2);
|
|
12281
|
+
logger12.close();
|
|
12282
12282
|
this._delete(id2);
|
|
12283
12283
|
}
|
|
12284
12284
|
/**
|
|
@@ -64833,8 +64833,555 @@ var require_index_cjs = __commonJS({
|
|
|
64833
64833
|
}
|
|
64834
64834
|
});
|
|
64835
64835
|
|
|
64836
|
+
// src/common/networks.ts
|
|
64837
|
+
var ETHERSCAN_V2_URL = "https://api.etherscan.io/v2/api";
|
|
64838
|
+
var networks = {
|
|
64839
|
+
// Ethereum
|
|
64840
|
+
ethereum: {
|
|
64841
|
+
chainId: 1,
|
|
64842
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64843
|
+
aliases: ["ethereum-mainnet"]
|
|
64844
|
+
},
|
|
64845
|
+
goerli: {
|
|
64846
|
+
// DEPRECATED
|
|
64847
|
+
chainId: 5,
|
|
64848
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64849
|
+
aliases: ["ethereum-goerli"]
|
|
64850
|
+
},
|
|
64851
|
+
sepolia: {
|
|
64852
|
+
chainId: 11155111,
|
|
64853
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64854
|
+
aliases: ["sepolia-testnet", "eth-sepolia", "ethereum-sepolia"]
|
|
64855
|
+
},
|
|
64856
|
+
holesky: {
|
|
64857
|
+
chainId: 17e3,
|
|
64858
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64859
|
+
aliases: ["holesky-testnet", "ethereum-holesky"]
|
|
64860
|
+
},
|
|
64861
|
+
hoodi: {
|
|
64862
|
+
chainId: 560048,
|
|
64863
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64864
|
+
aliases: ["hoodi-testnet", "ethereum-hoodi"]
|
|
64865
|
+
},
|
|
64866
|
+
// Polygon
|
|
64867
|
+
polygon: {
|
|
64868
|
+
chainId: 137,
|
|
64869
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64870
|
+
aliases: ["polygon-mainnet"]
|
|
64871
|
+
},
|
|
64872
|
+
amoy: {
|
|
64873
|
+
chainId: 80002,
|
|
64874
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64875
|
+
aliases: ["polygon-amoy", "polygon-sepolia", "polygon-testnet"]
|
|
64876
|
+
},
|
|
64877
|
+
// Arbitrum
|
|
64878
|
+
arbitrum: {
|
|
64879
|
+
chainId: 42161,
|
|
64880
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64881
|
+
aliases: ["arbitrum-mainnet"]
|
|
64882
|
+
},
|
|
64883
|
+
"arbitrum-nova": {
|
|
64884
|
+
chainId: 42170,
|
|
64885
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64886
|
+
aliases: ["arbitrum-nova-mainnet"]
|
|
64887
|
+
},
|
|
64888
|
+
"arbitrum-goerli": {
|
|
64889
|
+
// DEPRECATED
|
|
64890
|
+
chainId: 421613,
|
|
64891
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64892
|
+
},
|
|
64893
|
+
arbsep: {
|
|
64894
|
+
chainId: 421614,
|
|
64895
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64896
|
+
aliases: ["arbsep-testnet", "arbitrum-sepolia", "arbitrum-testnet"]
|
|
64897
|
+
},
|
|
64898
|
+
// Optimism
|
|
64899
|
+
optimism: {
|
|
64900
|
+
chainId: 10,
|
|
64901
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64902
|
+
aliases: ["optimism-mainnet"]
|
|
64903
|
+
},
|
|
64904
|
+
"optimism-goerli": {
|
|
64905
|
+
// DEPRECATED
|
|
64906
|
+
chainId: 420,
|
|
64907
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64908
|
+
},
|
|
64909
|
+
optsep: {
|
|
64910
|
+
chainId: 11155420,
|
|
64911
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64912
|
+
aliases: ["optsep-testnet", "optimism-sepolia", "optimism-testnet"]
|
|
64913
|
+
},
|
|
64914
|
+
// Base
|
|
64915
|
+
base: {
|
|
64916
|
+
chainId: 8453,
|
|
64917
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64918
|
+
aliases: ["base-mainnet"]
|
|
64919
|
+
},
|
|
64920
|
+
"base-sepolia": {
|
|
64921
|
+
chainId: 84532,
|
|
64922
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64923
|
+
aliases: ["base-testnet", "basesep"]
|
|
64924
|
+
},
|
|
64925
|
+
"base-goerli": {
|
|
64926
|
+
// DEPRECATED
|
|
64927
|
+
chainId: 84531,
|
|
64928
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64929
|
+
},
|
|
64930
|
+
// Avalanche
|
|
64931
|
+
avalanche: {
|
|
64932
|
+
chainId: 43114,
|
|
64933
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64934
|
+
aliases: ["avalanche-mainnet"]
|
|
64935
|
+
},
|
|
64936
|
+
fuji: {
|
|
64937
|
+
chainId: 43113,
|
|
64938
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64939
|
+
aliases: ["avalanche-testnet", "avalanche-fuji"]
|
|
64940
|
+
},
|
|
64941
|
+
// BSC
|
|
64942
|
+
bsc: {
|
|
64943
|
+
chainId: 56,
|
|
64944
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64945
|
+
aliases: ["bsc-mainnet"]
|
|
64946
|
+
},
|
|
64947
|
+
"bsc-testnet": {
|
|
64948
|
+
chainId: 97,
|
|
64949
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64950
|
+
},
|
|
64951
|
+
// Fantom
|
|
64952
|
+
fantom: {
|
|
64953
|
+
chainId: 250,
|
|
64954
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64955
|
+
aliases: ["fantom-mainnet"]
|
|
64956
|
+
},
|
|
64957
|
+
"fantom-testnet": {
|
|
64958
|
+
chainId: 4002,
|
|
64959
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
64960
|
+
},
|
|
64961
|
+
// Gnosis
|
|
64962
|
+
gnosis: {
|
|
64963
|
+
chainId: 100,
|
|
64964
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64965
|
+
aliases: ["gnosis-mainnet"]
|
|
64966
|
+
},
|
|
64967
|
+
// Blast
|
|
64968
|
+
blast: {
|
|
64969
|
+
chainId: 81457,
|
|
64970
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64971
|
+
aliases: ["blast-mainnet"]
|
|
64972
|
+
},
|
|
64973
|
+
"blast-sepolia": {
|
|
64974
|
+
chainId: 168587773,
|
|
64975
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64976
|
+
aliases: ["blast-sepolia-testnet", "blast-testnet"]
|
|
64977
|
+
},
|
|
64978
|
+
// Linea / zkConsensys
|
|
64979
|
+
linea: {
|
|
64980
|
+
chainId: 59144,
|
|
64981
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64982
|
+
aliases: ["linea-mainnet", "zkconsensys", "zkconsensys-mainnet"]
|
|
64983
|
+
},
|
|
64984
|
+
"linea-sepolia": {
|
|
64985
|
+
chainId: 59141,
|
|
64986
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64987
|
+
aliases: ["linea-sepolia-testnet", "linea-testnet", "lineasep"]
|
|
64988
|
+
},
|
|
64989
|
+
// Scroll
|
|
64990
|
+
scroll: {
|
|
64991
|
+
chainId: 534352,
|
|
64992
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64993
|
+
aliases: ["scroll-mainnet"]
|
|
64994
|
+
},
|
|
64995
|
+
"scroll-sepolia": {
|
|
64996
|
+
chainId: 534351,
|
|
64997
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
64998
|
+
aliases: ["scroll-sepolia-testnet", "scroll-testnet"]
|
|
64999
|
+
},
|
|
65000
|
+
// Moonbeam
|
|
65001
|
+
moonbeam: {
|
|
65002
|
+
chainId: 1284,
|
|
65003
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65004
|
+
aliases: ["moonbeam-mainnet"]
|
|
65005
|
+
},
|
|
65006
|
+
"moonbeam-testnet": {
|
|
65007
|
+
chainId: 1287,
|
|
65008
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65009
|
+
},
|
|
65010
|
+
// Moonriver
|
|
65011
|
+
moonriver: {
|
|
65012
|
+
chainId: 1285,
|
|
65013
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65014
|
+
aliases: ["moonriver-mainnet"]
|
|
65015
|
+
},
|
|
65016
|
+
// Fraxtal
|
|
65017
|
+
fraxtal: {
|
|
65018
|
+
chainId: 252,
|
|
65019
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65020
|
+
aliases: ["fraxtal-mainnet"]
|
|
65021
|
+
},
|
|
65022
|
+
"fraxtal-hoodi": {
|
|
65023
|
+
chainId: 2523,
|
|
65024
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65025
|
+
aliases: ["fraxtal-hoodi-testnet", "fraxtal-testnet"]
|
|
65026
|
+
},
|
|
65027
|
+
// Taiko
|
|
65028
|
+
taiko: {
|
|
65029
|
+
chainId: 167e3,
|
|
65030
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65031
|
+
aliases: ["taiko-mainnet"]
|
|
65032
|
+
},
|
|
65033
|
+
"taiko-hoodi": {
|
|
65034
|
+
chainId: 167013,
|
|
65035
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65036
|
+
aliases: ["taiko-hoodi-testnet", "taiko-testnet"]
|
|
65037
|
+
},
|
|
65038
|
+
// Abstract
|
|
65039
|
+
abstract: {
|
|
65040
|
+
chainId: 2741,
|
|
65041
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65042
|
+
aliases: ["abstract-mainnet"]
|
|
65043
|
+
},
|
|
65044
|
+
"abstract-sepolia": {
|
|
65045
|
+
chainId: 11124,
|
|
65046
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65047
|
+
aliases: ["abstract-sepolia-testnet", "abstract-testnet"]
|
|
65048
|
+
},
|
|
65049
|
+
// ApeChain
|
|
65050
|
+
apechain: {
|
|
65051
|
+
chainId: 33139,
|
|
65052
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65053
|
+
aliases: ["apechain-mainnet", "ape"]
|
|
65054
|
+
},
|
|
65055
|
+
"apechain-curtis": {
|
|
65056
|
+
chainId: 33111,
|
|
65057
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65058
|
+
aliases: ["apechain-curtis-testnet", "apechain-testnet", "curtis"]
|
|
65059
|
+
},
|
|
65060
|
+
// Berachain
|
|
65061
|
+
berachain: {
|
|
65062
|
+
chainId: 80094,
|
|
65063
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65064
|
+
aliases: ["berachain-mainnet", "bera"]
|
|
65065
|
+
},
|
|
65066
|
+
"berachain-bepolia": {
|
|
65067
|
+
chainId: 80069,
|
|
65068
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65069
|
+
aliases: ["berachain-bepolia-testnet", "berachain-testnet", "bepolia"]
|
|
65070
|
+
},
|
|
65071
|
+
// BitTorrent
|
|
65072
|
+
bittorrent: {
|
|
65073
|
+
chainId: 199,
|
|
65074
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65075
|
+
aliases: ["bittorrent-mainnet"]
|
|
65076
|
+
},
|
|
65077
|
+
"bittorrent-testnet": {
|
|
65078
|
+
chainId: 1029,
|
|
65079
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65080
|
+
},
|
|
65081
|
+
// Celo
|
|
65082
|
+
celo: {
|
|
65083
|
+
chainId: 42220,
|
|
65084
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65085
|
+
aliases: ["celo-mainnet"]
|
|
65086
|
+
},
|
|
65087
|
+
"celo-sepolia": {
|
|
65088
|
+
chainId: 11142220,
|
|
65089
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65090
|
+
aliases: ["celo-sepolia-testnet", "celo-testnet"]
|
|
65091
|
+
},
|
|
65092
|
+
// HyperEVM
|
|
65093
|
+
hyperevm: {
|
|
65094
|
+
chainId: 999,
|
|
65095
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65096
|
+
aliases: ["hyperevm-mainnet", "hyperliquid"]
|
|
65097
|
+
},
|
|
65098
|
+
// Katana
|
|
65099
|
+
katana: {
|
|
65100
|
+
chainId: 747474,
|
|
65101
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65102
|
+
aliases: ["katana-mainnet"]
|
|
65103
|
+
},
|
|
65104
|
+
"katana-bokuto": {
|
|
65105
|
+
chainId: 737373,
|
|
65106
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65107
|
+
aliases: ["katana-bokuto-testnet", "katana-testnet"]
|
|
65108
|
+
},
|
|
65109
|
+
// Mantle
|
|
65110
|
+
mantle: {
|
|
65111
|
+
chainId: 5e3,
|
|
65112
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65113
|
+
aliases: ["mantle-mainnet"]
|
|
65114
|
+
},
|
|
65115
|
+
"mantle-sepolia": {
|
|
65116
|
+
chainId: 5003,
|
|
65117
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65118
|
+
aliases: ["mantle-sepolia-testnet", "mantle-testnet", "mantlesep"]
|
|
65119
|
+
},
|
|
65120
|
+
// Memecore
|
|
65121
|
+
"memecore-testnet": {
|
|
65122
|
+
chainId: 43521,
|
|
65123
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65124
|
+
aliases: ["memecoreformicarium"]
|
|
65125
|
+
},
|
|
65126
|
+
// Monad
|
|
65127
|
+
"monad-testnet": {
|
|
65128
|
+
chainId: 10143,
|
|
65129
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65130
|
+
},
|
|
65131
|
+
// opBNB
|
|
65132
|
+
opbnb: {
|
|
65133
|
+
chainId: 204,
|
|
65134
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65135
|
+
aliases: ["opbnb-mainnet"]
|
|
65136
|
+
},
|
|
65137
|
+
"opbnb-testnet": {
|
|
65138
|
+
chainId: 5611,
|
|
65139
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65140
|
+
},
|
|
65141
|
+
// Sei
|
|
65142
|
+
sei: {
|
|
65143
|
+
chainId: 1329,
|
|
65144
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65145
|
+
aliases: ["sei-mainnet"]
|
|
65146
|
+
},
|
|
65147
|
+
"sei-testnet": {
|
|
65148
|
+
chainId: 1328,
|
|
65149
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65150
|
+
},
|
|
65151
|
+
// Sonic
|
|
65152
|
+
sonic: {
|
|
65153
|
+
chainId: 146,
|
|
65154
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65155
|
+
aliases: ["sonic-mainnet"]
|
|
65156
|
+
},
|
|
65157
|
+
"sonic-testnet": {
|
|
65158
|
+
chainId: 14601,
|
|
65159
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65160
|
+
},
|
|
65161
|
+
// Sophon (DEPRECATED - will be deprecated on November 22, 2025)
|
|
65162
|
+
sophon: {
|
|
65163
|
+
chainId: 50104,
|
|
65164
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65165
|
+
aliases: ["sophon-mainnet"]
|
|
65166
|
+
},
|
|
65167
|
+
"sophon-sepolia": {
|
|
65168
|
+
chainId: 531050104,
|
|
65169
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65170
|
+
aliases: ["sophon-sepolia-testnet", "sophon-testnet"]
|
|
65171
|
+
},
|
|
65172
|
+
// Swellchain
|
|
65173
|
+
swellchain: {
|
|
65174
|
+
chainId: 1923,
|
|
65175
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65176
|
+
aliases: ["swellchain-mainnet", "swell"]
|
|
65177
|
+
},
|
|
65178
|
+
"swellchain-testnet": {
|
|
65179
|
+
chainId: 1924,
|
|
65180
|
+
apiUrl: ETHERSCAN_V2_URL
|
|
65181
|
+
},
|
|
65182
|
+
// Unichain
|
|
65183
|
+
unichain: {
|
|
65184
|
+
chainId: 130,
|
|
65185
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65186
|
+
aliases: ["unichain-mainnet"]
|
|
65187
|
+
},
|
|
65188
|
+
"unichain-sepolia": {
|
|
65189
|
+
chainId: 1301,
|
|
65190
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65191
|
+
aliases: ["unichain-sepolia-testnet", "unichain-testnet"]
|
|
65192
|
+
},
|
|
65193
|
+
// World
|
|
65194
|
+
world: {
|
|
65195
|
+
chainId: 480,
|
|
65196
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65197
|
+
aliases: ["world-mainnet", "worldchain"]
|
|
65198
|
+
},
|
|
65199
|
+
"world-sepolia": {
|
|
65200
|
+
chainId: 4801,
|
|
65201
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65202
|
+
aliases: ["world-sepolia-testnet", "world-testnet"]
|
|
65203
|
+
},
|
|
65204
|
+
// XDC
|
|
65205
|
+
xdc: {
|
|
65206
|
+
chainId: 50,
|
|
65207
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65208
|
+
aliases: ["xdc-mainnet"]
|
|
65209
|
+
},
|
|
65210
|
+
"xdc-apothem": {
|
|
65211
|
+
chainId: 51,
|
|
65212
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65213
|
+
aliases: ["xdc-apothem-testnet", "xdc-testnet"]
|
|
65214
|
+
},
|
|
65215
|
+
// zkSync
|
|
65216
|
+
zksync: {
|
|
65217
|
+
chainId: 324,
|
|
65218
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65219
|
+
aliases: ["zksync-mainnet"]
|
|
65220
|
+
},
|
|
65221
|
+
"zksync-sepolia": {
|
|
65222
|
+
chainId: 300,
|
|
65223
|
+
apiUrl: ETHERSCAN_V2_URL,
|
|
65224
|
+
aliases: ["zksync-sepolia-testnet", "zksync-testnet", "zksyncsep"]
|
|
65225
|
+
},
|
|
65226
|
+
// Non-Etherscan Networks (custom explorers)
|
|
65227
|
+
// chainId is not used for these networks
|
|
65228
|
+
// Astar
|
|
65229
|
+
astar: {
|
|
65230
|
+
chainId: 0,
|
|
65231
|
+
apiUrl: "https://astar.blockscout.com/api",
|
|
65232
|
+
aliases: ["astar-mainnet"]
|
|
65233
|
+
},
|
|
65234
|
+
zkatana: {
|
|
65235
|
+
chainId: 0,
|
|
65236
|
+
apiUrl: "https://astar-zkevm.explorer.startale.com/api",
|
|
65237
|
+
aliases: ["zkatana-mainnet"]
|
|
65238
|
+
},
|
|
65239
|
+
// Aurora
|
|
65240
|
+
aurora: {
|
|
65241
|
+
chainId: 0,
|
|
65242
|
+
apiUrl: "https://explorer.mainnet.aurora.dev/api",
|
|
65243
|
+
aliases: ["aurora-mainnet"]
|
|
65244
|
+
},
|
|
65245
|
+
// EBI
|
|
65246
|
+
ebi: {
|
|
65247
|
+
chainId: 0,
|
|
65248
|
+
apiUrl: "https://explorer.ebi.xyz/api",
|
|
65249
|
+
aliases: ["ebi-mainnet"]
|
|
65250
|
+
},
|
|
65251
|
+
// Etherlink
|
|
65252
|
+
etherlink: {
|
|
65253
|
+
chainId: 0,
|
|
65254
|
+
apiUrl: "https://explorer.etherlink.com/api",
|
|
65255
|
+
aliases: ["etherlink-mainnet"]
|
|
65256
|
+
},
|
|
65257
|
+
// Flare
|
|
65258
|
+
flare: {
|
|
65259
|
+
chainId: 0,
|
|
65260
|
+
apiUrl: "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan",
|
|
65261
|
+
aliases: ["flare-mainnet"]
|
|
65262
|
+
},
|
|
65263
|
+
// Gravity
|
|
65264
|
+
gravity: {
|
|
65265
|
+
chainId: 0,
|
|
65266
|
+
apiUrl: "https://explorer.gravity.xyz/api",
|
|
65267
|
+
aliases: ["gravity-mainnet"]
|
|
65268
|
+
},
|
|
65269
|
+
// IOTA
|
|
65270
|
+
iota: {
|
|
65271
|
+
chainId: 0,
|
|
65272
|
+
apiUrl: "https://explorer.evm.iota.org/api",
|
|
65273
|
+
aliases: ["iota-mainnet"]
|
|
65274
|
+
},
|
|
65275
|
+
// Kava
|
|
65276
|
+
kava: {
|
|
65277
|
+
chainId: 0,
|
|
65278
|
+
apiUrl: "https://kavascan.com/api",
|
|
65279
|
+
aliases: ["kava-mainnet"]
|
|
65280
|
+
},
|
|
65281
|
+
"kava-testnet": {
|
|
65282
|
+
chainId: 0,
|
|
65283
|
+
apiUrl: "https://testnet.kavascan.com/api"
|
|
65284
|
+
},
|
|
65285
|
+
// Klaytn
|
|
65286
|
+
klaytn: {
|
|
65287
|
+
chainId: 0,
|
|
65288
|
+
apiUrl: "https://api-cypress.klaytnscope.com/api",
|
|
65289
|
+
aliases: ["klaytn-mainnet"]
|
|
65290
|
+
},
|
|
65291
|
+
"klaytn-testnet": {
|
|
65292
|
+
chainId: 0,
|
|
65293
|
+
apiUrl: "https://api-baobab.klaytnscope.com/api"
|
|
65294
|
+
},
|
|
65295
|
+
// Manta
|
|
65296
|
+
manta: {
|
|
65297
|
+
chainId: 0,
|
|
65298
|
+
apiUrl: "https://pacific-explorer.manta.network/api",
|
|
65299
|
+
aliases: ["manta-mainnet"]
|
|
65300
|
+
},
|
|
65301
|
+
// Metis
|
|
65302
|
+
metis: {
|
|
65303
|
+
chainId: 0,
|
|
65304
|
+
apiUrl: "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan",
|
|
65305
|
+
aliases: ["metis-mainnet"]
|
|
65306
|
+
},
|
|
65307
|
+
// Mode
|
|
65308
|
+
mode: {
|
|
65309
|
+
chainId: 0,
|
|
65310
|
+
apiUrl: "https://explorer.mode.network/api",
|
|
65311
|
+
aliases: ["mode-mainnet"]
|
|
65312
|
+
},
|
|
65313
|
+
// Rarible
|
|
65314
|
+
rarible: {
|
|
65315
|
+
chainId: 0,
|
|
65316
|
+
apiUrl: "https://mainnet.explorer.rarichain.org/api",
|
|
65317
|
+
aliases: ["rarible-mainnet"]
|
|
65318
|
+
},
|
|
65319
|
+
// X Chain
|
|
65320
|
+
xchain: {
|
|
65321
|
+
chainId: 0,
|
|
65322
|
+
apiUrl: "https://xchain-explorer.idex.io/api",
|
|
65323
|
+
aliases: ["xchain-mainnet"]
|
|
65324
|
+
},
|
|
65325
|
+
// X Layer
|
|
65326
|
+
xlayer: {
|
|
65327
|
+
chainId: 0,
|
|
65328
|
+
apiUrl: "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER",
|
|
65329
|
+
aliases: ["xlayer-mainnet"]
|
|
65330
|
+
}
|
|
65331
|
+
};
|
|
65332
|
+
|
|
65333
|
+
// src/common/networks-loader.ts
|
|
65334
|
+
var NetworkRegistry = class {
|
|
65335
|
+
constructor() {
|
|
65336
|
+
__publicField(this, "apiUrls", /* @__PURE__ */ new Map());
|
|
65337
|
+
__publicField(this, "chainIds", /* @__PURE__ */ new Map());
|
|
65338
|
+
for (const [canonicalName, network] of Object.entries(networks)) {
|
|
65339
|
+
const apiUrl = network.apiUrl;
|
|
65340
|
+
const chainId = network.chainId;
|
|
65341
|
+
if (apiUrl) {
|
|
65342
|
+
this.apiUrls.set(canonicalName, apiUrl);
|
|
65343
|
+
}
|
|
65344
|
+
if (chainId) {
|
|
65345
|
+
this.chainIds.set(canonicalName, chainId);
|
|
65346
|
+
}
|
|
65347
|
+
if (network.aliases) {
|
|
65348
|
+
for (const alias of network.aliases) {
|
|
65349
|
+
if (apiUrl) {
|
|
65350
|
+
this.apiUrls.set(alias, apiUrl);
|
|
65351
|
+
}
|
|
65352
|
+
if (chainId) {
|
|
65353
|
+
this.chainIds.set(alias, chainId);
|
|
65354
|
+
}
|
|
65355
|
+
}
|
|
65356
|
+
}
|
|
65357
|
+
}
|
|
65358
|
+
}
|
|
65359
|
+
getApiUrl(networkName) {
|
|
65360
|
+
return this.apiUrls.get(networkName);
|
|
65361
|
+
}
|
|
65362
|
+
getChainId(networkName) {
|
|
65363
|
+
return this.chainIds.get(networkName);
|
|
65364
|
+
}
|
|
65365
|
+
getAllNetworkNames() {
|
|
65366
|
+
return Array.from(/* @__PURE__ */ new Set([...this.apiUrls.keys(), ...this.chainIds.keys()]));
|
|
65367
|
+
}
|
|
65368
|
+
getSupportedNetworks() {
|
|
65369
|
+
const networks2 = /* @__PURE__ */ new Map();
|
|
65370
|
+
const allNames = this.getAllNetworkNames();
|
|
65371
|
+
for (const name of allNames) {
|
|
65372
|
+
networks2.set(name, {
|
|
65373
|
+
chainId: this.getChainId(name),
|
|
65374
|
+
apiUrl: this.getApiUrl(name)
|
|
65375
|
+
});
|
|
65376
|
+
}
|
|
65377
|
+
return networks2;
|
|
65378
|
+
}
|
|
65379
|
+
};
|
|
65380
|
+
var networkRegistry = new NetworkRegistry();
|
|
65381
|
+
var getDefaultScanApiUrl = (networkName) => networkRegistry.getApiUrl(networkName);
|
|
65382
|
+
var getDefaultChainId = (networkName) => networkRegistry.getChainId(networkName);
|
|
65383
|
+
|
|
64836
65384
|
// src/common/url.ts
|
|
64837
|
-
var getDefaultScanApiUrl = (networkName) => DEFAULT_SCAN_API_URLS.get(networkName);
|
|
64838
65385
|
var tryGetScanBrowserUrlFromScanUrl = (scanApiUrl) => {
|
|
64839
65386
|
try {
|
|
64840
65387
|
const urlObject = new URL(scanApiUrl);
|
|
@@ -64857,99 +65404,6 @@ var tryCreateScanContractUrl = (scanBrowserUrl, address) => {
|
|
|
64857
65404
|
return void 0;
|
|
64858
65405
|
}
|
|
64859
65406
|
};
|
|
64860
|
-
var DEFAULT_SCAN_API_URLS = /* @__PURE__ */ new Map([
|
|
64861
|
-
["amoy", "https://amoy.polygonscan.com/api"],
|
|
64862
|
-
["amoy-mainnet", "https://amoy.polygonscan.com/api"],
|
|
64863
|
-
["arbitrum", "https://api.arbiscan.io/api"],
|
|
64864
|
-
["arbitrum-goerli", "https://api-goerli.arbiscan.io/api"],
|
|
64865
|
-
["arbitrum-mainnet", "https://api.arbiscan.io/api"],
|
|
64866
|
-
["arbsep-testnet", "https://api-sepolia.arbiscan.io/api"],
|
|
64867
|
-
["astar", "https://astar.blockscout.com/api"],
|
|
64868
|
-
["astar-mainnet", "https://astar.blockscout.com/api"],
|
|
64869
|
-
["aurora", "https://explorer.mainnet.aurora.dev/api"],
|
|
64870
|
-
["aurora-mainnet", "https://explorer.mainnet.aurora.dev/api"],
|
|
64871
|
-
["avalanche", "https://api.snowtrace.io/api"],
|
|
64872
|
-
["avalanche-mainnet", "https://api.snowtrace.io/api"],
|
|
64873
|
-
["avalanche-testnet", "https://api-testnet.snowtrace.io/api"],
|
|
64874
|
-
["base", "https://api.basescan.org/api"],
|
|
64875
|
-
["base-goerli", "https://api-goerli.basescan.org/api"],
|
|
64876
|
-
["base-mainnet", "https://api.basescan.org/api"],
|
|
64877
|
-
["blast", "https://api.blastscan.io/api"],
|
|
64878
|
-
["blast-mainnet", "https://api.blastscan.io/api"],
|
|
64879
|
-
["bsc", "https://api.bscscan.com/api"],
|
|
64880
|
-
["bsc-mainnet", "https://api.bscscan.com/api"],
|
|
64881
|
-
["bsc-testnet", "https://api-testnet.bscscan.com/api"],
|
|
64882
|
-
["ebi", "https://explorer.ebi.xyz/api"],
|
|
64883
|
-
["ebi-mainnet", "https://explorer.ebi.xyz/api"],
|
|
64884
|
-
["ethereum", "https://api.etherscan.io/api"],
|
|
64885
|
-
["ethereum-goerli", "https://api-goerli.etherscan.io/api"],
|
|
64886
|
-
["ethereum-mainnet", "https://api.etherscan.io/api"],
|
|
64887
|
-
["etherlink", "https://explorer.etherlink.com/api"],
|
|
64888
|
-
["etherlink-mainnet", "https://explorer.etherlink.com/api"],
|
|
64889
|
-
["fantom", "https://api.ftmscan.com/api"],
|
|
64890
|
-
["fantom-mainnet", "https://api.ftmscan.com/api"],
|
|
64891
|
-
["fantom-testnet", "https://api-testnet.ftmscan.com/api"],
|
|
64892
|
-
["flare", "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan"],
|
|
64893
|
-
["flare-mainnet", "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan"],
|
|
64894
|
-
["fraxtal", "https://api.fraxscan.com/api"],
|
|
64895
|
-
["fraxtal-mainnet", "https://api.fraxscan.com/api"],
|
|
64896
|
-
["fuji", "https://api-testnet.snowtrace.io/api"],
|
|
64897
|
-
["fuji-mainnet", "https://api-testnet.snowtrace.io/api"],
|
|
64898
|
-
["gnosis", "https://api.gnosisscan.io/api"],
|
|
64899
|
-
["gnosis-mainnet", "https://api.gnosisscan.io/api"],
|
|
64900
|
-
["goerli", "https://api-goerli.etherscan.io/api"],
|
|
64901
|
-
["goerli-mainnet", "https://api-goerli.etherscan.io/api"],
|
|
64902
|
-
["gravity", "https://explorer.gravity.xyz/api"],
|
|
64903
|
-
["gravity-mainnet", "https://explorer.gravity.xyz/api"],
|
|
64904
|
-
["iota", "https://explorer.evm.iota.org/api"],
|
|
64905
|
-
["iota-mainnet", "https://explorer.evm.iota.org/api"],
|
|
64906
|
-
["kava", "https://kavascan.com/api"],
|
|
64907
|
-
["kava-mainnet", "https://kavascan.com/api"],
|
|
64908
|
-
["kava-testnet", "https://testnet.kavascan.com/api"],
|
|
64909
|
-
["klaytn", "https://api-cypress.klaytnscope.com/api"],
|
|
64910
|
-
["klaytn-mainnet", "https://api-cypress.klaytnscope.com/api"],
|
|
64911
|
-
["klaytn-testnet", "https://api-baobab.klaytnscope.com/api"],
|
|
64912
|
-
["linea", "https://api.lineascan.build/api"],
|
|
64913
|
-
["linea-mainnet", "https://api.lineascan.build/api"],
|
|
64914
|
-
["mantle", "https://explorer.mantle.xyz/api"],
|
|
64915
|
-
["mantle-mainnet", "https://explorer.mantle.xyz/api"],
|
|
64916
|
-
["manta", "https://pacific-explorer.manta.network/api"],
|
|
64917
|
-
["manta-mainnet", "https://pacific-explorer.manta.network/api"],
|
|
64918
|
-
["metis", "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan"],
|
|
64919
|
-
["metis-mainnet", "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan"],
|
|
64920
|
-
["mode", "https://explorer.mode.network/api"],
|
|
64921
|
-
["mode-mainnet", "https://explorer.mode.network/api"],
|
|
64922
|
-
["moonbeam", "https://api-moonbeam.moonscan.io/api"],
|
|
64923
|
-
["moonbeam-mainnet", "https://api-moonbeam.moonscan.io/api"],
|
|
64924
|
-
["moonbeam-testnet", "https://api-moonbase.moonscan.io/api"],
|
|
64925
|
-
["moonriver", "https://api-moonriver.moonscan.io/api"],
|
|
64926
|
-
["moonriver-mainnet", "https://api-moonriver.moonscan.io/api"],
|
|
64927
|
-
["optimism", "https://api-optimistic.etherscan.io/api"],
|
|
64928
|
-
["optimism-goerli", "https://api-goerli-optimistic.etherscan.io/api"],
|
|
64929
|
-
["optimism-mainnet", "https://api-optimistic.etherscan.io/api"],
|
|
64930
|
-
["optsep-testnet", "https://api-sepolia-optimistic.etherscan.io/api"],
|
|
64931
|
-
["polygon", "https://api.polygonscan.com/api"],
|
|
64932
|
-
["polygon-mainnet", "https://api.polygonscan.com/api"],
|
|
64933
|
-
["rarible", "https://mainnet.explorer.rarichain.org/api"],
|
|
64934
|
-
["rarible-mainnet", "https://mainnet.explorer.rarichain.org/api"],
|
|
64935
|
-
["sepolia-testnet", "https://api-sepolia.etherscan.io/api"],
|
|
64936
|
-
["scroll", "https://api.scrollscan.com/api"],
|
|
64937
|
-
["scroll-mainnet", "https://api.scrollscan.com/api"],
|
|
64938
|
-
["sei", "https://seitrace.com/pacific-1/api"],
|
|
64939
|
-
["sei-mainnet", "https://seitrace.com/pacific-1/api"],
|
|
64940
|
-
["taiko", "https://api.taikoscan.io/api"],
|
|
64941
|
-
["taiko-mainnet", "https://api.taikoscan.io/api"],
|
|
64942
|
-
["xchain", "https://xchain-explorer.idex.io/api"],
|
|
64943
|
-
["xchain-mainnet", "https://xchain-explorer.idex.io/api"],
|
|
64944
|
-
["xlayer", "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER"],
|
|
64945
|
-
["xlayer-mainnet", "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/XLAYER"],
|
|
64946
|
-
["zkatana", "https://astar-zkevm.explorer.startale.com/api"],
|
|
64947
|
-
["zkatana-mainnet", "https://astar-zkevm.explorer.startale.com/api"],
|
|
64948
|
-
["zkconsensys", "https://api.lineascan.build/api"],
|
|
64949
|
-
["zkconsensys-mainnet", "https://api.lineascan.build/api"],
|
|
64950
|
-
["zkpolygon", "https://api-zkevm.polygonscan.com/api"],
|
|
64951
|
-
["zkpolygon-mainnet", "https://api-zkevm.polygonscan.com/api"]
|
|
64952
|
-
]);
|
|
64953
65407
|
|
|
64954
65408
|
// src/common/logger.ts
|
|
64955
65409
|
var import_chalk = __toESM(require_source());
|
|
@@ -64974,16 +65428,16 @@ var anonymizeValue = (value) => {
|
|
|
64974
65428
|
const invisiblePart = Array.from({ length: invisibleLength }).fill("*").join("");
|
|
64975
65429
|
return `${visiblePart}${invisiblePart}`;
|
|
64976
65430
|
};
|
|
64977
|
-
var createRecordLogger = (
|
|
64978
|
-
|
|
65431
|
+
var createRecordLogger = (logger12, separator = " ") => (record) => {
|
|
65432
|
+
logger12.info("");
|
|
64979
65433
|
Object.entries(record).forEach(([label, value]) => {
|
|
64980
65434
|
if (Array.isArray(value)) {
|
|
64981
|
-
|
|
65435
|
+
logger12.info(`${label}:`);
|
|
64982
65436
|
value.forEach((item) => {
|
|
64983
|
-
|
|
65437
|
+
logger12.info(`${separator} - ${import_chalk.default.bold(formatLoggableValue(item))}`);
|
|
64984
65438
|
});
|
|
64985
65439
|
} else {
|
|
64986
|
-
|
|
65440
|
+
logger12.info(`${label}:${separator}${import_chalk.default.bold(formatLoggableValue(value))}`);
|
|
64987
65441
|
}
|
|
64988
65442
|
});
|
|
64989
65443
|
};
|
|
@@ -65003,7 +65457,7 @@ var FALSE_SYMBOL = COLORS.error`⚠`;
|
|
|
65003
65457
|
|
|
65004
65458
|
// src/common/config.ts
|
|
65005
65459
|
var import_chalk2 = __toESM(require_source());
|
|
65006
|
-
var parseNetworksConfig = (
|
|
65460
|
+
var parseNetworksConfig = (logger12, partialNetworksConfig) => {
|
|
65007
65461
|
return Object.entries(partialNetworksConfig != null ? partialNetworksConfig : {}).reduce((networksConfig, [networkName, networkConfig]) => {
|
|
65008
65462
|
if (networkConfig == null) {
|
|
65009
65463
|
return networksConfig;
|
|
@@ -65022,7 +65476,7 @@ Please provide the API URL:
|
|
|
65022
65476
|
);
|
|
65023
65477
|
const apiKey = networkConfig.apiKey || getScanApiKeyFromEnv(networkName);
|
|
65024
65478
|
if (!apiKey) {
|
|
65025
|
-
|
|
65479
|
+
logger12.debug(`Could not find scan API key for network ${import_chalk2.default.bold(networkName)}
|
|
65026
65480
|
|
|
65027
65481
|
Please provide the API key:
|
|
65028
65482
|
|
|
@@ -65032,7 +65486,7 @@ Please provide the API key:
|
|
|
65032
65486
|
}
|
|
65033
65487
|
const browserUrl = networkConfig.browserUrl || getScanBrowserUrlFromEnv(networkName) || tryGetScanBrowserUrlFromScanUrl(apiUrl);
|
|
65034
65488
|
if (!browserUrl) {
|
|
65035
|
-
|
|
65489
|
+
logger12.debug(`Could not find scan browser URL key for network ${import_chalk2.default.bold(networkName)}
|
|
65036
65490
|
|
|
65037
65491
|
Browser URL is used to display a link to the verified contract
|
|
65038
65492
|
after successful verification.
|
|
@@ -65042,10 +65496,22 @@ Please provide the API key:
|
|
|
65042
65496
|
- As an browserUrl config parameter in ${networkName} config
|
|
65043
65497
|
- As a SCAN_BROWSER_URL_${networkName} environment variable
|
|
65044
65498
|
- As a SCAN_BROWSER_URL_${normalizeNetworkName(networkName)} environment variable`);
|
|
65499
|
+
}
|
|
65500
|
+
const chainId = networkConfig.chainId || getChainIdFromEnv(networkName) || getDefaultChainId(networkName);
|
|
65501
|
+
if (!chainId) {
|
|
65502
|
+
logger12.debug(`Could not find chain ID for network ${import_chalk2.default.bold(networkName)}
|
|
65503
|
+
|
|
65504
|
+
Chain ID is required for Etherscan API v2.
|
|
65505
|
+
|
|
65506
|
+
Please provide the chain ID:
|
|
65507
|
+
|
|
65508
|
+
- As a chainId config parameter in ${networkName} config
|
|
65509
|
+
- As a SCAN_CHAIN_ID_${networkName} environment variable
|
|
65510
|
+
- As a SCAN_CHAIN_ID_${normalizeNetworkName(networkName)} environment variable`);
|
|
65045
65511
|
}
|
|
65046
65512
|
return {
|
|
65047
65513
|
...networksConfig,
|
|
65048
|
-
[networkName]: { apiUrl, apiKey, browserUrl }
|
|
65514
|
+
[networkName]: { apiUrl, apiKey, browserUrl, chainId }
|
|
65049
65515
|
};
|
|
65050
65516
|
}, {});
|
|
65051
65517
|
};
|
|
@@ -65061,6 +65527,11 @@ var getScanApiKeyFromEnv = (networkName) => {
|
|
|
65061
65527
|
var _a, _b;
|
|
65062
65528
|
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());
|
|
65063
65529
|
};
|
|
65530
|
+
var getChainIdFromEnv = (networkName) => {
|
|
65531
|
+
var _a, _b;
|
|
65532
|
+
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());
|
|
65533
|
+
return chainIdStr ? parseInt(chainIdStr, 10) : void 0;
|
|
65534
|
+
};
|
|
65064
65535
|
var normalizeNetworkName = (networkName) => networkName.toUpperCase().replaceAll("-", "_");
|
|
65065
65536
|
|
|
65066
65537
|
// src/common/licenses.ts
|
|
@@ -68845,9 +69316,15 @@ var LogLevel = /* @__PURE__ */ ((LogLevel22) => {
|
|
|
68845
69316
|
return LogLevel22;
|
|
68846
69317
|
})(LogLevel || {});
|
|
68847
69318
|
z.nativeEnum(LogLevel);
|
|
68848
|
-
|
|
69319
|
+
var DEFAULT_LOG_LEVEL = "info";
|
|
69320
|
+
var createLogger = (level = DEFAULT_LOG_LEVEL, logFormat = import_winston.format.cli()) => (0, import_winston.createLogger)({
|
|
69321
|
+
level,
|
|
69322
|
+
format: logFormat,
|
|
69323
|
+
transports: [new import_winston.transports.Console()]
|
|
69324
|
+
});
|
|
69325
|
+
(0, import_winston.format)((info, opts) => ({
|
|
68849
69326
|
...info,
|
|
68850
|
-
message: `${label ? `[${label}] ` : ""}${info.message}`
|
|
69327
|
+
message: `${(opts == null ? void 0 : opts.label) ? `[${opts.label}] ` : ""}${info.message}`
|
|
68851
69328
|
}));
|
|
68852
69329
|
({
|
|
68853
69330
|
TRUE: import_chalk3.default.rgb(0, 153, 0),
|
|
@@ -68861,6 +69338,7 @@ z.nativeEnum(LogLevel);
|
|
|
68861
69338
|
DEFAULT_VALUE: import_chalk3.default.rgb(167, 125, 255)
|
|
68862
69339
|
// MAGENTA
|
|
68863
69340
|
});
|
|
69341
|
+
createLogger();
|
|
68864
69342
|
var retry = async (callback, numAttempts, onRetry) => {
|
|
68865
69343
|
assert4__default.default(numAttempts > 0, `Number of attempts for retry must be larger than 0, got ${numAttempts}`);
|
|
68866
69344
|
for (let attempt = 0; attempt < numAttempts - 1; attempt++) {
|
|
@@ -74048,10 +74526,10 @@ var source_default2 = got;
|
|
|
74048
74526
|
|
|
74049
74527
|
// src/common/etherscan.ts
|
|
74050
74528
|
var Verification = class extends EventEmitter__default.default {
|
|
74051
|
-
constructor(props,
|
|
74529
|
+
constructor(props, logger12) {
|
|
74052
74530
|
super();
|
|
74053
74531
|
this.props = props;
|
|
74054
|
-
this.logger =
|
|
74532
|
+
this.logger = logger12;
|
|
74055
74533
|
}
|
|
74056
74534
|
async verify() {
|
|
74057
74535
|
try {
|
|
@@ -74089,7 +74567,7 @@ var Verification = class extends EventEmitter__default.default {
|
|
|
74089
74567
|
${JSON.stringify(request)}`);
|
|
74090
74568
|
return await retry(
|
|
74091
74569
|
async () => {
|
|
74092
|
-
const response = await submitRequest(this.props.apiUrl, request);
|
|
74570
|
+
const response = await submitRequest(this.props.apiUrl, request, this.props.chainId, this.props.apiKey);
|
|
74093
74571
|
this.logger.verbose(`Received raw response from ${this.props.apiUrl}:
|
|
74094
74572
|
|
|
74095
74573
|
${JSON.stringify(response)}`);
|
|
@@ -74110,7 +74588,7 @@ ${JSON.stringify(response)}`);
|
|
|
74110
74588
|
async __poll(guid) {
|
|
74111
74589
|
while (true) {
|
|
74112
74590
|
this.emit("poll", guid);
|
|
74113
|
-
const result = await checkGuid(this.props.apiUrl, guid);
|
|
74591
|
+
const result = await checkGuid(this.props.apiUrl, guid, this.props.chainId, this.props.apiKey);
|
|
74114
74592
|
this.logger.verbose(`Received raw polling response from ${this.props.apiUrl}:
|
|
74115
74593
|
|
|
74116
74594
|
${JSON.stringify(result)}`);
|
|
@@ -74138,29 +74616,37 @@ ${JSON.stringify(result)}`);
|
|
|
74138
74616
|
}
|
|
74139
74617
|
}
|
|
74140
74618
|
};
|
|
74141
|
-
var createVerification = (props,
|
|
74619
|
+
var createVerification = (props, logger12) => new Verification(props, logger12);
|
|
74142
74620
|
var isPendingResult = (result) => !!(result == null ? void 0 : result.match(/Pending/gi));
|
|
74143
74621
|
var isAlreadyVerifiedResult = (result) => !!(result == null ? void 0 : result.match(/already verified/gi));
|
|
74144
74622
|
var isApiRateLimitedResult = (result) => !!(result == null ? void 0 : result.match(/rate/));
|
|
74145
|
-
var submitRequest = async (apiUrl, request) => {
|
|
74146
|
-
|
|
74147
|
-
|
|
74148
|
-
|
|
74149
|
-
|
|
74150
|
-
|
|
74151
|
-
|
|
74152
|
-
|
|
74153
|
-
|
|
74154
|
-
|
|
74155
|
-
|
|
74156
|
-
|
|
74157
|
-
}
|
|
74623
|
+
var submitRequest = async (apiUrl, request, chainId, apiKey) => {
|
|
74624
|
+
const url = new URL(apiUrl);
|
|
74625
|
+
const isEtherscanV2 = apiUrl.includes("api.etherscan.io/v2");
|
|
74626
|
+
if (chainId !== void 0 && isEtherscanV2) {
|
|
74627
|
+
url.searchParams.set("chainid", String(chainId));
|
|
74628
|
+
}
|
|
74629
|
+
if (apiKey) {
|
|
74630
|
+
url.searchParams.set("apikey", apiKey);
|
|
74631
|
+
}
|
|
74632
|
+
const response = await source_default2(url.toString(), {
|
|
74633
|
+
method: "POST",
|
|
74634
|
+
form: request
|
|
74635
|
+
}).json();
|
|
74636
|
+
return ScanResponseSchema.parse(response);
|
|
74158
74637
|
};
|
|
74159
|
-
var checkGuid = async (apiUrl, guid) => {
|
|
74638
|
+
var checkGuid = async (apiUrl, guid, chainId, apiKey) => {
|
|
74160
74639
|
const url = new URL(apiUrl);
|
|
74161
74640
|
url.searchParams.set("module", "contract");
|
|
74162
74641
|
url.searchParams.set("action", "checkverifystatus");
|
|
74163
74642
|
url.searchParams.set("guid", guid);
|
|
74643
|
+
const isEtherscanV2 = apiUrl.includes("api.etherscan.io/v2");
|
|
74644
|
+
if (chainId !== void 0 && isEtherscanV2) {
|
|
74645
|
+
url.searchParams.set("chainid", String(chainId));
|
|
74646
|
+
}
|
|
74647
|
+
if (apiKey) {
|
|
74648
|
+
url.searchParams.set("apikey", apiKey);
|
|
74649
|
+
}
|
|
74164
74650
|
try {
|
|
74165
74651
|
const data = await source_default2(url).json();
|
|
74166
74652
|
return ScanResponseSchema.parse(data);
|
|
@@ -74583,7 +75069,7 @@ Logger.levels = LogLevel2;
|
|
|
74583
75069
|
var version2 = "bytes/5.7.0";
|
|
74584
75070
|
|
|
74585
75071
|
// ../../node_modules/.pnpm/@ethersproject+bytes@5.7.0/node_modules/@ethersproject/bytes/lib.esm/index.js
|
|
74586
|
-
var
|
|
75072
|
+
var logger2 = new Logger(version2);
|
|
74587
75073
|
function isHexable(value) {
|
|
74588
75074
|
return !!value.toHexString;
|
|
74589
75075
|
}
|
|
@@ -74626,7 +75112,7 @@ function arrayify(value, options) {
|
|
|
74626
75112
|
options = {};
|
|
74627
75113
|
}
|
|
74628
75114
|
if (typeof value === "number") {
|
|
74629
|
-
|
|
75115
|
+
logger2.checkSafeUint53(value, "invalid arrayify value");
|
|
74630
75116
|
const result = [];
|
|
74631
75117
|
while (value) {
|
|
74632
75118
|
result.unshift(value & 255);
|
|
@@ -74651,7 +75137,7 @@ function arrayify(value, options) {
|
|
|
74651
75137
|
} else if (options.hexPad === "right") {
|
|
74652
75138
|
hex += "0";
|
|
74653
75139
|
} else {
|
|
74654
|
-
|
|
75140
|
+
logger2.throwArgumentError("hex data is odd-length", "value", value);
|
|
74655
75141
|
}
|
|
74656
75142
|
}
|
|
74657
75143
|
const result = [];
|
|
@@ -74663,7 +75149,7 @@ function arrayify(value, options) {
|
|
|
74663
75149
|
if (isBytes(value)) {
|
|
74664
75150
|
return addSlice(new Uint8Array(value));
|
|
74665
75151
|
}
|
|
74666
|
-
return
|
|
75152
|
+
return logger2.throwArgumentError("invalid arrayify value", "value", value);
|
|
74667
75153
|
}
|
|
74668
75154
|
function concat(items) {
|
|
74669
75155
|
const objects = items.map((item) => arrayify(item));
|
|
@@ -74690,7 +75176,7 @@ function hexlify(value, options) {
|
|
|
74690
75176
|
options = {};
|
|
74691
75177
|
}
|
|
74692
75178
|
if (typeof value === "number") {
|
|
74693
|
-
|
|
75179
|
+
logger2.checkSafeUint53(value, "invalid hexlify value");
|
|
74694
75180
|
let hex = "";
|
|
74695
75181
|
while (value) {
|
|
74696
75182
|
hex = HexCharacters[value & 15] + hex;
|
|
@@ -74724,7 +75210,7 @@ function hexlify(value, options) {
|
|
|
74724
75210
|
} else if (options.hexPad === "right") {
|
|
74725
75211
|
value += "0";
|
|
74726
75212
|
} else {
|
|
74727
|
-
|
|
75213
|
+
logger2.throwArgumentError("hex data is odd-length", "value", value);
|
|
74728
75214
|
}
|
|
74729
75215
|
}
|
|
74730
75216
|
return value.toLowerCase();
|
|
@@ -74737,13 +75223,13 @@ function hexlify(value, options) {
|
|
|
74737
75223
|
}
|
|
74738
75224
|
return result;
|
|
74739
75225
|
}
|
|
74740
|
-
return
|
|
75226
|
+
return logger2.throwArgumentError("invalid hexlify value", "value", value);
|
|
74741
75227
|
}
|
|
74742
75228
|
function hexDataSlice(data, offset, endOffset) {
|
|
74743
75229
|
if (typeof data !== "string") {
|
|
74744
75230
|
data = hexlify(data);
|
|
74745
75231
|
} else if (!isHexString(data) || data.length % 2) {
|
|
74746
|
-
|
|
75232
|
+
logger2.throwArgumentError("invalid hexData", "value", data);
|
|
74747
75233
|
}
|
|
74748
75234
|
offset = 2 + 2 * offset;
|
|
74749
75235
|
if (endOffset != null) {
|
|
@@ -74762,10 +75248,10 @@ function hexZeroPad(value, length) {
|
|
|
74762
75248
|
if (typeof value !== "string") {
|
|
74763
75249
|
value = hexlify(value);
|
|
74764
75250
|
} else if (!isHexString(value)) {
|
|
74765
|
-
|
|
75251
|
+
logger2.throwArgumentError("invalid hex string", "value", value);
|
|
74766
75252
|
}
|
|
74767
75253
|
if (value.length > 2 * length + 2) {
|
|
74768
|
-
|
|
75254
|
+
logger2.throwArgumentError("value out of range", "value", arguments[1]);
|
|
74769
75255
|
}
|
|
74770
75256
|
while (value.length < 2 * length + 2) {
|
|
74771
75257
|
value = "0x0" + value.substring(2);
|
|
@@ -74778,14 +75264,14 @@ var version3 = "bignumber/5.7.0";
|
|
|
74778
75264
|
|
|
74779
75265
|
// ../../node_modules/.pnpm/@ethersproject+bignumber@5.7.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js
|
|
74780
75266
|
var BN = import_bn.default.BN;
|
|
74781
|
-
var
|
|
75267
|
+
var logger3 = new Logger(version3);
|
|
74782
75268
|
var _constructorGuard = {};
|
|
74783
75269
|
var MAX_SAFE = 9007199254740991;
|
|
74784
75270
|
var _warnedToStringRadix = false;
|
|
74785
75271
|
var BigNumber = class _BigNumber {
|
|
74786
75272
|
constructor(constructorGuard, hex) {
|
|
74787
75273
|
if (constructorGuard !== _constructorGuard) {
|
|
74788
|
-
|
|
75274
|
+
logger3.throwError("cannot call constructor directly; use BigNumber.from", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
74789
75275
|
operation: "new (BigNumber)"
|
|
74790
75276
|
});
|
|
74791
75277
|
}
|
|
@@ -74908,7 +75394,7 @@ var BigNumber = class _BigNumber {
|
|
|
74908
75394
|
return BigInt(this.toString());
|
|
74909
75395
|
} catch (e) {
|
|
74910
75396
|
}
|
|
74911
|
-
return
|
|
75397
|
+
return logger3.throwError("this platform does not support BigInt", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
74912
75398
|
value: this.toString()
|
|
74913
75399
|
});
|
|
74914
75400
|
}
|
|
@@ -74917,12 +75403,12 @@ var BigNumber = class _BigNumber {
|
|
|
74917
75403
|
if (arguments[0] === 10) {
|
|
74918
75404
|
if (!_warnedToStringRadix) {
|
|
74919
75405
|
_warnedToStringRadix = true;
|
|
74920
|
-
|
|
75406
|
+
logger3.warn("BigNumber.toString does not accept any parameters; base-10 is assumed");
|
|
74921
75407
|
}
|
|
74922
75408
|
} else if (arguments[0] === 16) {
|
|
74923
|
-
|
|
75409
|
+
logger3.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", Logger.errors.UNEXPECTED_ARGUMENT, {});
|
|
74924
75410
|
} else {
|
|
74925
|
-
|
|
75411
|
+
logger3.throwError("BigNumber.toString does not accept parameters", Logger.errors.UNEXPECTED_ARGUMENT, {});
|
|
74926
75412
|
}
|
|
74927
75413
|
}
|
|
74928
75414
|
return toBN(this).toString(10);
|
|
@@ -74944,7 +75430,7 @@ var BigNumber = class _BigNumber {
|
|
|
74944
75430
|
if (value.match(/^-?[0-9]+$/)) {
|
|
74945
75431
|
return new _BigNumber(_constructorGuard, toHex(new BN(value)));
|
|
74946
75432
|
}
|
|
74947
|
-
return
|
|
75433
|
+
return logger3.throwArgumentError("invalid BigNumber string", "value", value);
|
|
74948
75434
|
}
|
|
74949
75435
|
if (typeof value === "number") {
|
|
74950
75436
|
if (value % 1) {
|
|
@@ -74980,7 +75466,7 @@ var BigNumber = class _BigNumber {
|
|
|
74980
75466
|
}
|
|
74981
75467
|
}
|
|
74982
75468
|
}
|
|
74983
|
-
return
|
|
75469
|
+
return logger3.throwArgumentError("invalid BigNumber value", "value", value);
|
|
74984
75470
|
}
|
|
74985
75471
|
static isBigNumber(value) {
|
|
74986
75472
|
return !!(value && value._isBigNumber);
|
|
@@ -74993,7 +75479,7 @@ function toHex(value) {
|
|
|
74993
75479
|
if (value[0] === "-") {
|
|
74994
75480
|
value = value.substring(1);
|
|
74995
75481
|
if (value[0] === "-") {
|
|
74996
|
-
|
|
75482
|
+
logger3.throwArgumentError("invalid hex", "value", value);
|
|
74997
75483
|
}
|
|
74998
75484
|
value = toHex(value);
|
|
74999
75485
|
if (value === "0x00") {
|
|
@@ -75030,7 +75516,7 @@ function throwFault(fault, operation, value) {
|
|
|
75030
75516
|
if (value != null) {
|
|
75031
75517
|
params.value = value;
|
|
75032
75518
|
}
|
|
75033
|
-
return
|
|
75519
|
+
return logger3.throwError(fault, Logger.errors.NUMERIC_FAULT, params);
|
|
75034
75520
|
}
|
|
75035
75521
|
function _base36To16(value) {
|
|
75036
75522
|
return new BN(value, 36).toString(16);
|
|
@@ -75040,7 +75526,7 @@ function _base36To16(value) {
|
|
|
75040
75526
|
var version4 = "properties/5.7.0";
|
|
75041
75527
|
|
|
75042
75528
|
// ../../node_modules/.pnpm/@ethersproject+properties@5.7.0/node_modules/@ethersproject/properties/lib.esm/index.js
|
|
75043
|
-
var
|
|
75529
|
+
var logger4 = new Logger(version4);
|
|
75044
75530
|
function defineReadOnly(object, name, value) {
|
|
75045
75531
|
Object.defineProperty(object, name, {
|
|
75046
75532
|
enumerable: true,
|
|
@@ -75083,7 +75569,7 @@ function _isFrozen(object) {
|
|
|
75083
75569
|
}
|
|
75084
75570
|
return true;
|
|
75085
75571
|
}
|
|
75086
|
-
return
|
|
75572
|
+
return logger4.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object);
|
|
75087
75573
|
}
|
|
75088
75574
|
function _deepCopy(object) {
|
|
75089
75575
|
if (_isFrozen(object)) {
|
|
@@ -75103,7 +75589,7 @@ function _deepCopy(object) {
|
|
|
75103
75589
|
}
|
|
75104
75590
|
return result;
|
|
75105
75591
|
}
|
|
75106
|
-
return
|
|
75592
|
+
return logger4.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object);
|
|
75107
75593
|
}
|
|
75108
75594
|
function deepCopy(object) {
|
|
75109
75595
|
return _deepCopy(object);
|
|
@@ -75120,7 +75606,7 @@ var Description = class {
|
|
|
75120
75606
|
var version5 = "abi/5.7.0";
|
|
75121
75607
|
|
|
75122
75608
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/fragments.js
|
|
75123
|
-
var
|
|
75609
|
+
var logger5 = new Logger(version5);
|
|
75124
75610
|
var _constructorGuard2 = {};
|
|
75125
75611
|
var ModifiersBytes = { calldata: true, memory: true, storage: true };
|
|
75126
75612
|
var ModifiersNest = { calldata: true, memory: true };
|
|
@@ -75139,14 +75625,14 @@ function checkModifier(type, name) {
|
|
|
75139
75625
|
}
|
|
75140
75626
|
}
|
|
75141
75627
|
if (ModifiersBytes[name] || name === "payable") {
|
|
75142
|
-
|
|
75628
|
+
logger5.throwArgumentError("invalid modifier", "name", name);
|
|
75143
75629
|
}
|
|
75144
75630
|
return false;
|
|
75145
75631
|
}
|
|
75146
75632
|
function parseParamType(param, allowIndexed) {
|
|
75147
75633
|
let originalParam = param;
|
|
75148
75634
|
function throwError(i) {
|
|
75149
|
-
|
|
75635
|
+
logger5.throwArgumentError(`unexpected character at position ${i}`, "param", param);
|
|
75150
75636
|
}
|
|
75151
75637
|
param = param.replace(/\s/g, " ");
|
|
75152
75638
|
function newNode(parent2) {
|
|
@@ -75275,7 +75761,7 @@ function parseParamType(param, allowIndexed) {
|
|
|
75275
75761
|
}
|
|
75276
75762
|
}
|
|
75277
75763
|
if (node.parent) {
|
|
75278
|
-
|
|
75764
|
+
logger5.throwArgumentError("unexpected eof", "param", param);
|
|
75279
75765
|
}
|
|
75280
75766
|
delete parent.state;
|
|
75281
75767
|
if (node.name === "indexed") {
|
|
@@ -75312,7 +75798,7 @@ var paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
|
|
|
75312
75798
|
var ParamType = class _ParamType {
|
|
75313
75799
|
constructor(constructorGuard, params) {
|
|
75314
75800
|
if (constructorGuard !== _constructorGuard2) {
|
|
75315
|
-
|
|
75801
|
+
logger5.throwError("use fromString", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75316
75802
|
operation: "new ParamType()"
|
|
75317
75803
|
});
|
|
75318
75804
|
}
|
|
@@ -75346,7 +75832,7 @@ var ParamType = class _ParamType {
|
|
|
75346
75832
|
format3 = FormatTypes.sighash;
|
|
75347
75833
|
}
|
|
75348
75834
|
if (!FormatTypes[format3]) {
|
|
75349
|
-
|
|
75835
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75350
75836
|
}
|
|
75351
75837
|
if (format3 === FormatTypes.json) {
|
|
75352
75838
|
let result2 = {
|
|
@@ -75423,7 +75909,7 @@ function parseParams(value, allowIndex) {
|
|
|
75423
75909
|
var Fragment = class _Fragment {
|
|
75424
75910
|
constructor(constructorGuard, params) {
|
|
75425
75911
|
if (constructorGuard !== _constructorGuard2) {
|
|
75426
|
-
|
|
75912
|
+
logger5.throwError("use a static from method", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75427
75913
|
operation: "new Fragment()"
|
|
75428
75914
|
});
|
|
75429
75915
|
}
|
|
@@ -75457,7 +75943,7 @@ var Fragment = class _Fragment {
|
|
|
75457
75943
|
case "receive":
|
|
75458
75944
|
return null;
|
|
75459
75945
|
}
|
|
75460
|
-
return
|
|
75946
|
+
return logger5.throwArgumentError("invalid fragment object", "value", value);
|
|
75461
75947
|
}
|
|
75462
75948
|
static fromString(value) {
|
|
75463
75949
|
value = value.replace(/\s/g, " ");
|
|
@@ -75472,7 +75958,7 @@ var Fragment = class _Fragment {
|
|
|
75472
75958
|
} else if (value.split(" ")[0] === "error") {
|
|
75473
75959
|
return ErrorFragment.fromString(value.substring(5).trim());
|
|
75474
75960
|
}
|
|
75475
|
-
return
|
|
75961
|
+
return logger5.throwArgumentError("unsupported fragment", "value", value);
|
|
75476
75962
|
}
|
|
75477
75963
|
static isFragment(value) {
|
|
75478
75964
|
return !!(value && value._isFragment);
|
|
@@ -75484,7 +75970,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75484
75970
|
format3 = FormatTypes.sighash;
|
|
75485
75971
|
}
|
|
75486
75972
|
if (!FormatTypes[format3]) {
|
|
75487
|
-
|
|
75973
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75488
75974
|
}
|
|
75489
75975
|
if (format3 === FormatTypes.json) {
|
|
75490
75976
|
return JSON.stringify({
|
|
@@ -75517,7 +76003,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75517
76003
|
return value;
|
|
75518
76004
|
}
|
|
75519
76005
|
if (value.type !== "event") {
|
|
75520
|
-
|
|
76006
|
+
logger5.throwArgumentError("invalid event object", "value", value);
|
|
75521
76007
|
}
|
|
75522
76008
|
const params = {
|
|
75523
76009
|
name: verifyIdentifier(value.name),
|
|
@@ -75530,7 +76016,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75530
76016
|
static fromString(value) {
|
|
75531
76017
|
let match = value.match(regexParen);
|
|
75532
76018
|
if (!match) {
|
|
75533
|
-
|
|
76019
|
+
logger5.throwArgumentError("invalid event string", "value", value);
|
|
75534
76020
|
}
|
|
75535
76021
|
let anonymous = false;
|
|
75536
76022
|
match[3].split(" ").forEach((modifier) => {
|
|
@@ -75541,7 +76027,7 @@ var EventFragment = class _EventFragment extends Fragment {
|
|
|
75541
76027
|
case "":
|
|
75542
76028
|
break;
|
|
75543
76029
|
default:
|
|
75544
|
-
|
|
76030
|
+
logger5.warn("unknown modifier: " + modifier);
|
|
75545
76031
|
}
|
|
75546
76032
|
});
|
|
75547
76033
|
return _EventFragment.fromObject({
|
|
@@ -75560,10 +76046,10 @@ function parseGas(value, params) {
|
|
|
75560
76046
|
let comps = value.split("@");
|
|
75561
76047
|
if (comps.length !== 1) {
|
|
75562
76048
|
if (comps.length > 2) {
|
|
75563
|
-
|
|
76049
|
+
logger5.throwArgumentError("invalid human-readable ABI signature", "value", value);
|
|
75564
76050
|
}
|
|
75565
76051
|
if (!comps[1].match(/^[0-9]+$/)) {
|
|
75566
|
-
|
|
76052
|
+
logger5.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
|
|
75567
76053
|
}
|
|
75568
76054
|
params.gas = BigNumber.from(comps[1]);
|
|
75569
76055
|
return comps[0];
|
|
@@ -75615,19 +76101,19 @@ function verifyState(value) {
|
|
|
75615
76101
|
result.constant = result.stateMutability === "view" || result.stateMutability === "pure";
|
|
75616
76102
|
if (value.constant != null) {
|
|
75617
76103
|
if (!!value.constant !== result.constant) {
|
|
75618
|
-
|
|
76104
|
+
logger5.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
|
|
75619
76105
|
}
|
|
75620
76106
|
}
|
|
75621
76107
|
result.payable = result.stateMutability === "payable";
|
|
75622
76108
|
if (value.payable != null) {
|
|
75623
76109
|
if (!!value.payable !== result.payable) {
|
|
75624
|
-
|
|
76110
|
+
logger5.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
|
|
75625
76111
|
}
|
|
75626
76112
|
}
|
|
75627
76113
|
} else if (value.payable != null) {
|
|
75628
76114
|
result.payable = !!value.payable;
|
|
75629
76115
|
if (value.constant == null && !result.payable && value.type !== "constructor") {
|
|
75630
|
-
|
|
76116
|
+
logger5.throwArgumentError("unable to determine stateMutability", "value", value);
|
|
75631
76117
|
}
|
|
75632
76118
|
result.constant = !!value.constant;
|
|
75633
76119
|
if (result.constant) {
|
|
@@ -75636,14 +76122,14 @@ function verifyState(value) {
|
|
|
75636
76122
|
result.stateMutability = result.payable ? "payable" : "nonpayable";
|
|
75637
76123
|
}
|
|
75638
76124
|
if (result.payable && result.constant) {
|
|
75639
|
-
|
|
76125
|
+
logger5.throwArgumentError("cannot have constant payable function", "value", value);
|
|
75640
76126
|
}
|
|
75641
76127
|
} else if (value.constant != null) {
|
|
75642
76128
|
result.constant = !!value.constant;
|
|
75643
76129
|
result.payable = !result.constant;
|
|
75644
76130
|
result.stateMutability = result.constant ? "view" : "payable";
|
|
75645
76131
|
} else if (value.type !== "constructor") {
|
|
75646
|
-
|
|
76132
|
+
logger5.throwArgumentError("unable to determine stateMutability", "value", value);
|
|
75647
76133
|
}
|
|
75648
76134
|
return result;
|
|
75649
76135
|
}
|
|
@@ -75653,7 +76139,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75653
76139
|
format3 = FormatTypes.sighash;
|
|
75654
76140
|
}
|
|
75655
76141
|
if (!FormatTypes[format3]) {
|
|
75656
|
-
|
|
76142
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75657
76143
|
}
|
|
75658
76144
|
if (format3 === FormatTypes.json) {
|
|
75659
76145
|
return JSON.stringify({
|
|
@@ -75665,7 +76151,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75665
76151
|
});
|
|
75666
76152
|
}
|
|
75667
76153
|
if (format3 === FormatTypes.sighash) {
|
|
75668
|
-
|
|
76154
|
+
logger5.throwError("cannot format a constructor for sighash", Logger.errors.UNSUPPORTED_OPERATION, {
|
|
75669
76155
|
operation: "format(sighash)"
|
|
75670
76156
|
});
|
|
75671
76157
|
}
|
|
@@ -75686,11 +76172,11 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75686
76172
|
return value;
|
|
75687
76173
|
}
|
|
75688
76174
|
if (value.type !== "constructor") {
|
|
75689
|
-
|
|
76175
|
+
logger5.throwArgumentError("invalid constructor object", "value", value);
|
|
75690
76176
|
}
|
|
75691
76177
|
let state = verifyState(value);
|
|
75692
76178
|
if (state.constant) {
|
|
75693
|
-
|
|
76179
|
+
logger5.throwArgumentError("constructor cannot be constant", "value", value);
|
|
75694
76180
|
}
|
|
75695
76181
|
const params = {
|
|
75696
76182
|
name: null,
|
|
@@ -75707,7 +76193,7 @@ var ConstructorFragment = class _ConstructorFragment extends Fragment {
|
|
|
75707
76193
|
value = parseGas(value, params);
|
|
75708
76194
|
let parens = value.match(regexParen);
|
|
75709
76195
|
if (!parens || parens[1].trim() !== "constructor") {
|
|
75710
|
-
|
|
76196
|
+
logger5.throwArgumentError("invalid constructor string", "value", value);
|
|
75711
76197
|
}
|
|
75712
76198
|
params.inputs = parseParams(parens[2].trim(), false);
|
|
75713
76199
|
parseModifiers(parens[3].trim(), params);
|
|
@@ -75723,7 +76209,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75723
76209
|
format3 = FormatTypes.sighash;
|
|
75724
76210
|
}
|
|
75725
76211
|
if (!FormatTypes[format3]) {
|
|
75726
|
-
|
|
76212
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75727
76213
|
}
|
|
75728
76214
|
if (format3 === FormatTypes.json) {
|
|
75729
76215
|
return JSON.stringify({
|
|
@@ -75770,7 +76256,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75770
76256
|
return value;
|
|
75771
76257
|
}
|
|
75772
76258
|
if (value.type !== "function") {
|
|
75773
|
-
|
|
76259
|
+
logger5.throwArgumentError("invalid function object", "value", value);
|
|
75774
76260
|
}
|
|
75775
76261
|
let state = verifyState(value);
|
|
75776
76262
|
const params = {
|
|
@@ -75790,11 +76276,11 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75790
76276
|
value = parseGas(value, params);
|
|
75791
76277
|
let comps = value.split(" returns ");
|
|
75792
76278
|
if (comps.length > 2) {
|
|
75793
|
-
|
|
76279
|
+
logger5.throwArgumentError("invalid function string", "value", value);
|
|
75794
76280
|
}
|
|
75795
76281
|
let parens = comps[0].match(regexParen);
|
|
75796
76282
|
if (!parens) {
|
|
75797
|
-
|
|
76283
|
+
logger5.throwArgumentError("invalid function signature", "value", value);
|
|
75798
76284
|
}
|
|
75799
76285
|
params.name = parens[1].trim();
|
|
75800
76286
|
if (params.name) {
|
|
@@ -75805,7 +76291,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75805
76291
|
if (comps.length > 1) {
|
|
75806
76292
|
let returns = comps[1].match(regexParen);
|
|
75807
76293
|
if (returns[1].trim() != "" || returns[3].trim() != "") {
|
|
75808
|
-
|
|
76294
|
+
logger5.throwArgumentError("unexpected tokens", "value", value);
|
|
75809
76295
|
}
|
|
75810
76296
|
params.outputs = parseParams(returns[2], false);
|
|
75811
76297
|
} else {
|
|
@@ -75820,7 +76306,7 @@ var FunctionFragment = class _FunctionFragment extends ConstructorFragment {
|
|
|
75820
76306
|
function checkForbidden(fragment) {
|
|
75821
76307
|
const sig = fragment.format();
|
|
75822
76308
|
if (sig === "Error(string)" || sig === "Panic(uint256)") {
|
|
75823
|
-
|
|
76309
|
+
logger5.throwArgumentError(`cannot specify user defined ${sig} error`, "fragment", fragment);
|
|
75824
76310
|
}
|
|
75825
76311
|
return fragment;
|
|
75826
76312
|
}
|
|
@@ -75830,7 +76316,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75830
76316
|
format3 = FormatTypes.sighash;
|
|
75831
76317
|
}
|
|
75832
76318
|
if (!FormatTypes[format3]) {
|
|
75833
|
-
|
|
76319
|
+
logger5.throwArgumentError("invalid format type", "format", format3);
|
|
75834
76320
|
}
|
|
75835
76321
|
if (format3 === FormatTypes.json) {
|
|
75836
76322
|
return JSON.stringify({
|
|
@@ -75857,7 +76343,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75857
76343
|
return value;
|
|
75858
76344
|
}
|
|
75859
76345
|
if (value.type !== "error") {
|
|
75860
|
-
|
|
76346
|
+
logger5.throwArgumentError("invalid error object", "value", value);
|
|
75861
76347
|
}
|
|
75862
76348
|
const params = {
|
|
75863
76349
|
type: value.type,
|
|
@@ -75870,7 +76356,7 @@ var ErrorFragment = class _ErrorFragment extends Fragment {
|
|
|
75870
76356
|
let params = { type: "error" };
|
|
75871
76357
|
let parens = value.match(regexParen);
|
|
75872
76358
|
if (!parens) {
|
|
75873
|
-
|
|
76359
|
+
logger5.throwArgumentError("invalid error signature", "value", value);
|
|
75874
76360
|
}
|
|
75875
76361
|
params.name = parens[1].trim();
|
|
75876
76362
|
if (params.name) {
|
|
@@ -75894,7 +76380,7 @@ function verifyType(type) {
|
|
|
75894
76380
|
var regexIdentifier = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");
|
|
75895
76381
|
function verifyIdentifier(value) {
|
|
75896
76382
|
if (!value || !value.match(regexIdentifier)) {
|
|
75897
|
-
|
|
76383
|
+
logger5.throwArgumentError(`invalid identifier "${value}"`, "value", value);
|
|
75898
76384
|
}
|
|
75899
76385
|
return value;
|
|
75900
76386
|
}
|
|
@@ -75916,7 +76402,7 @@ function splitNesting(value) {
|
|
|
75916
76402
|
} else if (c === ")") {
|
|
75917
76403
|
depth--;
|
|
75918
76404
|
if (depth === -1) {
|
|
75919
|
-
|
|
76405
|
+
logger5.throwArgumentError("unbalanced parenthesis", "value", value);
|
|
75920
76406
|
}
|
|
75921
76407
|
}
|
|
75922
76408
|
}
|
|
@@ -75928,7 +76414,7 @@ function splitNesting(value) {
|
|
|
75928
76414
|
}
|
|
75929
76415
|
|
|
75930
76416
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js
|
|
75931
|
-
var
|
|
76417
|
+
var logger6 = new Logger(version5);
|
|
75932
76418
|
var Coder = class {
|
|
75933
76419
|
constructor(name, type, localName, dynamic) {
|
|
75934
76420
|
this.name = name;
|
|
@@ -75937,7 +76423,7 @@ var Coder = class {
|
|
|
75937
76423
|
this.dynamic = dynamic;
|
|
75938
76424
|
}
|
|
75939
76425
|
_throwError(message, value) {
|
|
75940
|
-
|
|
76426
|
+
logger6.throwArgumentError(message, this.localName, value);
|
|
75941
76427
|
}
|
|
75942
76428
|
};
|
|
75943
76429
|
var Writer = class {
|
|
@@ -75973,7 +76459,7 @@ var Writer = class {
|
|
|
75973
76459
|
_getValue(value) {
|
|
75974
76460
|
let bytes = arrayify(BigNumber.from(value));
|
|
75975
76461
|
if (bytes.length > this.wordSize) {
|
|
75976
|
-
|
|
76462
|
+
logger6.throwError("value out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
|
|
75977
76463
|
length: this.wordSize,
|
|
75978
76464
|
offset: bytes.length
|
|
75979
76465
|
});
|
|
@@ -76030,7 +76516,7 @@ var Reader = class _Reader {
|
|
|
76030
76516
|
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
|
|
76031
76517
|
alignedLength = length;
|
|
76032
76518
|
} else {
|
|
76033
|
-
|
|
76519
|
+
logger6.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
|
|
76034
76520
|
length: this._data.length,
|
|
76035
76521
|
offset: this._offset + alignedLength
|
|
76036
76522
|
});
|
|
@@ -76061,10 +76547,10 @@ function keccak256(data) {
|
|
|
76061
76547
|
var version6 = "address/5.7.0";
|
|
76062
76548
|
|
|
76063
76549
|
// ../../node_modules/.pnpm/@ethersproject+address@5.7.0/node_modules/@ethersproject/address/lib.esm/index.js
|
|
76064
|
-
var
|
|
76550
|
+
var logger7 = new Logger(version6);
|
|
76065
76551
|
function getChecksumAddress(address) {
|
|
76066
76552
|
if (!isHexString(address, 20)) {
|
|
76067
|
-
|
|
76553
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76068
76554
|
}
|
|
76069
76555
|
address = address.toLowerCase();
|
|
76070
76556
|
const chars = address.substring(2).split("");
|
|
@@ -76117,7 +76603,7 @@ function ibanChecksum(address) {
|
|
|
76117
76603
|
function getAddress(address) {
|
|
76118
76604
|
let result = null;
|
|
76119
76605
|
if (typeof address !== "string") {
|
|
76120
|
-
|
|
76606
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76121
76607
|
}
|
|
76122
76608
|
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
|
|
76123
76609
|
if (address.substring(0, 2) !== "0x") {
|
|
@@ -76125,11 +76611,11 @@ function getAddress(address) {
|
|
|
76125
76611
|
}
|
|
76126
76612
|
result = getChecksumAddress(address);
|
|
76127
76613
|
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
|
|
76128
|
-
|
|
76614
|
+
logger7.throwArgumentError("bad address checksum", "address", address);
|
|
76129
76615
|
}
|
|
76130
76616
|
} else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
|
|
76131
76617
|
if (address.substring(2, 4) !== ibanChecksum(address)) {
|
|
76132
|
-
|
|
76618
|
+
logger7.throwArgumentError("bad icap checksum", "address", address);
|
|
76133
76619
|
}
|
|
76134
76620
|
result = _base36To16(address.substring(4));
|
|
76135
76621
|
while (result.length < 40) {
|
|
@@ -76137,7 +76623,7 @@ function getAddress(address) {
|
|
|
76137
76623
|
}
|
|
76138
76624
|
result = getChecksumAddress("0x" + result);
|
|
76139
76625
|
} else {
|
|
76140
|
-
|
|
76626
|
+
logger7.throwArgumentError("invalid address", "address", address);
|
|
76141
76627
|
}
|
|
76142
76628
|
return result;
|
|
76143
76629
|
}
|
|
@@ -76181,7 +76667,7 @@ var AnonymousCoder = class extends Coder {
|
|
|
76181
76667
|
};
|
|
76182
76668
|
|
|
76183
76669
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/coders/array.js
|
|
76184
|
-
var
|
|
76670
|
+
var logger8 = new Logger(version5);
|
|
76185
76671
|
function pack(writer, coders, values) {
|
|
76186
76672
|
let arrayValues = null;
|
|
76187
76673
|
if (Array.isArray(values)) {
|
|
@@ -76191,14 +76677,14 @@ function pack(writer, coders, values) {
|
|
|
76191
76677
|
arrayValues = coders.map((coder) => {
|
|
76192
76678
|
const name = coder.localName;
|
|
76193
76679
|
if (!name) {
|
|
76194
|
-
|
|
76680
|
+
logger8.throwError("cannot encode object for signature with missing names", Logger.errors.INVALID_ARGUMENT, {
|
|
76195
76681
|
argument: "values",
|
|
76196
76682
|
coder,
|
|
76197
76683
|
value: values
|
|
76198
76684
|
});
|
|
76199
76685
|
}
|
|
76200
76686
|
if (unique[name]) {
|
|
76201
|
-
|
|
76687
|
+
logger8.throwError("cannot encode object for signature with duplicate names", Logger.errors.INVALID_ARGUMENT, {
|
|
76202
76688
|
argument: "values",
|
|
76203
76689
|
coder,
|
|
76204
76690
|
value: values
|
|
@@ -76208,10 +76694,10 @@ function pack(writer, coders, values) {
|
|
|
76208
76694
|
return values[name];
|
|
76209
76695
|
});
|
|
76210
76696
|
} else {
|
|
76211
|
-
|
|
76697
|
+
logger8.throwArgumentError("invalid tuple value", "tuple", values);
|
|
76212
76698
|
}
|
|
76213
76699
|
if (coders.length !== arrayValues.length) {
|
|
76214
|
-
|
|
76700
|
+
logger8.throwArgumentError("types/value length mismatch", "tuple", values);
|
|
76215
76701
|
}
|
|
76216
76702
|
let staticWriter = new Writer(writer.wordSize);
|
|
76217
76703
|
let dynamicWriter = new Writer(writer.wordSize);
|
|
@@ -76343,7 +76829,7 @@ var ArrayCoder = class extends Coder {
|
|
|
76343
76829
|
count = value.length;
|
|
76344
76830
|
writer.writeValue(value.length);
|
|
76345
76831
|
}
|
|
76346
|
-
|
|
76832
|
+
logger8.checkArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : ""));
|
|
76347
76833
|
let coders = [];
|
|
76348
76834
|
for (let i = 0; i < value.length; i++) {
|
|
76349
76835
|
coders.push(this.coder);
|
|
@@ -76355,7 +76841,7 @@ var ArrayCoder = class extends Coder {
|
|
|
76355
76841
|
if (count === -1) {
|
|
76356
76842
|
count = reader.readValue().toNumber();
|
|
76357
76843
|
if (count * 32 > reader._data.length) {
|
|
76358
|
-
|
|
76844
|
+
logger8.throwError("insufficient data length", Logger.errors.BUFFER_OVERRUN, {
|
|
76359
76845
|
length: reader._data.length,
|
|
76360
76846
|
count
|
|
76361
76847
|
});
|
|
@@ -76501,7 +76987,7 @@ var NumberCoder = class extends Coder {
|
|
|
76501
76987
|
var version7 = "strings/5.7.0";
|
|
76502
76988
|
|
|
76503
76989
|
// ../../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/lib.esm/utf8.js
|
|
76504
|
-
var
|
|
76990
|
+
var logger9 = new Logger(version7);
|
|
76505
76991
|
var UnicodeNormalizationForm;
|
|
76506
76992
|
(function(UnicodeNormalizationForm2) {
|
|
76507
76993
|
UnicodeNormalizationForm2["current"] = "";
|
|
@@ -76521,7 +77007,7 @@ var Utf8ErrorReason;
|
|
|
76521
77007
|
Utf8ErrorReason2["OVERLONG"] = "overlong representation";
|
|
76522
77008
|
})(Utf8ErrorReason || (Utf8ErrorReason = {}));
|
|
76523
77009
|
function errorFunc(reason, offset, bytes, output, badCodepoint) {
|
|
76524
|
-
return
|
|
77010
|
+
return logger9.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes);
|
|
76525
77011
|
}
|
|
76526
77012
|
function ignoreFunc(reason, offset, bytes, output, badCodepoint) {
|
|
76527
77013
|
if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {
|
|
@@ -76620,7 +77106,7 @@ function getUtf8CodePoints(bytes, onError) {
|
|
|
76620
77106
|
}
|
|
76621
77107
|
function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {
|
|
76622
77108
|
if (form != UnicodeNormalizationForm.current) {
|
|
76623
|
-
|
|
77109
|
+
logger9.checkNormalize();
|
|
76624
77110
|
str = str.normalize(form);
|
|
76625
77111
|
}
|
|
76626
77112
|
let result = [];
|
|
@@ -76733,7 +77219,7 @@ var TupleCoder = class extends Coder {
|
|
|
76733
77219
|
};
|
|
76734
77220
|
|
|
76735
77221
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/abi-coder.js
|
|
76736
|
-
var
|
|
77222
|
+
var logger10 = new Logger(version5);
|
|
76737
77223
|
var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
|
|
76738
77224
|
var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
|
|
76739
77225
|
var AbiCoder = class {
|
|
@@ -76763,7 +77249,7 @@ var AbiCoder = class {
|
|
|
76763
77249
|
if (match) {
|
|
76764
77250
|
let size = parseInt(match[2] || "256");
|
|
76765
77251
|
if (size === 0 || size > 256 || size % 8 !== 0) {
|
|
76766
|
-
|
|
77252
|
+
logger10.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
|
|
76767
77253
|
}
|
|
76768
77254
|
return new NumberCoder(size / 8, match[1] === "int", param.name);
|
|
76769
77255
|
}
|
|
@@ -76771,11 +77257,11 @@ var AbiCoder = class {
|
|
|
76771
77257
|
if (match) {
|
|
76772
77258
|
let size = parseInt(match[1]);
|
|
76773
77259
|
if (size === 0 || size > 32) {
|
|
76774
|
-
|
|
77260
|
+
logger10.throwArgumentError("invalid bytes length", "param", param);
|
|
76775
77261
|
}
|
|
76776
77262
|
return new FixedBytesCoder(size, param.name);
|
|
76777
77263
|
}
|
|
76778
|
-
return
|
|
77264
|
+
return logger10.throwArgumentError("invalid type", "type", param.type);
|
|
76779
77265
|
}
|
|
76780
77266
|
_getWordSize() {
|
|
76781
77267
|
return 32;
|
|
@@ -76793,7 +77279,7 @@ var AbiCoder = class {
|
|
|
76793
77279
|
}
|
|
76794
77280
|
encode(types2, values) {
|
|
76795
77281
|
if (types2.length !== values.length) {
|
|
76796
|
-
|
|
77282
|
+
logger10.throwError("types/values length mismatch", Logger.errors.INVALID_ARGUMENT, {
|
|
76797
77283
|
count: { types: types2.length, values: values.length },
|
|
76798
77284
|
value: { types: types2, values }
|
|
76799
77285
|
});
|
|
@@ -76818,7 +77304,7 @@ function id(text) {
|
|
|
76818
77304
|
}
|
|
76819
77305
|
|
|
76820
77306
|
// ../../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/lib.esm/interface.js
|
|
76821
|
-
var
|
|
77307
|
+
var logger11 = new Logger(version5);
|
|
76822
77308
|
var LogDescription = class extends Description {
|
|
76823
77309
|
};
|
|
76824
77310
|
var TransactionDescription = class extends Description {
|
|
@@ -76860,7 +77346,7 @@ var Interface = class {
|
|
|
76860
77346
|
switch (fragment.type) {
|
|
76861
77347
|
case "constructor":
|
|
76862
77348
|
if (this.deploy) {
|
|
76863
|
-
|
|
77349
|
+
logger11.warn("duplicate definition - constructor");
|
|
76864
77350
|
return;
|
|
76865
77351
|
}
|
|
76866
77352
|
defineReadOnly(this, "deploy", fragment);
|
|
@@ -76879,7 +77365,7 @@ var Interface = class {
|
|
|
76879
77365
|
}
|
|
76880
77366
|
let signature = fragment.format();
|
|
76881
77367
|
if (bucket[signature]) {
|
|
76882
|
-
|
|
77368
|
+
logger11.warn("duplicate definition - " + signature);
|
|
76883
77369
|
return;
|
|
76884
77370
|
}
|
|
76885
77371
|
bucket[signature] = fragment;
|
|
@@ -76897,7 +77383,7 @@ var Interface = class {
|
|
|
76897
77383
|
format3 = FormatTypes.full;
|
|
76898
77384
|
}
|
|
76899
77385
|
if (format3 === FormatTypes.sighash) {
|
|
76900
|
-
|
|
77386
|
+
logger11.throwArgumentError("interface does not support formatting sighash", "format", format3);
|
|
76901
77387
|
}
|
|
76902
77388
|
const abi = this.fragments.map((fragment) => fragment.format(format3));
|
|
76903
77389
|
if (format3 === FormatTypes.json) {
|
|
@@ -76926,7 +77412,7 @@ var Interface = class {
|
|
|
76926
77412
|
return this.functions[name];
|
|
76927
77413
|
}
|
|
76928
77414
|
}
|
|
76929
|
-
|
|
77415
|
+
logger11.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
|
|
76930
77416
|
}
|
|
76931
77417
|
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
|
|
76932
77418
|
const name = nameOrSignatureOrSighash.trim();
|
|
@@ -76935,15 +77421,15 @@ var Interface = class {
|
|
|
76935
77421
|
/* fix:) */
|
|
76936
77422
|
)[0] === name);
|
|
76937
77423
|
if (matching.length === 0) {
|
|
76938
|
-
|
|
77424
|
+
logger11.throwArgumentError("no matching function", "name", name);
|
|
76939
77425
|
} else if (matching.length > 1) {
|
|
76940
|
-
|
|
77426
|
+
logger11.throwArgumentError("multiple matching functions", "name", name);
|
|
76941
77427
|
}
|
|
76942
77428
|
return this.functions[matching[0]];
|
|
76943
77429
|
}
|
|
76944
77430
|
const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
|
|
76945
77431
|
if (!result) {
|
|
76946
|
-
|
|
77432
|
+
logger11.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
|
|
76947
77433
|
}
|
|
76948
77434
|
return result;
|
|
76949
77435
|
}
|
|
@@ -76956,7 +77442,7 @@ var Interface = class {
|
|
|
76956
77442
|
return this.events[name];
|
|
76957
77443
|
}
|
|
76958
77444
|
}
|
|
76959
|
-
|
|
77445
|
+
logger11.throwArgumentError("no matching event", "topichash", topichash);
|
|
76960
77446
|
}
|
|
76961
77447
|
if (nameOrSignatureOrTopic.indexOf("(") === -1) {
|
|
76962
77448
|
const name = nameOrSignatureOrTopic.trim();
|
|
@@ -76965,15 +77451,15 @@ var Interface = class {
|
|
|
76965
77451
|
/* fix:) */
|
|
76966
77452
|
)[0] === name);
|
|
76967
77453
|
if (matching.length === 0) {
|
|
76968
|
-
|
|
77454
|
+
logger11.throwArgumentError("no matching event", "name", name);
|
|
76969
77455
|
} else if (matching.length > 1) {
|
|
76970
|
-
|
|
77456
|
+
logger11.throwArgumentError("multiple matching events", "name", name);
|
|
76971
77457
|
}
|
|
76972
77458
|
return this.events[matching[0]];
|
|
76973
77459
|
}
|
|
76974
77460
|
const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];
|
|
76975
77461
|
if (!result) {
|
|
76976
|
-
|
|
77462
|
+
logger11.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
|
|
76977
77463
|
}
|
|
76978
77464
|
return result;
|
|
76979
77465
|
}
|
|
@@ -76987,7 +77473,7 @@ var Interface = class {
|
|
|
76987
77473
|
return this.errors[name];
|
|
76988
77474
|
}
|
|
76989
77475
|
}
|
|
76990
|
-
|
|
77476
|
+
logger11.throwArgumentError("no matching error", "sighash", nameOrSignatureOrSighash);
|
|
76991
77477
|
}
|
|
76992
77478
|
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
|
|
76993
77479
|
const name = nameOrSignatureOrSighash.trim();
|
|
@@ -76996,15 +77482,15 @@ var Interface = class {
|
|
|
76996
77482
|
/* fix:) */
|
|
76997
77483
|
)[0] === name);
|
|
76998
77484
|
if (matching.length === 0) {
|
|
76999
|
-
|
|
77485
|
+
logger11.throwArgumentError("no matching error", "name", name);
|
|
77000
77486
|
} else if (matching.length > 1) {
|
|
77001
|
-
|
|
77487
|
+
logger11.throwArgumentError("multiple matching errors", "name", name);
|
|
77002
77488
|
}
|
|
77003
77489
|
return this.errors[matching[0]];
|
|
77004
77490
|
}
|
|
77005
77491
|
const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
|
|
77006
77492
|
if (!result) {
|
|
77007
|
-
|
|
77493
|
+
logger11.throwArgumentError("no matching error", "signature", nameOrSignatureOrSighash);
|
|
77008
77494
|
}
|
|
77009
77495
|
return result;
|
|
77010
77496
|
}
|
|
@@ -77045,7 +77531,7 @@ var Interface = class {
|
|
|
77045
77531
|
}
|
|
77046
77532
|
const bytes = arrayify(data);
|
|
77047
77533
|
if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {
|
|
77048
|
-
|
|
77534
|
+
logger11.throwArgumentError(`data signature does not match error ${fragment.name}.`, "data", hexlify(bytes));
|
|
77049
77535
|
}
|
|
77050
77536
|
return this._decodeParams(fragment.inputs, bytes.slice(4));
|
|
77051
77537
|
}
|
|
@@ -77065,7 +77551,7 @@ var Interface = class {
|
|
|
77065
77551
|
}
|
|
77066
77552
|
const bytes = arrayify(data);
|
|
77067
77553
|
if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
|
|
77068
|
-
|
|
77554
|
+
logger11.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, "data", hexlify(bytes));
|
|
77069
77555
|
}
|
|
77070
77556
|
return this._decodeParams(functionFragment.inputs, bytes.slice(4));
|
|
77071
77557
|
}
|
|
@@ -77124,7 +77610,7 @@ var Interface = class {
|
|
|
77124
77610
|
break;
|
|
77125
77611
|
}
|
|
77126
77612
|
}
|
|
77127
|
-
return
|
|
77613
|
+
return logger11.throwError("call revert exception" + message, Logger.errors.CALL_EXCEPTION, {
|
|
77128
77614
|
method: functionFragment.format(),
|
|
77129
77615
|
data: hexlify(data),
|
|
77130
77616
|
errorArgs,
|
|
@@ -77146,7 +77632,7 @@ var Interface = class {
|
|
|
77146
77632
|
eventFragment = this.getEvent(eventFragment);
|
|
77147
77633
|
}
|
|
77148
77634
|
if (values.length > eventFragment.inputs.length) {
|
|
77149
|
-
|
|
77635
|
+
logger11.throwError("too many arguments for " + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {
|
|
77150
77636
|
argument: "values",
|
|
77151
77637
|
value: values
|
|
77152
77638
|
});
|
|
@@ -77176,14 +77662,14 @@ var Interface = class {
|
|
|
77176
77662
|
let param = eventFragment.inputs[index];
|
|
77177
77663
|
if (!param.indexed) {
|
|
77178
77664
|
if (value != null) {
|
|
77179
|
-
|
|
77665
|
+
logger11.throwArgumentError("cannot filter non-indexed parameters; must be null", "contract." + param.name, value);
|
|
77180
77666
|
}
|
|
77181
77667
|
return;
|
|
77182
77668
|
}
|
|
77183
77669
|
if (value == null) {
|
|
77184
77670
|
topics.push(null);
|
|
77185
77671
|
} else if (param.baseType === "array" || param.baseType === "tuple") {
|
|
77186
|
-
|
|
77672
|
+
logger11.throwArgumentError("filtering with tuples or arrays not supported", "contract." + param.name, value);
|
|
77187
77673
|
} else if (Array.isArray(value)) {
|
|
77188
77674
|
topics.push(value.map((value2) => encodeTopic(param, value2)));
|
|
77189
77675
|
} else {
|
|
@@ -77206,7 +77692,7 @@ var Interface = class {
|
|
|
77206
77692
|
topics.push(this.getEventTopic(eventFragment));
|
|
77207
77693
|
}
|
|
77208
77694
|
if (values.length !== eventFragment.inputs.length) {
|
|
77209
|
-
|
|
77695
|
+
logger11.throwArgumentError("event arguments/values mismatch", "values", values);
|
|
77210
77696
|
}
|
|
77211
77697
|
eventFragment.inputs.forEach((param, index) => {
|
|
77212
77698
|
const value = values[index];
|
|
@@ -77238,7 +77724,7 @@ var Interface = class {
|
|
|
77238
77724
|
if (topics != null && !eventFragment.anonymous) {
|
|
77239
77725
|
let topicHash = this.getEventTopic(eventFragment);
|
|
77240
77726
|
if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
|
|
77241
|
-
|
|
77727
|
+
logger11.throwError("fragment/topic mismatch", Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
|
|
77242
77728
|
}
|
|
77243
77729
|
topics = topics.slice(1);
|
|
77244
77730
|
}
|
|
@@ -77469,38 +77955,38 @@ var isFile2 = (pathlike) => {
|
|
|
77469
77955
|
return false;
|
|
77470
77956
|
}
|
|
77471
77957
|
};
|
|
77472
|
-
var verifyNonTarget = async (config,
|
|
77473
|
-
const
|
|
77958
|
+
var verifyNonTarget = async (config, logger12) => {
|
|
77959
|
+
const networks2 = parseNetworksConfig(logger12, config.networks);
|
|
77474
77960
|
const paths = parsePathsConfig(config.paths);
|
|
77475
|
-
const recordLogger = createRecordLogger(
|
|
77476
|
-
const verifyAll = createVerifyAll(
|
|
77961
|
+
const recordLogger = createRecordLogger(logger12);
|
|
77962
|
+
const verifyAll = createVerifyAll(logger12);
|
|
77477
77963
|
const logResult = createLogVerificationResult(recordLogger);
|
|
77478
77964
|
const verificationArtifacts = config.contracts.flatMap((contract) => {
|
|
77479
77965
|
var _a;
|
|
77480
77966
|
const { address, network, contractName, deployment: deploymentPathOrBasename } = contract;
|
|
77481
|
-
|
|
77482
|
-
const networkConfig =
|
|
77967
|
+
logger12.info(`Collecting information for contract ${contractName} on network ${network}`);
|
|
77968
|
+
const networkConfig = networks2[network];
|
|
77483
77969
|
if (networkConfig == null) {
|
|
77484
|
-
|
|
77970
|
+
logger12.info(`No network configured for contract ${contractName} on network ${network}`);
|
|
77485
77971
|
return [];
|
|
77486
77972
|
}
|
|
77487
77973
|
const deploymentPath = `${path.basename(deploymentPathOrBasename, ".json")}.json`;
|
|
77488
77974
|
const contractDeploymentPath = path.resolve(paths.deployments, network, deploymentPath);
|
|
77489
77975
|
if (!isFile2(contractDeploymentPath)) {
|
|
77490
|
-
|
|
77976
|
+
logger12.error(COLORS.error`Deployment file ${contractDeploymentPath} does not exist or is not a file`);
|
|
77491
77977
|
return [];
|
|
77492
77978
|
}
|
|
77493
77979
|
const rawDeployment = __require(contractDeploymentPath);
|
|
77494
77980
|
const deploymentParseResult = DeploymentSchema.safeParse(rawDeployment);
|
|
77495
77981
|
if (!deploymentParseResult.success) {
|
|
77496
|
-
|
|
77982
|
+
logger12.error(COLORS.error`No network configured for contract ${contractName} on network ${network}`);
|
|
77497
77983
|
return [];
|
|
77498
77984
|
}
|
|
77499
77985
|
const deployment = deploymentParseResult.data;
|
|
77500
77986
|
const contractClassName = path.basename(contractName, ".sol");
|
|
77501
77987
|
const source = deployment.metadata.sources[contractName];
|
|
77502
77988
|
if (source == null) {
|
|
77503
|
-
|
|
77989
|
+
logger12.error(
|
|
77504
77990
|
COLORS.error`Missing source for contract ${contractName} for network ${network} in ${deploymentPath}`
|
|
77505
77991
|
);
|
|
77506
77992
|
return [];
|
|
@@ -77520,6 +78006,7 @@ var verifyNonTarget = async (config, logger11) => {
|
|
|
77520
78006
|
const submitProps = {
|
|
77521
78007
|
apiUrl: networkConfig.apiUrl,
|
|
77522
78008
|
apiKey: networkConfig.apiKey,
|
|
78009
|
+
chainId: networkConfig.chainId,
|
|
77523
78010
|
address,
|
|
77524
78011
|
contractName: `${contractName}:${contractClassName}`,
|
|
77525
78012
|
constructorArguments,
|
|
@@ -77548,38 +78035,38 @@ var verifyNonTarget = async (config, logger11) => {
|
|
|
77548
78035
|
];
|
|
77549
78036
|
});
|
|
77550
78037
|
if (verificationArtifacts.length === 0) {
|
|
77551
|
-
|
|
78038
|
+
logger12.warn("No contracts match the verification criteria, exiting");
|
|
77552
78039
|
return [];
|
|
77553
78040
|
}
|
|
77554
78041
|
if (config.dryRun) {
|
|
77555
|
-
|
|
78042
|
+
logger12.debug("Dry run enabled, exiting");
|
|
77556
78043
|
return [];
|
|
77557
78044
|
}
|
|
77558
78045
|
const results = await Promise.all(verifyAll(verificationArtifacts));
|
|
77559
78046
|
results.forEach(logResult);
|
|
77560
78047
|
return results;
|
|
77561
78048
|
};
|
|
77562
|
-
var verifyTarget = async (config,
|
|
78049
|
+
var verifyTarget = async (config, logger12) => {
|
|
77563
78050
|
const verify = parseFilterConfig(config.filter);
|
|
77564
|
-
const
|
|
78051
|
+
const networks2 = parseNetworksConfig(logger12, config.networks);
|
|
77565
78052
|
const paths = parsePathsConfig(config.paths);
|
|
77566
|
-
const recordLogger = createRecordLogger(
|
|
77567
|
-
const verifyAll = createVerifyAll(
|
|
78053
|
+
const recordLogger = createRecordLogger(logger12);
|
|
78054
|
+
const verifyAll = createVerifyAll(logger12);
|
|
77568
78055
|
const logResult = createLogVerificationResult(recordLogger);
|
|
77569
78056
|
if (!isDirectory(paths.deployments)) {
|
|
77570
78057
|
throw new Error(`Path ${paths.deployments} is not a directory`);
|
|
77571
78058
|
}
|
|
77572
78059
|
const deployedNetworkNames = new Set(fs.readdirSync(paths.deployments));
|
|
77573
|
-
const networkConfigEntries = Object.entries(
|
|
77574
|
-
|
|
78060
|
+
const networkConfigEntries = Object.entries(networks2);
|
|
78061
|
+
logger12.debug("Verifying deployments for following networks:");
|
|
77575
78062
|
networkConfigEntries.forEach(([networkName, networkConfig]) => {
|
|
77576
|
-
|
|
78063
|
+
logger12.debug(` - ${networkName} (API URL ${networkConfig.apiUrl})`);
|
|
77577
78064
|
});
|
|
77578
78065
|
const verificationArtifacts = networkConfigEntries.flatMap(
|
|
77579
78066
|
([networkName, networkConfig]) => {
|
|
77580
|
-
|
|
78067
|
+
logger12.info(`Collecting deployments for ${networkName}...`);
|
|
77581
78068
|
if (!deployedNetworkNames.has(networkName)) {
|
|
77582
|
-
|
|
78069
|
+
logger12.warn(`Could not find deployment for network ${networkName} in ${paths.deployments}`);
|
|
77583
78070
|
return [];
|
|
77584
78071
|
}
|
|
77585
78072
|
const deploymentAbsolutePath = path.resolve(paths.deployments, networkName);
|
|
@@ -77587,7 +78074,7 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77587
78074
|
(fileName) => fileName.endsWith(".json")
|
|
77588
78075
|
);
|
|
77589
78076
|
return deployedContractFileNames.flatMap((fileName) => {
|
|
77590
|
-
|
|
78077
|
+
logger12.info(`Inspecting deployment file ${fileName} on network ${networkName}`);
|
|
77591
78078
|
const contractDeploymentPath = path.resolve(deploymentAbsolutePath, fileName);
|
|
77592
78079
|
const rawDeployment = __require(contractDeploymentPath);
|
|
77593
78080
|
const deploymentParseResult = DeploymentSchema.safeParse(rawDeployment);
|
|
@@ -77602,12 +78089,12 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77602
78089
|
var _a;
|
|
77603
78090
|
const shouldVerifyHardhatDeploy = verify(contractName, compilationTarget, networkName);
|
|
77604
78091
|
if (!shouldVerifyHardhatDeploy) {
|
|
77605
|
-
|
|
78092
|
+
logger12.debug(`Not verifying ${contractName} in ${fileName} on network ${networkName}`);
|
|
77606
78093
|
return [];
|
|
77607
78094
|
}
|
|
77608
78095
|
const source = deployment.metadata.sources[compilationTarget];
|
|
77609
78096
|
if (source == null) {
|
|
77610
|
-
|
|
78097
|
+
logger12.error(COLORS.error`Could not find source for ${contractName} (${compilationTarget})`);
|
|
77611
78098
|
return [];
|
|
77612
78099
|
}
|
|
77613
78100
|
const licenseType = findLicenseType(source.content);
|
|
@@ -77616,6 +78103,7 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77616
78103
|
const submitProps = {
|
|
77617
78104
|
apiUrl: networkConfig.apiUrl,
|
|
77618
78105
|
apiKey: networkConfig.apiKey,
|
|
78106
|
+
chainId: networkConfig.chainId,
|
|
77619
78107
|
address: deployment.address,
|
|
77620
78108
|
contractName: `${compilationTarget}:${contractName}`,
|
|
77621
78109
|
constructorArguments,
|
|
@@ -77645,42 +78133,42 @@ var verifyTarget = async (config, logger11) => {
|
|
|
77645
78133
|
}
|
|
77646
78134
|
);
|
|
77647
78135
|
if (verificationArtifacts.length === 0) {
|
|
77648
|
-
|
|
78136
|
+
logger12.warn("No contracts match the verification criteria, exiting");
|
|
77649
78137
|
return [];
|
|
77650
78138
|
}
|
|
77651
78139
|
if (config.dryRun) {
|
|
77652
|
-
|
|
78140
|
+
logger12.debug("Dry run enabled, exiting");
|
|
77653
78141
|
return [];
|
|
77654
78142
|
}
|
|
77655
78143
|
const results = await Promise.all(verifyAll(verificationArtifacts));
|
|
77656
78144
|
results.forEach(logResult);
|
|
77657
78145
|
return results;
|
|
77658
78146
|
};
|
|
77659
|
-
var createVerifyAll = (
|
|
78147
|
+
var createVerifyAll = (logger12) => (artifacts) => {
|
|
77660
78148
|
return artifacts.map(async (artifact, index) => {
|
|
77661
78149
|
const { submitProps } = artifact;
|
|
77662
78150
|
const paletteColor = COLORS.palette[index % COLORS.palette.length];
|
|
77663
78151
|
const counter = `[${index + 1}/${artifacts.length}]`;
|
|
77664
78152
|
const contractName = import_chalk4.default.bold(submitProps.contractName);
|
|
77665
78153
|
const networkName = import_chalk4.default.bold(artifact.networkName);
|
|
77666
|
-
|
|
78154
|
+
logger12.info(paletteColor`Verifying contract ${contractName} for network ${networkName} ${counter}`);
|
|
77667
78155
|
try {
|
|
77668
|
-
const verification = createVerification(submitProps,
|
|
78156
|
+
const verification = createVerification(submitProps, logger12);
|
|
77669
78157
|
verification.on("poll", (guid) => {
|
|
77670
|
-
|
|
78158
|
+
logger12.info(
|
|
77671
78159
|
paletteColor`Polling for verification status of ${contractName} for network ${networkName} (GUID ${guid}) ${counter}`
|
|
77672
78160
|
);
|
|
77673
78161
|
});
|
|
77674
78162
|
verification.on("retry", (error, attempt) => {
|
|
77675
|
-
|
|
77676
|
-
|
|
78163
|
+
logger12.verbose(`Received an error: ${error}`);
|
|
78164
|
+
logger12.info(
|
|
77677
78165
|
paletteColor`Retrying failed verification attempt of ${contractName} for network ${networkName} (attempt ${attempt + 1}) ${counter}`
|
|
77678
78166
|
);
|
|
77679
78167
|
});
|
|
77680
78168
|
const result = await verification.verify();
|
|
77681
78169
|
return { artifact, result };
|
|
77682
78170
|
} catch (error) {
|
|
77683
|
-
|
|
78171
|
+
logger12.error(
|
|
77684
78172
|
COLORS.error`Problem verifying contract ${contractName} for network ${networkName} ${counter}: ${error} `
|
|
77685
78173
|
);
|
|
77686
78174
|
return { artifact, error };
|