@gearbox-protocol/deploy-tools 5.46.2 → 5.46.3

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.
Files changed (2) hide show
  1. package/dist/index.mjs +1654 -635
  2. package/package.json +6 -6
package/dist/index.mjs CHANGED
@@ -4470,7 +4470,7 @@ var init_size = __esm({
4470
4470
  var version2;
4471
4471
  var init_version2 = __esm({
4472
4472
  "../../node_modules/viem/_esm/errors/version.js"() {
4473
- version2 = "2.37.8";
4473
+ version2 = "2.37.9";
4474
4474
  }
4475
4475
  });
4476
4476
 
@@ -114816,9 +114816,9 @@ var require_id2 = __commonJS({
114816
114816
  }
114817
114817
  });
114818
114818
 
114819
- // ../../node_modules/@adraffy/ens-normalize/dist/index.cjs
114819
+ // ../../node_modules/@gearbox-protocol/sdk-gov/node_modules/@adraffy/ens-normalize/dist/index.cjs
114820
114820
  var require_dist2 = __commonJS({
114821
- "../../node_modules/@adraffy/ens-normalize/dist/index.cjs"(exports2) {
114821
+ "../../node_modules/@gearbox-protocol/sdk-gov/node_modules/@adraffy/ens-normalize/dist/index.cjs"(exports2) {
114822
114822
  "use strict";
114823
114823
  var COMPRESSED$1 = "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";
114824
114824
  var FENCED = /* @__PURE__ */ new Map([[8217, "apostrophe"], [8260, "fraction slash"], [12539, "middle dot"]]);
@@ -141823,541 +141823,407 @@ var require_caller = __commonJS({
141823
141823
  }
141824
141824
  });
141825
141825
 
141826
- // ../../node_modules/fast-redact/lib/validator.js
141827
- var require_validator = __commonJS({
141828
- "../../node_modules/fast-redact/lib/validator.js"(exports2, module2) {
141829
- "use strict";
141830
- module2.exports = validator;
141831
- function validator(opts = {}) {
141832
- const {
141833
- ERR_PATHS_MUST_BE_STRINGS = () => "fast-redact - Paths must be (non-empty) strings",
141834
- ERR_INVALID_PATH = (s) => `fast-redact \u2013 Invalid path (${s})`
141835
- } = opts;
141836
- return function validate6({ paths }) {
141837
- paths.forEach((s) => {
141838
- if (typeof s !== "string") {
141839
- throw Error(ERR_PATHS_MUST_BE_STRINGS());
141840
- }
141841
- try {
141842
- if (/〇/.test(s)) throw Error();
141843
- const expr = (s[0] === "[" ? "" : ".") + s.replace(/^\*/, "\u3007").replace(/\.\*/g, ".\u3007").replace(/\[\*\]/g, "[\u3007]");
141844
- if (/\n|\r|;/.test(expr)) throw Error();
141845
- if (/\/\*/.test(expr)) throw Error();
141846
- Function(`
141847
- 'use strict'
141848
- const o = new Proxy({}, { get: () => o, set: () => { throw Error() } });
141849
- const \u3007 = null;
141850
- o${expr}
141851
- if ([o${expr}].length !== 1) throw Error()`)();
141852
- } catch (e) {
141853
- throw Error(ERR_INVALID_PATH(s));
141826
+ // ../../node_modules/slow-redact/index.js
141827
+ var require_slow_redact = __commonJS({
141828
+ "../../node_modules/slow-redact/index.js"(exports2, module2) {
141829
+ function deepClone(obj) {
141830
+ if (obj === null || typeof obj !== "object") {
141831
+ return obj;
141832
+ }
141833
+ if (obj instanceof Date) {
141834
+ return new Date(obj.getTime());
141835
+ }
141836
+ if (obj instanceof Array) {
141837
+ const cloned = [];
141838
+ for (let i = 0; i < obj.length; i++) {
141839
+ cloned[i] = deepClone(obj[i]);
141840
+ }
141841
+ return cloned;
141842
+ }
141843
+ if (typeof obj === "object") {
141844
+ const cloned = Object.create(Object.getPrototypeOf(obj));
141845
+ for (const key in obj) {
141846
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
141847
+ cloned[key] = deepClone(obj[key]);
141854
141848
  }
141855
- });
141856
- };
141857
- }
141858
- }
141859
- });
141860
-
141861
- // ../../node_modules/fast-redact/lib/rx.js
141862
- var require_rx = __commonJS({
141863
- "../../node_modules/fast-redact/lib/rx.js"(exports2, module2) {
141864
- "use strict";
141865
- module2.exports = /[^.[\]]+|\[((?:.)*?)\]/g;
141866
- }
141867
- });
141868
-
141869
- // ../../node_modules/fast-redact/lib/parse.js
141870
- var require_parse = __commonJS({
141871
- "../../node_modules/fast-redact/lib/parse.js"(exports2, module2) {
141872
- "use strict";
141873
- var rx = require_rx();
141874
- module2.exports = parse4;
141875
- function parse4({ paths }) {
141876
- const wildcards = [];
141877
- var wcLen = 0;
141878
- const secret = paths.reduce(function(o, strPath, ix) {
141879
- var path12 = strPath.match(rx).map((p) => p.replace(/'|"|`/g, ""));
141880
- const leadingBracket = strPath[0] === "[";
141881
- path12 = path12.map((p) => {
141882
- if (p[0] === "[") return p.substr(1, p.length - 2);
141883
- else return p;
141884
- });
141885
- const star = path12.indexOf("*");
141886
- if (star > -1) {
141887
- const before = path12.slice(0, star);
141888
- const beforeStr = before.join(".");
141889
- const after = path12.slice(star + 1, path12.length);
141890
- const nested = after.length > 0;
141891
- wcLen++;
141892
- wildcards.push({
141893
- before,
141894
- beforeStr,
141895
- after,
141896
- nested
141897
- });
141898
- } else {
141899
- o[strPath] = {
141900
- path: path12,
141901
- val: void 0,
141902
- precensored: false,
141903
- circle: "",
141904
- escPath: JSON.stringify(strPath),
141905
- leadingBracket
141906
- };
141907
141849
  }
141908
- return o;
141909
- }, {});
141910
- return { wildcards, wcLen, secret };
141911
- }
141912
- }
141913
- });
141914
-
141915
- // ../../node_modules/fast-redact/lib/redactor.js
141916
- var require_redactor = __commonJS({
141917
- "../../node_modules/fast-redact/lib/redactor.js"(exports2, module2) {
141918
- "use strict";
141919
- var rx = require_rx();
141920
- module2.exports = redactor;
141921
- function redactor({ secret, serialize, wcLen, strict, isCensorFct, censorFctTakesPath }, state) {
141922
- const redact = Function("o", `
141923
- if (typeof o !== 'object' || o == null) {
141924
- ${strictImpl(strict, serialize)}
141925
- }
141926
- const { censor, secret } = this
141927
- const originalSecret = {}
141928
- const secretKeys = Object.keys(secret)
141929
- for (var i = 0; i < secretKeys.length; i++) {
141930
- originalSecret[secretKeys[i]] = secret[secretKeys[i]]
141931
- }
141932
-
141933
- ${redactTmpl(secret, isCensorFct, censorFctTakesPath)}
141934
- this.compileRestore()
141935
- ${dynamicRedactTmpl(wcLen > 0, isCensorFct, censorFctTakesPath)}
141936
- this.secret = originalSecret
141937
- ${resultTmpl(serialize)}
141938
- `).bind(state);
141939
- redact.state = state;
141940
- if (serialize === false) {
141941
- redact.restore = (o) => state.restore(o);
141942
- }
141943
- return redact;
141944
- }
141945
- function redactTmpl(secret, isCensorFct, censorFctTakesPath) {
141946
- return Object.keys(secret).map((path12) => {
141947
- const { escPath, leadingBracket, path: arrPath } = secret[path12];
141948
- const skip = leadingBracket ? 1 : 0;
141949
- const delim = leadingBracket ? "" : ".";
141950
- const hops = [];
141951
- var match2;
141952
- while ((match2 = rx.exec(path12)) !== null) {
141953
- const [, ix] = match2;
141954
- const { index: index2, input } = match2;
141955
- if (index2 > skip) hops.push(input.substring(0, index2 - (ix ? 0 : 1)));
141956
- }
141957
- var existence = hops.map((p) => `o${delim}${p}`).join(" && ");
141958
- if (existence.length === 0) existence += `o${delim}${path12} != null`;
141959
- else existence += ` && o${delim}${path12} != null`;
141960
- const circularDetection = `
141961
- switch (true) {
141962
- ${hops.reverse().map((p) => `
141963
- case o${delim}${p} === censor:
141964
- secret[${escPath}].circle = ${JSON.stringify(p)}
141965
- break
141966
- `).join("\n")}
141850
+ return cloned;
141967
141851
  }
141968
- `;
141969
- const censorArgs = censorFctTakesPath ? `val, ${JSON.stringify(arrPath)}` : `val`;
141970
- return `
141971
- if (${existence}) {
141972
- const val = o${delim}${path12}
141973
- if (val === censor) {
141974
- secret[${escPath}].precensored = true
141852
+ return obj;
141853
+ }
141854
+ function parsePath(path12) {
141855
+ const parts = [];
141856
+ let current = "";
141857
+ let inBrackets = false;
141858
+ let inQuotes = false;
141859
+ let quoteChar = "";
141860
+ for (let i = 0; i < path12.length; i++) {
141861
+ const char = path12[i];
141862
+ if (!inBrackets && char === ".") {
141863
+ if (current) {
141864
+ parts.push(current);
141865
+ current = "";
141866
+ }
141867
+ } else if (char === "[") {
141868
+ if (current) {
141869
+ parts.push(current);
141870
+ current = "";
141871
+ }
141872
+ inBrackets = true;
141873
+ } else if (char === "]" && inBrackets) {
141874
+ parts.push(current);
141875
+ current = "";
141876
+ inBrackets = false;
141877
+ inQuotes = false;
141878
+ } else if ((char === '"' || char === "'") && inBrackets) {
141879
+ if (!inQuotes) {
141880
+ inQuotes = true;
141881
+ quoteChar = char;
141882
+ } else if (char === quoteChar) {
141883
+ inQuotes = false;
141884
+ quoteChar = "";
141885
+ } else {
141886
+ current += char;
141887
+ }
141975
141888
  } else {
141976
- secret[${escPath}].val = val
141977
- o${delim}${path12} = ${isCensorFct ? `censor(${censorArgs})` : "censor"}
141978
- ${circularDetection}
141889
+ current += char;
141979
141890
  }
141980
141891
  }
141981
- `;
141982
- }).join("\n");
141983
- }
141984
- function dynamicRedactTmpl(hasWildcards, isCensorFct, censorFctTakesPath) {
141985
- return hasWildcards === true ? `
141986
- {
141987
- const { wildcards, wcLen, groupRedact, nestedRedact } = this
141988
- for (var i = 0; i < wcLen; i++) {
141989
- const { before, beforeStr, after, nested } = wildcards[i]
141990
- if (nested === true) {
141991
- secret[beforeStr] = secret[beforeStr] || []
141992
- nestedRedact(secret[beforeStr], o, before, after, censor, ${isCensorFct}, ${censorFctTakesPath})
141993
- } else secret[beforeStr] = groupRedact(o, before, censor, ${isCensorFct}, ${censorFctTakesPath})
141892
+ if (current) {
141893
+ parts.push(current);
141994
141894
  }
141895
+ return parts;
141995
141896
  }
141996
- ` : "";
141997
- }
141998
- function resultTmpl(serialize) {
141999
- return serialize === false ? `return o` : `
142000
- var s = this.serialize(o)
142001
- this.restore(o)
142002
- return s
142003
- `;
142004
- }
142005
- function strictImpl(strict, serialize) {
142006
- return strict === true ? `throw Error('fast-redact: primitives cannot be redacted')` : serialize === false ? `return o` : `return this.serialize(o)`;
142007
- }
142008
- }
142009
- });
142010
-
142011
- // ../../node_modules/fast-redact/lib/modifiers.js
142012
- var require_modifiers = __commonJS({
142013
- "../../node_modules/fast-redact/lib/modifiers.js"(exports2, module2) {
142014
- "use strict";
142015
- module2.exports = {
142016
- groupRedact,
142017
- groupRestore,
142018
- nestedRedact,
142019
- nestedRestore
142020
- };
142021
- function groupRestore({ keys: keys2, values, target }) {
142022
- if (target == null || typeof target === "string") return;
142023
- const length = keys2.length;
142024
- for (var i = 0; i < length; i++) {
142025
- const k = keys2[i];
142026
- target[k] = values[i];
142027
- }
142028
- }
142029
- function groupRedact(o, path12, censor, isCensorFct, censorFctTakesPath) {
142030
- const target = get2(o, path12);
142031
- if (target == null || typeof target === "string") return { keys: null, values: null, target, flat: true };
142032
- const keys2 = Object.keys(target);
142033
- const keysLength = keys2.length;
142034
- const pathLength = path12.length;
142035
- const pathWithKey = censorFctTakesPath ? [...path12] : void 0;
142036
- const values = new Array(keysLength);
142037
- for (var i = 0; i < keysLength; i++) {
142038
- const key = keys2[i];
142039
- values[i] = target[key];
142040
- if (censorFctTakesPath) {
142041
- pathWithKey[pathLength] = key;
142042
- target[key] = censor(target[key], pathWithKey);
142043
- } else if (isCensorFct) {
142044
- target[key] = censor(target[key]);
142045
- } else {
142046
- target[key] = censor;
141897
+ function setValue(obj, parts, value) {
141898
+ let current = obj;
141899
+ for (let i = 0; i < parts.length - 1; i++) {
141900
+ const key = parts[i];
141901
+ if (typeof current !== "object" || current === null || !(key in current)) {
141902
+ return false;
141903
+ }
141904
+ if (typeof current[key] !== "object" || current[key] === null) {
141905
+ return false;
141906
+ }
141907
+ current = current[key];
141908
+ }
141909
+ const lastKey = parts[parts.length - 1];
141910
+ if (lastKey === "*") {
141911
+ if (Array.isArray(current)) {
141912
+ for (let i = 0; i < current.length; i++) {
141913
+ current[i] = value;
141914
+ }
141915
+ } else if (typeof current === "object" && current !== null) {
141916
+ for (const key in current) {
141917
+ if (Object.prototype.hasOwnProperty.call(current, key)) {
141918
+ current[key] = value;
141919
+ }
141920
+ }
141921
+ }
141922
+ } else {
141923
+ if (typeof current === "object" && current !== null && lastKey in current && Object.prototype.hasOwnProperty.call(current, lastKey)) {
141924
+ current[lastKey] = value;
142047
141925
  }
142048
141926
  }
142049
- return { keys: keys2, values, target, flat: true };
141927
+ return true;
142050
141928
  }
142051
- function nestedRestore(instructions) {
142052
- for (let i = 0; i < instructions.length; i++) {
142053
- const { target, path: path12, value } = instructions[i];
142054
- let current = target;
142055
- for (let i2 = path12.length - 1; i2 > 0; i2--) {
142056
- current = current[path12[i2]];
141929
+ function removeKey(obj, parts) {
141930
+ let current = obj;
141931
+ for (let i = 0; i < parts.length - 1; i++) {
141932
+ const key = parts[i];
141933
+ if (typeof current !== "object" || current === null || !(key in current)) {
141934
+ return false;
142057
141935
  }
142058
- current[path12[0]] = value;
141936
+ if (typeof current[key] !== "object" || current[key] === null) {
141937
+ return false;
141938
+ }
141939
+ current = current[key];
142059
141940
  }
141941
+ const lastKey = parts[parts.length - 1];
141942
+ if (lastKey === "*") {
141943
+ if (Array.isArray(current)) {
141944
+ for (let i = 0; i < current.length; i++) {
141945
+ current[i] = void 0;
141946
+ }
141947
+ } else if (typeof current === "object" && current !== null) {
141948
+ for (const key in current) {
141949
+ if (Object.prototype.hasOwnProperty.call(current, key)) {
141950
+ delete current[key];
141951
+ }
141952
+ }
141953
+ }
141954
+ } else {
141955
+ if (typeof current === "object" && current !== null && lastKey in current && Object.prototype.hasOwnProperty.call(current, lastKey)) {
141956
+ delete current[lastKey];
141957
+ }
141958
+ }
141959
+ return true;
142060
141960
  }
142061
- function nestedRedact(store, o, path12, ns, censor, isCensorFct, censorFctTakesPath) {
142062
- const target = get2(o, path12);
142063
- if (target == null) return;
142064
- const keys2 = Object.keys(target);
142065
- const keysLength = keys2.length;
142066
- for (var i = 0; i < keysLength; i++) {
142067
- const key = keys2[i];
142068
- specialSet(store, target, key, path12, ns, censor, isCensorFct, censorFctTakesPath);
141961
+ function getValue2(obj, parts) {
141962
+ let current = obj;
141963
+ for (const part of parts) {
141964
+ if (current === null || current === void 0) {
141965
+ return void 0;
141966
+ }
141967
+ if (typeof current !== "object" || current === null) {
141968
+ return void 0;
141969
+ }
141970
+ current = current[part];
142069
141971
  }
142070
- return store;
141972
+ return current;
142071
141973
  }
142072
- function has2(obj, prop) {
142073
- return obj !== void 0 && obj !== null ? "hasOwn" in Object ? Object.hasOwn(obj, prop) : Object.prototype.hasOwnProperty.call(obj, prop) : false;
141974
+ function redactPaths(obj, paths, censor, remove = false) {
141975
+ for (const path12 of paths) {
141976
+ const parts = parsePath(path12);
141977
+ if (parts.includes("*")) {
141978
+ redactWildcardPath(obj, parts, censor, path12, remove);
141979
+ } else {
141980
+ if (remove) {
141981
+ removeKey(obj, parts);
141982
+ } else {
141983
+ const actualCensor = typeof censor === "function" ? censor(getValue2(obj, parts), parts) : censor;
141984
+ setValue(obj, parts, actualCensor);
141985
+ }
141986
+ }
141987
+ }
142074
141988
  }
142075
- function specialSet(store, o, k, path12, afterPath, censor, isCensorFct, censorFctTakesPath) {
142076
- const afterPathLen = afterPath.length;
142077
- const lastPathIndex = afterPathLen - 1;
142078
- const originalKey = k;
142079
- var i = -1;
142080
- var n;
142081
- var nv;
142082
- var ov;
142083
- var oov = null;
142084
- var wc = null;
142085
- var kIsWc;
142086
- var wcov;
142087
- var consecutive = false;
142088
- var level = 0;
142089
- var depth = 0;
142090
- var redactPathCurrent = tree();
142091
- ov = n = o[k];
142092
- if (typeof n !== "object") return;
142093
- while (n != null && ++i < afterPathLen) {
142094
- depth += 1;
142095
- k = afterPath[i];
142096
- oov = ov;
142097
- if (k !== "*" && !wc && !(typeof n === "object" && k in n)) {
142098
- break;
141989
+ function redactWildcardPath(obj, parts, censor, originalPath, remove = false) {
141990
+ const wildcardIndex = parts.indexOf("*");
141991
+ if (wildcardIndex === parts.length - 1) {
141992
+ const parentParts = parts.slice(0, -1);
141993
+ let current = obj;
141994
+ for (const part of parentParts) {
141995
+ if (current === null || current === void 0) return;
141996
+ if (typeof current !== "object" || current === null) return;
141997
+ current = current[part];
142099
141998
  }
142100
- if (k === "*") {
142101
- if (wc === "*") {
142102
- consecutive = true;
141999
+ if (Array.isArray(current)) {
142000
+ if (remove) {
142001
+ for (let i = 0; i < current.length; i++) {
142002
+ current[i] = void 0;
142003
+ }
142004
+ } else {
142005
+ for (let i = 0; i < current.length; i++) {
142006
+ const indexPath = [...parentParts, i.toString()];
142007
+ const actualCensor = typeof censor === "function" ? censor(current[i], indexPath) : censor;
142008
+ current[i] = actualCensor;
142009
+ }
142103
142010
  }
142104
- wc = k;
142105
- if (i !== lastPathIndex) {
142106
- continue;
142011
+ } else if (typeof current === "object" && current !== null) {
142012
+ if (remove) {
142013
+ const keysToDelete = [];
142014
+ for (const key in current) {
142015
+ if (Object.prototype.hasOwnProperty.call(current, key)) {
142016
+ keysToDelete.push(key);
142017
+ }
142018
+ }
142019
+ for (const key of keysToDelete) {
142020
+ delete current[key];
142021
+ }
142022
+ } else {
142023
+ for (const key in current) {
142024
+ const keyPath = [...parentParts, key];
142025
+ const actualCensor = typeof censor === "function" ? censor(current[key], keyPath) : censor;
142026
+ current[key] = actualCensor;
142027
+ }
142107
142028
  }
142108
142029
  }
142109
- if (wc) {
142110
- const wcKeys = Object.keys(n);
142111
- for (var j = 0; j < wcKeys.length; j++) {
142112
- const wck = wcKeys[j];
142113
- wcov = n[wck];
142114
- kIsWc = k === "*";
142115
- if (consecutive) {
142116
- redactPathCurrent = node(redactPathCurrent, wck, depth);
142117
- level = i;
142118
- ov = iterateNthLevel(wcov, level - 1, k, path12, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, o[originalKey], depth + 1);
142119
- } else {
142120
- if (kIsWc || typeof wcov === "object" && wcov !== null && k in wcov) {
142121
- if (kIsWc) {
142122
- ov = wcov;
142123
- } else {
142124
- ov = wcov[k];
142125
- }
142126
- nv = i !== lastPathIndex ? ov : isCensorFct ? censorFctTakesPath ? censor(ov, [...path12, originalKey, ...afterPath]) : censor(ov) : censor;
142127
- if (kIsWc) {
142128
- const rv = restoreInstr(node(redactPathCurrent, wck, depth), ov, o[originalKey]);
142129
- store.push(rv);
142130
- n[wck] = nv;
142131
- } else {
142132
- if (wcov[k] === nv) {
142133
- } else if (nv === void 0 && censor !== void 0 || has2(wcov, k) && nv === ov) {
142134
- redactPathCurrent = node(redactPathCurrent, wck, depth);
142135
- } else {
142136
- redactPathCurrent = node(redactPathCurrent, wck, depth);
142137
- const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, o[originalKey]);
142138
- store.push(rv);
142139
- wcov[k] = nv;
142140
- }
142141
- }
142142
- }
142030
+ } else {
142031
+ redactIntermediateWildcard(obj, parts, censor, wildcardIndex, originalPath, remove);
142032
+ }
142033
+ }
142034
+ function redactIntermediateWildcard(obj, parts, censor, wildcardIndex, originalPath, remove = false) {
142035
+ const beforeWildcard = parts.slice(0, wildcardIndex);
142036
+ const afterWildcard = parts.slice(wildcardIndex + 1);
142037
+ const pathArray = [];
142038
+ function traverse(current, pathLength) {
142039
+ if (pathLength === beforeWildcard.length) {
142040
+ if (Array.isArray(current)) {
142041
+ for (let i = 0; i < current.length; i++) {
142042
+ pathArray[pathLength] = i.toString();
142043
+ traverse(current[i], pathLength + 1);
142044
+ }
142045
+ } else if (typeof current === "object" && current !== null) {
142046
+ for (const key in current) {
142047
+ pathArray[pathLength] = key;
142048
+ traverse(current[key], pathLength + 1);
142143
142049
  }
142144
142050
  }
142145
- wc = null;
142051
+ } else if (pathLength < beforeWildcard.length) {
142052
+ const nextKey = beforeWildcard[pathLength];
142053
+ if (current && typeof current === "object" && current !== null && nextKey in current) {
142054
+ pathArray[pathLength] = nextKey;
142055
+ traverse(current[nextKey], pathLength + 1);
142056
+ }
142146
142057
  } else {
142147
- ov = n[k];
142148
- redactPathCurrent = node(redactPathCurrent, k, depth);
142149
- nv = i !== lastPathIndex ? ov : isCensorFct ? censorFctTakesPath ? censor(ov, [...path12, originalKey, ...afterPath]) : censor(ov) : censor;
142150
- if (has2(n, k) && nv === ov || nv === void 0 && censor !== void 0) {
142058
+ if (remove) {
142059
+ removeKey(current, afterWildcard);
142151
142060
  } else {
142152
- const rv = restoreInstr(redactPathCurrent, ov, o[originalKey]);
142153
- store.push(rv);
142154
- n[k] = nv;
142061
+ const fullPath = [...pathArray.slice(0, pathLength), ...afterWildcard];
142062
+ const actualCensor = typeof censor === "function" ? censor(getValue2(current, afterWildcard), fullPath) : censor;
142063
+ setValue(current, afterWildcard, actualCensor);
142155
142064
  }
142156
- n = n[k];
142157
142065
  }
142158
- if (typeof n !== "object") break;
142159
- if (ov === oov || typeof ov === "undefined") {
142066
+ }
142067
+ if (beforeWildcard.length === 0) {
142068
+ traverse(obj, 0);
142069
+ } else {
142070
+ let current = obj;
142071
+ for (let i = 0; i < beforeWildcard.length; i++) {
142072
+ const part = beforeWildcard[i];
142073
+ if (current === null || current === void 0) return;
142074
+ if (typeof current !== "object" || current === null) return;
142075
+ current = current[part];
142076
+ pathArray[i] = part;
142077
+ }
142078
+ if (current !== null && current !== void 0) {
142079
+ traverse(current, beforeWildcard.length);
142160
142080
  }
142161
142081
  }
142162
142082
  }
142163
- function get2(o, p) {
142164
- var i = -1;
142165
- var l = p.length;
142166
- var n = o;
142167
- while (n != null && ++i < l) {
142168
- n = n[p[i]];
142083
+ function buildPathStructure(pathsToClone) {
142084
+ if (pathsToClone.length === 0) {
142085
+ return null;
142169
142086
  }
142170
- return n;
142171
- }
142172
- function iterateNthLevel(wcov, level, k, path12, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth) {
142173
- if (level === 0) {
142174
- if (kIsWc || typeof wcov === "object" && wcov !== null && k in wcov) {
142175
- if (kIsWc) {
142176
- ov = wcov;
142177
- } else {
142178
- ov = wcov[k];
142087
+ const pathStructure = /* @__PURE__ */ new Map();
142088
+ for (const path12 of pathsToClone) {
142089
+ const parts = parsePath(path12);
142090
+ let current = pathStructure;
142091
+ for (let i = 0; i < parts.length; i++) {
142092
+ const part = parts[i];
142093
+ if (!current.has(part)) {
142094
+ current.set(part, /* @__PURE__ */ new Map());
142179
142095
  }
142180
- nv = i !== lastPathIndex ? ov : isCensorFct ? censorFctTakesPath ? censor(ov, [...path12, originalKey, ...afterPath]) : censor(ov) : censor;
142181
- if (kIsWc) {
142182
- const rv = restoreInstr(redactPathCurrent, ov, parent);
142183
- store.push(rv);
142184
- n[wck] = nv;
142185
- } else {
142186
- if (wcov[k] === nv) {
142187
- } else if (nv === void 0 && censor !== void 0 || has2(wcov, k) && nv === ov) {
142096
+ current = current.get(part);
142097
+ }
142098
+ }
142099
+ return pathStructure;
142100
+ }
142101
+ function selectiveClone(obj, pathStructure) {
142102
+ if (!pathStructure) {
142103
+ return obj;
142104
+ }
142105
+ function cloneSelectively(source, pathMap, depth = 0) {
142106
+ if (!pathMap || pathMap.size === 0) {
142107
+ return source;
142108
+ }
142109
+ if (source === null || typeof source !== "object") {
142110
+ return source;
142111
+ }
142112
+ if (source instanceof Date) {
142113
+ return new Date(source.getTime());
142114
+ }
142115
+ if (Array.isArray(source)) {
142116
+ const cloned2 = [];
142117
+ for (let i = 0; i < source.length; i++) {
142118
+ const indexStr = i.toString();
142119
+ if (pathMap.has(indexStr) || pathMap.has("*")) {
142120
+ cloned2[i] = cloneSelectively(source[i], pathMap.get(indexStr) || pathMap.get("*"));
142188
142121
  } else {
142189
- const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, parent);
142190
- store.push(rv);
142191
- wcov[k] = nv;
142122
+ cloned2[i] = source[i];
142192
142123
  }
142193
142124
  }
142125
+ return cloned2;
142194
142126
  }
142195
- }
142196
- for (const key in wcov) {
142197
- if (typeof wcov[key] === "object") {
142198
- redactPathCurrent = node(redactPathCurrent, key, depth);
142199
- iterateNthLevel(wcov[key], level - 1, k, path12, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth + 1);
142127
+ const cloned = Object.create(Object.getPrototypeOf(source));
142128
+ for (const key in source) {
142129
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
142130
+ if (pathMap.has(key) || pathMap.has("*")) {
142131
+ cloned[key] = cloneSelectively(source[key], pathMap.get(key) || pathMap.get("*"));
142132
+ } else {
142133
+ cloned[key] = source[key];
142134
+ }
142135
+ }
142200
142136
  }
142137
+ return cloned;
142201
142138
  }
142139
+ return cloneSelectively(obj, pathStructure);
142202
142140
  }
142203
- function tree() {
142204
- return { parent: null, key: null, children: [], depth: 0 };
142205
- }
142206
- function node(parent, key, depth) {
142207
- if (parent.depth === depth) {
142208
- return node(parent.parent, key, depth);
142141
+ function validatePath(path12) {
142142
+ if (typeof path12 !== "string") {
142143
+ throw new Error("Paths must be (non-empty) strings");
142209
142144
  }
142210
- var child = {
142211
- parent,
142212
- key,
142213
- depth,
142214
- children: []
142215
- };
142216
- parent.children.push(child);
142217
- return child;
142218
- }
142219
- function restoreInstr(node2, value, target) {
142220
- let current = node2;
142221
- const path12 = [];
142222
- do {
142223
- path12.push(current.key);
142224
- current = current.parent;
142225
- } while (current.parent != null);
142226
- return { path: path12, value, target };
142227
- }
142228
- }
142229
- });
142230
-
142231
- // ../../node_modules/fast-redact/lib/restorer.js
142232
- var require_restorer = __commonJS({
142233
- "../../node_modules/fast-redact/lib/restorer.js"(exports2, module2) {
142234
- "use strict";
142235
- var { groupRestore, nestedRestore } = require_modifiers();
142236
- module2.exports = restorer;
142237
- function restorer() {
142238
- return function compileRestore() {
142239
- if (this.restore) {
142240
- this.restore.state.secret = this.secret;
142241
- return;
142145
+ if (path12 === "") {
142146
+ throw new Error("Invalid redaction path ()");
142147
+ }
142148
+ if (path12.includes("..")) {
142149
+ throw new Error(`Invalid redaction path (${path12})`);
142150
+ }
142151
+ if (path12.includes(",")) {
142152
+ throw new Error(`Invalid redaction path (${path12})`);
142153
+ }
142154
+ let bracketCount = 0;
142155
+ let inQuotes = false;
142156
+ let quoteChar = "";
142157
+ for (let i = 0; i < path12.length; i++) {
142158
+ const char = path12[i];
142159
+ if ((char === '"' || char === "'") && bracketCount > 0) {
142160
+ if (!inQuotes) {
142161
+ inQuotes = true;
142162
+ quoteChar = char;
142163
+ } else if (char === quoteChar) {
142164
+ inQuotes = false;
142165
+ quoteChar = "";
142166
+ }
142167
+ } else if (char === "[" && !inQuotes) {
142168
+ bracketCount++;
142169
+ } else if (char === "]" && !inQuotes) {
142170
+ bracketCount--;
142171
+ if (bracketCount < 0) {
142172
+ throw new Error(`Invalid redaction path (${path12})`);
142173
+ }
142242
142174
  }
142243
- const { secret, wcLen } = this;
142244
- const paths = Object.keys(secret);
142245
- const resetters = resetTmpl(secret, paths);
142246
- const hasWildcards = wcLen > 0;
142247
- const state = hasWildcards ? { secret, groupRestore, nestedRestore } : { secret };
142248
- this.restore = Function(
142249
- "o",
142250
- restoreTmpl(resetters, paths, hasWildcards)
142251
- ).bind(state);
142252
- this.restore.state = state;
142253
- };
142254
- }
142255
- function resetTmpl(secret, paths) {
142256
- return paths.map((path12) => {
142257
- const { circle, escPath, leadingBracket } = secret[path12];
142258
- const delim = leadingBracket ? "" : ".";
142259
- const reset2 = circle ? `o.${circle} = secret[${escPath}].val` : `o${delim}${path12} = secret[${escPath}].val`;
142260
- const clear = `secret[${escPath}].val = undefined`;
142261
- return `
142262
- if (secret[${escPath}].val !== undefined) {
142263
- try { ${reset2} } catch (e) {}
142264
- ${clear}
142265
142175
  }
142266
- `;
142267
- }).join("");
142268
- }
142269
- function restoreTmpl(resetters, paths, hasWildcards) {
142270
- const dynamicReset = hasWildcards === true ? `
142271
- const keys = Object.keys(secret)
142272
- const len = keys.length
142273
- for (var i = len - 1; i >= ${paths.length}; i--) {
142274
- const k = keys[i]
142275
- const o = secret[k]
142276
- if (o) {
142277
- if (o.flat === true) this.groupRestore(o)
142278
- else this.nestedRestore(o)
142279
- secret[k] = null
142176
+ if (bracketCount !== 0) {
142177
+ throw new Error(`Invalid redaction path (${path12})`);
142280
142178
  }
142281
142179
  }
142282
- ` : "";
142283
- return `
142284
- const secret = this.secret
142285
- ${dynamicReset}
142286
- ${resetters}
142287
- return o
142288
- `;
142180
+ function validatePaths(paths) {
142181
+ if (!Array.isArray(paths)) {
142182
+ throw new TypeError("paths must be an array");
142183
+ }
142184
+ for (const path12 of paths) {
142185
+ validatePath(path12);
142186
+ }
142289
142187
  }
142290
- }
142291
- });
142292
-
142293
- // ../../node_modules/fast-redact/lib/state.js
142294
- var require_state2 = __commonJS({
142295
- "../../node_modules/fast-redact/lib/state.js"(exports2, module2) {
142296
- "use strict";
142297
- module2.exports = state;
142298
- function state(o) {
142188
+ function slowRedact(options = {}) {
142299
142189
  const {
142300
- secret,
142301
- censor,
142302
- compileRestore,
142303
- serialize,
142304
- groupRedact,
142305
- nestedRedact,
142306
- wildcards,
142307
- wcLen
142308
- } = o;
142309
- const builder = [{ secret, censor, compileRestore }];
142310
- if (serialize !== false) builder.push({ serialize });
142311
- if (wcLen > 0) builder.push({ groupRedact, nestedRedact, wildcards, wcLen });
142312
- return Object.assign(...builder);
142313
- }
142314
- }
142315
- });
142316
-
142317
- // ../../node_modules/fast-redact/index.js
142318
- var require_fast_redact = __commonJS({
142319
- "../../node_modules/fast-redact/index.js"(exports2, module2) {
142320
- "use strict";
142321
- var validator = require_validator();
142322
- var parse4 = require_parse();
142323
- var redactor = require_redactor();
142324
- var restorer = require_restorer();
142325
- var { groupRedact, nestedRedact } = require_modifiers();
142326
- var state = require_state2();
142327
- var rx = require_rx();
142328
- var validate6 = validator();
142329
- var noop = (o) => o;
142330
- noop.restore = noop;
142331
- var DEFAULT_CENSOR = "[REDACTED]";
142332
- fastRedact.rx = rx;
142333
- fastRedact.validator = validator;
142334
- module2.exports = fastRedact;
142335
- function fastRedact(opts = {}) {
142336
- const paths = Array.from(new Set(opts.paths || []));
142337
- const serialize = "serialize" in opts ? opts.serialize === false ? opts.serialize : typeof opts.serialize === "function" ? opts.serialize : JSON.stringify : JSON.stringify;
142338
- const remove = opts.remove;
142339
- if (remove === true && serialize !== JSON.stringify) {
142340
- throw Error("fast-redact \u2013 remove option may only be set when serializer is JSON.stringify");
142341
- }
142342
- const censor = remove === true ? void 0 : "censor" in opts ? opts.censor : DEFAULT_CENSOR;
142343
- const isCensorFct = typeof censor === "function";
142344
- const censorFctTakesPath = isCensorFct && censor.length > 1;
142345
- if (paths.length === 0) return serialize || noop;
142346
- validate6({ paths, serialize, censor });
142347
- const { wildcards, wcLen, secret } = parse4({ paths, censor });
142348
- const compileRestore = restorer();
142349
- const strict = "strict" in opts ? opts.strict : true;
142350
- return redactor({ secret, wcLen, serialize, strict, isCensorFct, censorFctTakesPath }, state({
142351
- secret,
142352
- censor,
142353
- compileRestore,
142354
- serialize,
142355
- groupRedact,
142356
- nestedRedact,
142357
- wildcards,
142358
- wcLen
142359
- }));
142190
+ paths = [],
142191
+ censor = "[REDACTED]",
142192
+ serialize = JSON.stringify,
142193
+ strict = true,
142194
+ remove = false
142195
+ } = options;
142196
+ validatePaths(paths);
142197
+ const pathStructure = buildPathStructure(paths);
142198
+ return function redact(obj) {
142199
+ if (strict && (obj === null || typeof obj !== "object")) {
142200
+ if (obj === null || obj === void 0) {
142201
+ return serialize ? serialize(obj) : obj;
142202
+ }
142203
+ if (typeof obj !== "object") {
142204
+ return serialize ? serialize(obj) : obj;
142205
+ }
142206
+ }
142207
+ const cloned = selectiveClone(obj, pathStructure);
142208
+ const original = obj;
142209
+ let actualCensor = censor;
142210
+ if (typeof censor === "function") {
142211
+ actualCensor = censor;
142212
+ }
142213
+ redactPaths(cloned, paths, actualCensor, remove);
142214
+ if (serialize === false) {
142215
+ cloned.restore = function() {
142216
+ return deepClone(original);
142217
+ };
142218
+ return cloned;
142219
+ }
142220
+ if (typeof serialize === "function") {
142221
+ return serialize(cloned);
142222
+ }
142223
+ return JSON.stringify(cloned);
142224
+ };
142360
142225
  }
142226
+ module2.exports = slowRedact;
142361
142227
  }
142362
142228
  });
142363
142229
 
@@ -142436,17 +142302,13 @@ var require_symbols = __commonJS({
142436
142302
  var require_redaction = __commonJS({
142437
142303
  "../../node_modules/pino/lib/redaction.js"(exports2, module2) {
142438
142304
  "use strict";
142439
- var fastRedact = require_fast_redact();
142305
+ var slowRedact = require_slow_redact();
142440
142306
  var { redactFmtSym, wildcardFirstSym } = require_symbols();
142441
- var { rx, validator } = fastRedact;
142442
- var validate6 = validator({
142443
- ERR_PATHS_MUST_BE_STRINGS: () => "pino \u2013 redacted paths must be strings",
142444
- ERR_INVALID_PATH: (s) => `pino \u2013 redact paths array contains an invalid path (${s})`
142445
- });
142307
+ var rx = /[^.[\]]+|\[([^[\]]*?)\]/g;
142446
142308
  var CENSOR = "[Redacted]";
142447
142309
  var strict = false;
142448
142310
  function redaction(opts, serialize) {
142449
- const { paths, censor } = handle(opts);
142311
+ const { paths, censor, remove } = handle(opts);
142450
142312
  const shape = paths.reduce((o, str) => {
142451
142313
  rx.lastIndex = 0;
142452
142314
  const first = rx.exec(str);
@@ -142479,7 +142341,7 @@ var require_redaction = __commonJS({
142479
142341
  return o;
142480
142342
  }, {});
142481
142343
  const result = {
142482
- [redactFmtSym]: fastRedact({ paths, censor, serialize, strict })
142344
+ [redactFmtSym]: slowRedact({ paths, censor, serialize, strict, remove })
142483
142345
  };
142484
142346
  const topCensor = (...args) => {
142485
142347
  return typeof censor === "function" ? serialize(censor(...args)) : serialize(censor);
@@ -142491,11 +142353,12 @@ var require_redaction = __commonJS({
142491
142353
  const wrappedCensor = typeof censor === "function" ? (value, path12) => {
142492
142354
  return censor(value, [k, ...path12]);
142493
142355
  } : censor;
142494
- o[k] = fastRedact({
142356
+ o[k] = slowRedact({
142495
142357
  paths: shape[k],
142496
142358
  censor: wrappedCensor,
142497
142359
  serialize,
142498
- strict
142360
+ strict,
142361
+ remove
142499
142362
  });
142500
142363
  }
142501
142364
  return o;
@@ -142504,7 +142367,6 @@ var require_redaction = __commonJS({
142504
142367
  function handle(opts) {
142505
142368
  if (Array.isArray(opts)) {
142506
142369
  opts = { paths: opts, censor: CENSOR };
142507
- validate6(opts);
142508
142370
  return opts;
142509
142371
  }
142510
142372
  let { paths, censor = CENSOR, remove } = opts;
@@ -142512,8 +142374,7 @@ var require_redaction = __commonJS({
142512
142374
  throw Error("pino \u2013 redact must contain an array of strings");
142513
142375
  }
142514
142376
  if (remove === true) censor = void 0;
142515
- validate6({ paths, censor });
142516
- return { paths, censor };
142377
+ return { paths, censor, remove };
142517
142378
  }
142518
142379
  module2.exports = redaction;
142519
142380
  }
@@ -144617,7 +144478,7 @@ var require_levels = __commonJS({
144617
144478
  var require_meta = __commonJS({
144618
144479
  "../../node_modules/pino/lib/meta.js"(exports2, module2) {
144619
144480
  "use strict";
144620
- module2.exports = { version: "9.11.0" };
144481
+ module2.exports = { version: "9.12.0" };
144621
144482
  }
144622
144483
  });
144623
144484
 
@@ -146721,7 +146582,7 @@ var require_semver = __commonJS({
146721
146582
  });
146722
146583
 
146723
146584
  // ../../node_modules/semver/functions/parse.js
146724
- var require_parse2 = __commonJS({
146585
+ var require_parse = __commonJS({
146725
146586
  "../../node_modules/semver/functions/parse.js"(exports2, module2) {
146726
146587
  "use strict";
146727
146588
  var SemVer = require_semver();
@@ -146746,7 +146607,7 @@ var require_parse2 = __commonJS({
146746
146607
  var require_valid = __commonJS({
146747
146608
  "../../node_modules/semver/functions/valid.js"(exports2, module2) {
146748
146609
  "use strict";
146749
- var parse4 = require_parse2();
146610
+ var parse4 = require_parse();
146750
146611
  var valid = (version5, options) => {
146751
146612
  const v = parse4(version5, options);
146752
146613
  return v ? v.version : null;
@@ -146759,7 +146620,7 @@ var require_valid = __commonJS({
146759
146620
  var require_clean = __commonJS({
146760
146621
  "../../node_modules/semver/functions/clean.js"(exports2, module2) {
146761
146622
  "use strict";
146762
- var parse4 = require_parse2();
146623
+ var parse4 = require_parse();
146763
146624
  var clean2 = (version5, options) => {
146764
146625
  const s = parse4(version5.trim().replace(/^[=v]+/, ""), options);
146765
146626
  return s ? s.version : null;
@@ -146796,7 +146657,7 @@ var require_inc = __commonJS({
146796
146657
  var require_diff = __commonJS({
146797
146658
  "../../node_modules/semver/functions/diff.js"(exports2, module2) {
146798
146659
  "use strict";
146799
- var parse4 = require_parse2();
146660
+ var parse4 = require_parse();
146800
146661
  var diff = (version1, version22) => {
146801
146662
  const v1 = parse4(version1, null, true);
146802
146663
  const v2 = parse4(version22, null, true);
@@ -146870,7 +146731,7 @@ var require_patch = __commonJS({
146870
146731
  var require_prerelease = __commonJS({
146871
146732
  "../../node_modules/semver/functions/prerelease.js"(exports2, module2) {
146872
146733
  "use strict";
146873
- var parse4 = require_parse2();
146734
+ var parse4 = require_parse();
146874
146735
  var prerelease = (version5, options) => {
146875
146736
  const parsed = parse4(version5, options);
146876
146737
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
@@ -147058,7 +146919,7 @@ var require_coerce = __commonJS({
147058
146919
  "../../node_modules/semver/functions/coerce.js"(exports2, module2) {
147059
146920
  "use strict";
147060
146921
  var SemVer = require_semver();
147061
- var parse4 = require_parse2();
146922
+ var parse4 = require_parse();
147062
146923
  var { safeRe: re, t } = require_re();
147063
146924
  var coerce = (version5, options) => {
147064
146925
  if (version5 instanceof SemVer) {
@@ -148109,7 +147970,7 @@ var require_semver2 = __commonJS({
148109
147970
  var constants = require_constants7();
148110
147971
  var SemVer = require_semver();
148111
147972
  var identifiers = require_identifiers();
148112
- var parse4 = require_parse2();
147973
+ var parse4 = require_parse();
148113
147974
  var valid = require_valid();
148114
147975
  var clean2 = require_clean();
148115
147976
  var inc = require_inc();
@@ -153006,7 +152867,8 @@ var require_filesystem = __commonJS({
153006
152867
  const buffer2 = Buffer.alloc(MAX_LENGTH);
153007
152868
  fs3.read(fd, buffer2, 0, MAX_LENGTH, 0, (_, bytesRead) => {
153008
152869
  resolve2(buffer2.subarray(0, bytesRead));
153009
- fs3.close(fd);
152870
+ fs3.close(fd, () => {
152871
+ });
153010
152872
  });
153011
152873
  }
153012
152874
  });
@@ -168046,7 +167908,7 @@ var require_version28 = __commonJS({
168046
167908
  "use strict";
168047
167909
  Object.defineProperty(exports2, "__esModule", { value: true });
168048
167910
  exports2.version = void 0;
168049
- exports2.version = "2.37.8";
167911
+ exports2.version = "2.37.9";
168050
167912
  }
168051
167913
  });
168052
167914
 
@@ -188762,6 +188624,8 @@ var require_webSocket = __commonJS({
188762
188624
  onClose();
188763
188625
  }
188764
188626
  function onMessage({ data }) {
188627
+ if (typeof data === "string" && data.trim().length === 0)
188628
+ return;
188765
188629
  try {
188766
188630
  const _data = JSON.parse(data);
188767
188631
  onResponse(_data);
@@ -235169,6 +235033,68 @@ var require_jocTestnet = __commonJS({
235169
235033
  }
235170
235034
  });
235171
235035
 
235036
+ // ../../node_modules/viem/_cjs/chains/definitions/jovay.js
235037
+ var require_jovay = __commonJS({
235038
+ "../../node_modules/viem/_cjs/chains/definitions/jovay.js"(exports2) {
235039
+ "use strict";
235040
+ Object.defineProperty(exports2, "__esModule", { value: true });
235041
+ exports2.jovay = void 0;
235042
+ var defineChain_js_1 = require_defineChain();
235043
+ exports2.jovay = (0, defineChain_js_1.defineChain)({
235044
+ id: 5734951,
235045
+ name: "Jovay Mainnet",
235046
+ nativeCurrency: {
235047
+ decimals: 18,
235048
+ name: "Ether",
235049
+ symbol: "ETH"
235050
+ },
235051
+ rpcUrls: {
235052
+ default: {
235053
+ http: ["https://api.zan.top/public/jovay-mainnet"]
235054
+ }
235055
+ },
235056
+ blockExplorers: {
235057
+ default: {
235058
+ name: "Jovay Explorer",
235059
+ url: "https://explorer.jovay.io"
235060
+ }
235061
+ },
235062
+ testnet: false
235063
+ });
235064
+ }
235065
+ });
235066
+
235067
+ // ../../node_modules/viem/_cjs/chains/definitions/jovaySepolia.js
235068
+ var require_jovaySepolia = __commonJS({
235069
+ "../../node_modules/viem/_cjs/chains/definitions/jovaySepolia.js"(exports2) {
235070
+ "use strict";
235071
+ Object.defineProperty(exports2, "__esModule", { value: true });
235072
+ exports2.jovaySepolia = void 0;
235073
+ var defineChain_js_1 = require_defineChain();
235074
+ exports2.jovaySepolia = (0, defineChain_js_1.defineChain)({
235075
+ id: 2019775,
235076
+ name: "Jovay Sepolia Testnet",
235077
+ nativeCurrency: {
235078
+ decimals: 18,
235079
+ name: "Ether",
235080
+ symbol: "ETH"
235081
+ },
235082
+ rpcUrls: {
235083
+ default: {
235084
+ http: ["https://api.zan.top/public/jovay-testnet"]
235085
+ }
235086
+ },
235087
+ blockExplorers: {
235088
+ default: {
235089
+ name: "Jovay Testnet Explorer",
235090
+ url: "https://sepolia-explorer.jovay.io/l2"
235091
+ }
235092
+ },
235093
+ testnet: true
235094
+ });
235095
+ }
235096
+ });
235097
+
235172
235098
  // ../../node_modules/viem/_cjs/chains/definitions/juneo.js
235173
235099
  var require_juneo = __commonJS({
235174
235100
  "../../node_modules/viem/_cjs/chains/definitions/juneo.js"(exports2) {
@@ -236702,6 +236628,31 @@ var require_liskSepolia = __commonJS({
236702
236628
  }
236703
236629
  });
236704
236630
 
236631
+ // ../../node_modules/viem/_cjs/chains/definitions/loadAlphanet.js
236632
+ var require_loadAlphanet = __commonJS({
236633
+ "../../node_modules/viem/_cjs/chains/definitions/loadAlphanet.js"(exports2) {
236634
+ "use strict";
236635
+ Object.defineProperty(exports2, "__esModule", { value: true });
236636
+ exports2.loadAlphanet = void 0;
236637
+ var defineChain_js_1 = require_defineChain();
236638
+ exports2.loadAlphanet = (0, defineChain_js_1.defineChain)({
236639
+ id: 9496,
236640
+ name: "Load Alphanet",
236641
+ nativeCurrency: { name: "Testnet LOAD", symbol: "tLOAD", decimals: 18 },
236642
+ rpcUrls: {
236643
+ default: { http: ["https://alphanet.load.network"] }
236644
+ },
236645
+ blockExplorers: {
236646
+ default: {
236647
+ name: "Load Alphanet Explorer",
236648
+ url: "https://explorer.load.network"
236649
+ }
236650
+ },
236651
+ testnet: true
236652
+ });
236653
+ }
236654
+ });
236655
+
236705
236656
  // ../../node_modules/viem/_cjs/chains/definitions/localhost.js
236706
236657
  var require_localhost = __commonJS({
236707
236658
  "../../node_modules/viem/_cjs/chains/definitions/localhost.js"(exports2) {
@@ -239997,6 +239948,12 @@ var require_plasma = __commonJS({
239997
239948
  name: "PlasmaScan",
239998
239949
  url: "https://plasmascan.to"
239999
239950
  }
239951
+ },
239952
+ contracts: {
239953
+ multicall3: {
239954
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
239955
+ blockCreated: 0
239956
+ }
240000
239957
  }
240001
239958
  });
240002
239959
  }
@@ -240022,7 +239979,13 @@ var require_plasmaDevnet = __commonJS({
240022
239979
  http: ["https://devnet-rpc.plasma.to"]
240023
239980
  }
240024
239981
  },
240025
- testnet: true
239982
+ testnet: true,
239983
+ contracts: {
239984
+ multicall3: {
239985
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
239986
+ blockCreated: 0
239987
+ }
239988
+ }
240026
239989
  });
240027
239990
  }
240028
239991
  });
@@ -240053,6 +240016,12 @@ var require_plasmaTestnet = __commonJS({
240053
240016
  url: "https://testnet.plasmascan.to"
240054
240017
  }
240055
240018
  },
240019
+ contracts: {
240020
+ multicall3: {
240021
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
240022
+ blockCreated: 0
240023
+ }
240024
+ },
240056
240025
  testnet: true
240057
240026
  });
240058
240027
  }
@@ -247519,14 +247488,14 @@ var require_chains2 = __commonJS({
247519
247488
  exports2.edexaTestnet = exports2.edexa = exports2.dymension = exports2.dustboyIoT = exports2.dreyerxTestnet = exports2.dreyerxMainnet = exports2.dosChainTestnet = exports2.dosChain = exports2.donatuz = exports2.dogechain = exports2.dodochainTestnet = exports2.disChain = exports2.diode = exports2.dfk = exports2.degen = exports2.defichainEvmTestnet = exports2.defichainEvm = exports2.dchainTestnet = exports2.dchain = exports2.dbkchain = exports2.darwinia = exports2.dailyNetworkTestnet = exports2.dailyNetwork = exports2.cyberTestnet = exports2.cyber = exports2.curtis = exports2.crossfi = exports2.crossbell = exports2.cronoszkEVMTestnet = exports2.cronoszkEVM = exports2.cronosTestnet = exports2.cronos = exports2.creditCoin3Testnet = exports2.creditCoin3Mainnet = exports2.creditCoin3Devnet = exports2.creatorTestnet = exports2.crab = exports2.cornTestnet = exports2.corn = exports2.coreTestnet2 = exports2.coreTestnet1 = exports2.coreDao = exports2.confluxESpaceTestnet = exports2.confluxESpace = exports2.coinex = exports2.coinbit = exports2.classic = exports2.citreaTestnet = exports2.chips = exports2.chiliz = void 0;
247520
247489
  exports2.forma = exports2.form = exports2.fluentTestnet = exports2.fluenceTestnet = exports2.fluenceStage = exports2.fluence = exports2.flowTestnet = exports2.flowPreviewnet = exports2.flowMainnet = exports2.flareTestnet = exports2.flare = exports2.flame = exports2.filecoinHyperspace = exports2.filecoinCalibration = exports2.filecoin = exports2.fibo = exports2.fantomTestnet = exports2.fantomSonicTestnet = exports2.fantom = exports2.exsatTestnet = exports2.exsat = exports2.expanse = exports2.excelonMainnet = exports2.evmosTestnet = exports2.evmos = exports2.etp = exports2.ethernity = exports2.etherlinkTestnet = exports2.etherlink = exports2.eteria = exports2.eosTestnet = exports2.eos = exports2.eon = exports2.enuls = exports2.eniTestnet = exports2.eni = exports2.energy = exports2.elysiumTestnet = exports2.electroneumTestnet = exports2.electroneum = exports2.elastosTestnet = exports2.elastos = exports2.ektaTestnet = exports2.ekta = exports2.eduChainTestnet = exports2.eduChain = exports2.edgewareTestnet = exports2.edgeware = exports2.edgelessTestnet = exports2.edgeless = void 0;
247521
247490
  exports2.humanity = exports2.huddle01Testnet = exports2.huddle01Mainnet = exports2.hpb = exports2.hoodi = exports2.holesky = exports2.hemiSepolia = exports2.hemi = exports2.hela = exports2.hederaTestnet = exports2.hederaPreviewnet = exports2.hedera = exports2.haustTestnet = exports2.hashkeyTestnet = exports2.hashkey = exports2.harmonyOne = exports2.hardhat = exports2.haqqTestedge2 = exports2.haqqMainnet = exports2.happychainTestnet = exports2.ham = exports2.guruTestnet = exports2.guruNetwork = exports2.gunz = exports2.gravity = exports2.graphiteTestnet = exports2.graphite = exports2.goerli = exports2.godwoken = exports2.goChain = exports2.gobi = exports2.goat = exports2.gnosisChiado = exports2.gnosis = exports2.glideL2Protocol = exports2.glideL1Protocol = exports2.genesys = exports2.geist = exports2.garnet = exports2.fusionTestnet = exports2.fusion = exports2.fuseSparknet = exports2.fuse = exports2.funkiSepolia = exports2.funkiMainnet = exports2.fraxtalTestnet = exports2.fraxtal = exports2.foundry = exports2.forta = exports2.formTestnet = void 0;
247522
- exports2.klaytnBaobab = exports2.klaytn = exports2.kinto = exports2.kcc = exports2.kavaTestnet = exports2.kava = exports2.katana = exports2.karura = exports2.kardiaChain = exports2.kakarotStarknetSepolia = exports2.kakarotSepolia = exports2.kairos = exports2.kaia = exports2.juneoUSDT1Chain = exports2.juneoUSD1Chain = exports2.juneoSocotraTestnet = exports2.juneoSGD1Chain = exports2.juneomBTC1Chain = exports2.juneoLTC1Chain = exports2.juneoLINK1Chain = exports2.juneoGLD1Chain = exports2.juneoEUR1Chain = exports2.juneoDOGE1Chain = exports2.juneoDAI1Chain = exports2.juneoBCH1Chain = exports2.juneo = exports2.jocTestnet = exports2.jocMainnet = exports2.jbcTestnet = exports2.jbc = exports2.iSunCoin = exports2.iotexTestnet = exports2.iotex = exports2.iotaTestnet = exports2.iota = exports2.inkSepolia = exports2.ink = exports2.initVerseGenesis = exports2.initVerse = exports2.inEVM = exports2.immutableZkEvmTestnet = exports2.immutableZkEvm = exports2.idchain = exports2.icbNetwork = exports2.hyperliquidEvmTestnet = exports2.hychainTestnet = exports2.hychain = exports2.humanodeTestnet5 = exports2.humanode = exports2.humanityTestnet = void 0;
247523
- exports2.metachainIstanbul = exports2.metachain = exports2.merlinErigonTestnet = exports2.merlin = exports2.formicarium = exports2.memecore = exports2.meld = exports2.mekong = exports2.megaethTestnet = exports2.mchVerse = exports2.matchainTestnet = exports2.matchain = exports2.mapProtocol = exports2.mantraEVM = exports2.mantraDuKongEVMTestnet = exports2.mantleTestnet = exports2.mantleSepoliaTestnet = exports2.mantle = exports2.mantaTestnet = exports2.mantaSepoliaTestnet = exports2.manta = exports2.mandala = exports2.mainnet = exports2.lyra = exports2.lycan = exports2.lumozTestnet = exports2.lumoz = exports2.lumiaTestnet = exports2.lumiaMainnet = exports2.luksoTestnet = exports2.lukso = exports2.loop = exports2.localhost = exports2.liskSepolia = exports2.lisk = exports2.lineaTestnet = exports2.lineaSepolia = exports2.lineaGoerli = exports2.linea = exports2.lightlinkPhoenix = exports2.lightlinkPegasus = exports2.lestnet = exports2.lensTestnet = exports2.lens = exports2.lavita = exports2.l3xTestnet = exports2.l3x = exports2.kromaSepolia = exports2.kroma = exports2.koi = void 0;
247524
- exports2.optopia = exports2.optimismSepolia = exports2.optimismGoerli = exports2.optimism = exports2.openledger = exports2.opBNBTestnet = exports2.opBNB = exports2.oortMainnetDev = exports2.oneWorld = exports2.omniOmega = exports2.omni = exports2.omax = exports2.okc = exports2.odysseyTestnet = exports2.oasys = exports2.oasisTestnet = exports2.nibiru = exports2.nexilix = exports2.nexi = exports2.newton = exports2.neoxT4 = exports2.neoxMainnet = exports2.neonMainnet = exports2.neonDevnet = exports2.nearTestnet = exports2.near = exports2.nautilus = exports2.nahmii = exports2.morphSepolia = exports2.morphHolesky = exports2.morph = exports2.moonriver = exports2.moonbeamDev = exports2.moonbeam = exports2.moonbaseAlpha = exports2.monadTestnet = exports2.modeTestnet = exports2.mode = exports2.mitosisTestnet = exports2.mintSepoliaTestnet = exports2.mint = exports2.mevTestnet = exports2.mev = exports2.metisSepolia = exports2.metisGoerli = exports2.metis = exports2.meterTestnet = exports2.meter = exports2.metalL2 = exports2.metadium = void 0;
247525
- exports2.rolluxTestnet = exports2.rollux = exports2.rivalz = exports2.riseTestnet = exports2.reyaNetwork = exports2.rei = exports2.redstone = exports2.reddioSepolia = exports2.reddio = exports2.redbellyTestnet = exports2.redbellyMainnet = exports2.real = exports2.qTestnet = exports2.qMainnet = exports2.ql1 = exports2.pyrope = exports2.pumpfiTestnet = exports2.pulsechainV4 = exports2.pulsechain = exports2.premiumBlockTestnet = exports2.polynomialSepolia = exports2.polynomial = exports2.polygonZkEvmTestnet = exports2.polygonZkEvmCardona = exports2.polygonZkEvm = exports2.polygonMumbai = exports2.polygonAmoy = exports2.polygon = exports2.polterTestnet = exports2.plumeTestnet = exports2.plumeSepolia = exports2.plumeMainnet = exports2.plumeDevnet = exports2.plume = exports2.plinga = exports2.playfiAlbireo = exports2.plasmaTestnet = exports2.plasmaDevnet = exports2.plasma = exports2.planq = exports2.phoenix = exports2.pgnTestnet = exports2.pgn = exports2.peaq = exports2.palmTestnet = exports2.palm = exports2.otimDevnet = exports2.orderlySepolia = exports2.orderly = exports2.optopiaTestnet = void 0;
247526
- exports2.snax = exports2.sketchpad = exports2.skaleTitanTestnet = exports2.skaleTitan = exports2.skaleRazor = exports2.skaleNebulaTestnet = exports2.skaleNebula = exports2.skaleHumanProtocol = exports2.skaleExorde = exports2.skaleEuropaTestnet = exports2.skaleEuropa = exports2.skaleCryptoColosseum = exports2.skaleCryptoBlades = exports2.skaleCalypsoTestnet = exports2.skaleCalypso = exports2.skaleBlockBrawlers = exports2.sixProtocol = exports2.siliconSepolia = exports2.silicon = exports2.sidraChain = exports2.shimmerTestnet = exports2.shimmer = exports2.shiden = exports2.shibariumTestnet = exports2.shibarium = exports2.shardeumSphinx = exports2.shardeum = exports2.shapeSepolia = exports2.shape = exports2.sepolia = exports2.seiTestnet = exports2.seismicDevnet = exports2.seiDevnet = exports2.sei = exports2.scrollSepolia = exports2.satoshiVMTestnet = exports2.satoshiVM = exports2.sapphireTestnet = exports2.sapphire = exports2.sanko = exports2.saigon = exports2.saga = exports2.saakuru = exports2.rss3Sepolia = exports2.rss3 = exports2.rootstockTestnet = exports2.rootstock = exports2.rootPorcini = exports2.root = exports2.ronin = void 0;
247527
- exports2.thaiChain = exports2.ternoa = exports2.tenet = exports2.telosTestnet = exports2.telos = exports2.telcoinTestnet = exports2.teaSepolia = exports2.taraxaTestnet = exports2.taraxa = exports2.taikoTestnetSepolia = exports2.taikoKatla = exports2.taikoJolnir = exports2.taikoHekla = exports2.taiko = exports2.tacSPB = exports2.tac = exports2.syscoinTestnet = exports2.syscoin = exports2.swissdlt = exports2.swellchainTestnet = exports2.swellchain = exports2.swanSaturnTestnet = exports2.swanProximaTestnet = exports2.swan = exports2.superseedSepolia = exports2.superseed = exports2.superposition = exports2.superlumio = exports2.stratis = exports2.storyTestnet = exports2.storyOdyssey = exports2.storyAeneid = exports2.story = exports2.step = exports2.statusNetworkSepolia = exports2.statusSepolia = exports2.spicy = exports2.sovaSepolia = exports2.sova = exports2.sophonTestnet = exports2.sophon = exports2.sonicTestnet = exports2.sonicBlazeTestnet = exports2.sonic = exports2.songbirdTestnet = exports2.songbird = exports2.soneiumMinato = exports2.soneium = exports2.somniaTestnet = exports2.snaxTestnet = void 0;
247528
- exports2.xphereTestnet = exports2.xphereMainnet = exports2.xLayerTestnet = exports2.x1Testnet = exports2.xLayer = exports2.xdcTestnet = exports2.xdc = exports2.xaiTestnet = exports2.xai = exports2.worldLand = exports2.worldchainSepolia = exports2.worldchain = exports2.wmcTestnet = exports2.whitechainTestnet = exports2.whitechain = exports2.westendAssetHub = exports2.wemixTestnet = exports2.wemix = exports2.weaveVMAlphanet = exports2.wanchainTestnet = exports2.wanchain = exports2.visionTestnet = exports2.vision = exports2.victionTestnet = exports2.viction = exports2.velas = exports2.vechain = exports2.vanar = exports2.unreal = exports2.uniqueQuartz = exports2.uniqueOpal = exports2.unique = exports2.unichainSepolia = exports2.unichain = exports2.ultronTestnet = exports2.ultron = exports2.ultraTestnet = exports2.ultra = exports2.ubiq = exports2.tronShasta = exports2.tron = exports2.treasureTopaz = exports2.treasure = exports2.tomb = exports2.tiktrixTestnet = exports2.thunderTestnet = exports2.thunderCore = exports2.thetaTestnet = exports2.theta = exports2.that = void 0;
247529
- exports2.zoraTestnet = exports2.zoraSepolia = exports2.zora = exports2.zksyncSepoliaTestnet = exports2.zkSyncSepoliaTestnet = exports2.zksyncLocalNode = exports2.zkSyncLocalNode = exports2.zksyncLocalHyperchainL1 = exports2.zksyncLocalHyperchain = exports2.zksyncLocalCustomHyperchain = exports2.zksyncInMemoryNode = exports2.zkSyncInMemoryNode = exports2.zksync = exports2.zkSync = exports2.zkLinkNovaSepoliaTestnet = exports2.zkLinkNova = exports2.zkFairTestnet = exports2.zkFair = exports2.zircuitTestnet = exports2.zircuitGarfieldTestnet = exports2.zircuit = exports2.zilliqaTestnet = exports2.zilliqa = exports2.zhejiang = exports2.zetachainAthensTestnet = exports2.zetachain = exports2.zeroNetwork = exports2.zeniq = exports2.zenchainTestnet = exports2.yooldoVerseTestnet = exports2.yooldoVerse = exports2.xrSepolia = exports2.xrplevmTestnet = exports2.xrplevmDevnet = exports2.xrOne = void 0;
247491
+ exports2.kinto = exports2.kcc = exports2.kavaTestnet = exports2.kava = exports2.katana = exports2.karura = exports2.kardiaChain = exports2.kakarotStarknetSepolia = exports2.kakarotSepolia = exports2.kairos = exports2.kaia = exports2.juneoUSDT1Chain = exports2.juneoUSD1Chain = exports2.juneoSocotraTestnet = exports2.juneoSGD1Chain = exports2.juneomBTC1Chain = exports2.juneoLTC1Chain = exports2.juneoLINK1Chain = exports2.juneoGLD1Chain = exports2.juneoEUR1Chain = exports2.juneoDOGE1Chain = exports2.juneoDAI1Chain = exports2.juneoBCH1Chain = exports2.juneo = exports2.jovaySepolia = exports2.jovay = exports2.jocTestnet = exports2.jocMainnet = exports2.jbcTestnet = exports2.jbc = exports2.iSunCoin = exports2.iotexTestnet = exports2.iotex = exports2.iotaTestnet = exports2.iota = exports2.inkSepolia = exports2.ink = exports2.initVerseGenesis = exports2.initVerse = exports2.inEVM = exports2.immutableZkEvmTestnet = exports2.immutableZkEvm = exports2.idchain = exports2.icbNetwork = exports2.hyperliquidEvmTestnet = exports2.hychainTestnet = exports2.hychain = exports2.humanodeTestnet5 = exports2.humanode = exports2.humanityTestnet = void 0;
247492
+ exports2.merlin = exports2.formicarium = exports2.memecore = exports2.meld = exports2.mekong = exports2.megaethTestnet = exports2.mchVerse = exports2.matchainTestnet = exports2.matchain = exports2.mapProtocol = exports2.mantraEVM = exports2.mantraDuKongEVMTestnet = exports2.mantleTestnet = exports2.mantleSepoliaTestnet = exports2.mantle = exports2.mantaTestnet = exports2.mantaSepoliaTestnet = exports2.manta = exports2.mandala = exports2.mainnet = exports2.lyra = exports2.lycan = exports2.lumozTestnet = exports2.lumoz = exports2.lumiaTestnet = exports2.lumiaMainnet = exports2.luksoTestnet = exports2.lukso = exports2.loop = exports2.localhost = exports2.loadAlphanet = exports2.liskSepolia = exports2.lisk = exports2.lineaTestnet = exports2.lineaSepolia = exports2.lineaGoerli = exports2.linea = exports2.lightlinkPhoenix = exports2.lightlinkPegasus = exports2.lestnet = exports2.lensTestnet = exports2.lens = exports2.lavita = exports2.l3xTestnet = exports2.l3x = exports2.kromaSepolia = exports2.kroma = exports2.koi = exports2.klaytnBaobab = exports2.klaytn = void 0;
247493
+ exports2.optimism = exports2.openledger = exports2.opBNBTestnet = exports2.opBNB = exports2.oortMainnetDev = exports2.oneWorld = exports2.omniOmega = exports2.omni = exports2.omax = exports2.okc = exports2.odysseyTestnet = exports2.oasys = exports2.oasisTestnet = exports2.nibiru = exports2.nexilix = exports2.nexi = exports2.newton = exports2.neoxT4 = exports2.neoxMainnet = exports2.neonMainnet = exports2.neonDevnet = exports2.nearTestnet = exports2.near = exports2.nautilus = exports2.nahmii = exports2.morphSepolia = exports2.morphHolesky = exports2.morph = exports2.moonriver = exports2.moonbeamDev = exports2.moonbeam = exports2.moonbaseAlpha = exports2.monadTestnet = exports2.modeTestnet = exports2.mode = exports2.mitosisTestnet = exports2.mintSepoliaTestnet = exports2.mint = exports2.mevTestnet = exports2.mev = exports2.metisSepolia = exports2.metisGoerli = exports2.metis = exports2.meterTestnet = exports2.meter = exports2.metalL2 = exports2.metadium = exports2.metachainIstanbul = exports2.metachain = exports2.merlinErigonTestnet = void 0;
247494
+ exports2.riseTestnet = exports2.reyaNetwork = exports2.rei = exports2.redstone = exports2.reddioSepolia = exports2.reddio = exports2.redbellyTestnet = exports2.redbellyMainnet = exports2.real = exports2.qTestnet = exports2.qMainnet = exports2.ql1 = exports2.pyrope = exports2.pumpfiTestnet = exports2.pulsechainV4 = exports2.pulsechain = exports2.premiumBlockTestnet = exports2.polynomialSepolia = exports2.polynomial = exports2.polygonZkEvmTestnet = exports2.polygonZkEvmCardona = exports2.polygonZkEvm = exports2.polygonMumbai = exports2.polygonAmoy = exports2.polygon = exports2.polterTestnet = exports2.plumeTestnet = exports2.plumeSepolia = exports2.plumeMainnet = exports2.plumeDevnet = exports2.plume = exports2.plinga = exports2.playfiAlbireo = exports2.plasmaTestnet = exports2.plasmaDevnet = exports2.plasma = exports2.planq = exports2.phoenix = exports2.pgnTestnet = exports2.pgn = exports2.peaq = exports2.palmTestnet = exports2.palm = exports2.otimDevnet = exports2.orderlySepolia = exports2.orderly = exports2.optopiaTestnet = exports2.optopia = exports2.optimismSepolia = exports2.optimismGoerli = void 0;
247495
+ exports2.skaleTitan = exports2.skaleRazor = exports2.skaleNebulaTestnet = exports2.skaleNebula = exports2.skaleHumanProtocol = exports2.skaleExorde = exports2.skaleEuropaTestnet = exports2.skaleEuropa = exports2.skaleCryptoColosseum = exports2.skaleCryptoBlades = exports2.skaleCalypsoTestnet = exports2.skaleCalypso = exports2.skaleBlockBrawlers = exports2.sixProtocol = exports2.siliconSepolia = exports2.silicon = exports2.sidraChain = exports2.shimmerTestnet = exports2.shimmer = exports2.shiden = exports2.shibariumTestnet = exports2.shibarium = exports2.shardeumSphinx = exports2.shardeum = exports2.shapeSepolia = exports2.shape = exports2.sepolia = exports2.seiTestnet = exports2.seismicDevnet = exports2.seiDevnet = exports2.sei = exports2.scrollSepolia = exports2.satoshiVMTestnet = exports2.satoshiVM = exports2.sapphireTestnet = exports2.sapphire = exports2.sanko = exports2.saigon = exports2.saga = exports2.saakuru = exports2.rss3Sepolia = exports2.rss3 = exports2.rootstockTestnet = exports2.rootstock = exports2.rootPorcini = exports2.root = exports2.ronin = exports2.rolluxTestnet = exports2.rollux = exports2.rivalz = void 0;
247496
+ exports2.telosTestnet = exports2.telos = exports2.telcoinTestnet = exports2.teaSepolia = exports2.taraxaTestnet = exports2.taraxa = exports2.taikoTestnetSepolia = exports2.taikoKatla = exports2.taikoJolnir = exports2.taikoHekla = exports2.taiko = exports2.tacSPB = exports2.tac = exports2.syscoinTestnet = exports2.syscoin = exports2.swissdlt = exports2.swellchainTestnet = exports2.swellchain = exports2.swanSaturnTestnet = exports2.swanProximaTestnet = exports2.swan = exports2.superseedSepolia = exports2.superseed = exports2.superposition = exports2.superlumio = exports2.stratis = exports2.storyTestnet = exports2.storyOdyssey = exports2.storyAeneid = exports2.story = exports2.step = exports2.statusNetworkSepolia = exports2.statusSepolia = exports2.spicy = exports2.sovaSepolia = exports2.sova = exports2.sophonTestnet = exports2.sophon = exports2.sonicTestnet = exports2.sonicBlazeTestnet = exports2.sonic = exports2.songbirdTestnet = exports2.songbird = exports2.soneiumMinato = exports2.soneium = exports2.somniaTestnet = exports2.snaxTestnet = exports2.snax = exports2.sketchpad = exports2.skaleTitanTestnet = void 0;
247497
+ exports2.x1Testnet = exports2.xLayer = exports2.xdcTestnet = exports2.xdc = exports2.xaiTestnet = exports2.xai = exports2.worldLand = exports2.worldchainSepolia = exports2.worldchain = exports2.wmcTestnet = exports2.whitechainTestnet = exports2.whitechain = exports2.westendAssetHub = exports2.wemixTestnet = exports2.wemix = exports2.weaveVMAlphanet = exports2.wanchainTestnet = exports2.wanchain = exports2.visionTestnet = exports2.vision = exports2.victionTestnet = exports2.viction = exports2.velas = exports2.vechain = exports2.vanar = exports2.unreal = exports2.uniqueQuartz = exports2.uniqueOpal = exports2.unique = exports2.unichainSepolia = exports2.unichain = exports2.ultronTestnet = exports2.ultron = exports2.ultraTestnet = exports2.ultra = exports2.ubiq = exports2.tronShasta = exports2.tron = exports2.treasureTopaz = exports2.treasure = exports2.tomb = exports2.tiktrixTestnet = exports2.thunderTestnet = exports2.thunderCore = exports2.thetaTestnet = exports2.theta = exports2.that = exports2.thaiChain = exports2.ternoa = exports2.tenet = void 0;
247498
+ exports2.zoraTestnet = exports2.zoraSepolia = exports2.zora = exports2.zksyncSepoliaTestnet = exports2.zkSyncSepoliaTestnet = exports2.zksyncLocalNode = exports2.zkSyncLocalNode = exports2.zksyncLocalHyperchainL1 = exports2.zksyncLocalHyperchain = exports2.zksyncLocalCustomHyperchain = exports2.zksyncInMemoryNode = exports2.zkSyncInMemoryNode = exports2.zksync = exports2.zkSync = exports2.zkLinkNovaSepoliaTestnet = exports2.zkLinkNova = exports2.zkFairTestnet = exports2.zkFair = exports2.zircuitTestnet = exports2.zircuitGarfieldTestnet = exports2.zircuit = exports2.zilliqaTestnet = exports2.zilliqa = exports2.zhejiang = exports2.zetachainAthensTestnet = exports2.zetachain = exports2.zeroNetwork = exports2.zeniq = exports2.zenchainTestnet = exports2.yooldoVerseTestnet = exports2.yooldoVerse = exports2.xrSepolia = exports2.xrplevmTestnet = exports2.xrplevmDevnet = exports2.xrOne = exports2.xphereTestnet = exports2.xphereMainnet = exports2.xLayerTestnet = void 0;
247530
247499
  var _0g_js_1 = require_g();
247531
247500
  Object.defineProperty(exports2, "zeroG", { enumerable: true, get: function() {
247532
247501
  return _0g_js_1.zeroG;
@@ -248621,6 +248590,14 @@ var require_chains2 = __commonJS({
248621
248590
  Object.defineProperty(exports2, "jocTestnet", { enumerable: true, get: function() {
248622
248591
  return jocTestnet_js_1.jocTestnet;
248623
248592
  } });
248593
+ var jovay_js_1 = require_jovay();
248594
+ Object.defineProperty(exports2, "jovay", { enumerable: true, get: function() {
248595
+ return jovay_js_1.jovay;
248596
+ } });
248597
+ var jovaySepolia_js_1 = require_jovaySepolia();
248598
+ Object.defineProperty(exports2, "jovaySepolia", { enumerable: true, get: function() {
248599
+ return jovaySepolia_js_1.jovaySepolia;
248600
+ } });
248624
248601
  var juneo_js_1 = require_juneo();
248625
248602
  Object.defineProperty(exports2, "juneo", { enumerable: true, get: function() {
248626
248603
  return juneo_js_1.juneo;
@@ -248793,6 +248770,10 @@ var require_chains2 = __commonJS({
248793
248770
  Object.defineProperty(exports2, "liskSepolia", { enumerable: true, get: function() {
248794
248771
  return liskSepolia_js_1.liskSepolia;
248795
248772
  } });
248773
+ var loadAlphanet_js_1 = require_loadAlphanet();
248774
+ Object.defineProperty(exports2, "loadAlphanet", { enumerable: true, get: function() {
248775
+ return loadAlphanet_js_1.loadAlphanet;
248776
+ } });
248796
248777
  var localhost_js_1 = require_localhost();
248797
248778
  Object.defineProperty(exports2, "localhost", { enumerable: true, get: function() {
248798
248779
  return localhost_js_1.localhost;
@@ -297310,6 +297291,940 @@ var require_id4 = __commonJS({
297310
297291
  }
297311
297292
  });
297312
297293
 
297294
+ // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/@adraffy/ens-normalize/dist/index.cjs
297295
+ var require_dist5 = __commonJS({
297296
+ "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/@adraffy/ens-normalize/dist/index.cjs"(exports2) {
297297
+ "use strict";
297298
+ var COMPRESSED$1 = "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";
297299
+ var FENCED = /* @__PURE__ */ new Map([[8217, "apostrophe"], [8260, "fraction slash"], [12539, "middle dot"]]);
297300
+ var NSM_MAX = 4;
297301
+ function decode_arithmetic(bytes) {
297302
+ let pos = 0;
297303
+ function u16() {
297304
+ return bytes[pos++] << 8 | bytes[pos++];
297305
+ }
297306
+ let symbol_count = u16();
297307
+ let total = 1;
297308
+ let acc = [0, 1];
297309
+ for (let i = 1; i < symbol_count; i++) {
297310
+ acc.push(total += u16());
297311
+ }
297312
+ let skip = u16();
297313
+ let pos_payload = pos;
297314
+ pos += skip;
297315
+ let read_width = 0;
297316
+ let read_buffer = 0;
297317
+ function read_bit() {
297318
+ if (read_width == 0) {
297319
+ read_buffer = read_buffer << 8 | bytes[pos++];
297320
+ read_width = 8;
297321
+ }
297322
+ return read_buffer >> --read_width & 1;
297323
+ }
297324
+ const N = 31;
297325
+ const FULL = 2 ** N;
297326
+ const HALF = FULL >>> 1;
297327
+ const QRTR = HALF >> 1;
297328
+ const MASK = FULL - 1;
297329
+ let register = 0;
297330
+ for (let i = 0; i < N; i++) register = register << 1 | read_bit();
297331
+ let symbols = [];
297332
+ let low = 0;
297333
+ let range2 = FULL;
297334
+ while (true) {
297335
+ let value = Math.floor(((register - low + 1) * total - 1) / range2);
297336
+ let start = 0;
297337
+ let end = symbol_count;
297338
+ while (end - start > 1) {
297339
+ let mid = start + end >>> 1;
297340
+ if (value < acc[mid]) {
297341
+ end = mid;
297342
+ } else {
297343
+ start = mid;
297344
+ }
297345
+ }
297346
+ if (start == 0) break;
297347
+ symbols.push(start);
297348
+ let a = low + Math.floor(range2 * acc[start] / total);
297349
+ let b = low + Math.floor(range2 * acc[start + 1] / total) - 1;
297350
+ while (((a ^ b) & HALF) == 0) {
297351
+ register = register << 1 & MASK | read_bit();
297352
+ a = a << 1 & MASK;
297353
+ b = b << 1 & MASK | 1;
297354
+ }
297355
+ while (a & ~b & QRTR) {
297356
+ register = register & HALF | register << 1 & MASK >>> 1 | read_bit();
297357
+ a = a << 1 ^ HALF;
297358
+ b = (b ^ HALF) << 1 | HALF | 1;
297359
+ }
297360
+ low = a;
297361
+ range2 = 1 + b - a;
297362
+ }
297363
+ let offset = symbol_count - 4;
297364
+ return symbols.map((x) => {
297365
+ switch (x - offset) {
297366
+ case 3:
297367
+ return offset + 65792 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]);
297368
+ case 2:
297369
+ return offset + 256 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]);
297370
+ case 1:
297371
+ return offset + bytes[pos_payload++];
297372
+ default:
297373
+ return x - 1;
297374
+ }
297375
+ });
297376
+ }
297377
+ function read_payload(v) {
297378
+ let pos = 0;
297379
+ return () => v[pos++];
297380
+ }
297381
+ function read_compressed_payload(s) {
297382
+ return read_payload(decode_arithmetic(unsafe_atob(s)));
297383
+ }
297384
+ function unsafe_atob(s) {
297385
+ let lookup = [];
297386
+ [..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((c, i) => lookup[c.charCodeAt(0)] = i);
297387
+ let n = s.length;
297388
+ let ret = new Uint8Array(6 * n >> 3);
297389
+ for (let i = 0, pos = 0, width = 0, carry = 0; i < n; i++) {
297390
+ carry = carry << 6 | lookup[s.charCodeAt(i)];
297391
+ width += 6;
297392
+ if (width >= 8) {
297393
+ ret[pos++] = carry >> (width -= 8);
297394
+ }
297395
+ }
297396
+ return ret;
297397
+ }
297398
+ function signed(i) {
297399
+ return i & 1 ? ~i >> 1 : i >> 1;
297400
+ }
297401
+ function read_deltas(n, next) {
297402
+ let v = Array(n);
297403
+ for (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());
297404
+ return v;
297405
+ }
297406
+ function read_sorted(next, prev = 0) {
297407
+ let ret = [];
297408
+ while (true) {
297409
+ let x = next();
297410
+ let n = next();
297411
+ if (!n) break;
297412
+ prev += x;
297413
+ for (let i = 0; i < n; i++) {
297414
+ ret.push(prev + i);
297415
+ }
297416
+ prev += n + 1;
297417
+ }
297418
+ return ret;
297419
+ }
297420
+ function read_sorted_arrays(next) {
297421
+ return read_array_while(() => {
297422
+ let v = read_sorted(next);
297423
+ if (v.length) return v;
297424
+ });
297425
+ }
297426
+ function read_mapped(next) {
297427
+ let ret = [];
297428
+ while (true) {
297429
+ let w = next();
297430
+ if (w == 0) break;
297431
+ ret.push(read_linear_table(w, next));
297432
+ }
297433
+ while (true) {
297434
+ let w = next() - 1;
297435
+ if (w < 0) break;
297436
+ ret.push(read_replacement_table(w, next));
297437
+ }
297438
+ return ret.flat();
297439
+ }
297440
+ function read_array_while(next) {
297441
+ let v = [];
297442
+ while (true) {
297443
+ let x = next(v.length);
297444
+ if (!x) break;
297445
+ v.push(x);
297446
+ }
297447
+ return v;
297448
+ }
297449
+ function read_transposed(n, w, next) {
297450
+ let m = Array(n).fill().map(() => []);
297451
+ for (let i = 0; i < w; i++) {
297452
+ read_deltas(n, next).forEach((x, j) => m[j].push(x));
297453
+ }
297454
+ return m;
297455
+ }
297456
+ function read_linear_table(w, next) {
297457
+ let dx = 1 + next();
297458
+ let dy = next();
297459
+ let vN = read_array_while(next);
297460
+ let m = read_transposed(vN.length, 1 + w, next);
297461
+ return m.flatMap((v, i) => {
297462
+ let [x, ...ys] = v;
297463
+ return Array(vN[i]).fill().map((_, j) => {
297464
+ let j_dy = j * dy;
297465
+ return [x + j * dx, ys.map((y) => y + j_dy)];
297466
+ });
297467
+ });
297468
+ }
297469
+ function read_replacement_table(w, next) {
297470
+ let n = 1 + next();
297471
+ let m = read_transposed(n, 1 + w, next);
297472
+ return m.map((v) => [v[0], v.slice(1)]);
297473
+ }
297474
+ function read_trie(next) {
297475
+ let ret = [];
297476
+ let sorted = read_sorted(next);
297477
+ expand(decode4([]), []);
297478
+ return ret;
297479
+ function decode4(Q) {
297480
+ let S = next();
297481
+ let B = read_array_while(() => {
297482
+ let cps = read_sorted(next).map((i) => sorted[i]);
297483
+ if (cps.length) return decode4(cps);
297484
+ });
297485
+ return { S, B, Q };
297486
+ }
297487
+ function expand({ S, B }, cps, saved) {
297488
+ if (S & 4 && saved === cps[cps.length - 1]) return;
297489
+ if (S & 2) saved = cps[cps.length - 1];
297490
+ if (S & 1) ret.push(cps);
297491
+ for (let br of B) {
297492
+ for (let cp of br.Q) {
297493
+ expand(br, [...cps, cp], saved);
297494
+ }
297495
+ }
297496
+ }
297497
+ }
297498
+ function hex_cp(cp) {
297499
+ return cp.toString(16).toUpperCase().padStart(2, "0");
297500
+ }
297501
+ function quote_cp(cp) {
297502
+ return `{${hex_cp(cp)}}`;
297503
+ }
297504
+ function explode_cp(s) {
297505
+ let cps = [];
297506
+ for (let pos = 0, len = s.length; pos < len; ) {
297507
+ let cp = s.codePointAt(pos);
297508
+ pos += cp < 65536 ? 1 : 2;
297509
+ cps.push(cp);
297510
+ }
297511
+ return cps;
297512
+ }
297513
+ function str_from_cps(cps) {
297514
+ const chunk = 4096;
297515
+ let len = cps.length;
297516
+ if (len < chunk) return String.fromCodePoint(...cps);
297517
+ let buf = [];
297518
+ for (let i = 0; i < len; ) {
297519
+ buf.push(String.fromCodePoint(...cps.slice(i, i += chunk)));
297520
+ }
297521
+ return buf.join("");
297522
+ }
297523
+ function compare_arrays(a, b) {
297524
+ let n = a.length;
297525
+ let c = n - b.length;
297526
+ for (let i = 0; c == 0 && i < n; i++) c = a[i] - b[i];
297527
+ return c;
297528
+ }
297529
+ var COMPRESSED = "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";
297530
+ var S0 = 44032;
297531
+ var L0 = 4352;
297532
+ var V0 = 4449;
297533
+ var T0 = 4519;
297534
+ var L_COUNT = 19;
297535
+ var V_COUNT = 21;
297536
+ var T_COUNT = 28;
297537
+ var N_COUNT = V_COUNT * T_COUNT;
297538
+ var S_COUNT = L_COUNT * N_COUNT;
297539
+ var S1 = S0 + S_COUNT;
297540
+ var L1 = L0 + L_COUNT;
297541
+ var V1 = V0 + V_COUNT;
297542
+ var T1 = T0 + T_COUNT;
297543
+ function unpack_cc(packed) {
297544
+ return packed >> 24 & 255;
297545
+ }
297546
+ function unpack_cp(packed) {
297547
+ return packed & 16777215;
297548
+ }
297549
+ var SHIFTED_RANK;
297550
+ var EXCLUSIONS;
297551
+ var DECOMP;
297552
+ var RECOMP;
297553
+ function init$1() {
297554
+ let r = read_compressed_payload(COMPRESSED);
297555
+ SHIFTED_RANK = new Map(read_sorted_arrays(r).flatMap((v, i) => v.map((x) => [x, i + 1 << 24])));
297556
+ EXCLUSIONS = new Set(read_sorted(r));
297557
+ DECOMP = /* @__PURE__ */ new Map();
297558
+ RECOMP = /* @__PURE__ */ new Map();
297559
+ for (let [cp, cps] of read_mapped(r)) {
297560
+ if (!EXCLUSIONS.has(cp) && cps.length == 2) {
297561
+ let [a, b] = cps;
297562
+ let bucket = RECOMP.get(a);
297563
+ if (!bucket) {
297564
+ bucket = /* @__PURE__ */ new Map();
297565
+ RECOMP.set(a, bucket);
297566
+ }
297567
+ bucket.set(b, cp);
297568
+ }
297569
+ DECOMP.set(cp, cps.reverse());
297570
+ }
297571
+ }
297572
+ function is_hangul(cp) {
297573
+ return cp >= S0 && cp < S1;
297574
+ }
297575
+ function compose_pair(a, b) {
297576
+ if (a >= L0 && a < L1 && b >= V0 && b < V1) {
297577
+ return S0 + (a - L0) * N_COUNT + (b - V0) * T_COUNT;
297578
+ } else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) {
297579
+ return a + (b - T0);
297580
+ } else {
297581
+ let recomp = RECOMP.get(a);
297582
+ if (recomp) {
297583
+ recomp = recomp.get(b);
297584
+ if (recomp) {
297585
+ return recomp;
297586
+ }
297587
+ }
297588
+ return -1;
297589
+ }
297590
+ }
297591
+ function decomposed(cps) {
297592
+ if (!SHIFTED_RANK) init$1();
297593
+ let ret = [];
297594
+ let buf = [];
297595
+ let check_order = false;
297596
+ function add2(cp) {
297597
+ let cc = SHIFTED_RANK.get(cp);
297598
+ if (cc) {
297599
+ check_order = true;
297600
+ cp |= cc;
297601
+ }
297602
+ ret.push(cp);
297603
+ }
297604
+ for (let cp of cps) {
297605
+ while (true) {
297606
+ if (cp < 128) {
297607
+ ret.push(cp);
297608
+ } else if (is_hangul(cp)) {
297609
+ let s_index = cp - S0;
297610
+ let l_index = s_index / N_COUNT | 0;
297611
+ let v_index = s_index % N_COUNT / T_COUNT | 0;
297612
+ let t_index = s_index % T_COUNT;
297613
+ add2(L0 + l_index);
297614
+ add2(V0 + v_index);
297615
+ if (t_index > 0) add2(T0 + t_index);
297616
+ } else {
297617
+ let mapped = DECOMP.get(cp);
297618
+ if (mapped) {
297619
+ buf.push(...mapped);
297620
+ } else {
297621
+ add2(cp);
297622
+ }
297623
+ }
297624
+ if (!buf.length) break;
297625
+ cp = buf.pop();
297626
+ }
297627
+ }
297628
+ if (check_order && ret.length > 1) {
297629
+ let prev_cc = unpack_cc(ret[0]);
297630
+ for (let i = 1; i < ret.length; i++) {
297631
+ let cc = unpack_cc(ret[i]);
297632
+ if (cc == 0 || prev_cc <= cc) {
297633
+ prev_cc = cc;
297634
+ continue;
297635
+ }
297636
+ let j = i - 1;
297637
+ while (true) {
297638
+ let tmp = ret[j + 1];
297639
+ ret[j + 1] = ret[j];
297640
+ ret[j] = tmp;
297641
+ if (!j) break;
297642
+ prev_cc = unpack_cc(ret[--j]);
297643
+ if (prev_cc <= cc) break;
297644
+ }
297645
+ prev_cc = unpack_cc(ret[i]);
297646
+ }
297647
+ }
297648
+ return ret;
297649
+ }
297650
+ function composed_from_decomposed(v) {
297651
+ let ret = [];
297652
+ let stack = [];
297653
+ let prev_cp = -1;
297654
+ let prev_cc = 0;
297655
+ for (let packed of v) {
297656
+ let cc = unpack_cc(packed);
297657
+ let cp = unpack_cp(packed);
297658
+ if (prev_cp == -1) {
297659
+ if (cc == 0) {
297660
+ prev_cp = cp;
297661
+ } else {
297662
+ ret.push(cp);
297663
+ }
297664
+ } else if (prev_cc > 0 && prev_cc >= cc) {
297665
+ if (cc == 0) {
297666
+ ret.push(prev_cp, ...stack);
297667
+ stack.length = 0;
297668
+ prev_cp = cp;
297669
+ } else {
297670
+ stack.push(cp);
297671
+ }
297672
+ prev_cc = cc;
297673
+ } else {
297674
+ let composed = compose_pair(prev_cp, cp);
297675
+ if (composed >= 0) {
297676
+ prev_cp = composed;
297677
+ } else if (prev_cc == 0 && cc == 0) {
297678
+ ret.push(prev_cp);
297679
+ prev_cp = cp;
297680
+ } else {
297681
+ stack.push(cp);
297682
+ prev_cc = cc;
297683
+ }
297684
+ }
297685
+ }
297686
+ if (prev_cp >= 0) {
297687
+ ret.push(prev_cp, ...stack);
297688
+ }
297689
+ return ret;
297690
+ }
297691
+ function nfd(cps) {
297692
+ return decomposed(cps).map(unpack_cp);
297693
+ }
297694
+ function nfc(cps) {
297695
+ return composed_from_decomposed(decomposed(cps));
297696
+ }
297697
+ var HYPHEN = 45;
297698
+ var STOP = 46;
297699
+ var STOP_CH = ".";
297700
+ var FE0F = 65039;
297701
+ var UNIQUE_PH = 1;
297702
+ var Array_from = (x) => Array.from(x);
297703
+ function group_has_cp(g, cp) {
297704
+ return g.P.has(cp) || g.Q.has(cp);
297705
+ }
297706
+ var Emoji = class extends Array {
297707
+ get is_emoji() {
297708
+ return true;
297709
+ }
297710
+ // free tagging system
297711
+ };
297712
+ var MAPPED;
297713
+ var IGNORED;
297714
+ var CM;
297715
+ var NSM;
297716
+ var ESCAPE;
297717
+ var NFC_CHECK;
297718
+ var GROUPS;
297719
+ var WHOLE_VALID;
297720
+ var WHOLE_MAP;
297721
+ var VALID;
297722
+ var EMOJI_LIST;
297723
+ var EMOJI_ROOT;
297724
+ function init() {
297725
+ if (MAPPED) return;
297726
+ let r = read_compressed_payload(COMPRESSED$1);
297727
+ const read_sorted_array = () => read_sorted(r);
297728
+ const read_sorted_set = () => new Set(read_sorted_array());
297729
+ const set_add_many = (set2, v) => v.forEach((x) => set2.add(x));
297730
+ MAPPED = new Map(read_mapped(r));
297731
+ IGNORED = read_sorted_set();
297732
+ CM = read_sorted_array();
297733
+ NSM = new Set(read_sorted_array().map((i) => CM[i]));
297734
+ CM = new Set(CM);
297735
+ ESCAPE = read_sorted_set();
297736
+ NFC_CHECK = read_sorted_set();
297737
+ let chunks = read_sorted_arrays(r);
297738
+ let unrestricted = r();
297739
+ const read_chunked = () => {
297740
+ let set2 = /* @__PURE__ */ new Set();
297741
+ read_sorted_array().forEach((i) => set_add_many(set2, chunks[i]));
297742
+ set_add_many(set2, read_sorted_array());
297743
+ return set2;
297744
+ };
297745
+ GROUPS = read_array_while((i) => {
297746
+ let N = read_array_while(r).map((x) => x + 96);
297747
+ if (N.length) {
297748
+ let R = i >= unrestricted;
297749
+ N[0] -= 32;
297750
+ N = str_from_cps(N);
297751
+ if (R) N = `Restricted[${N}]`;
297752
+ let P = read_chunked();
297753
+ let Q = read_chunked();
297754
+ let M = !r();
297755
+ return { N, P, Q, M, R };
297756
+ }
297757
+ });
297758
+ WHOLE_VALID = read_sorted_set();
297759
+ WHOLE_MAP = /* @__PURE__ */ new Map();
297760
+ let wholes = read_sorted_array().concat(Array_from(WHOLE_VALID)).sort((a, b) => a - b);
297761
+ wholes.forEach((cp, i) => {
297762
+ let d = r();
297763
+ let w = wholes[i] = d ? wholes[i - d] : { V: [], M: /* @__PURE__ */ new Map() };
297764
+ w.V.push(cp);
297765
+ if (!WHOLE_VALID.has(cp)) {
297766
+ WHOLE_MAP.set(cp, w);
297767
+ }
297768
+ });
297769
+ for (let { V, M } of new Set(WHOLE_MAP.values())) {
297770
+ let recs = [];
297771
+ for (let cp of V) {
297772
+ let gs = GROUPS.filter((g) => group_has_cp(g, cp));
297773
+ let rec = recs.find(({ G }) => gs.some((g) => G.has(g)));
297774
+ if (!rec) {
297775
+ rec = { G: /* @__PURE__ */ new Set(), V: [] };
297776
+ recs.push(rec);
297777
+ }
297778
+ rec.V.push(cp);
297779
+ set_add_many(rec.G, gs);
297780
+ }
297781
+ let union2 = recs.flatMap((x) => Array_from(x.G));
297782
+ for (let { G, V: V2 } of recs) {
297783
+ let complement = new Set(union2.filter((g) => !G.has(g)));
297784
+ for (let cp of V2) {
297785
+ M.set(cp, complement);
297786
+ }
297787
+ }
297788
+ }
297789
+ VALID = /* @__PURE__ */ new Set();
297790
+ let multi = /* @__PURE__ */ new Set();
297791
+ const add_to_union = (cp) => VALID.has(cp) ? multi.add(cp) : VALID.add(cp);
297792
+ for (let g of GROUPS) {
297793
+ for (let cp of g.P) add_to_union(cp);
297794
+ for (let cp of g.Q) add_to_union(cp);
297795
+ }
297796
+ for (let cp of VALID) {
297797
+ if (!WHOLE_MAP.has(cp) && !multi.has(cp)) {
297798
+ WHOLE_MAP.set(cp, UNIQUE_PH);
297799
+ }
297800
+ }
297801
+ set_add_many(VALID, nfd(VALID));
297802
+ EMOJI_LIST = read_trie(r).map((v) => Emoji.from(v)).sort(compare_arrays);
297803
+ EMOJI_ROOT = /* @__PURE__ */ new Map();
297804
+ for (let cps of EMOJI_LIST) {
297805
+ let prev = [EMOJI_ROOT];
297806
+ for (let cp of cps) {
297807
+ let next = prev.map((node) => {
297808
+ let child = node.get(cp);
297809
+ if (!child) {
297810
+ child = /* @__PURE__ */ new Map();
297811
+ node.set(cp, child);
297812
+ }
297813
+ return child;
297814
+ });
297815
+ if (cp === FE0F) {
297816
+ prev.push(...next);
297817
+ } else {
297818
+ prev = next;
297819
+ }
297820
+ }
297821
+ for (let x of prev) {
297822
+ x.V = cps;
297823
+ }
297824
+ }
297825
+ }
297826
+ function quoted_cp(cp) {
297827
+ return (should_escape(cp) ? "" : `${bidi_qq(safe_str_from_cps([cp]))} `) + quote_cp(cp);
297828
+ }
297829
+ function bidi_qq(s) {
297830
+ return `"${s}"\u200E`;
297831
+ }
297832
+ function check_label_extension(cps) {
297833
+ if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) {
297834
+ throw new Error(`invalid label extension: "${str_from_cps(cps.slice(0, 4))}"`);
297835
+ }
297836
+ }
297837
+ function check_leading_underscore(cps) {
297838
+ const UNDERSCORE = 95;
297839
+ for (let i = cps.lastIndexOf(UNDERSCORE); i > 0; ) {
297840
+ if (cps[--i] !== UNDERSCORE) {
297841
+ throw new Error("underscore allowed only at start");
297842
+ }
297843
+ }
297844
+ }
297845
+ function check_fenced(cps) {
297846
+ let cp = cps[0];
297847
+ let prev = FENCED.get(cp);
297848
+ if (prev) throw error_placement(`leading ${prev}`);
297849
+ let n = cps.length;
297850
+ let last = -1;
297851
+ for (let i = 1; i < n; i++) {
297852
+ cp = cps[i];
297853
+ let match2 = FENCED.get(cp);
297854
+ if (match2) {
297855
+ if (last == i) throw error_placement(`${prev} + ${match2}`);
297856
+ last = i + 1;
297857
+ prev = match2;
297858
+ }
297859
+ }
297860
+ if (last == n) throw error_placement(`trailing ${prev}`);
297861
+ }
297862
+ function safe_str_from_cps(cps, max = Infinity, quoter = quote_cp) {
297863
+ let buf = [];
297864
+ if (is_combining_mark(cps[0])) buf.push("\u25CC");
297865
+ if (cps.length > max) {
297866
+ max >>= 1;
297867
+ cps = [...cps.slice(0, max), 8230, ...cps.slice(-max)];
297868
+ }
297869
+ let prev = 0;
297870
+ let n = cps.length;
297871
+ for (let i = 0; i < n; i++) {
297872
+ let cp = cps[i];
297873
+ if (should_escape(cp)) {
297874
+ buf.push(str_from_cps(cps.slice(prev, i)));
297875
+ buf.push(quoter(cp));
297876
+ prev = i + 1;
297877
+ }
297878
+ }
297879
+ buf.push(str_from_cps(cps.slice(prev, n)));
297880
+ return buf.join("");
297881
+ }
297882
+ function is_combining_mark(cp) {
297883
+ init();
297884
+ return CM.has(cp);
297885
+ }
297886
+ function should_escape(cp) {
297887
+ init();
297888
+ return ESCAPE.has(cp);
297889
+ }
297890
+ function ens_emoji() {
297891
+ init();
297892
+ return EMOJI_LIST.map((x) => x.slice());
297893
+ }
297894
+ function ens_normalize_fragment(frag, decompose) {
297895
+ init();
297896
+ let nf = decompose ? nfd : nfc;
297897
+ return frag.split(STOP_CH).map((label) => str_from_cps(tokens_from_str(explode_cp(label), nf, filter_fe0f).flat())).join(STOP_CH);
297898
+ }
297899
+ function ens_normalize(name) {
297900
+ return flatten(split2(name, nfc, filter_fe0f));
297901
+ }
297902
+ function ens_beautify(name) {
297903
+ let labels = split2(name, nfc, (x) => x);
297904
+ for (let { type, output, error: error45 } of labels) {
297905
+ if (error45) break;
297906
+ if (type !== "Greek") array_replace(output, 958, 926);
297907
+ }
297908
+ return flatten(labels);
297909
+ }
297910
+ function array_replace(v, a, b) {
297911
+ let prev = 0;
297912
+ while (true) {
297913
+ let next = v.indexOf(a, prev);
297914
+ if (next < 0) break;
297915
+ v[next] = b;
297916
+ prev = next + 1;
297917
+ }
297918
+ }
297919
+ function ens_split(name, preserve_emoji) {
297920
+ return split2(name, nfc, preserve_emoji ? (x) => x.slice() : filter_fe0f);
297921
+ }
297922
+ function split2(name, nf, ef) {
297923
+ if (!name) return [];
297924
+ init();
297925
+ let offset = 0;
297926
+ return name.split(STOP_CH).map((label) => {
297927
+ let input = explode_cp(label);
297928
+ let info = {
297929
+ input,
297930
+ offset
297931
+ // codepoint, not substring!
297932
+ };
297933
+ offset += input.length + 1;
297934
+ try {
297935
+ let tokens = info.tokens = tokens_from_str(input, nf, ef);
297936
+ let token_count = tokens.length;
297937
+ let type;
297938
+ if (!token_count) {
297939
+ throw new Error(`empty label`);
297940
+ }
297941
+ let norm = info.output = tokens.flat();
297942
+ check_leading_underscore(norm);
297943
+ let emoji3 = info.emoji = token_count > 1 || tokens[0].is_emoji;
297944
+ if (!emoji3 && norm.every((cp) => cp < 128)) {
297945
+ check_label_extension(norm);
297946
+ type = "ASCII";
297947
+ } else {
297948
+ let chars = tokens.flatMap((x) => x.is_emoji ? [] : x);
297949
+ if (!chars.length) {
297950
+ type = "Emoji";
297951
+ } else {
297952
+ if (CM.has(norm[0])) throw error_placement("leading combining mark");
297953
+ for (let i = 1; i < token_count; i++) {
297954
+ let cps = tokens[i];
297955
+ if (!cps.is_emoji && CM.has(cps[0])) {
297956
+ throw error_placement(`emoji + combining mark: "${str_from_cps(tokens[i - 1])} + ${safe_str_from_cps([cps[0]])}"`);
297957
+ }
297958
+ }
297959
+ check_fenced(norm);
297960
+ let unique = Array_from(new Set(chars));
297961
+ let [g] = determine_group(unique);
297962
+ check_group(g, chars);
297963
+ check_whole(g, unique);
297964
+ type = g.N;
297965
+ }
297966
+ }
297967
+ info.type = type;
297968
+ } catch (err) {
297969
+ info.error = err;
297970
+ }
297971
+ return info;
297972
+ });
297973
+ }
297974
+ function check_whole(group, unique) {
297975
+ let maker;
297976
+ let shared = [];
297977
+ for (let cp of unique) {
297978
+ let whole = WHOLE_MAP.get(cp);
297979
+ if (whole === UNIQUE_PH) return;
297980
+ if (whole) {
297981
+ let set2 = whole.M.get(cp);
297982
+ maker = maker ? maker.filter((g) => set2.has(g)) : Array_from(set2);
297983
+ if (!maker.length) return;
297984
+ } else {
297985
+ shared.push(cp);
297986
+ }
297987
+ }
297988
+ if (maker) {
297989
+ for (let g of maker) {
297990
+ if (shared.every((cp) => group_has_cp(g, cp))) {
297991
+ throw new Error(`whole-script confusable: ${group.N}/${g.N}`);
297992
+ }
297993
+ }
297994
+ }
297995
+ }
297996
+ function determine_group(unique) {
297997
+ let groups = GROUPS;
297998
+ for (let cp of unique) {
297999
+ let gs = groups.filter((g) => group_has_cp(g, cp));
298000
+ if (!gs.length) {
298001
+ if (!GROUPS.some((g) => group_has_cp(g, cp))) {
298002
+ throw error_disallowed(cp);
298003
+ } else {
298004
+ throw error_group_member(groups[0], cp);
298005
+ }
298006
+ }
298007
+ groups = gs;
298008
+ if (gs.length == 1) break;
298009
+ }
298010
+ return groups;
298011
+ }
298012
+ function flatten(split3) {
298013
+ return split3.map(({ input, error: error45, output }) => {
298014
+ if (error45) {
298015
+ let msg = error45.message;
298016
+ throw new Error(split3.length == 1 ? msg : `Invalid label ${bidi_qq(safe_str_from_cps(input, 63))}: ${msg}`);
298017
+ }
298018
+ return str_from_cps(output);
298019
+ }).join(STOP_CH);
298020
+ }
298021
+ function error_disallowed(cp) {
298022
+ return new Error(`disallowed character: ${quoted_cp(cp)}`);
298023
+ }
298024
+ function error_group_member(g, cp) {
298025
+ let quoted = quoted_cp(cp);
298026
+ let gg = GROUPS.find((g2) => g2.P.has(cp));
298027
+ if (gg) {
298028
+ quoted = `${gg.N} ${quoted}`;
298029
+ }
298030
+ return new Error(`illegal mixture: ${g.N} + ${quoted}`);
298031
+ }
298032
+ function error_placement(where) {
298033
+ return new Error(`illegal placement: ${where}`);
298034
+ }
298035
+ function check_group(g, cps) {
298036
+ for (let cp of cps) {
298037
+ if (!group_has_cp(g, cp)) {
298038
+ throw error_group_member(g, cp);
298039
+ }
298040
+ }
298041
+ if (g.M) {
298042
+ let decomposed2 = nfd(cps);
298043
+ for (let i = 1, e = decomposed2.length; i < e; i++) {
298044
+ if (NSM.has(decomposed2[i])) {
298045
+ let j = i + 1;
298046
+ for (let cp; j < e && NSM.has(cp = decomposed2[j]); j++) {
298047
+ for (let k = i; k < j; k++) {
298048
+ if (decomposed2[k] == cp) {
298049
+ throw new Error(`duplicate non-spacing marks: ${quoted_cp(cp)}`);
298050
+ }
298051
+ }
298052
+ }
298053
+ if (j - i > NSM_MAX) {
298054
+ throw new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(decomposed2.slice(i - 1, j)))} (${j - i}/${NSM_MAX})`);
298055
+ }
298056
+ i = j;
298057
+ }
298058
+ }
298059
+ }
298060
+ }
298061
+ function tokens_from_str(input, nf, ef) {
298062
+ let ret = [];
298063
+ let chars = [];
298064
+ input = input.slice().reverse();
298065
+ while (input.length) {
298066
+ let emoji3 = consume_emoji_reversed(input);
298067
+ if (emoji3) {
298068
+ if (chars.length) {
298069
+ ret.push(nf(chars));
298070
+ chars = [];
298071
+ }
298072
+ ret.push(ef(emoji3));
298073
+ } else {
298074
+ let cp = input.pop();
298075
+ if (VALID.has(cp)) {
298076
+ chars.push(cp);
298077
+ } else {
298078
+ let cps = MAPPED.get(cp);
298079
+ if (cps) {
298080
+ chars.push(...cps);
298081
+ } else if (!IGNORED.has(cp)) {
298082
+ throw error_disallowed(cp);
298083
+ }
298084
+ }
298085
+ }
298086
+ }
298087
+ if (chars.length) {
298088
+ ret.push(nf(chars));
298089
+ }
298090
+ return ret;
298091
+ }
298092
+ function filter_fe0f(cps) {
298093
+ return cps.filter((cp) => cp != FE0F);
298094
+ }
298095
+ function consume_emoji_reversed(cps, eaten) {
298096
+ let node = EMOJI_ROOT;
298097
+ let emoji3;
298098
+ let pos = cps.length;
298099
+ while (pos) {
298100
+ node = node.get(cps[--pos]);
298101
+ if (!node) break;
298102
+ let { V } = node;
298103
+ if (V) {
298104
+ emoji3 = V;
298105
+ if (eaten) eaten.push(...cps.slice(pos).reverse());
298106
+ cps.length = pos;
298107
+ }
298108
+ }
298109
+ return emoji3;
298110
+ }
298111
+ var TY_VALID = "valid";
298112
+ var TY_MAPPED = "mapped";
298113
+ var TY_IGNORED = "ignored";
298114
+ var TY_DISALLOWED = "disallowed";
298115
+ var TY_EMOJI = "emoji";
298116
+ var TY_NFC = "nfc";
298117
+ var TY_STOP = "stop";
298118
+ function ens_tokenize(name, {
298119
+ nf = true
298120
+ // collapse unnormalized runs into a single token
298121
+ } = {}) {
298122
+ init();
298123
+ let input = explode_cp(name).reverse();
298124
+ let eaten = [];
298125
+ let tokens = [];
298126
+ while (input.length) {
298127
+ let emoji3 = consume_emoji_reversed(input, eaten);
298128
+ if (emoji3) {
298129
+ tokens.push({
298130
+ type: TY_EMOJI,
298131
+ emoji: emoji3.slice(),
298132
+ // copy emoji
298133
+ input: eaten,
298134
+ cps: filter_fe0f(emoji3)
298135
+ });
298136
+ eaten = [];
298137
+ } else {
298138
+ let cp = input.pop();
298139
+ if (cp == STOP) {
298140
+ tokens.push({ type: TY_STOP, cp });
298141
+ } else if (VALID.has(cp)) {
298142
+ tokens.push({ type: TY_VALID, cps: [cp] });
298143
+ } else if (IGNORED.has(cp)) {
298144
+ tokens.push({ type: TY_IGNORED, cp });
298145
+ } else {
298146
+ let cps = MAPPED.get(cp);
298147
+ if (cps) {
298148
+ tokens.push({ type: TY_MAPPED, cp, cps: cps.slice() });
298149
+ } else {
298150
+ tokens.push({ type: TY_DISALLOWED, cp });
298151
+ }
298152
+ }
298153
+ }
298154
+ }
298155
+ if (nf) {
298156
+ for (let i = 0, start = -1; i < tokens.length; i++) {
298157
+ let token = tokens[i];
298158
+ if (is_valid_or_mapped(token.type)) {
298159
+ if (requires_check(token.cps)) {
298160
+ let end = i + 1;
298161
+ for (let pos = end; pos < tokens.length; pos++) {
298162
+ let { type, cps: cps2 } = tokens[pos];
298163
+ if (is_valid_or_mapped(type)) {
298164
+ if (!requires_check(cps2)) break;
298165
+ end = pos + 1;
298166
+ } else if (type !== TY_IGNORED) {
298167
+ break;
298168
+ }
298169
+ }
298170
+ if (start < 0) start = i;
298171
+ let slice4 = tokens.slice(start, end);
298172
+ let cps0 = slice4.flatMap((x) => is_valid_or_mapped(x.type) ? x.cps : []);
298173
+ let cps = nfc(cps0);
298174
+ if (compare_arrays(cps, cps0)) {
298175
+ tokens.splice(start, end - start, {
298176
+ type: TY_NFC,
298177
+ input: cps0,
298178
+ // there are 3 states: tokens0 ==(process)=> input ==(nfc)=> tokens/cps
298179
+ cps,
298180
+ tokens0: collapse_valid_tokens(slice4),
298181
+ tokens: ens_tokenize(str_from_cps(cps), { nf: false })
298182
+ });
298183
+ i = start;
298184
+ } else {
298185
+ i = end - 1;
298186
+ }
298187
+ start = -1;
298188
+ } else {
298189
+ start = i;
298190
+ }
298191
+ } else if (token.type !== TY_IGNORED) {
298192
+ start = -1;
298193
+ }
298194
+ }
298195
+ }
298196
+ return collapse_valid_tokens(tokens);
298197
+ }
298198
+ function is_valid_or_mapped(type) {
298199
+ return type == TY_VALID || type == TY_MAPPED;
298200
+ }
298201
+ function requires_check(cps) {
298202
+ return cps.some((cp) => NFC_CHECK.has(cp));
298203
+ }
298204
+ function collapse_valid_tokens(tokens) {
298205
+ for (let i = 0; i < tokens.length; i++) {
298206
+ if (tokens[i].type == TY_VALID) {
298207
+ let j = i + 1;
298208
+ while (j < tokens.length && tokens[j].type == TY_VALID) j++;
298209
+ tokens.splice(i, j - i, { type: TY_VALID, cps: tokens.slice(i, j).flatMap((x) => x.cps) });
298210
+ }
298211
+ }
298212
+ return tokens;
298213
+ }
298214
+ exports2.ens_beautify = ens_beautify;
298215
+ exports2.ens_emoji = ens_emoji;
298216
+ exports2.ens_normalize = ens_normalize;
298217
+ exports2.ens_normalize_fragment = ens_normalize_fragment;
298218
+ exports2.ens_split = ens_split;
298219
+ exports2.ens_tokenize = ens_tokenize;
298220
+ exports2.is_combining_mark = is_combining_mark;
298221
+ exports2.nfc = nfc;
298222
+ exports2.nfd = nfd;
298223
+ exports2.safe_str_from_cps = safe_str_from_cps;
298224
+ exports2.should_escape = should_escape;
298225
+ }
298226
+ });
298227
+
297313
298228
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/ethers/lib.commonjs/hash/namehash.js
297314
298229
  var require_namehash4 = __commonJS({
297315
298230
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/ethers/lib.commonjs/hash/namehash.js"(exports2) {
@@ -297318,7 +298233,7 @@ var require_namehash4 = __commonJS({
297318
298233
  exports2.dnsEncode = exports2.namehash = exports2.isValidName = exports2.ensNormalize = void 0;
297319
298234
  var index_js_1 = require_crypto5();
297320
298235
  var index_js_2 = require_utils31();
297321
- var ens_normalize_1 = require_dist2();
298236
+ var ens_normalize_1 = require_dist5();
297322
298237
  var Zeros = new Uint8Array(32);
297323
298238
  Zeros.fill(0);
297324
298239
  function checkComponent(comp) {
@@ -317646,7 +318561,7 @@ var require_semver4 = __commonJS({
317646
318561
  });
317647
318562
 
317648
318563
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/parse.js
317649
- var require_parse3 = __commonJS({
318564
+ var require_parse2 = __commonJS({
317650
318565
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/parse.js"(exports2, module2) {
317651
318566
  var SemVer = require_semver4();
317652
318567
  var parse4 = (version5, options, throwErrors = false) => {
@@ -317669,7 +318584,7 @@ var require_parse3 = __commonJS({
317669
318584
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/valid.js
317670
318585
  var require_valid3 = __commonJS({
317671
318586
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/valid.js"(exports2, module2) {
317672
- var parse4 = require_parse3();
318587
+ var parse4 = require_parse2();
317673
318588
  var valid = (version5, options) => {
317674
318589
  const v = parse4(version5, options);
317675
318590
  return v ? v.version : null;
@@ -317681,7 +318596,7 @@ var require_valid3 = __commonJS({
317681
318596
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/clean.js
317682
318597
  var require_clean2 = __commonJS({
317683
318598
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/clean.js"(exports2, module2) {
317684
- var parse4 = require_parse3();
318599
+ var parse4 = require_parse2();
317685
318600
  var clean2 = (version5, options) => {
317686
318601
  const s = parse4(version5.trim().replace(/^[=v]+/, ""), options);
317687
318602
  return s ? s.version : null;
@@ -317716,7 +318631,7 @@ var require_inc2 = __commonJS({
317716
318631
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/diff.js
317717
318632
  var require_diff2 = __commonJS({
317718
318633
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/diff.js"(exports2, module2) {
317719
- var parse4 = require_parse3();
318634
+ var parse4 = require_parse2();
317720
318635
  var diff = (version1, version22) => {
317721
318636
  const v1 = parse4(version1, null, true);
317722
318637
  const v2 = parse4(version22, null, true);
@@ -317786,7 +318701,7 @@ var require_patch2 = __commonJS({
317786
318701
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/prerelease.js
317787
318702
  var require_prerelease2 = __commonJS({
317788
318703
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/prerelease.js"(exports2, module2) {
317789
- var parse4 = require_parse3();
318704
+ var parse4 = require_parse2();
317790
318705
  var prerelease = (version5, options) => {
317791
318706
  const parsed = parse4(version5, options);
317792
318707
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
@@ -317960,7 +318875,7 @@ var require_cmp2 = __commonJS({
317960
318875
  var require_coerce2 = __commonJS({
317961
318876
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/coerce.js"(exports2, module2) {
317962
318877
  var SemVer = require_semver4();
317963
- var parse4 = require_parse3();
318878
+ var parse4 = require_parse2();
317964
318879
  var { safeRe: re, t } = require_re2();
317965
318880
  var coerce = (version5, options) => {
317966
318881
  if (version5 instanceof SemVer) {
@@ -318995,7 +319910,7 @@ var require_semver5 = __commonJS({
318995
319910
  var constants = require_constants13();
318996
319911
  var SemVer = require_semver4();
318997
319912
  var identifiers = require_identifiers2();
318998
- var parse4 = require_parse3();
319913
+ var parse4 = require_parse2();
318999
319914
  var valid = require_valid3();
319000
319915
  var clean2 = require_clean2();
319001
319916
  var inc = require_inc2();
@@ -319329,7 +320244,7 @@ var require_ipfsHash = __commonJS({
319329
320244
  });
319330
320245
 
319331
320246
  // ../../node_modules/@fairdatasociety/bmt-js/dist/index.js
319332
- var require_dist5 = __commonJS({
320247
+ var require_dist6 = __commonJS({
319333
320248
  "../../node_modules/@fairdatasociety/bmt-js/dist/index.js"(exports, module) {
319334
320249
  !(function(Q, B) {
319335
320250
  "object" == typeof exports && "object" == typeof module ? module.exports = B() : "function" == typeof define && define.amd ? define([], B) : "object" == typeof exports ? exports.BmtJs = B() : Q.BmtJs = B();
@@ -320139,7 +321054,7 @@ var require_swarmHash = __commonJS({
320139
321054
  Object.defineProperty(exports2, "__esModule", { value: true });
320140
321055
  exports2.swarmBzzr1Hash = swarmBzzr1Hash;
320141
321056
  exports2.swarmBzzr0Hash = swarmBzzr0Hash;
320142
- var bmt_js_1 = require_dist5();
321057
+ var bmt_js_1 = require_dist6();
320143
321058
  var ethers_1 = require_lib41();
320144
321059
  function swarmBzzr1Hash(file2) {
320145
321060
  const encoder5 = new TextEncoder();
@@ -378150,6 +379065,12 @@ var plasma = /* @__PURE__ */ defineChain({
378150
379065
  name: "PlasmaScan",
378151
379066
  url: "https://plasmascan.to"
378152
379067
  }
379068
+ },
379069
+ contracts: {
379070
+ multicall3: {
379071
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
379072
+ blockCreated: 0
379073
+ }
378153
379074
  }
378154
379075
  });
378155
379076
 
@@ -393202,7 +394123,9 @@ var chains = {
393202
394123
  Plasma: defineChain({
393203
394124
  ...plasma,
393204
394125
  network: "Plasma",
393205
- defaultMarketConfigurators: {},
394126
+ defaultMarketConfigurators: {
394127
+ "0x7a133fbd01736fd076158307c9476cc3877f1af5": "Invariant Group"
394128
+ },
393206
394129
  isPublic: true,
393207
394130
  wellKnownToken: {
393208
394131
  address: "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
@@ -416427,7 +417350,7 @@ function createAdapter(sdk, args) {
416427
417350
  }
416428
417351
  } catch (e) {
416429
417352
  sdk.logger?.warn(
416430
- `plugin ${name} error while trying to create ${adapterType} v${args.baseParams.version}: ${e}`
417353
+ `plugin ${name} error while trying to create ${adapterType} v${args.baseParams.version} at ${args.baseParams.addr}: ${e}`
416431
417354
  );
416432
417355
  }
416433
417356
  }
@@ -416782,6 +417705,12 @@ var AbstractPriceFeedContract = class extends BaseContract {
416782
417705
  }
416783
417706
  return this.#answer;
416784
417707
  }
417708
+ updateAnswer(answer) {
417709
+ if (this.#answer === void 0) {
417710
+ throw new PartialPriceFeedInitError(this.#args);
417711
+ }
417712
+ this.#answer = answer;
417713
+ }
416785
417714
  get priceFeedType() {
416786
417715
  return this.contractType;
416787
417716
  }
@@ -422571,22 +423500,36 @@ var RedstoneUpdater = class extends SDKConstruct {
422571
423500
  );
422572
423501
  const parsed = import_protocol.RedstonePayload.parse(toBytes(`0x${dataPayload}`));
422573
423502
  const packagesByDataFeedId = groupDataPackages(parsed.signedDataPackages);
422574
- return dataPackagesIds.map((dataFeedId) => {
423503
+ const result = [];
423504
+ for (const dataFeedId of dataFeedsIds) {
422575
423505
  const signedDataPackages = packagesByDataFeedId[dataFeedId];
422576
423506
  if (!signedDataPackages) {
423507
+ if (this.#ignoreMissingFeeds) {
423508
+ this.#logger?.warn(`cannot find data packages for ${dataFeedId}`);
423509
+ continue;
423510
+ }
422577
423511
  throw new Error(`cannot find data packages for ${dataFeedId}`);
422578
423512
  }
422579
423513
  if (signedDataPackages.length !== uniqueSignersCount) {
423514
+ if (this.#ignoreMissingFeeds) {
423515
+ this.#logger?.warn(
423516
+ `got ${signedDataPackages.length} data packages for ${dataFeedId}, but expected ${uniqueSignersCount}`
423517
+ );
423518
+ continue;
423519
+ }
422580
423520
  throw new Error(
422581
423521
  `got ${signedDataPackages.length} data packages for ${dataFeedId}, but expected ${uniqueSignersCount}`
422582
423522
  );
422583
423523
  }
422584
- return getCalldataWithTimestamp(
422585
- dataFeedId,
422586
- signedDataPackages,
422587
- wrapper.getUnsignedMetadata()
423524
+ result.push(
423525
+ getCalldataWithTimestamp(
423526
+ dataFeedId,
423527
+ signedDataPackages,
423528
+ wrapper.getUnsignedMetadata()
423529
+ )
422588
423530
  );
422589
- });
423531
+ }
423532
+ return result;
422590
423533
  }
422591
423534
  };
422592
423535
  function groupDataPackages(signedDataPackages) {
@@ -422835,9 +423778,10 @@ var PriceFeedRegister = class extends SDKConstruct {
422835
423778
  mustGet(address) {
422836
423779
  return this.#feeds.mustGet(address);
422837
423780
  }
422838
- getOrCreate(data) {
423781
+ upsert(data) {
422839
423782
  const existing = this.#feeds.get(data.baseParams.addr);
422840
423783
  if (existing?.loaded) {
423784
+ existing.updateAnswer(data.answer);
422841
423785
  return existing;
422842
423786
  }
422843
423787
  const feed = this.create(data);
@@ -423157,7 +424101,7 @@ var PriceOracleBaseContract = class extends BaseContract {
423157
424101
  }
423158
424102
  for (const node of tree) {
423159
424103
  this.#priceFeedTree.upsert(node.baseParams.addr, node);
423160
- this.sdk.priceFeeds.getOrCreate(node);
424104
+ this.sdk.priceFeeds.upsert(node);
423161
424105
  }
423162
424106
  for (const entry of entries) {
423163
424107
  const { token, priceFeed, reserve, stalenessPeriod } = entry;
@@ -424237,7 +425181,7 @@ var MarketRegister = class extends SDKConstruct {
424237
425181
  }
424238
425182
  return this.#marketFilter;
424239
425183
  }
424240
- async syncState(skipPriceUpdate) {
425184
+ async syncState(ignoreUpdateablePrices) {
424241
425185
  const dirty = this.markets.some((m) => m.dirty) || this.marketConfigurators.some((c) => c.dirty);
424242
425186
  if (dirty) {
424243
425187
  this.#logger?.debug(
@@ -424245,9 +425189,10 @@ var MarketRegister = class extends SDKConstruct {
424245
425189
  );
424246
425190
  await this.#loadMarkets(
424247
425191
  [...this.marketFilter.configurators],
424248
- [...this.marketFilter.pools]
425192
+ [...this.marketFilter.pools],
425193
+ ignoreUpdateablePrices
424249
425194
  );
424250
- } else if (!skipPriceUpdate) {
425195
+ } else if (!ignoreUpdateablePrices) {
424251
425196
  await this.updatePrices();
424252
425197
  }
424253
425198
  }
@@ -424838,7 +425783,11 @@ var GearboxSDK = class _GearboxSDK {
424838
425783
  * @returns
424839
425784
  */
424840
425785
  async syncState(opts) {
424841
- let { blockNumber, timestamp, skipPriceUpdate } = opts ?? {};
425786
+ let {
425787
+ blockNumber,
425788
+ timestamp,
425789
+ ignoreUpdateablePrices = this.#attachConfig?.ignoreUpdateablePrices
425790
+ } = opts ?? {};
424842
425791
  if (this.#attachConfig?.redstone?.historicTimestamp || this.#attachConfig?.pyth?.historicTimestamp) {
424843
425792
  throw new Error(
424844
425793
  "syncState is not supported with redstone or pyth historicTimestamp"
@@ -424855,64 +425804,77 @@ var GearboxSDK = class _GearboxSDK {
424855
425804
  return;
424856
425805
  }
424857
425806
  if (this.#syncing) {
424858
- this.logger?.warn(`cannot sync to ${blockNumber}, already syncing`);
425807
+ this.logger?.warn(
425808
+ `cannot sync to ${blockNumber}, already syncing at ${this.currentBlock}`
425809
+ );
424859
425810
  return;
424860
425811
  }
424861
425812
  this.#syncing = true;
424862
- let delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
424863
- this.logger?.debug(
424864
- `syncing state to block ${blockNumber} (delta ${delta}s )...`
424865
- );
424866
- const watchAddresses = [
424867
- ...Array.from(this.marketRegister.watchAddresses),
424868
- this.addressProvider.address
424869
- ];
424870
- const fromBlock = this.currentBlock + 1n;
424871
- this.logger?.debug(
424872
- `getting logs from ${watchAddresses.length} addresses in [${fromBlock}:${blockNumber}]`
424873
- );
424874
- const logs = await getLogsSafe(this.provider.publicClient, {
424875
- fromBlock,
424876
- toBlock: blockNumber,
424877
- address: watchAddresses
424878
- });
424879
- for (const log2 of logs) {
424880
- const contract = this.contracts.get(log2.address);
424881
- if (contract) {
424882
- const event = parseEventLogs({
424883
- abi: contract.abi,
424884
- logs: [log2]
424885
- })[0];
424886
- contract.processLog(event);
424887
- }
424888
- }
424889
- this.#currentBlock = blockNumber;
424890
- this.#timestamp = timestamp;
424891
- await this.marketRegister.syncState(skipPriceUpdate);
424892
- await this.#hooks.triggerHooks("syncState", { blockNumber, timestamp });
424893
- const pluginsList = TypedObjectUtils.entries(this.plugins);
424894
- const pluginResponse = await Promise.allSettled(
424895
- pluginsList.map(([name, plugin]) => {
424896
- if (plugin.syncState) {
424897
- this.logger?.debug(`syncing plugin ${name}`);
424898
- return plugin.syncState();
425813
+ const prevBlock = this.currentBlock;
425814
+ const prevTimestamp = this.timestamp;
425815
+ try {
425816
+ let delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
425817
+ this.logger?.debug(
425818
+ `syncing state to block ${blockNumber} (delta ${delta}s )...`
425819
+ );
425820
+ const watchAddresses = [
425821
+ ...Array.from(this.marketRegister.watchAddresses),
425822
+ this.addressProvider.address
425823
+ ];
425824
+ const fromBlock = this.currentBlock + 1n;
425825
+ this.logger?.debug(
425826
+ `getting logs from ${watchAddresses.length} addresses in [${fromBlock}:${blockNumber}]`
425827
+ );
425828
+ const logs = await getLogsSafe(this.provider.publicClient, {
425829
+ fromBlock,
425830
+ toBlock: blockNumber,
425831
+ address: watchAddresses
425832
+ });
425833
+ for (const log2 of logs) {
425834
+ const contract = this.contracts.get(log2.address);
425835
+ if (contract) {
425836
+ const event = parseEventLogs({
425837
+ abi: contract.abi,
425838
+ logs: [log2]
425839
+ })[0];
425840
+ contract.processLog(event);
425841
+ }
425842
+ }
425843
+ this.#currentBlock = blockNumber;
425844
+ this.#timestamp = timestamp;
425845
+ await this.marketRegister.syncState(ignoreUpdateablePrices);
425846
+ await this.#hooks.triggerHooks("syncState", { blockNumber, timestamp });
425847
+ const pluginsList = TypedObjectUtils.entries(this.plugins);
425848
+ const pluginResponse = await Promise.allSettled(
425849
+ pluginsList.map(([name, plugin]) => {
425850
+ if (plugin.syncState) {
425851
+ this.logger?.debug(`syncing plugin ${name}`);
425852
+ return plugin.syncState();
425853
+ }
425854
+ return void 0;
425855
+ })
425856
+ );
425857
+ pluginResponse.forEach((r, i) => {
425858
+ const [name, plugin] = pluginsList[i];
425859
+ if (plugin.syncState && r.status === "fulfilled") {
425860
+ this.logger?.debug(`synced plugin ${name}`);
425861
+ } else if (plugin.syncState && r.status === "rejected") {
425862
+ this.logger?.error(r.reason, `failed to sync plugin ${name}`);
424899
425863
  }
424900
- return void 0;
424901
- })
424902
- );
424903
- pluginResponse.forEach((r, i) => {
424904
- const [name, plugin] = pluginsList[i];
424905
- if (plugin.syncState && r.status === "fulfilled") {
424906
- this.logger?.debug(`synced plugin ${name}`);
424907
- } else if (plugin.syncState && r.status === "rejected") {
424908
- this.logger?.error(r.reason, `failed to sync plugin ${name}`);
424909
- }
424910
- });
424911
- this.#syncing = false;
424912
- delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
424913
- this.logger?.debug(
424914
- `synced state to block ${blockNumber} (delta ${delta}s)`
424915
- );
425864
+ });
425865
+ delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
425866
+ this.logger?.debug(
425867
+ `synced state to block ${blockNumber} (delta ${delta}s)`
425868
+ );
425869
+ } catch (e) {
425870
+ this.logger?.error(
425871
+ `sync state to block ${blockNumber} with ts ${timestamp} failed, reverting to old block ${prevBlock} with ts ${prevTimestamp}: ${e}`
425872
+ );
425873
+ this.#currentBlock = prevBlock;
425874
+ this.#timestamp = prevTimestamp;
425875
+ } finally {
425876
+ this.#syncing = false;
425877
+ }
424916
425878
  }
424917
425879
  get provider() {
424918
425880
  return this.#provider;
@@ -445634,11 +446596,14 @@ var AccountOpener = class extends SDKConstruct {
445634
446596
  }
445635
446597
  logger2?.debug(
445636
446598
  {
445637
- minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt),
446599
+ minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt, {
446600
+ symbol: true
446601
+ }),
445638
446602
  leverage: leverage.toString(),
445639
446603
  expectedUnderlyingBalance: this.sdk.tokensMeta.formatBN(
445640
446604
  underlying,
445641
- expectedUnderlyingBalance
446605
+ expectedUnderlyingBalance,
446606
+ { symbol: true }
445642
446607
  )
445643
446608
  },
445644
446609
  "looking for open strategy"
@@ -445651,7 +446616,7 @@ var AccountOpener = class extends SDKConstruct {
445651
446616
  });
445652
446617
  if (borrowerBalance < minDebt) {
445653
446618
  this.#logger?.warn(
445654
- `borrower balance in underlying: ${this.sdk.tokensMeta.formatBN(underlying, borrowerBalance)} is less than the minimum debt: ${this.sdk.tokensMeta.formatBN(underlying, minDebt)}`
446619
+ `borrower balance in underlying: ${this.sdk.tokensMeta.formatBN(underlying, borrowerBalance, { symbol: true })} is less than the minimum debt: ${this.sdk.tokensMeta.formatBN(underlying, minDebt, { symbol: true })}`
445655
446620
  );
445656
446621
  if (this.#allowMint) {
445657
446622
  borrowerBalance = await this.#tryMint(
@@ -445662,7 +446627,7 @@ var AccountOpener = class extends SDKConstruct {
445662
446627
  }
445663
446628
  }
445664
446629
  this.#logger?.debug(
445665
- `borrower balance in underlying: ${this.sdk.tokensMeta.formatBN(underlying, borrowerBalance)} ${this.sdk.tokensMeta.symbol(underlying)}`
446630
+ `borrower balance in underlying: ${this.sdk.tokensMeta.formatBN(underlying, borrowerBalance, { symbol: true })}`
445666
446631
  );
445667
446632
  const strategy = await this.sdk.routerFor(cm).findOpenStrategyPath({
445668
446633
  creditManager: cm.creditManager,
@@ -445737,7 +446702,7 @@ var AccountOpener = class extends SDKConstruct {
445737
446702
  amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
445738
446703
  minAvailableByPool[cm.pool] = (minAvailableByPool[cm.pool] ?? 0n) + amount;
445739
446704
  this.#logger?.debug(
445740
- `target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount)} ${this.sdk.tokensMeta.symbol(cm.underlying)} in pool (leverage: ${Number(leverage / PERCENTAGE_FACTOR)}%)`
446705
+ `target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount, { symbol: true })} in pool (leverage: ${Number(leverage / PERCENTAGE_FACTOR)}%)`
445741
446706
  );
445742
446707
  }
445743
446708
  let totalUSD = 0n;
@@ -445751,9 +446716,11 @@ var AccountOpener = class extends SDKConstruct {
445751
446716
  minAvailable,
445752
446717
  pool.availableLiquidity,
445753
446718
  diff
445754
- ].map((v) => this.sdk.tokensMeta.formatBN(pool.underlying, v));
446719
+ ].map(
446720
+ (v) => this.sdk.tokensMeta.formatBN(pool.underlying, v, { symbol: true })
446721
+ );
445755
446722
  this.#logger?.debug(
445756
- `Pool ${this.labelAddress(pool.address)} has ${availableS} liquidity, needs ${diffS} more for the minimum of ${minS} ${this.sdk.tokensMeta.symbol(pool.underlying)}`
446723
+ `Pool ${this.labelAddress(pool.address)} has ${availableS} liquidity, needs ${diffS} more for the minimum of ${minS}`
445757
446724
  );
445758
446725
  if (diff > 0n) {
445759
446726
  deposits.push([pool, diff]);
@@ -445766,7 +446733,15 @@ var AccountOpener = class extends SDKConstruct {
445766
446733
  );
445767
446734
  const depositor = await this.#getDepositor();
445768
446735
  this.#logger?.debug(`depositor: ${depositor.address}`);
445769
- await this.#claimFromFaucet(depositor, "depositor", totalUSD);
446736
+ try {
446737
+ await this.#claimFromFaucet(depositor, "depositor", totalUSD);
446738
+ } catch (e) {
446739
+ if (this.#allowMint) {
446740
+ this.#logger?.error(`depositor failed to claim from faucet: ${e}`);
446741
+ } else {
446742
+ throw e;
446743
+ }
446744
+ }
445770
446745
  const results = [];
445771
446746
  for (const [pool, amount] of deposits) {
445772
446747
  const result = await this.#depositToPool(pool, depositor, amount);
@@ -445784,7 +446759,9 @@ var AccountOpener = class extends SDKConstruct {
445784
446759
  };
445785
446760
  let txHash;
445786
446761
  try {
445787
- const amnt = this.sdk.tokensMeta.formatBN(pool.underlying, amount) + " " + this.sdk.tokensMeta.symbol(pool.underlying);
446762
+ const amnt = this.sdk.tokensMeta.formatBN(pool.underlying, amount, {
446763
+ symbol: true
446764
+ });
445788
446765
  this.#logger?.debug(`depositing ${amnt} into pool ${poolName}`);
445789
446766
  let allowance = await this.#anvil.readContract({
445790
446767
  address: underlying,
@@ -445794,7 +446771,7 @@ var AccountOpener = class extends SDKConstruct {
445794
446771
  });
445795
446772
  if (allowance < amount) {
445796
446773
  this.#logger?.warn(
445797
- `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance)} is less than the amount to deposit: ${amnt}`
446774
+ `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance, { symbol: true })} is less than the amount to deposit: ${amnt}`
445798
446775
  );
445799
446776
  if (this.#allowMint) {
445800
446777
  allowance = await this.#tryMint(
@@ -445805,7 +446782,7 @@ var AccountOpener = class extends SDKConstruct {
445805
446782
  }
445806
446783
  }
445807
446784
  this.#logger?.debug(
445808
- `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance)}`
446785
+ `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance, { symbol: true })}`
445809
446786
  );
445810
446787
  txHash = await this.#anvil.writeContract({
445811
446788
  account: depositor,
@@ -445863,14 +446840,11 @@ var AccountOpener = class extends SDKConstruct {
445863
446840
  * @param amount
445864
446841
  */
445865
446842
  async #tryMint(token, dest, amount) {
445866
- const symbol2 = this.sdk.tokensMeta.symbol(token);
445867
- const amnt = this.sdk.tokensMeta.formatBN(token, amount);
446843
+ const amnt = this.sdk.tokensMeta.formatBN(token, amount, { symbol: true });
445868
446844
  try {
445869
446845
  await this.#mint(token, dest, amount);
445870
446846
  } catch (e) {
445871
- this.#logger?.warn(
445872
- `failed to mint ${amnt} ${symbol2} to ${dest.address}: ${e}`
445873
- );
446847
+ this.#logger?.warn(`failed to mint ${amnt} to ${dest.address}: ${e}`);
445874
446848
  }
445875
446849
  return await this.#anvil.readContract({
445876
446850
  address: token,
@@ -445892,8 +446866,46 @@ var AccountOpener = class extends SDKConstruct {
445892
446866
  await this.#anvil.impersonateAccount({ address: owner });
445893
446867
  await this.#anvil.setBalance({
445894
446868
  address: owner,
445895
- value: parseEther("100")
446869
+ value: parseEther("1000000")
445896
446870
  });
446871
+ try {
446872
+ await this.#mintDirectly(owner, token, amount, dest.address);
446873
+ } catch (e) {
446874
+ this.#logger?.warn(
446875
+ `failed to mint directly ${amnt} ${symbol2} to ${dest.address}: ${e}`
446876
+ );
446877
+ try {
446878
+ await this.#mintAndTransfer(owner, token, amount, dest.address);
446879
+ } catch (e2) {
446880
+ this.#logger?.warn(
446881
+ `failed to mint and transfer ${amnt} ${symbol2} to ${dest.address}: ${e2}`
446882
+ );
446883
+ }
446884
+ }
446885
+ await this.#anvil.stopImpersonatingAccount({ address: owner });
446886
+ }
446887
+ async #mintDirectly(owner, token, amount, dest) {
446888
+ const hash4 = await this.#anvil.writeContract({
446889
+ account: owner,
446890
+ address: token,
446891
+ abi: parseAbi([
446892
+ "function mint(address to, uint256 amount) returns (bool)"
446893
+ ]),
446894
+ functionName: "mint",
446895
+ args: [dest, amount],
446896
+ chain: this.#anvil.chain
446897
+ });
446898
+ this.#logger?.debug(
446899
+ `mint ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} to ${owner} in tx ${hash4}`
446900
+ );
446901
+ const receipt = await this.#anvil.waitForTransactionReceipt({ hash: hash4 });
446902
+ if (receipt.status === "reverted") {
446903
+ throw new Error(
446904
+ `failed to mint ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} to ${owner} in tx ${hash4}: reverted`
446905
+ );
446906
+ }
446907
+ }
446908
+ async #mintAndTransfer(owner, token, amount, dest) {
445897
446909
  let hash4 = await this.#anvil.writeContract({
445898
446910
  account: owner,
445899
446911
  address: token,
@@ -445902,11 +446914,13 @@ var AccountOpener = class extends SDKConstruct {
445902
446914
  args: [amount],
445903
446915
  chain: this.#anvil.chain
445904
446916
  });
445905
- this.#logger?.debug(`mint ${amnt} ${symbol2} to ${owner} in tx ${hash4}`);
446917
+ this.#logger?.debug(
446918
+ `mint ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} to ${owner} in tx ${hash4}`
446919
+ );
445906
446920
  let receipt = await this.#anvil.waitForTransactionReceipt({ hash: hash4 });
445907
446921
  if (receipt.status === "reverted") {
445908
446922
  throw new Error(
445909
- `failed to mint ${amnt} ${symbol2} to ${owner} in tx ${hash4}: reverted`
446923
+ `failed to mint ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} to ${owner} in tx ${hash4}: reverted`
445910
446924
  );
445911
446925
  }
445912
446926
  hash4 = await this.#anvil.writeContract({
@@ -445914,19 +446928,18 @@ var AccountOpener = class extends SDKConstruct {
445914
446928
  address: token,
445915
446929
  abi: ierc20Abi,
445916
446930
  functionName: "transfer",
445917
- args: [dest.address, amount],
446931
+ args: [dest, amount],
445918
446932
  chain: this.#anvil.chain
445919
446933
  });
445920
446934
  this.#logger?.debug(
445921
- `transfer ${amnt} ${symbol2} from ${owner} to ${dest.address} in tx ${hash4}`
446935
+ `transfer ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} from ${owner} to ${dest} in tx ${hash4}`
445922
446936
  );
445923
446937
  receipt = await this.#anvil.waitForTransactionReceipt({ hash: hash4 });
445924
446938
  if (receipt.status === "reverted") {
445925
446939
  throw new Error(
445926
- `failed to transfer ${amnt} ${symbol2} from ${owner} to ${dest.address} in tx ${hash4}: reverted`
446940
+ `failed to transfer ${this.sdk.tokensMeta.formatBN(token, amount, { symbol: true })} from ${owner} to ${dest} in tx ${hash4}: reverted`
445927
446941
  );
445928
446942
  }
445929
- await this.#anvil.stopImpersonatingAccount({ address: owner });
445930
446943
  }
445931
446944
  /**
445932
446945
  * Creates borrower wallet,
@@ -446193,17 +447206,23 @@ var AccountOpener = class extends SDKConstruct {
446193
447206
  const desiredQuota = this.#calcQuota(amount, debt, collateralLT);
446194
447207
  logger2?.debug(
446195
447208
  {
446196
- desiredQuota: this.sdk.tokensMeta.formatBN(underlying, desiredQuota),
447209
+ desiredQuota: this.sdk.tokensMeta.formatBN(underlying, desiredQuota, {
447210
+ symbol: true
447211
+ }),
446197
447212
  availableQuota: this.sdk.tokensMeta.formatBN(
446198
447213
  underlying,
446199
- availableQuota
447214
+ availableQuota,
447215
+ { symbol: true }
446200
447216
  ),
446201
447217
  collateralAmount: this.sdk.tokensMeta.formatBN(
446202
447218
  collateral,
446203
- collateralAmount
447219
+ collateralAmount,
447220
+ { symbol: true }
446204
447221
  ),
446205
- amount: this.sdk.tokensMeta.formatBN(underlying, amount),
446206
- debt: this.sdk.tokensMeta.formatBN(underlying, debt),
447222
+ amount: this.sdk.tokensMeta.formatBN(underlying, amount, {
447223
+ symbol: true
447224
+ }),
447225
+ debt: this.sdk.tokensMeta.formatBN(underlying, debt, { symbol: true }),
446207
447226
  lt: Number(collateralLT)
446208
447227
  },
446209
447228
  "calculated quota"
@@ -454149,7 +455168,7 @@ function getRenderer(opts) {
454149
455168
  var package_default = {
454150
455169
  name: "@gearbox-protocol/deploy-tools",
454151
455170
  description: "Gearbox deploy tools",
454152
- version: "5.46.2",
455171
+ version: "5.46.3",
454153
455172
  homepage: "https://gearbox.fi",
454154
455173
  keywords: [
454155
455174
  "gearbox"
@@ -454189,11 +455208,11 @@ var package_default = {
454189
455208
  "@gearbox-protocol/deploy-tools-node": "0.0.0",
454190
455209
  "@gearbox-protocol/deploy-tools-shared": "0.0.0",
454191
455210
  "@gearbox-protocol/deploy-tools-types": "0.0.0",
454192
- "@gearbox-protocol/sdk": "9.8.0",
455211
+ "@gearbox-protocol/sdk": "9.9.6",
454193
455212
  "@gearbox-protocol/sdk-gov": "2.37.0",
454194
455213
  "@types/lodash-es": "^4.17.12",
454195
455214
  "@types/node": "^24.5.2",
454196
- "@types/react": "^19.1.13",
455215
+ "@types/react": "^19.1.15",
454197
455216
  "@types/react-dom": "^19.1.9",
454198
455217
  abitype: "^1.1.1",
454199
455218
  chalk: "^5.6.2",
@@ -454202,14 +455221,14 @@ var package_default = {
454202
455221
  esbuild: "^0.25.10",
454203
455222
  "lodash-es": "^4.17.21",
454204
455223
  "p-retry": "^7.0.0",
454205
- pino: "^9.11.0",
455224
+ pino: "^9.12.0",
454206
455225
  "pino-pretty": "^13.1.1",
454207
455226
  queue: "^7.0.0",
454208
455227
  react: "^19.1.1",
454209
455228
  "react-dom": "^19.1.1",
454210
455229
  table: "^6.9.0",
454211
- tsx: "^4.20.5",
454212
- viem: "^2.37.8",
455230
+ tsx: "^4.20.6",
455231
+ viem: "^2.37.9",
454213
455232
  yaml: "^2.8.1",
454214
455233
  zod: "^4.1.11"
454215
455234
  }