@gearbox-protocol/deploy-tools 5.46.1 → 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 +1794 -642
  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.7";
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;
142047
141906
  }
141907
+ current = current[key];
142048
141908
  }
142049
- return { keys: keys2, values, target, flat: true };
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;
141925
+ }
141926
+ }
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;
141935
+ }
141936
+ if (typeof current[key] !== "object" || current[key] === null) {
141937
+ return false;
141938
+ }
141939
+ current = current[key];
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];
142057
141957
  }
142058
- current[path12[0]] = value;
142059
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);
142143
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);
142049
+ }
142050
+ }
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);
142144
142056
  }
142145
- wc = null;
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.7";
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);
@@ -188796,6 +188660,7 @@ var require_webSocket = __commonJS({
188796
188660
  });
188797
188661
  const body = {
188798
188662
  jsonrpc: "2.0",
188663
+ id: null,
188799
188664
  method: "net_version",
188800
188665
  params: []
188801
188666
  };
@@ -225139,6 +225004,60 @@ var require_g = __commonJS({
225139
225004
  }
225140
225005
  });
225141
225006
 
225007
+ // ../../node_modules/viem/_cjs/chains/definitions/0gGalileoTestnet.js
225008
+ var require_gGalileoTestnet = __commonJS({
225009
+ "../../node_modules/viem/_cjs/chains/definitions/0gGalileoTestnet.js"(exports2) {
225010
+ "use strict";
225011
+ Object.defineProperty(exports2, "__esModule", { value: true });
225012
+ exports2.zeroGGalileoTestnet = void 0;
225013
+ var defineChain_js_1 = require_defineChain();
225014
+ exports2.zeroGGalileoTestnet = (0, defineChain_js_1.defineChain)({
225015
+ id: 16601,
225016
+ name: "0G Galileo Testnet",
225017
+ nativeCurrency: { name: "A0GI", symbol: "A0GI", decimals: 18 },
225018
+ rpcUrls: {
225019
+ default: {
225020
+ http: ["https://evmrpc-testnet.0g.ai"]
225021
+ }
225022
+ },
225023
+ blockExplorers: {
225024
+ default: {
225025
+ name: "0G BlockChain Explorer",
225026
+ url: "https://chainscan-galileo.0g.ai"
225027
+ }
225028
+ },
225029
+ testnet: true
225030
+ });
225031
+ }
225032
+ });
225033
+
225034
+ // ../../node_modules/viem/_cjs/chains/definitions/0gMainnet.js
225035
+ var require_gMainnet = __commonJS({
225036
+ "../../node_modules/viem/_cjs/chains/definitions/0gMainnet.js"(exports2) {
225037
+ "use strict";
225038
+ Object.defineProperty(exports2, "__esModule", { value: true });
225039
+ exports2.zeroGMainnet = void 0;
225040
+ var defineChain_js_1 = require_defineChain();
225041
+ exports2.zeroGMainnet = (0, defineChain_js_1.defineChain)({
225042
+ id: 16661,
225043
+ name: "0G Mainnet",
225044
+ nativeCurrency: { name: "0G", symbol: "0G", decimals: 18 },
225045
+ rpcUrls: {
225046
+ default: {
225047
+ http: ["https://evmrpc.0g.ai"]
225048
+ }
225049
+ },
225050
+ blockExplorers: {
225051
+ default: {
225052
+ name: "0G BlockChain Explorer",
225053
+ url: "https://chainscan.0g.ai"
225054
+ }
225055
+ },
225056
+ testnet: false
225057
+ });
225058
+ }
225059
+ });
225060
+
225142
225061
  // ../../node_modules/viem/_cjs/chains/definitions/5ireChain.js
225143
225062
  var require_ireChain = __commonJS({
225144
225063
  "../../node_modules/viem/_cjs/chains/definitions/5ireChain.js"(exports2) {
@@ -235114,6 +235033,68 @@ var require_jocTestnet = __commonJS({
235114
235033
  }
235115
235034
  });
235116
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
+
235117
235098
  // ../../node_modules/viem/_cjs/chains/definitions/juneo.js
235118
235099
  var require_juneo = __commonJS({
235119
235100
  "../../node_modules/viem/_cjs/chains/definitions/juneo.js"(exports2) {
@@ -236647,6 +236628,31 @@ var require_liskSepolia = __commonJS({
236647
236628
  }
236648
236629
  });
236649
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
+
236650
236656
  // ../../node_modules/viem/_cjs/chains/definitions/localhost.js
236651
236657
  var require_localhost = __commonJS({
236652
236658
  "../../node_modules/viem/_cjs/chains/definitions/localhost.js"(exports2) {
@@ -237304,6 +237310,37 @@ var require_mantraDuKongEVMTestnet = __commonJS({
237304
237310
  }
237305
237311
  });
237306
237312
 
237313
+ // ../../node_modules/viem/_cjs/chains/definitions/mantraEVM.js
237314
+ var require_mantraEVM = __commonJS({
237315
+ "../../node_modules/viem/_cjs/chains/definitions/mantraEVM.js"(exports2) {
237316
+ "use strict";
237317
+ Object.defineProperty(exports2, "__esModule", { value: true });
237318
+ exports2.mantraEVM = void 0;
237319
+ var defineChain_js_1 = require_defineChain();
237320
+ exports2.mantraEVM = (0, defineChain_js_1.defineChain)({
237321
+ id: 5888,
237322
+ name: "MANTRA EVM",
237323
+ nativeCurrency: {
237324
+ decimals: 18,
237325
+ name: "OM",
237326
+ symbol: "OM"
237327
+ },
237328
+ rpcUrls: {
237329
+ default: {
237330
+ http: ["https://evm.mantrachain.io"],
237331
+ webSocket: ["https://evm.mantrachain.io/ws"]
237332
+ }
237333
+ },
237334
+ blockExplorers: {
237335
+ default: {
237336
+ name: "MANTRA Scan",
237337
+ url: "https://mantrascan.io/mainnet"
237338
+ }
237339
+ }
237340
+ });
237341
+ }
237342
+ });
237343
+
237307
237344
  // ../../node_modules/viem/_cjs/chains/definitions/mapProtocol.js
237308
237345
  var require_mapProtocol = __commonJS({
237309
237346
  "../../node_modules/viem/_cjs/chains/definitions/mapProtocol.js"(exports2) {
@@ -239911,6 +239948,12 @@ var require_plasma = __commonJS({
239911
239948
  name: "PlasmaScan",
239912
239949
  url: "https://plasmascan.to"
239913
239950
  }
239951
+ },
239952
+ contracts: {
239953
+ multicall3: {
239954
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
239955
+ blockCreated: 0
239956
+ }
239914
239957
  }
239915
239958
  });
239916
239959
  }
@@ -239936,7 +239979,13 @@ var require_plasmaDevnet = __commonJS({
239936
239979
  http: ["https://devnet-rpc.plasma.to"]
239937
239980
  }
239938
239981
  },
239939
- testnet: true
239982
+ testnet: true,
239983
+ contracts: {
239984
+ multicall3: {
239985
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
239986
+ blockCreated: 0
239987
+ }
239988
+ }
239940
239989
  });
239941
239990
  }
239942
239991
  });
@@ -239967,6 +240016,12 @@ var require_plasmaTestnet = __commonJS({
239967
240016
  url: "https://testnet.plasmascan.to"
239968
240017
  }
239969
240018
  },
240019
+ contracts: {
240020
+ multicall3: {
240021
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
240022
+ blockCreated: 0
240023
+ }
240024
+ },
239970
240025
  testnet: true
239971
240026
  });
239972
240027
  }
@@ -243428,6 +243483,37 @@ var require_sophonTestnet = __commonJS({
243428
243483
  }
243429
243484
  });
243430
243485
 
243486
+ // ../../node_modules/viem/_cjs/chains/definitions/sova.js
243487
+ var require_sova = __commonJS({
243488
+ "../../node_modules/viem/_cjs/chains/definitions/sova.js"(exports2) {
243489
+ "use strict";
243490
+ Object.defineProperty(exports2, "__esModule", { value: true });
243491
+ exports2.sova = void 0;
243492
+ var defineChain_js_1 = require_defineChain();
243493
+ exports2.sova = (0, defineChain_js_1.defineChain)({
243494
+ id: 100021,
243495
+ name: "Sova",
243496
+ nativeCurrency: {
243497
+ decimals: 18,
243498
+ name: "Ether",
243499
+ symbol: "ETH"
243500
+ },
243501
+ rpcUrls: {
243502
+ default: {
243503
+ http: ["https://rpc.sova.io"]
243504
+ }
243505
+ },
243506
+ blockExplorers: {
243507
+ default: {
243508
+ name: "Sova Block Explorer",
243509
+ url: "hhttps://explorer.sova.io"
243510
+ }
243511
+ },
243512
+ testnet: false
243513
+ });
243514
+ }
243515
+ });
243516
+
243431
243517
  // ../../node_modules/viem/_cjs/chains/definitions/sovaSepolia.js
243432
243518
  var require_sovaSepolia = __commonJS({
243433
243519
  "../../node_modules/viem/_cjs/chains/definitions/sovaSepolia.js"(exports2) {
@@ -246573,7 +246659,7 @@ var require_zetachain = __commonJS({
246573
246659
  blockExplorers: {
246574
246660
  default: {
246575
246661
  name: "ZetaScan",
246576
- url: "https://explorer.zetachain.com"
246662
+ url: "https://zetascan.com"
246577
246663
  }
246578
246664
  },
246579
246665
  testnet: false
@@ -246610,7 +246696,7 @@ var require_zetachainAthensTestnet = __commonJS({
246610
246696
  blockExplorers: {
246611
246697
  default: {
246612
246698
  name: "ZetaScan",
246613
- url: "https://athens.explorer.zetachain.com"
246699
+ url: "https://testnet.zetascan.com"
246614
246700
  }
246615
246701
  },
246616
246702
  testnet: true
@@ -247397,23 +247483,31 @@ var require_chains2 = __commonJS({
247397
247483
  "../../node_modules/viem/_cjs/chains/index.js"(exports2) {
247398
247484
  "use strict";
247399
247485
  Object.defineProperty(exports2, "__esModule", { value: true });
247400
- exports2.baseSepolia = exports2.baseGoerli = exports2.basecampTestnet = exports2.basePreconf = exports2.base = exports2.bahamut = exports2.b3Sepolia = exports2.b3 = exports2.avalancheFuji = exports2.avalanche = exports2.autheoTestnet = exports2.auroria = exports2.auroraTestnet = exports2.aurora = exports2.atletaOlympia = exports2.astarZkyoto = exports2.astarZkEVM = exports2.astar = exports2.assetChainTestnet = exports2.assetChain = exports2.artheraTestnet = exports2.arthera = exports2.artelaTestnet = exports2.areum = exports2.areonNetworkTestnet = exports2.areonNetwork = exports2.arenaz = exports2.arbitrumSepolia = exports2.arbitrumNova = exports2.arbitrumGoerli = exports2.arbitrum = exports2.apexTestnet = exports2.apeChain = exports2.anvil = exports2.ancient8Sepolia = exports2.ancient8 = exports2.alienxHalTestnet = exports2.alienx = exports2.alephZeroTestnet = exports2.alephZero = exports2.aioz = exports2.agungTestnet = exports2.adf = exports2.acria = exports2.acala = exports2.abstractTestnet = exports2.abstract = exports2.abey = exports2.fireChain = exports2.zeroG = void 0;
247401
- exports2.chips = exports2.chiliz = exports2.chang = exports2.celoSepolia = exports2.celoAlfajores = exports2.celo = exports2.canto = exports2.cannon = exports2.bxnTestnet = exports2.bxn = exports2.btrTestnet = exports2.btr = exports2.bsquaredTestnet = exports2.bsquared = exports2.bscTestnet = exports2.bscGreenfield = exports2.bsc = exports2.bronosTestnet = exports2.bronos = exports2.bounceBitTestnet = exports2.bounceBit = exports2.botanixTestnet = exports2.botanix = exports2.boolBetaMainnet = exports2.bobSepolia = exports2.bobaSepolia = exports2.boba = exports2.bob = exports2.blastSepolia = exports2.blast = exports2.bitTorrentTestnet = exports2.bitTorrent = exports2.bitrock = exports2.bitlayerTestnet = exports2.bitlayer = exports2.bitkubTestnet = exports2.bitkub = exports2.bitgert = exports2.birdlayer = exports2.bifrost = exports2.bevmMainnet = exports2.berachainTestnetbArtio = exports2.berachainTestnet = exports2.berachainBepolia = exports2.berachain = exports2.bearNetworkChainTestnet = exports2.bearNetworkChainMainnet = exports2.beamTestnet = exports2.beam = exports2.baseSepoliaPreconf = void 0;
247402
- exports2.edgelessTestnet = exports2.edgeless = 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 = void 0;
247403
- exports2.forta = exports2.formTestnet = 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 = void 0;
247404
- exports2.humanode = exports2.humanityTestnet = 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 = void 0;
247405
- exports2.kroma = exports2.koi = 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 = void 0;
247406
- exports2.meter = exports2.metalL2 = exports2.metadium = 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.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 = void 0;
247407
- exports2.orderlySepolia = exports2.orderly = exports2.optopiaTestnet = 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 = void 0;
247408
- exports2.rootPorcini = exports2.root = exports2.ronin = 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 = void 0;
247409
- exports2.soneium = exports2.somniaTestnet = exports2.snaxTestnet = 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 = void 0;
247410
- exports2.thunderCore = exports2.thetaTestnet = exports2.theta = exports2.that = 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.sophonTestnet = exports2.sophon = exports2.sonicTestnet = exports2.sonicBlazeTestnet = exports2.sonic = exports2.songbirdTestnet = exports2.songbird = exports2.soneiumMinato = void 0;
247411
- exports2.xrSepolia = exports2.xrplevmTestnet = exports2.xrplevmDevnet = exports2.xrOne = 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 = void 0;
247412
- 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 = void 0;
247486
+ exports2.basecampTestnet = exports2.basePreconf = exports2.base = exports2.bahamut = exports2.b3Sepolia = exports2.b3 = exports2.avalancheFuji = exports2.avalanche = exports2.autheoTestnet = exports2.auroria = exports2.auroraTestnet = exports2.aurora = exports2.atletaOlympia = exports2.astarZkyoto = exports2.astarZkEVM = exports2.astar = exports2.assetChainTestnet = exports2.assetChain = exports2.artheraTestnet = exports2.arthera = exports2.artelaTestnet = exports2.areum = exports2.areonNetworkTestnet = exports2.areonNetwork = exports2.arenaz = exports2.arbitrumSepolia = exports2.arbitrumNova = exports2.arbitrumGoerli = exports2.arbitrum = exports2.apexTestnet = exports2.apeChain = exports2.anvil = exports2.ancient8Sepolia = exports2.ancient8 = exports2.alienxHalTestnet = exports2.alienx = exports2.alephZeroTestnet = exports2.alephZero = exports2.aioz = exports2.agungTestnet = exports2.adf = exports2.acria = exports2.acala = exports2.abstractTestnet = exports2.abstract = exports2.abey = exports2.fireChain = exports2.zeroGMainnet = exports2.zeroGGalileoTestnet = exports2.zeroG = void 0;
247487
+ exports2.chang = exports2.celoSepolia = exports2.celoAlfajores = exports2.celo = exports2.canto = exports2.cannon = exports2.bxnTestnet = exports2.bxn = exports2.btrTestnet = exports2.btr = exports2.bsquaredTestnet = exports2.bsquared = exports2.bscTestnet = exports2.bscGreenfield = exports2.bsc = exports2.bronosTestnet = exports2.bronos = exports2.bounceBitTestnet = exports2.bounceBit = exports2.botanixTestnet = exports2.botanix = exports2.boolBetaMainnet = exports2.bobSepolia = exports2.bobaSepolia = exports2.boba = exports2.bob = exports2.blastSepolia = exports2.blast = exports2.bitTorrentTestnet = exports2.bitTorrent = exports2.bitrock = exports2.bitlayerTestnet = exports2.bitlayer = exports2.bitkubTestnet = exports2.bitkub = exports2.bitgert = exports2.birdlayer = exports2.bifrost = exports2.bevmMainnet = exports2.berachainTestnetbArtio = exports2.berachainTestnet = exports2.berachainBepolia = exports2.berachain = exports2.bearNetworkChainTestnet = exports2.bearNetworkChainMainnet = exports2.beamTestnet = exports2.beam = exports2.baseSepoliaPreconf = exports2.baseSepolia = exports2.baseGoerli = void 0;
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;
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;
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;
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;
247413
247499
  var _0g_js_1 = require_g();
247414
247500
  Object.defineProperty(exports2, "zeroG", { enumerable: true, get: function() {
247415
247501
  return _0g_js_1.zeroG;
247416
247502
  } });
247503
+ var _0gGalileoTestnet_js_1 = require_gGalileoTestnet();
247504
+ Object.defineProperty(exports2, "zeroGGalileoTestnet", { enumerable: true, get: function() {
247505
+ return _0gGalileoTestnet_js_1.zeroGGalileoTestnet;
247506
+ } });
247507
+ var _0gMainnet_js_1 = require_gMainnet();
247508
+ Object.defineProperty(exports2, "zeroGMainnet", { enumerable: true, get: function() {
247509
+ return _0gMainnet_js_1.zeroGMainnet;
247510
+ } });
247417
247511
  var _5ireChain_js_1 = require_ireChain();
247418
247512
  Object.defineProperty(exports2, "fireChain", { enumerable: true, get: function() {
247419
247513
  return _5ireChain_js_1.fireChain;
@@ -248496,6 +248590,14 @@ var require_chains2 = __commonJS({
248496
248590
  Object.defineProperty(exports2, "jocTestnet", { enumerable: true, get: function() {
248497
248591
  return jocTestnet_js_1.jocTestnet;
248498
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
+ } });
248499
248601
  var juneo_js_1 = require_juneo();
248500
248602
  Object.defineProperty(exports2, "juneo", { enumerable: true, get: function() {
248501
248603
  return juneo_js_1.juneo;
@@ -248668,6 +248770,10 @@ var require_chains2 = __commonJS({
248668
248770
  Object.defineProperty(exports2, "liskSepolia", { enumerable: true, get: function() {
248669
248771
  return liskSepolia_js_1.liskSepolia;
248670
248772
  } });
248773
+ var loadAlphanet_js_1 = require_loadAlphanet();
248774
+ Object.defineProperty(exports2, "loadAlphanet", { enumerable: true, get: function() {
248775
+ return loadAlphanet_js_1.loadAlphanet;
248776
+ } });
248671
248777
  var localhost_js_1 = require_localhost();
248672
248778
  Object.defineProperty(exports2, "localhost", { enumerable: true, get: function() {
248673
248779
  return localhost_js_1.localhost;
@@ -248744,6 +248850,10 @@ var require_chains2 = __commonJS({
248744
248850
  Object.defineProperty(exports2, "mantraDuKongEVMTestnet", { enumerable: true, get: function() {
248745
248851
  return mantraDuKongEVMTestnet_js_1.mantraDuKongEVMTestnet;
248746
248852
  } });
248853
+ var mantraEVM_js_1 = require_mantraEVM();
248854
+ Object.defineProperty(exports2, "mantraEVM", { enumerable: true, get: function() {
248855
+ return mantraEVM_js_1.mantraEVM;
248856
+ } });
248747
248857
  var mapProtocol_js_1 = require_mapProtocol();
248748
248858
  Object.defineProperty(exports2, "mapProtocol", { enumerable: true, get: function() {
248749
248859
  return mapProtocol_js_1.mapProtocol;
@@ -249444,6 +249554,10 @@ var require_chains2 = __commonJS({
249444
249554
  Object.defineProperty(exports2, "sophonTestnet", { enumerable: true, get: function() {
249445
249555
  return sophonTestnet_js_1.sophonTestnet;
249446
249556
  } });
249557
+ var sova_js_1 = require_sova();
249558
+ Object.defineProperty(exports2, "sova", { enumerable: true, get: function() {
249559
+ return sova_js_1.sova;
249560
+ } });
249447
249561
  var sovaSepolia_js_1 = require_sovaSepolia();
249448
249562
  Object.defineProperty(exports2, "sovaSepolia", { enumerable: true, get: function() {
249449
249563
  return sovaSepolia_js_1.sovaSepolia;
@@ -297177,6 +297291,940 @@ var require_id4 = __commonJS({
297177
297291
  }
297178
297292
  });
297179
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
+
297180
298228
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/ethers/lib.commonjs/hash/namehash.js
297181
298229
  var require_namehash4 = __commonJS({
297182
298230
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/ethers/lib.commonjs/hash/namehash.js"(exports2) {
@@ -297185,7 +298233,7 @@ var require_namehash4 = __commonJS({
297185
298233
  exports2.dnsEncode = exports2.namehash = exports2.isValidName = exports2.ensNormalize = void 0;
297186
298234
  var index_js_1 = require_crypto5();
297187
298235
  var index_js_2 = require_utils31();
297188
- var ens_normalize_1 = require_dist2();
298236
+ var ens_normalize_1 = require_dist5();
297189
298237
  var Zeros = new Uint8Array(32);
297190
298238
  Zeros.fill(0);
297191
298239
  function checkComponent(comp) {
@@ -317513,7 +318561,7 @@ var require_semver4 = __commonJS({
317513
318561
  });
317514
318562
 
317515
318563
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/parse.js
317516
- var require_parse3 = __commonJS({
318564
+ var require_parse2 = __commonJS({
317517
318565
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/parse.js"(exports2, module2) {
317518
318566
  var SemVer = require_semver4();
317519
318567
  var parse4 = (version5, options, throwErrors = false) => {
@@ -317536,7 +318584,7 @@ var require_parse3 = __commonJS({
317536
318584
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/valid.js
317537
318585
  var require_valid3 = __commonJS({
317538
318586
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/valid.js"(exports2, module2) {
317539
- var parse4 = require_parse3();
318587
+ var parse4 = require_parse2();
317540
318588
  var valid = (version5, options) => {
317541
318589
  const v = parse4(version5, options);
317542
318590
  return v ? v.version : null;
@@ -317548,7 +318596,7 @@ var require_valid3 = __commonJS({
317548
318596
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/clean.js
317549
318597
  var require_clean2 = __commonJS({
317550
318598
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/clean.js"(exports2, module2) {
317551
- var parse4 = require_parse3();
318599
+ var parse4 = require_parse2();
317552
318600
  var clean2 = (version5, options) => {
317553
318601
  const s = parse4(version5.trim().replace(/^[=v]+/, ""), options);
317554
318602
  return s ? s.version : null;
@@ -317583,7 +318631,7 @@ var require_inc2 = __commonJS({
317583
318631
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/diff.js
317584
318632
  var require_diff2 = __commonJS({
317585
318633
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/diff.js"(exports2, module2) {
317586
- var parse4 = require_parse3();
318634
+ var parse4 = require_parse2();
317587
318635
  var diff = (version1, version22) => {
317588
318636
  const v1 = parse4(version1, null, true);
317589
318637
  const v2 = parse4(version22, null, true);
@@ -317653,7 +318701,7 @@ var require_patch2 = __commonJS({
317653
318701
  // ../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/prerelease.js
317654
318702
  var require_prerelease2 = __commonJS({
317655
318703
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/prerelease.js"(exports2, module2) {
317656
- var parse4 = require_parse3();
318704
+ var parse4 = require_parse2();
317657
318705
  var prerelease = (version5, options) => {
317658
318706
  const parsed = parse4(version5, options);
317659
318707
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
@@ -317827,7 +318875,7 @@ var require_cmp2 = __commonJS({
317827
318875
  var require_coerce2 = __commonJS({
317828
318876
  "../../node_modules/@ethereum-sourcify/lib-sourcify/node_modules/semver/functions/coerce.js"(exports2, module2) {
317829
318877
  var SemVer = require_semver4();
317830
- var parse4 = require_parse3();
318878
+ var parse4 = require_parse2();
317831
318879
  var { safeRe: re, t } = require_re2();
317832
318880
  var coerce = (version5, options) => {
317833
318881
  if (version5 instanceof SemVer) {
@@ -318862,7 +319910,7 @@ var require_semver5 = __commonJS({
318862
319910
  var constants = require_constants13();
318863
319911
  var SemVer = require_semver4();
318864
319912
  var identifiers = require_identifiers2();
318865
- var parse4 = require_parse3();
319913
+ var parse4 = require_parse2();
318866
319914
  var valid = require_valid3();
318867
319915
  var clean2 = require_clean2();
318868
319916
  var inc = require_inc2();
@@ -319196,7 +320244,7 @@ var require_ipfsHash = __commonJS({
319196
320244
  });
319197
320245
 
319198
320246
  // ../../node_modules/@fairdatasociety/bmt-js/dist/index.js
319199
- var require_dist5 = __commonJS({
320247
+ var require_dist6 = __commonJS({
319200
320248
  "../../node_modules/@fairdatasociety/bmt-js/dist/index.js"(exports, module) {
319201
320249
  !(function(Q, B) {
319202
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();
@@ -320006,7 +321054,7 @@ var require_swarmHash = __commonJS({
320006
321054
  Object.defineProperty(exports2, "__esModule", { value: true });
320007
321055
  exports2.swarmBzzr1Hash = swarmBzzr1Hash;
320008
321056
  exports2.swarmBzzr0Hash = swarmBzzr0Hash;
320009
- var bmt_js_1 = require_dist5();
321057
+ var bmt_js_1 = require_dist6();
320010
321058
  var ethers_1 = require_lib41();
320011
321059
  function swarmBzzr1Hash(file2) {
320012
321060
  const encoder5 = new TextEncoder();
@@ -378017,6 +379065,12 @@ var plasma = /* @__PURE__ */ defineChain({
378017
379065
  name: "PlasmaScan",
378018
379066
  url: "https://plasmascan.to"
378019
379067
  }
379068
+ },
379069
+ contracts: {
379070
+ multicall3: {
379071
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
379072
+ blockCreated: 0
379073
+ }
378020
379074
  }
378021
379075
  });
378022
379076
 
@@ -393069,7 +394123,9 @@ var chains = {
393069
394123
  Plasma: defineChain({
393070
394124
  ...plasma,
393071
394125
  network: "Plasma",
393072
- defaultMarketConfigurators: {},
394126
+ defaultMarketConfigurators: {
394127
+ "0x7a133fbd01736fd076158307c9476cc3877f1af5": "Invariant Group"
394128
+ },
393073
394129
  isPublic: true,
393074
394130
  wellKnownToken: {
393075
394131
  address: "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
@@ -416294,7 +417350,7 @@ function createAdapter(sdk, args) {
416294
417350
  }
416295
417351
  } catch (e) {
416296
417352
  sdk.logger?.warn(
416297
- `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}`
416298
417354
  );
416299
417355
  }
416300
417356
  }
@@ -416649,6 +417705,12 @@ var AbstractPriceFeedContract = class extends BaseContract {
416649
417705
  }
416650
417706
  return this.#answer;
416651
417707
  }
417708
+ updateAnswer(answer) {
417709
+ if (this.#answer === void 0) {
417710
+ throw new PartialPriceFeedInitError(this.#args);
417711
+ }
417712
+ this.#answer = answer;
417713
+ }
416652
417714
  get priceFeedType() {
416653
417715
  return this.contractType;
416654
417716
  }
@@ -422438,22 +423500,36 @@ var RedstoneUpdater = class extends SDKConstruct {
422438
423500
  );
422439
423501
  const parsed = import_protocol.RedstonePayload.parse(toBytes(`0x${dataPayload}`));
422440
423502
  const packagesByDataFeedId = groupDataPackages(parsed.signedDataPackages);
422441
- return dataPackagesIds.map((dataFeedId) => {
423503
+ const result = [];
423504
+ for (const dataFeedId of dataFeedsIds) {
422442
423505
  const signedDataPackages = packagesByDataFeedId[dataFeedId];
422443
423506
  if (!signedDataPackages) {
423507
+ if (this.#ignoreMissingFeeds) {
423508
+ this.#logger?.warn(`cannot find data packages for ${dataFeedId}`);
423509
+ continue;
423510
+ }
422444
423511
  throw new Error(`cannot find data packages for ${dataFeedId}`);
422445
423512
  }
422446
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
+ }
422447
423520
  throw new Error(
422448
423521
  `got ${signedDataPackages.length} data packages for ${dataFeedId}, but expected ${uniqueSignersCount}`
422449
423522
  );
422450
423523
  }
422451
- return getCalldataWithTimestamp(
422452
- dataFeedId,
422453
- signedDataPackages,
422454
- wrapper.getUnsignedMetadata()
423524
+ result.push(
423525
+ getCalldataWithTimestamp(
423526
+ dataFeedId,
423527
+ signedDataPackages,
423528
+ wrapper.getUnsignedMetadata()
423529
+ )
422455
423530
  );
422456
- });
423531
+ }
423532
+ return result;
422457
423533
  }
422458
423534
  };
422459
423535
  function groupDataPackages(signedDataPackages) {
@@ -422702,9 +423778,10 @@ var PriceFeedRegister = class extends SDKConstruct {
422702
423778
  mustGet(address) {
422703
423779
  return this.#feeds.mustGet(address);
422704
423780
  }
422705
- getOrCreate(data) {
423781
+ upsert(data) {
422706
423782
  const existing = this.#feeds.get(data.baseParams.addr);
422707
423783
  if (existing?.loaded) {
423784
+ existing.updateAnswer(data.answer);
422708
423785
  return existing;
422709
423786
  }
422710
423787
  const feed = this.create(data);
@@ -423024,7 +424101,7 @@ var PriceOracleBaseContract = class extends BaseContract {
423024
424101
  }
423025
424102
  for (const node of tree) {
423026
424103
  this.#priceFeedTree.upsert(node.baseParams.addr, node);
423027
- this.sdk.priceFeeds.getOrCreate(node);
424104
+ this.sdk.priceFeeds.upsert(node);
423028
424105
  }
423029
424106
  for (const entry of entries) {
423030
424107
  const { token, priceFeed, reserve, stalenessPeriod } = entry;
@@ -424104,7 +425181,7 @@ var MarketRegister = class extends SDKConstruct {
424104
425181
  }
424105
425182
  return this.#marketFilter;
424106
425183
  }
424107
- async syncState(skipPriceUpdate) {
425184
+ async syncState(ignoreUpdateablePrices) {
424108
425185
  const dirty = this.markets.some((m) => m.dirty) || this.marketConfigurators.some((c) => c.dirty);
424109
425186
  if (dirty) {
424110
425187
  this.#logger?.debug(
@@ -424112,9 +425189,10 @@ var MarketRegister = class extends SDKConstruct {
424112
425189
  );
424113
425190
  await this.#loadMarkets(
424114
425191
  [...this.marketFilter.configurators],
424115
- [...this.marketFilter.pools]
425192
+ [...this.marketFilter.pools],
425193
+ ignoreUpdateablePrices
424116
425194
  );
424117
- } else if (!skipPriceUpdate) {
425195
+ } else if (!ignoreUpdateablePrices) {
424118
425196
  await this.updatePrices();
424119
425197
  }
424120
425198
  }
@@ -424705,7 +425783,11 @@ var GearboxSDK = class _GearboxSDK {
424705
425783
  * @returns
424706
425784
  */
424707
425785
  async syncState(opts) {
424708
- let { blockNumber, timestamp, skipPriceUpdate } = opts ?? {};
425786
+ let {
425787
+ blockNumber,
425788
+ timestamp,
425789
+ ignoreUpdateablePrices = this.#attachConfig?.ignoreUpdateablePrices
425790
+ } = opts ?? {};
424709
425791
  if (this.#attachConfig?.redstone?.historicTimestamp || this.#attachConfig?.pyth?.historicTimestamp) {
424710
425792
  throw new Error(
424711
425793
  "syncState is not supported with redstone or pyth historicTimestamp"
@@ -424722,64 +425804,77 @@ var GearboxSDK = class _GearboxSDK {
424722
425804
  return;
424723
425805
  }
424724
425806
  if (this.#syncing) {
424725
- this.logger?.warn(`cannot sync to ${blockNumber}, already syncing`);
425807
+ this.logger?.warn(
425808
+ `cannot sync to ${blockNumber}, already syncing at ${this.currentBlock}`
425809
+ );
424726
425810
  return;
424727
425811
  }
424728
425812
  this.#syncing = true;
424729
- let delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
424730
- this.logger?.debug(
424731
- `syncing state to block ${blockNumber} (delta ${delta}s )...`
424732
- );
424733
- const watchAddresses = [
424734
- ...Array.from(this.marketRegister.watchAddresses),
424735
- this.addressProvider.address
424736
- ];
424737
- const fromBlock = this.currentBlock + 1n;
424738
- this.logger?.debug(
424739
- `getting logs from ${watchAddresses.length} addresses in [${fromBlock}:${blockNumber}]`
424740
- );
424741
- const logs = await getLogsSafe(this.provider.publicClient, {
424742
- fromBlock,
424743
- toBlock: blockNumber,
424744
- address: watchAddresses
424745
- });
424746
- for (const log2 of logs) {
424747
- const contract = this.contracts.get(log2.address);
424748
- if (contract) {
424749
- const event = parseEventLogs({
424750
- abi: contract.abi,
424751
- logs: [log2]
424752
- })[0];
424753
- contract.processLog(event);
424754
- }
424755
- }
424756
- this.#currentBlock = blockNumber;
424757
- this.#timestamp = timestamp;
424758
- await this.marketRegister.syncState(skipPriceUpdate);
424759
- await this.#hooks.triggerHooks("syncState", { blockNumber, timestamp });
424760
- const pluginsList = TypedObjectUtils.entries(this.plugins);
424761
- const pluginResponse = await Promise.allSettled(
424762
- pluginsList.map(([name, plugin]) => {
424763
- if (plugin.syncState) {
424764
- this.logger?.debug(`syncing plugin ${name}`);
424765
- 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}`);
424766
425863
  }
424767
- return void 0;
424768
- })
424769
- );
424770
- pluginResponse.forEach((r, i) => {
424771
- const [name, plugin] = pluginsList[i];
424772
- if (plugin.syncState && r.status === "fulfilled") {
424773
- this.logger?.debug(`synced plugin ${name}`);
424774
- } else if (plugin.syncState && r.status === "rejected") {
424775
- this.logger?.error(r.reason, `failed to sync plugin ${name}`);
424776
- }
424777
- });
424778
- this.#syncing = false;
424779
- delta = Math.floor(Date.now() / 1e3) - Number(timestamp);
424780
- this.logger?.debug(
424781
- `synced state to block ${blockNumber} (delta ${delta}s)`
424782
- );
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
+ }
424783
425878
  }
424784
425879
  get provider() {
424785
425880
  return this.#provider;
@@ -445501,11 +446596,14 @@ var AccountOpener = class extends SDKConstruct {
445501
446596
  }
445502
446597
  logger2?.debug(
445503
446598
  {
445504
- minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt),
446599
+ minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt, {
446600
+ symbol: true
446601
+ }),
445505
446602
  leverage: leverage.toString(),
445506
446603
  expectedUnderlyingBalance: this.sdk.tokensMeta.formatBN(
445507
446604
  underlying,
445508
- expectedUnderlyingBalance
446605
+ expectedUnderlyingBalance,
446606
+ { symbol: true }
445509
446607
  )
445510
446608
  },
445511
446609
  "looking for open strategy"
@@ -445518,7 +446616,7 @@ var AccountOpener = class extends SDKConstruct {
445518
446616
  });
445519
446617
  if (borrowerBalance < minDebt) {
445520
446618
  this.#logger?.warn(
445521
- `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 })}`
445522
446620
  );
445523
446621
  if (this.#allowMint) {
445524
446622
  borrowerBalance = await this.#tryMint(
@@ -445529,7 +446627,7 @@ var AccountOpener = class extends SDKConstruct {
445529
446627
  }
445530
446628
  }
445531
446629
  this.#logger?.debug(
445532
- `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 })}`
445533
446631
  );
445534
446632
  const strategy = await this.sdk.routerFor(cm).findOpenStrategyPath({
445535
446633
  creditManager: cm.creditManager,
@@ -445604,7 +446702,7 @@ var AccountOpener = class extends SDKConstruct {
445604
446702
  amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
445605
446703
  minAvailableByPool[cm.pool] = (minAvailableByPool[cm.pool] ?? 0n) + amount;
445606
446704
  this.#logger?.debug(
445607
- `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)}%)`
445608
446706
  );
445609
446707
  }
445610
446708
  let totalUSD = 0n;
@@ -445618,9 +446716,11 @@ var AccountOpener = class extends SDKConstruct {
445618
446716
  minAvailable,
445619
446717
  pool.availableLiquidity,
445620
446718
  diff
445621
- ].map((v) => this.sdk.tokensMeta.formatBN(pool.underlying, v));
446719
+ ].map(
446720
+ (v) => this.sdk.tokensMeta.formatBN(pool.underlying, v, { symbol: true })
446721
+ );
445622
446722
  this.#logger?.debug(
445623
- `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}`
445624
446724
  );
445625
446725
  if (diff > 0n) {
445626
446726
  deposits.push([pool, diff]);
@@ -445633,7 +446733,15 @@ var AccountOpener = class extends SDKConstruct {
445633
446733
  );
445634
446734
  const depositor = await this.#getDepositor();
445635
446735
  this.#logger?.debug(`depositor: ${depositor.address}`);
445636
- 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
+ }
445637
446745
  const results = [];
445638
446746
  for (const [pool, amount] of deposits) {
445639
446747
  const result = await this.#depositToPool(pool, depositor, amount);
@@ -445651,7 +446759,9 @@ var AccountOpener = class extends SDKConstruct {
445651
446759
  };
445652
446760
  let txHash;
445653
446761
  try {
445654
- 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
+ });
445655
446765
  this.#logger?.debug(`depositing ${amnt} into pool ${poolName}`);
445656
446766
  let allowance = await this.#anvil.readContract({
445657
446767
  address: underlying,
@@ -445661,7 +446771,7 @@ var AccountOpener = class extends SDKConstruct {
445661
446771
  });
445662
446772
  if (allowance < amount) {
445663
446773
  this.#logger?.warn(
445664
- `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}`
445665
446775
  );
445666
446776
  if (this.#allowMint) {
445667
446777
  allowance = await this.#tryMint(
@@ -445672,7 +446782,7 @@ var AccountOpener = class extends SDKConstruct {
445672
446782
  }
445673
446783
  }
445674
446784
  this.#logger?.debug(
445675
- `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 })}`
445676
446786
  );
445677
446787
  txHash = await this.#anvil.writeContract({
445678
446788
  account: depositor,
@@ -445730,14 +446840,11 @@ var AccountOpener = class extends SDKConstruct {
445730
446840
  * @param amount
445731
446841
  */
445732
446842
  async #tryMint(token, dest, amount) {
445733
- const symbol2 = this.sdk.tokensMeta.symbol(token);
445734
- const amnt = this.sdk.tokensMeta.formatBN(token, amount);
446843
+ const amnt = this.sdk.tokensMeta.formatBN(token, amount, { symbol: true });
445735
446844
  try {
445736
446845
  await this.#mint(token, dest, amount);
445737
446846
  } catch (e) {
445738
- this.#logger?.warn(
445739
- `failed to mint ${amnt} ${symbol2} to ${dest.address}: ${e}`
445740
- );
446847
+ this.#logger?.warn(`failed to mint ${amnt} to ${dest.address}: ${e}`);
445741
446848
  }
445742
446849
  return await this.#anvil.readContract({
445743
446850
  address: token,
@@ -445759,8 +446866,46 @@ var AccountOpener = class extends SDKConstruct {
445759
446866
  await this.#anvil.impersonateAccount({ address: owner });
445760
446867
  await this.#anvil.setBalance({
445761
446868
  address: owner,
445762
- value: parseEther("100")
446869
+ value: parseEther("1000000")
445763
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) {
445764
446909
  let hash4 = await this.#anvil.writeContract({
445765
446910
  account: owner,
445766
446911
  address: token,
@@ -445769,11 +446914,13 @@ var AccountOpener = class extends SDKConstruct {
445769
446914
  args: [amount],
445770
446915
  chain: this.#anvil.chain
445771
446916
  });
445772
- 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
+ );
445773
446920
  let receipt = await this.#anvil.waitForTransactionReceipt({ hash: hash4 });
445774
446921
  if (receipt.status === "reverted") {
445775
446922
  throw new Error(
445776
- `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`
445777
446924
  );
445778
446925
  }
445779
446926
  hash4 = await this.#anvil.writeContract({
@@ -445781,19 +446928,18 @@ var AccountOpener = class extends SDKConstruct {
445781
446928
  address: token,
445782
446929
  abi: ierc20Abi,
445783
446930
  functionName: "transfer",
445784
- args: [dest.address, amount],
446931
+ args: [dest, amount],
445785
446932
  chain: this.#anvil.chain
445786
446933
  });
445787
446934
  this.#logger?.debug(
445788
- `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}`
445789
446936
  );
445790
446937
  receipt = await this.#anvil.waitForTransactionReceipt({ hash: hash4 });
445791
446938
  if (receipt.status === "reverted") {
445792
446939
  throw new Error(
445793
- `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`
445794
446941
  );
445795
446942
  }
445796
- await this.#anvil.stopImpersonatingAccount({ address: owner });
445797
446943
  }
445798
446944
  /**
445799
446945
  * Creates borrower wallet,
@@ -446060,17 +447206,23 @@ var AccountOpener = class extends SDKConstruct {
446060
447206
  const desiredQuota = this.#calcQuota(amount, debt, collateralLT);
446061
447207
  logger2?.debug(
446062
447208
  {
446063
- desiredQuota: this.sdk.tokensMeta.formatBN(underlying, desiredQuota),
447209
+ desiredQuota: this.sdk.tokensMeta.formatBN(underlying, desiredQuota, {
447210
+ symbol: true
447211
+ }),
446064
447212
  availableQuota: this.sdk.tokensMeta.formatBN(
446065
447213
  underlying,
446066
- availableQuota
447214
+ availableQuota,
447215
+ { symbol: true }
446067
447216
  ),
446068
447217
  collateralAmount: this.sdk.tokensMeta.formatBN(
446069
447218
  collateral,
446070
- collateralAmount
447219
+ collateralAmount,
447220
+ { symbol: true }
446071
447221
  ),
446072
- amount: this.sdk.tokensMeta.formatBN(underlying, amount),
446073
- 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 }),
446074
447226
  lt: Number(collateralLT)
446075
447227
  },
446076
447228
  "calculated quota"
@@ -454016,7 +455168,7 @@ function getRenderer(opts) {
454016
455168
  var package_default = {
454017
455169
  name: "@gearbox-protocol/deploy-tools",
454018
455170
  description: "Gearbox deploy tools",
454019
- version: "5.46.1",
455171
+ version: "5.46.3",
454020
455172
  homepage: "https://gearbox.fi",
454021
455173
  keywords: [
454022
455174
  "gearbox"
@@ -454056,11 +455208,11 @@ var package_default = {
454056
455208
  "@gearbox-protocol/deploy-tools-node": "0.0.0",
454057
455209
  "@gearbox-protocol/deploy-tools-shared": "0.0.0",
454058
455210
  "@gearbox-protocol/deploy-tools-types": "0.0.0",
454059
- "@gearbox-protocol/sdk": "9.7.1",
455211
+ "@gearbox-protocol/sdk": "9.9.6",
454060
455212
  "@gearbox-protocol/sdk-gov": "2.37.0",
454061
455213
  "@types/lodash-es": "^4.17.12",
454062
455214
  "@types/node": "^24.5.2",
454063
- "@types/react": "^19.1.13",
455215
+ "@types/react": "^19.1.15",
454064
455216
  "@types/react-dom": "^19.1.9",
454065
455217
  abitype: "^1.1.1",
454066
455218
  chalk: "^5.6.2",
@@ -454069,14 +455221,14 @@ var package_default = {
454069
455221
  esbuild: "^0.25.10",
454070
455222
  "lodash-es": "^4.17.21",
454071
455223
  "p-retry": "^7.0.0",
454072
- pino: "^9.11.0",
455224
+ pino: "^9.12.0",
454073
455225
  "pino-pretty": "^13.1.1",
454074
455226
  queue: "^7.0.0",
454075
455227
  react: "^19.1.1",
454076
455228
  "react-dom": "^19.1.1",
454077
455229
  table: "^6.9.0",
454078
- tsx: "^4.20.5",
454079
- viem: "^2.37.7",
455230
+ tsx: "^4.20.6",
455231
+ viem: "^2.37.9",
454080
455232
  yaml: "^2.8.1",
454081
455233
  zod: "^4.1.11"
454082
455234
  }