@safe-stars/components
Version:
React component library for buying Telegram Stars in Telegram Mini Apps via Safe Stars.
1,785 lines • 1.13 MB
JavaScript
import { jsx as X, jsxs as Ne, Fragment as Qw } from "react/jsx-runtime";
import { createContext as Vf, useState as St, useContext as Hf, useEffect as ii } from "react";
import { TonConnectUIProvider as Ww, useTonConnectUI as zw, useTonWallet as Yw, TonConnectButton as Gw } from "@tonconnect/ui-react";
import { recoverAddress as Zw, formatUnits as Xw, http as va, fallback as bd, toHex as vd, parseUnits as Jw, erc20Abi as $w } from "viem";
import { WagmiProvider as eA, useAccount as tA, useWriteContract as rA, useWaitForTransactionReceipt as nA } from "wagmi";
import { QueryClient as iA, QueryClientProvider as sA } from "@tanstack/react-query";
import { WagmiAdapter as oA } from "@reown/appkit-adapter-wagmi";
import { useLaunchParams as aA } from "@telegram-apps/sdk-react";
import { TonClient as cA, beginCell as lA, Address as Id, toNano as uA } from "@ton/ton";
import { Address as Sd, beginCell as dA } from "@ton/core";
const hA = Symbol(), Nd = Object.getPrototypeOf, Xl = /* @__PURE__ */ new WeakMap(), pA = (t) => t && (Xl.has(t) ? Xl.get(t) : Nd(t) === Object.prototype || Nd(t) === Array.prototype), fA = (t) => pA(t) && t[hA] || null, Rd = (t, e = !0) => {
Xl.set(t, e);
}, nc = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1, VITE_API_URL: "https://safestars.pro/api" }, Xc = (t) => typeof t == "object" && t !== null, Qn = /* @__PURE__ */ new WeakMap(), uo = /* @__PURE__ */ new WeakSet(), gA = (t = Object.is, e = (l, u) => new Proxy(l, u), r = (l) => Xc(l) && !uo.has(l) && (Array.isArray(l) || !(Symbol.iterator in l)) && !(l instanceof WeakMap) && !(l instanceof WeakSet) && !(l instanceof Error) && !(l instanceof Number) && !(l instanceof Date) && !(l instanceof String) && !(l instanceof RegExp) && !(l instanceof ArrayBuffer), n = (l) => {
switch (l.status) {
case "fulfilled":
return l.value;
case "rejected":
throw l.reason;
default:
throw l;
}
}, i = /* @__PURE__ */ new WeakMap(), s = (l, u, d = n) => {
const f = i.get(l);
if ((f == null ? void 0 : f[0]) === u)
return f[1];
const g = Array.isArray(l) ? [] : Object.create(Object.getPrototypeOf(l));
return Rd(g, !0), i.set(l, [u, g]), Reflect.ownKeys(l).forEach((m) => {
if (Object.getOwnPropertyDescriptor(g, m))
return;
const w = Reflect.get(l, m), { enumerable: E } = Reflect.getOwnPropertyDescriptor(
l,
m
), v = {
value: w,
enumerable: E,
// This is intentional to avoid copying with proxy-compare.
// It's still non-writable, so it avoids assigning a value.
configurable: !0
};
if (uo.has(w))
Rd(w, !1);
else if (w instanceof Promise)
delete v.value, v.get = () => d(w);
else if (Qn.has(w)) {
const [S, R] = Qn.get(
w
);
v.value = s(
S,
R(),
d
);
}
Object.defineProperty(g, m, v);
}), Object.preventExtensions(g);
}, o = /* @__PURE__ */ new WeakMap(), a = [1, 1], c = (l) => {
if (!Xc(l))
throw new Error("object required");
const u = o.get(l);
if (u)
return u;
let d = a[0];
const f = /* @__PURE__ */ new Set(), g = (P, K = ++a[0]) => {
d !== K && (d = K, f.forEach((j) => j(P, K)));
};
let m = a[1];
const w = (P = ++a[1]) => (m !== P && !f.size && (m = P, v.forEach(([K]) => {
const j = K[1](P);
j > d && (d = j);
})), d), E = (P) => (K, j) => {
const Q = [...K];
Q[1] = [P, ...Q[1]], g(Q, j);
}, v = /* @__PURE__ */ new Map(), S = (P, K) => {
if ((nc ? "production" : void 0) !== "production" && v.has(P))
throw new Error("prop listener already exists");
if (f.size) {
const j = K[3](E(P));
v.set(P, [K, j]);
} else
v.set(P, [K]);
}, R = (P) => {
var K;
const j = v.get(P);
j && (v.delete(P), (K = j[1]) == null || K.call(j));
}, T = (P) => (f.add(P), f.size === 1 && v.forEach(([j, Q], le) => {
if ((nc ? "production" : void 0) !== "production" && Q)
throw new Error("remove already exists");
const q = j[3](E(le));
v.set(le, [j, q]);
}), () => {
f.delete(P), f.size === 0 && v.forEach(([j, Q], le) => {
Q && (Q(), v.set(le, [j]));
});
}), k = Array.isArray(l) ? [] : Object.create(Object.getPrototypeOf(l)), _ = e(k, {
deleteProperty(P, K) {
const j = Reflect.get(P, K);
R(K);
const Q = Reflect.deleteProperty(P, K);
return Q && g(["delete", [K], j]), Q;
},
set(P, K, j, Q) {
const le = Reflect.has(P, K), q = Reflect.get(P, K, Q);
if (le && (t(q, j) || o.has(j) && t(q, o.get(j))))
return !0;
R(K), Xc(j) && (j = fA(j) || j);
let C = j;
if (j instanceof Promise)
j.then((I) => {
j.status = "fulfilled", j.value = I, g(["resolve", [K], I]);
}).catch((I) => {
j.status = "rejected", j.reason = I, g(["reject", [K], I]);
});
else {
!Qn.has(j) && r(j) && (C = c(j));
const I = !uo.has(C) && Qn.get(C);
I && S(K, I);
}
return Reflect.set(P, K, C, Q), g(["set", [K], j, q]), !0;
}
});
o.set(l, _);
const L = [
k,
w,
s,
T
];
return Qn.set(_, L), Reflect.ownKeys(l).forEach((P) => {
const K = Object.getOwnPropertyDescriptor(
l,
P
);
"value" in K && (_[P] = l[P], delete K.value, delete K.writable), Object.defineProperty(k, P, K);
}), _;
}) => [
// public functions
c,
// shared state
Qn,
uo,
// internal things
t,
e,
r,
n,
i,
s,
o,
a
], [mA] = gA();
function lt(t = {}) {
return mA(t);
}
function Xt(t, e, r) {
const n = Qn.get(t);
(nc ? "production" : void 0) !== "production" && !n && console.warn("Please use proxy object");
let i;
const s = [], o = n[3];
let a = !1;
const l = o((u) => {
s.push(u), i || (i = Promise.resolve().then(() => {
i = void 0, a && e(s.splice(0));
}));
});
return a = !0, () => {
a = !1, l();
};
}
function To(t, e) {
const r = Qn.get(t);
(nc ? "production" : void 0) !== "production" && !r && console.warn("Please use proxy object");
const [n, i, s] = r;
return s(n, i(), e);
}
function Pi(t) {
return uo.add(t), t;
}
function $t(t, e, r, n) {
let i = t[e];
return Xt(
t,
() => {
const s = t[e];
Object.is(i, s) || r(i = s);
}
);
}
function wA(t) {
const e = lt({
data: Array.from([]),
has(r) {
return this.data.some((n) => n[0] === r);
},
set(r, n) {
const i = this.data.find((s) => s[0] === r);
return i ? i[1] = n : this.data.push([r, n]), this;
},
get(r) {
var n;
return (n = this.data.find((i) => i[0] === r)) == null ? void 0 : n[1];
},
delete(r) {
const n = this.data.findIndex((i) => i[0] === r);
return n === -1 ? !1 : (this.data.splice(n, 1), !0);
},
clear() {
this.data.splice(0);
},
get size() {
return this.data.length;
},
toJSON() {
return new Map(this.data);
},
forEach(r) {
this.data.forEach((n) => {
r(n[1], n[0], this);
});
},
keys() {
return this.data.map((r) => r[0]).values();
},
values() {
return this.data.map((r) => r[1]).values();
},
entries() {
return new Map(this.data).entries();
},
get [Symbol.toStringTag]() {
return "Map";
},
[Symbol.iterator]() {
return this.entries();
}
});
return Object.defineProperties(e, {
data: {
enumerable: !1
},
size: {
enumerable: !1
},
toJSON: {
enumerable: !1
}
}), Object.seal(e), e;
}
var sn = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Sc(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
function AA(t) {
if (t.__esModule) return t;
var e = t.default;
if (typeof e == "function") {
var r = function n() {
return this instanceof n ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);
};
r.prototype = e.prototype;
} else r = {};
return Object.defineProperty(r, "__esModule", { value: !0 }), Object.keys(t).forEach(function(n) {
var i = Object.getOwnPropertyDescriptor(t, n);
Object.defineProperty(r, n, i.get ? i : {
enumerable: !0,
get: function() {
return t[n];
}
});
}), r;
}
const Kf = {
caipNetworkIdToNumber(t) {
return t ? Number(t.split(":")[1]) : void 0;
},
parseEvmChainId(t) {
return typeof t == "string" ? this.caipNetworkIdToNumber(t) : t;
},
getNetworksByNamespace(t, e) {
return (t == null ? void 0 : t.filter((r) => r.chainNamespace === e)) || [];
},
getFirstNetworkByNamespace(t, e) {
return this.getNetworksByNamespace(t, e)[0];
}
};
var yA = 20, EA = 1, Di = 1e6, Od = 1e6, CA = -7, bA = 21, vA = !1, ta = "[big.js] ", ji = ta + "Invalid ", Nc = ji + "decimal places", IA = ji + "rounding mode", Qf = ta + "Division by zero", ze = {}, ln = void 0, SA = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
function Wf() {
function t(e) {
var r = this;
if (!(r instanceof t)) return e === ln ? Wf() : new t(e);
if (e instanceof t)
r.s = e.s, r.e = e.e, r.c = e.c.slice();
else {
if (typeof e != "string") {
if (t.strict === !0 && typeof e != "bigint")
throw TypeError(ji + "value");
e = e === 0 && 1 / e < 0 ? "-0" : String(e);
}
NA(r, e);
}
r.constructor = t;
}
return t.prototype = ze, t.DP = yA, t.RM = EA, t.NE = CA, t.PE = bA, t.strict = vA, t.roundDown = 0, t.roundHalfUp = 1, t.roundHalfEven = 2, t.roundUp = 3, t;
}
function NA(t, e) {
var r, n, i;
if (!SA.test(e))
throw Error(ji + "number");
for (t.s = e.charAt(0) == "-" ? (e = e.slice(1), -1) : 1, (r = e.indexOf(".")) > -1 && (e = e.replace(".", "")), (n = e.search(/e/i)) > 0 ? (r < 0 && (r = n), r += +e.slice(n + 1), e = e.substring(0, n)) : r < 0 && (r = e.length), i = e.length, n = 0; n < i && e.charAt(n) == "0"; ) ++n;
if (n == i)
t.c = [t.e = 0];
else {
for (; i > 0 && e.charAt(--i) == "0"; ) ;
for (t.e = r - n - 1, t.c = [], r = 0; n <= i; ) t.c[r++] = +e.charAt(n++);
}
return t;
}
function qi(t, e, r, n) {
var i = t.c;
if (r === ln && (r = t.constructor.RM), r !== 0 && r !== 1 && r !== 2 && r !== 3)
throw Error(IA);
if (e < 1)
n = r === 3 && (n || !!i[0]) || e === 0 && (r === 1 && i[0] >= 5 || r === 2 && (i[0] > 5 || i[0] === 5 && (n || i[1] !== ln))), i.length = 1, n ? (t.e = t.e - e + 1, i[0] = 1) : i[0] = t.e = 0;
else if (e < i.length) {
if (n = r === 1 && i[e] >= 5 || r === 2 && (i[e] > 5 || i[e] === 5 && (n || i[e + 1] !== ln || i[e - 1] & 1)) || r === 3 && (n || !!i[0]), i.length = e, n) {
for (; ++i[--e] > 9; )
if (i[e] = 0, e === 0) {
++t.e, i.unshift(1);
break;
}
}
for (e = i.length; !i[--e]; ) i.pop();
}
return t;
}
function Vi(t, e, r) {
var n = t.e, i = t.c.join(""), s = i.length;
if (e)
i = i.charAt(0) + (s > 1 ? "." + i.slice(1) : "") + (n < 0 ? "e" : "e+") + n;
else if (n < 0) {
for (; ++n; ) i = "0" + i;
i = "0." + i;
} else if (n > 0)
if (++n > s)
for (n -= s; n--; ) i += "0";
else n < s && (i = i.slice(0, n) + "." + i.slice(n));
else s > 1 && (i = i.charAt(0) + "." + i.slice(1));
return t.s < 0 && r ? "-" + i : i;
}
ze.abs = function() {
var t = new this.constructor(this);
return t.s = 1, t;
};
ze.cmp = function(t) {
var e, r = this, n = r.c, i = (t = new r.constructor(t)).c, s = r.s, o = t.s, a = r.e, c = t.e;
if (!n[0] || !i[0]) return n[0] ? s : i[0] ? -o : 0;
if (s != o) return s;
if (e = s < 0, a != c) return a > c ^ e ? 1 : -1;
for (o = (a = n.length) < (c = i.length) ? a : c, s = -1; ++s < o; )
if (n[s] != i[s]) return n[s] > i[s] ^ e ? 1 : -1;
return a == c ? 0 : a > c ^ e ? 1 : -1;
};
ze.div = function(t) {
var e = this, r = e.constructor, n = e.c, i = (t = new r(t)).c, s = e.s == t.s ? 1 : -1, o = r.DP;
if (o !== ~~o || o < 0 || o > Di)
throw Error(Nc);
if (!i[0])
throw Error(Qf);
if (!n[0])
return t.s = s, t.c = [t.e = 0], t;
var a, c, l, u, d, f = i.slice(), g = a = i.length, m = n.length, w = n.slice(0, a), E = w.length, v = t, S = v.c = [], R = 0, T = o + (v.e = e.e - t.e) + 1;
for (v.s = s, s = T < 0 ? 0 : T, f.unshift(0); E++ < a; ) w.push(0);
do {
for (l = 0; l < 10; l++) {
if (a != (E = w.length))
u = a > E ? 1 : -1;
else
for (d = -1, u = 0; ++d < a; )
if (i[d] != w[d]) {
u = i[d] > w[d] ? 1 : -1;
break;
}
if (u < 0) {
for (c = E == a ? i : f; E; ) {
if (w[--E] < c[E]) {
for (d = E; d && !w[--d]; ) w[d] = 9;
--w[d], w[E] += 10;
}
w[E] -= c[E];
}
for (; !w[0]; ) w.shift();
} else
break;
}
S[R++] = u ? l : ++l, w[0] && u ? w[E] = n[g] || 0 : w = [n[g]];
} while ((g++ < m || w[0] !== ln) && s--);
return !S[0] && R != 1 && (S.shift(), v.e--, T--), R > T && qi(v, T, r.RM, w[0] !== ln), v;
};
ze.eq = function(t) {
return this.cmp(t) === 0;
};
ze.gt = function(t) {
return this.cmp(t) > 0;
};
ze.gte = function(t) {
return this.cmp(t) > -1;
};
ze.lt = function(t) {
return this.cmp(t) < 0;
};
ze.lte = function(t) {
return this.cmp(t) < 1;
};
ze.minus = ze.sub = function(t) {
var e, r, n, i, s = this, o = s.constructor, a = s.s, c = (t = new o(t)).s;
if (a != c)
return t.s = -c, s.plus(t);
var l = s.c.slice(), u = s.e, d = t.c, f = t.e;
if (!l[0] || !d[0])
return d[0] ? t.s = -c : l[0] ? t = new o(s) : t.s = 1, t;
if (a = u - f) {
for ((i = a < 0) ? (a = -a, n = l) : (f = u, n = d), n.reverse(), c = a; c--; ) n.push(0);
n.reverse();
} else
for (r = ((i = l.length < d.length) ? l : d).length, a = c = 0; c < r; c++)
if (l[c] != d[c]) {
i = l[c] < d[c];
break;
}
if (i && (n = l, l = d, d = n, t.s = -t.s), (c = (r = d.length) - (e = l.length)) > 0) for (; c--; ) l[e++] = 0;
for (c = e; r > a; ) {
if (l[--r] < d[r]) {
for (e = r; e && !l[--e]; ) l[e] = 9;
--l[e], l[r] += 10;
}
l[r] -= d[r];
}
for (; l[--c] === 0; ) l.pop();
for (; l[0] === 0; )
l.shift(), --f;
return l[0] || (t.s = 1, l = [f = 0]), t.c = l, t.e = f, t;
};
ze.mod = function(t) {
var e, r = this, n = r.constructor, i = r.s, s = (t = new n(t)).s;
if (!t.c[0])
throw Error(Qf);
return r.s = t.s = 1, e = t.cmp(r) == 1, r.s = i, t.s = s, e ? new n(r) : (i = n.DP, s = n.RM, n.DP = n.RM = 0, r = r.div(t), n.DP = i, n.RM = s, this.minus(r.times(t)));
};
ze.neg = function() {
var t = new this.constructor(this);
return t.s = -t.s, t;
};
ze.plus = ze.add = function(t) {
var e, r, n, i = this, s = i.constructor;
if (t = new s(t), i.s != t.s)
return t.s = -t.s, i.minus(t);
var o = i.e, a = i.c, c = t.e, l = t.c;
if (!a[0] || !l[0])
return l[0] || (a[0] ? t = new s(i) : t.s = i.s), t;
if (a = a.slice(), e = o - c) {
for (e > 0 ? (c = o, n = l) : (e = -e, n = a), n.reverse(); e--; ) n.push(0);
n.reverse();
}
for (a.length - l.length < 0 && (n = l, l = a, a = n), e = l.length, r = 0; e; a[e] %= 10) r = (a[--e] = a[e] + l[e] + r) / 10 | 0;
for (r && (a.unshift(r), ++c), e = a.length; a[--e] === 0; ) a.pop();
return t.c = a, t.e = c, t;
};
ze.pow = function(t) {
var e = this, r = new e.constructor("1"), n = r, i = t < 0;
if (t !== ~~t || t < -Od || t > Od)
throw Error(ji + "exponent");
for (i && (t = -t); t & 1 && (n = n.times(e)), t >>= 1, !!t; )
e = e.times(e);
return i ? r.div(n) : n;
};
ze.prec = function(t, e) {
if (t !== ~~t || t < 1 || t > Di)
throw Error(ji + "precision");
return qi(new this.constructor(this), t, e);
};
ze.round = function(t, e) {
if (t === ln) t = 0;
else if (t !== ~~t || t < -Di || t > Di)
throw Error(Nc);
return qi(new this.constructor(this), t + this.e + 1, e);
};
ze.sqrt = function() {
var t, e, r, n = this, i = n.constructor, s = n.s, o = n.e, a = new i("0.5");
if (!n.c[0]) return new i(n);
if (s < 0)
throw Error(ta + "No square root");
s = Math.sqrt(+Vi(n, !0, !0)), s === 0 || s === 1 / 0 ? (e = n.c.join(""), e.length + o & 1 || (e += "0"), s = Math.sqrt(e), o = ((o + 1) / 2 | 0) - (o < 0 || o & 1), t = new i((s == 1 / 0 ? "5e" : (s = s.toExponential()).slice(0, s.indexOf("e") + 1)) + o)) : t = new i(s + ""), o = t.e + (i.DP += 4);
do
r = t, t = a.times(r.plus(n.div(r)));
while (r.c.slice(0, o).join("") !== t.c.slice(0, o).join(""));
return qi(t, (i.DP -= 4) + t.e + 1, i.RM);
};
ze.times = ze.mul = function(t) {
var e, r = this, n = r.constructor, i = r.c, s = (t = new n(t)).c, o = i.length, a = s.length, c = r.e, l = t.e;
if (t.s = r.s == t.s ? 1 : -1, !i[0] || !s[0])
return t.c = [t.e = 0], t;
for (t.e = c + l, o < a && (e = i, i = s, s = e, l = o, o = a, a = l), e = new Array(l = o + a); l--; ) e[l] = 0;
for (c = a; c--; ) {
for (a = 0, l = o + c; l > c; )
a = e[l] + s[c] * i[l - c - 1] + a, e[l--] = a % 10, a = a / 10 | 0;
e[l] = a;
}
for (a ? ++t.e : e.shift(), c = e.length; !e[--c]; ) e.pop();
return t.c = e, t;
};
ze.toExponential = function(t, e) {
var r = this, n = r.c[0];
if (t !== ln) {
if (t !== ~~t || t < 0 || t > Di)
throw Error(Nc);
for (r = qi(new r.constructor(r), ++t, e); r.c.length < t; ) r.c.push(0);
}
return Vi(r, !0, !!n);
};
ze.toFixed = function(t, e) {
var r = this, n = r.c[0];
if (t !== ln) {
if (t !== ~~t || t < 0 || t > Di)
throw Error(Nc);
for (r = qi(new r.constructor(r), t + r.e + 1, e), t = t + r.e + 1; r.c.length < t; ) r.c.push(0);
}
return Vi(r, !1, !!n);
};
ze[Symbol.for("nodejs.util.inspect.custom")] = ze.toJSON = ze.toString = function() {
var t = this, e = t.constructor;
return Vi(t, t.e <= e.NE || t.e >= e.PE, !!t.c[0]);
};
ze.toNumber = function() {
var t = +Vi(this, !0, !0);
if (this.constructor.strict === !0 && !this.eq(t.toString()))
throw Error(ta + "Imprecise conversion");
return t;
};
ze.toPrecision = function(t, e) {
var r = this, n = r.constructor, i = r.c[0];
if (t !== ln) {
if (t !== ~~t || t < 1 || t > Di)
throw Error(ji + "precision");
for (r = qi(new n(r), t, e); r.c.length < t; ) r.c.push(0);
}
return Vi(r, t <= r.e || r.e <= n.NE || r.e >= n.PE, !!i);
};
ze.valueOf = function() {
var t = this, e = t.constructor;
if (e.strict === !0)
throw Error(ta + "valueOf disallowed");
return Vi(t, t.e <= e.NE || t.e >= e.PE, !0);
};
var Xs = Wf();
const RA = {
bigNumber(t) {
return t ? new Xs(t) : new Xs(0);
},
multiply(t, e) {
if (t === void 0 || e === void 0)
return new Xs(0);
const r = new Xs(t), n = new Xs(e);
return r.times(n);
},
formatNumberToLocalString(t, e = 2) {
return t === void 0 ? "0.00" : typeof t == "number" ? t.toLocaleString("en-US", {
maximumFractionDigits: e,
minimumFractionDigits: e
}) : parseFloat(t).toLocaleString("en-US", {
maximumFractionDigits: e,
minimumFractionDigits: e
});
},
parseLocalStringToNumber(t) {
return t === void 0 ? 0 : parseFloat(t.replace(/,/gu, ""));
}
}, OA = [
{
type: "function",
name: "transfer",
stateMutability: "nonpayable",
inputs: [
{
name: "_to",
type: "address"
},
{
name: "_value",
type: "uint256"
}
],
outputs: [
{
name: "",
type: "bool"
}
]
},
{
type: "function",
name: "transferFrom",
stateMutability: "nonpayable",
inputs: [
{
name: "_from",
type: "address"
},
{
name: "_to",
type: "address"
},
{
name: "_value",
type: "uint256"
}
],
outputs: [
{
name: "",
type: "bool"
}
]
}
], TA = [
{
type: "function",
name: "approve",
stateMutability: "nonpayable",
inputs: [
{ name: "spender", type: "address" },
{ name: "amount", type: "uint256" }
],
outputs: [{ type: "bool" }]
}
], PA = [
{
type: "function",
name: "transfer",
stateMutability: "nonpayable",
inputs: [
{
name: "recipient",
type: "address"
},
{
name: "amount",
type: "uint256"
}
],
outputs: []
},
{
type: "function",
name: "transferFrom",
stateMutability: "nonpayable",
inputs: [
{
name: "sender",
type: "address"
},
{
name: "recipient",
type: "address"
},
{
name: "amount",
type: "uint256"
}
],
outputs: [
{
name: "",
type: "bool"
}
]
}
];
function DA(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
var zf = { exports: {} }, wt = zf.exports = {}, rn, nn;
function Jl() {
throw new Error("setTimeout has not been defined");
}
function $l() {
throw new Error("clearTimeout has not been defined");
}
(function() {
try {
typeof setTimeout == "function" ? rn = setTimeout : rn = Jl;
} catch {
rn = Jl;
}
try {
typeof clearTimeout == "function" ? nn = clearTimeout : nn = $l;
} catch {
nn = $l;
}
})();
function Yf(t) {
if (rn === setTimeout)
return setTimeout(t, 0);
if ((rn === Jl || !rn) && setTimeout)
return rn = setTimeout, setTimeout(t, 0);
try {
return rn(t, 0);
} catch {
try {
return rn.call(null, t, 0);
} catch {
return rn.call(this, t, 0);
}
}
}
function xA(t) {
if (nn === clearTimeout)
return clearTimeout(t);
if ((nn === $l || !nn) && clearTimeout)
return nn = clearTimeout, clearTimeout(t);
try {
return nn(t);
} catch {
try {
return nn.call(null, t);
} catch {
return nn.call(this, t);
}
}
}
var Rn = [], Ss = !1, vi, Va = -1;
function _A() {
!Ss || !vi || (Ss = !1, vi.length ? Rn = vi.concat(Rn) : Va = -1, Rn.length && Gf());
}
function Gf() {
if (!Ss) {
var t = Yf(_A);
Ss = !0;
for (var e = Rn.length; e; ) {
for (vi = Rn, Rn = []; ++Va < e; )
vi && vi[Va].run();
Va = -1, e = Rn.length;
}
vi = null, Ss = !1, xA(t);
}
}
wt.nextTick = function(t) {
var e = new Array(arguments.length - 1);
if (arguments.length > 1)
for (var r = 1; r < arguments.length; r++)
e[r - 1] = arguments[r];
Rn.push(new Zf(t, e)), Rn.length === 1 && !Ss && Yf(Gf);
};
function Zf(t, e) {
this.fun = t, this.array = e;
}
Zf.prototype.run = function() {
this.fun.apply(null, this.array);
};
wt.title = "browser";
wt.browser = !0;
wt.env = {};
wt.argv = [];
wt.version = "";
wt.versions = {};
function Bn() {
}
wt.on = Bn;
wt.addListener = Bn;
wt.once = Bn;
wt.off = Bn;
wt.removeListener = Bn;
wt.removeAllListeners = Bn;
wt.emit = Bn;
wt.prependListener = Bn;
wt.prependOnceListener = Bn;
wt.listeners = function(t) {
return [];
};
wt.binding = function(t) {
throw new Error("process.binding is not supported");
};
wt.cwd = function() {
return "/";
};
wt.chdir = function(t) {
throw new Error("process.chdir is not supported");
};
wt.umask = function() {
return 0;
};
var BA = zf.exports;
const je = /* @__PURE__ */ DA(BA), ee = {
WC_NAME_SUFFIX: ".reown.id",
WC_NAME_SUFFIX_LEGACY: ".wcn.id",
BLOCKCHAIN_API_RPC_URL: "https://rpc.walletconnect.org",
PULSE_API_URL: "https://pulse.walletconnect.org",
W3M_API_URL: "https://api.web3modal.org",
CONNECTOR_ID: {
WALLET_CONNECT: "walletConnect",
INJECTED: "injected",
WALLET_STANDARD: "announced",
COINBASE: "coinbaseWallet",
COINBASE_SDK: "coinbaseWalletSDK",
SAFE: "safe",
LEDGER: "ledger",
OKX: "okx",
EIP6963: "eip6963",
AUTH: "ID_AUTH"
},
CONNECTOR_NAMES: {
AUTH: "Auth"
},
AUTH_CONNECTOR_SUPPORTED_CHAINS: ["eip155", "solana"],
LIMITS: {
PENDING_TRANSACTIONS: 99
},
CHAIN: {
EVM: "eip155",
SOLANA: "solana",
POLKADOT: "polkadot",
BITCOIN: "bip122"
},
CHAIN_NAME_MAP: {
eip155: "EVM Networks",
solana: "Solana",
polkadot: "Polkadot",
bip122: "Bitcoin",
cosmos: "Cosmos"
},
ADAPTER_TYPES: {
BITCOIN: "bitcoin",
SOLANA: "solana",
WAGMI: "wagmi",
ETHERS: "ethers",
ETHERS5: "ethers5"
},
USDT_CONTRACT_ADDRESSES: [
"0xdac17f958d2ee523a2206206994597c13d831ec7",
"0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7",
"0x919C1c267BC06a7039e03fcc2eF738525769109c",
"0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
"0x55d398326f99059fF775485246999027B3197955",
"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"
],
HTTP_STATUS_CODES: {
SERVICE_UNAVAILABLE: 503,
FORBIDDEN: 403
},
UNSUPPORTED_NETWORK_NAME: "Unknown Network",
SECURE_SITE_SDK_ORIGIN: (typeof je < "u" && typeof je.env < "u" ? je.env.NEXT_PUBLIC_SECURE_SITE_ORIGIN : void 0) || "https://secure.walletconnect.org"
}, kA = {
getERC20Abi: (t) => ee.USDT_CONTRACT_ADDRESSES.includes(t) ? PA : OA,
getSwapAbi: () => TA
}, Un = {
validateCaipAddress(t) {
var e;
if (((e = t.split(":")) == null ? void 0 : e.length) !== 3)
throw new Error("Invalid CAIP Address");
return t;
},
parseCaipAddress(t) {
const e = t.split(":");
if (e.length !== 3)
throw new Error(`Invalid CAIP-10 address: ${t}`);
const [r, n, i] = e;
if (!r || !n || !i)
throw new Error(`Invalid CAIP-10 address: ${t}`);
return {
chainNamespace: r,
chainId: n,
address: i
};
},
parseCaipNetworkId(t) {
const e = t.split(":");
if (e.length !== 2)
throw new Error(`Invalid CAIP-2 network id: ${t}`);
const [r, n] = e;
if (!r || !n)
throw new Error(`Invalid CAIP-2 network id: ${t}`);
return {
chainNamespace: r,
chainId: n
};
}
}, ve = {
WALLET_ID: "@appkit/wallet_id",
WALLET_NAME: "@appkit/wallet_name",
SOLANA_WALLET: "@appkit/solana_wallet",
SOLANA_CAIP_CHAIN: "@appkit/solana_caip_chain",
ACTIVE_CAIP_NETWORK_ID: "@appkit/active_caip_network_id",
CONNECTED_SOCIAL: "@appkit/connected_social",
CONNECTED_SOCIAL_USERNAME: "@appkit-wallet/SOCIAL_USERNAME",
RECENT_WALLETS: "@appkit/recent_wallets",
DEEPLINK_CHOICE: "WALLETCONNECT_DEEPLINK_CHOICE",
ACTIVE_NAMESPACE: "@appkit/active_namespace",
CONNECTED_NAMESPACES: "@appkit/connected_namespaces",
CONNECTION_STATUS: "@appkit/connection_status",
SIWX_AUTH_TOKEN: "@appkit/siwx-auth-token",
SIWX_NONCE_TOKEN: "@appkit/siwx-nonce-token",
TELEGRAM_SOCIAL_PROVIDER: "@appkit/social_provider",
NATIVE_BALANCE_CACHE: "@appkit/native_balance_cache",
PORTFOLIO_CACHE: "@appkit/portfolio_cache",
ENS_CACHE: "@appkit/ens_cache",
IDENTITY_CACHE: "@appkit/identity_cache",
PREFERRED_ACCOUNT_TYPES: "@appkit/preferred_account_types",
CONNECTIONS: "@appkit/connections"
};
function Jc(t) {
if (!t)
throw new Error("Namespace is required for CONNECTED_CONNECTOR_ID");
return `@appkit/${t}:connected_connector_id`;
}
const Ce = {
setItem(t, e) {
ho() && e !== void 0 && localStorage.setItem(t, e);
},
getItem(t) {
if (ho())
return localStorage.getItem(t) || void 0;
},
removeItem(t) {
ho() && localStorage.removeItem(t);
},
clear() {
ho() && localStorage.clear();
}
};
function ho() {
return typeof window < "u" && typeof localStorage < "u";
}
function On(t, e) {
return e === "light" ? {
"--w3m-accent": (t == null ? void 0 : t["--w3m-accent"]) || "hsla(231, 100%, 70%, 1)",
"--w3m-background": "#fff"
} : {
"--w3m-accent": (t == null ? void 0 : t["--w3m-accent"]) || "hsla(230, 100%, 67%, 1)",
"--w3m-background": "#121313"
};
}
const $c = (
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
(typeof je < "u" && typeof je.env < "u" ? je.env.NEXT_PUBLIC_SECURE_SITE_ORIGIN : void 0) || "https://secure.walletconnect.org"
), Pk = [
{
label: "Coinbase",
name: "coinbase",
feeRange: "1-2%",
url: "",
supportedChains: ["eip155"]
},
{
label: "Meld.io",
name: "meld",
feeRange: "1-2%",
url: "https://meldcrypto.com",
supportedChains: ["eip155", "solana"]
}
], Dk = "WXETMuFUQmqqybHuRkSgxv:25B8LJHSfpG6LVjR2ytU5Cwh7Z4Sch2ocoU", xt = {
FOUR_MINUTES_MS: 24e4,
TEN_SEC_MS: 1e4,
FIVE_SEC_MS: 5e3,
THREE_SEC_MS: 3e3,
ONE_SEC_MS: 1e3,
SECURE_SITE: $c,
SECURE_SITE_DASHBOARD: `${$c}/dashboard`,
SECURE_SITE_FAVICON: `${$c}/images/favicon.png`,
RESTRICTED_TIMEZONES: [
"ASIA/SHANGHAI",
"ASIA/URUMQI",
"ASIA/CHONGQING",
"ASIA/HARBIN",
"ASIA/KASHGAR",
"ASIA/MACAU",
"ASIA/HONG_KONG",
"ASIA/MACAO",
"ASIA/BEIJING",
"ASIA/HARBIN"
],
/**
* Network name to Coinbase Pay SDK chain name map object
* @see supported chain names on Coinbase for Pay SDK: https://github.com/coinbase/cbpay-js/blob/d4bda2c05c4d5917c8db6a05476b603546046394/src/types/onramp.ts
*/
WC_COINBASE_PAY_SDK_CHAINS: [
"ethereum",
"arbitrum",
"polygon",
"berachain",
"avalanche-c-chain",
"optimism",
"celo",
"base"
],
WC_COINBASE_PAY_SDK_FALLBACK_CHAIN: "ethereum",
WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP: {
Ethereum: "ethereum",
"Arbitrum One": "arbitrum",
Polygon: "polygon",
Berachain: "berachain",
Avalanche: "avalanche-c-chain",
"OP Mainnet": "optimism",
Celo: "celo",
Base: "base"
},
WC_COINBASE_ONRAMP_APP_ID: "bf18c88d-495a-463b-b249-0b9d3656cf5e",
SWAP_SUGGESTED_TOKENS: [
"ETH",
"UNI",
"1INCH",
"AAVE",
"SOL",
"ADA",
"AVAX",
"DOT",
"LINK",
"NITRO",
"GAIA",
"MILK",
"TRX",
"NEAR",
"GNO",
"WBTC",
"DAI",
"WETH",
"USDC",
"USDT",
"ARB",
"BAL",
"BICO",
"CRV",
"ENS",
"MATIC",
"OP"
],
SWAP_POPULAR_TOKENS: [
"ETH",
"UNI",
"1INCH",
"AAVE",
"SOL",
"ADA",
"AVAX",
"DOT",
"LINK",
"NITRO",
"GAIA",
"MILK",
"TRX",
"NEAR",
"GNO",
"WBTC",
"DAI",
"WETH",
"USDC",
"USDT",
"ARB",
"BAL",
"BICO",
"CRV",
"ENS",
"MATIC",
"OP",
"METAL",
"DAI",
"CHAMP",
"WOLF",
"SALE",
"BAL",
"BUSD",
"MUST",
"BTCpx",
"ROUTE",
"HEX",
"WELT",
"amDAI",
"VSQ",
"VISION",
"AURUM",
"pSP",
"SNX",
"VC",
"LINK",
"CHP",
"amUSDT",
"SPHERE",
"FOX",
"GIDDY",
"GFC",
"OMEN",
"OX_OLD",
"DE",
"WNT"
],
BALANCE_SUPPORTED_CHAINS: ["eip155", "solana"],
SWAP_SUPPORTED_NETWORKS: [
// Ethereum'
"eip155:1",
// Arbitrum One'
"eip155:42161",
// Optimism'
"eip155:10",
// ZKSync Era'
"eip155:324",
// Base'
"eip155:8453",
// BNB Smart Chain'
"eip155:56",
// Polygon'
"eip155:137",
// Gnosis'
"eip155:100",
// Avalanche'
"eip155:43114",
// Fantom'
"eip155:250",
// Klaytn'
"eip155:8217",
// Aurora
"eip155:1313161554"
],
NAMES_SUPPORTED_CHAIN_NAMESPACES: ["eip155"],
ONRAMP_SUPPORTED_CHAIN_NAMESPACES: ["eip155", "solana"],
ACTIVITY_ENABLED_CHAIN_NAMESPACES: ["eip155"],
NATIVE_TOKEN_ADDRESS: {
eip155: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
solana: "So11111111111111111111111111111111111111111",
polkadot: "0x",
bip122: "0x",
cosmos: "0x"
},
CONVERT_SLIPPAGE_TOLERANCE: 1,
CONNECT_LABELS: {
MOBILE: "Open and continue in the wallet app",
WEB: "Open and continue in the wallet app"
},
SEND_SUPPORTED_NAMESPACES: ["eip155", "solana"],
DEFAULT_FEATURES: {
swaps: !0,
onramp: !0,
receive: !0,
send: !0,
email: !0,
emailShowWallets: !0,
socials: [
"google",
"x",
"discord",
"farcaster",
"github",
"apple",
"facebook"
],
connectorTypeOrder: [
"walletConnect",
"recent",
"injected",
"featured",
"custom",
"external",
"recommended"
],
history: !0,
analytics: !0,
allWallets: !0,
legalCheckbox: !1,
smartSessions: !1,
collapseWallets: !1,
walletFeaturesOrder: ["onramp", "swaps", "receive", "send"],
connectMethodsOrder: void 0,
pay: !1
},
DEFAULT_ACCOUNT_TYPES: {
bip122: "payment",
eip155: "smartAccount",
polkadot: "eoa",
solana: "eoa"
},
ADAPTER_TYPES: {
UNIVERSAL: "universal",
SOLANA: "solana",
WAGMI: "wagmi",
ETHERS: "ethers",
ETHERS5: "ethers5",
BITCOIN: "bitcoin"
}
}, ce = {
// Cache expiry in milliseconds
cacheExpiry: {
portfolio: 3e4,
nativeBalance: 3e4,
ens: 3e5,
identity: 3e5
},
isCacheExpired(t, e) {
return Date.now() - t > e;
},
getActiveNetworkProps() {
const t = ce.getActiveNamespace(), e = ce.getActiveCaipNetworkId(), r = e ? e.split(":")[1] : void 0, n = r ? isNaN(Number(r)) ? r : Number(r) : void 0;
return {
namespace: t,
caipNetworkId: e,
chainId: n
};
},
setWalletConnectDeepLink({ name: t, href: e }) {
try {
Ce.setItem(ve.DEEPLINK_CHOICE, JSON.stringify({ href: e, name: t }));
} catch {
console.info("Unable to set WalletConnect deep link");
}
},
getWalletConnectDeepLink() {
try {
const t = Ce.getItem(ve.DEEPLINK_CHOICE);
if (t)
return JSON.parse(t);
} catch {
console.info("Unable to get WalletConnect deep link");
}
},
deleteWalletConnectDeepLink() {
try {
Ce.removeItem(ve.DEEPLINK_CHOICE);
} catch {
console.info("Unable to delete WalletConnect deep link");
}
},
setActiveNamespace(t) {
try {
Ce.setItem(ve.ACTIVE_NAMESPACE, t);
} catch {
console.info("Unable to set active namespace");
}
},
setActiveCaipNetworkId(t) {
try {
Ce.setItem(ve.ACTIVE_CAIP_NETWORK_ID, t), ce.setActiveNamespace(t.split(":")[0]);
} catch {
console.info("Unable to set active caip network id");
}
},
getActiveCaipNetworkId() {
try {
return Ce.getItem(ve.ACTIVE_CAIP_NETWORK_ID);
} catch {
console.info("Unable to get active caip network id");
return;
}
},
deleteActiveCaipNetworkId() {
try {
Ce.removeItem(ve.ACTIVE_CAIP_NETWORK_ID);
} catch {
console.info("Unable to delete active caip network id");
}
},
deleteConnectedConnectorId(t) {
try {
const e = Jc(t);
Ce.removeItem(e);
} catch {
console.info("Unable to delete connected connector id");
}
},
setAppKitRecent(t) {
try {
const e = ce.getRecentWallets();
e.find((n) => n.id === t.id) || (e.unshift(t), e.length > 2 && e.pop(), Ce.setItem(ve.RECENT_WALLETS, JSON.stringify(e)));
} catch {
console.info("Unable to set AppKit recent");
}
},
getRecentWallets() {
try {
const t = Ce.getItem(ve.RECENT_WALLETS);
return t ? JSON.parse(t) : [];
} catch {
console.info("Unable to get AppKit recent");
}
return [];
},
setConnectedConnectorId(t, e) {
try {
const r = Jc(t);
Ce.setItem(r, e);
} catch {
console.info("Unable to set Connected Connector Id");
}
},
getActiveNamespace() {
try {
return Ce.getItem(ve.ACTIVE_NAMESPACE);
} catch {
console.info("Unable to get active namespace");
}
},
getConnectedConnectorId(t) {
if (t)
try {
const e = Jc(t);
return Ce.getItem(e);
} catch {
console.info("Unable to get connected connector id in namespace ", t);
}
},
setConnectedSocialProvider(t) {
try {
Ce.setItem(ve.CONNECTED_SOCIAL, t);
} catch {
console.info("Unable to set connected social provider");
}
},
getConnectedSocialProvider() {
try {
return Ce.getItem(ve.CONNECTED_SOCIAL);
} catch {
console.info("Unable to get connected social provider");
}
},
deleteConnectedSocialProvider() {
try {
Ce.removeItem(ve.CONNECTED_SOCIAL);
} catch {
console.info("Unable to delete connected social provider");
}
},
getConnectedSocialUsername() {
try {
return Ce.getItem(ve.CONNECTED_SOCIAL_USERNAME);
} catch {
console.info("Unable to get connected social username");
}
},
getStoredActiveCaipNetworkId() {
var r;
const t = Ce.getItem(ve.ACTIVE_CAIP_NETWORK_ID);
return (r = t == null ? void 0 : t.split(":")) == null ? void 0 : r[1];
},
setConnectionStatus(t) {
try {
Ce.setItem(ve.CONNECTION_STATUS, t);
} catch {
console.info("Unable to set connection status");
}
},
getConnectionStatus() {
try {
return Ce.getItem(ve.CONNECTION_STATUS);
} catch {
return;
}
},
getConnectedNamespaces() {
try {
const t = Ce.getItem(ve.CONNECTED_NAMESPACES);
return t != null && t.length ? t.split(",") : [];
} catch {
return [];
}
},
setConnectedNamespaces(t) {
try {
const e = Array.from(new Set(t));
Ce.setItem(ve.CONNECTED_NAMESPACES, e.join(","));
} catch {
console.info("Unable to set namespaces in storage");
}
},
addConnectedNamespace(t) {
try {
const e = ce.getConnectedNamespaces();
e.includes(t) || (e.push(t), ce.setConnectedNamespaces(e));
} catch {
console.info("Unable to add connected namespace");
}
},
removeConnectedNamespace(t) {
try {
const e = ce.getConnectedNamespaces(), r = e.indexOf(t);
r > -1 && (e.splice(r, 1), ce.setConnectedNamespaces(e));
} catch {
console.info("Unable to remove connected namespace");
}
},
getTelegramSocialProvider() {
try {
return Ce.getItem(ve.TELEGRAM_SOCIAL_PROVIDER);
} catch {
return console.info("Unable to get telegram social provider"), null;
}
},
setTelegramSocialProvider(t) {
try {
Ce.setItem(ve.TELEGRAM_SOCIAL_PROVIDER, t);
} catch {
console.info("Unable to set telegram social provider");
}
},
removeTelegramSocialProvider() {
try {
Ce.removeItem(ve.TELEGRAM_SOCIAL_PROVIDER);
} catch {
console.info("Unable to remove telegram social provider");
}
},
getBalanceCache() {
let t = {};
try {
const e = Ce.getItem(ve.PORTFOLIO_CACHE);
t = e ? JSON.parse(e) : {};
} catch {
console.info("Unable to get balance cache");
}
return t;
},
removeAddressFromBalanceCache(t) {
try {
const e = ce.getBalanceCache();
Ce.setItem(ve.PORTFOLIO_CACHE, JSON.stringify({ ...e, [t]: void 0 }));
} catch {
console.info("Unable to remove address from balance cache", t);
}
},
getBalanceCacheForCaipAddress(t) {
try {
const r = ce.getBalanceCache()[t];
if (r && !this.isCacheExpired(r.timestamp, this.cacheExpiry.portfolio))
return r.balance;
ce.removeAddressFromBalanceCache(t);
} catch {
console.info("Unable to get balance cache for address", t);
}
},
updateBalanceCache(t) {
try {
const e = ce.getBalanceCache();
e[t.caipAddress] = t, Ce.setItem(ve.PORTFOLIO_CACHE, JSON.stringify(e));
} catch {
console.info("Unable to update balance cache", t);
}
},
getNativeBalanceCache() {
let t = {};
try {
const e = Ce.getItem(ve.NATIVE_BALANCE_CACHE);
t = e ? JSON.parse(e) : {};
} catch {
console.info("Unable to get balance cache");
}
return t;
},
removeAddressFromNativeBalanceCache(t) {
try {
const e = ce.getBalanceCache();
Ce.setItem(ve.NATIVE_BALANCE_CACHE, JSON.stringify({ ...e, [t]: void 0 }));
} catch {
console.info("Unable to remove address from balance cache", t);
}
},
getNativeBalanceCacheForCaipAddress(t) {
try {
const r = ce.getNativeBalanceCache()[t];
if (r && !this.isCacheExpired(r.timestamp, this.cacheExpiry.nativeBalance))
return r;
console.info("Discarding cache for address", t), ce.removeAddressFromBalanceCache(t);
} catch {
console.info("Unable to get balance cache for address", t);
}
},
updateNativeBalanceCache(t) {
try {
const e = ce.getNativeBalanceCache();
e[t.caipAddress] = t, Ce.setItem(ve.NATIVE_BALANCE_CACHE, JSON.stringify(e));
} catch {
console.info("Unable to update balance cache", t);
}
},
getEnsCache() {
let t = {};
try {
const e = Ce.getItem(ve.ENS_CACHE);
t = e ? JSON.parse(e) : {};
} catch {
console.info("Unable to get ens name cache");
}
return t;
},
getEnsFromCacheForAddress(t) {
try {
const r = ce.getEnsCache()[t];
if (r && !this.isCacheExpired(r.timestamp, this.cacheExpiry.ens))
return r.ens;
ce.removeEnsFromCache(t);
} catch {
console.info("Unable to get ens name from cache", t);
}
},
updateEnsCache(t) {
try {
const e = ce.getEnsCache();
e[t.address] = t, Ce.setItem(ve.ENS_CACHE, JSON.stringify(e));
} catch {
console.info("Unable to update ens name cache", t);
}
},
removeEnsFromCache(t) {
try {
const e = ce.getEnsCache();
Ce.setItem(ve.ENS_CACHE, JSON.stringify({ ...e, [t]: void 0 }));
} catch {
console.info("Unable to remove ens name from cache", t);
}
},
getIdentityCache() {
let t = {};
try {
const e = Ce.getItem(ve.IDENTITY_CACHE);
t = e ? JSON.parse(e) : {};
} catch {
console.info("Unable to get identity cache");
}
return t;
},
getIdentityFromCacheForAddress(t) {
try {
const r = ce.getIdentityCache()[t];
if (r && !this.isCacheExpired(r.timestamp, this.cacheExpiry.identity))
return r.identity;
ce.removeIdentityFromCache(t);
} catch {
console.info("Unable to get identity from cache", t);
}
},
updateIdentityCache(t) {
try {
const e = ce.getIdentityCache();
e[t.address] = {
identity: t.identity,
timestamp: t.timestamp
}, Ce.setItem(ve.IDENTITY_CACHE, JSON.stringify(e));
} catch {
console.info("Unable to update identity cache", t);
}
},
removeIdentityFromCache(t) {
try {
const e = ce.getIdentityCache();
Ce.setItem(ve.IDENTITY_CACHE, JSON.stringify({ ...e, [t]: void 0 }));
} catch {
console.info("Unable to remove identity from cache", t);
}
},
clearAddressCache() {
try {
Ce.removeItem(ve.PORTFOLIO_CACHE), Ce.removeItem(ve.NATIVE_BALANCE_CACHE), Ce.removeItem(ve.ENS_CACHE), Ce.removeItem(ve.IDENTITY_CACHE);
} catch {
console.info("Unable to clear address cache");
}
},
setPreferredAccountTypes(t) {
try {
Ce.setItem(ve.PREFERRED_ACCOUNT_TYPES, JSON.stringify(t));
} catch {
console.info("Unable to set preferred account types", t);
}
},
getPreferredAccountTypes() {
try {
const t = Ce.getItem(ve.PREFERRED_ACCOUNT_TYPES);
return t ? JSON.parse(t) : {};
} catch {
console.info("Unable to get preferred account types");
}
return {};
},
setConnections(t, e) {
try {
const r = {
...ce.getConnections(),
[e]: t
};
Ce.setItem(ve.CONNECTIONS, JSON.stringify(r));
} catch (r) {
console.error("Unable to sync connections to storage", r);
}
},
getConnections() {
try {
const t = Ce.getItem(ve.CONNECTIONS);
return t ? JSON.parse(t) : {};
} catch (t) {
return console.error("Unable to get connections from storage", t), {};
}
}
}, Ae = {
isMobile() {
var t;
return this.isClient() ? !!((t = window == null ? void 0 : window.matchMedia("(pointer:coarse)")) != null && t.matches || /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)) : !1;
},
checkCaipNetwork(t, e = "") {
return t == null ? void 0 : t.caipNetworkId.toLocaleLowerCase().includes(e.toLowerCase());
},
isAndroid() {
if (!this.isMobile())
return !1;
const t = window == null ? void 0 : window.navigator.userAgent.toLowerCase();
return Ae.isMobile() && t.includes("android");
},
isIos() {
if (!this.isMobile())
return !1;
const t = window == null ? void 0 : window.navigator.userAgent.toLowerCase();
return t.includes("iphone") || t.includes("ipad");
},
isSafari() {
return this.isClient() ? (window == null ? void 0 : window.navigator.userAgent.toLowerCase()).includes("safari") : !1;
},
isClient() {
return typeof window < "u";
},
isPairingExpired(t) {
return t ? t - Date.now() <= xt.TEN_SEC_MS : !0;
},
isAllowedRetry(t, e = xt.ONE_SEC_MS) {
return Date.now() - t >= e;
},
copyToClopboard(t) {
navigator.clipboard.writeText(t);
},
isIframe() {
try {
return (window == null ? void 0 : window.self) !== (window == null ? void 0 : window.top);
} catch {
return !1;
}
},
getPairingExpiry() {
return Date.now() + xt.FOUR_MINUTES_MS;
},
getNetworkId(t) {
return t == null ? void 0 : t.split(":")[1];
},
getPlainAddress(t) {
return t == null ? void 0 : t.split(":")[2];
},
async wait(t) {
return new Promise((e) => {
setTimeout(e, t);
});
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
debounce(t, e = 500) {
let r;
return (...n) => {
function i() {
t(...n);
}
r && clearTimeout(r), r = setTimeout(i, e);
};
},
isHttpUrl(t) {
return t.startsWith("http://") || t.startsWith("https://");
},
formatNativeUrl(t, e, r = null) {
if (Ae.isHttpUrl(t))
return this.formatUniversalUrl(t, e);
let n = t, i = r;
n.includes("://") || (n = t.replaceAll("/", "").replaceAll(":", ""), n = `${n}://`), n.endsWith("/") || (n = `${n}/`), i && !(i != null && i.endsWith("/")) && (i = `${i}/`), this.isTelegram() && this.isAndroid() && (e = encodeURIComponent(e));
const s = encodeURIComponent(e);
return {
redirect: `${n}wc?uri=${s}`,
redirectUniversalLink: i ? `${i}wc?uri=${s}` : void 0,
href: n
};
},
formatUniversalUrl(t, e) {
if (!Ae.isHttpUrl(t))
return this.formatNativeUrl(t, e);
let r = t;
r.endsWith("/") || (r = `${r}/`);
const n = encodeURIComponent(e);
return {
redirect: `${r}wc?uri=${n}`,
href: r
};
},
getOpenTargetForPlatform(t) {
return t === "popupWindow" ? t : this.isTelegram() ? ce.getTelegramSocialProvider() ? "_top" : "_blank" : t;
},
openHref(t, e, r) {
window == null || window.open(t, this.getOpenTargetForPlatform(e), r || "noreferrer noopener");
},
returnOpenHref(t, e, r) {
return window == null ? void 0 : window.open(t, this.getOpenTargetForPlatform(e), r || "noreferrer noopener");
},
isTelegram() {
return typeof window < "u" && // eslint-disable-next-line @typescript-eslint/no-explicit-any
(!!window.TelegramWebviewProxy || // eslint-disable-next-line @typescript-eslint/no-explicit-any
!!window.Telegram || // eslint-disable-next-line @typescript-eslint/no-explicit-any
!!window.TelegramWebviewProxyProto);
},
isPWA() {
var r, n, i;
if (typeof window > "u")
return !1;
const t = (n = (r = window.matchMedia) == null ? void 0 : r.call(window, "(display-mode: standalone)")) == null ? void 0 : n.matches, e = (i = window == null ? void 0 : window.navigator) == null ? void 0 : i.standalone;
return !!(t || e);
},
async preloadImage(t) {
const e = new Promise((r, n) => {
const i = new Image();
i.onload = r, i.onerror = n, i.crossOrigin = "anonymous", i.src = t;
});
return Promise.race([e, Ae.wait(2e3)]);
},
formatBalance(t, e) {
let r = "0.000";
if (typeof t == "string") {
const n = Number(t);
if (n) {
const i = Math.floor(n * 1e3) / 1e3;
i && (r = i.toString());
}
}
return `${r}${e ? ` ${e}` : ""}`;
},
formatBalance2(t, e) {
var n;
let r;
if (t === "0")
r = "0";
else if (typeof t == "string") {
const i = Number(t);
i && (r = (n = i.toString().match(/^-?\d+(?:\.\d{0,3})?/u)) == null ? void 0 : n[0]);
}
return {
value: r ?? "0",
rest: r === "0" ? "000" : "",
symbol: e
};
},
getApiUrl() {
return ee.W3M_API_URL;
},
getBlockchainApiUrl() {
return ee.BLOCKCHAIN_API_RPC_URL;
},
getAnalyticsUrl() {
return ee.PULSE_API_URL;
},
getUUID() {
return crypto != null && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu, (t) => {
const e = Math.random() * 16 | 0;
return (t === "x" ? e : e & 3 | 8).toString(16);
});
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
parseError(t) {
var e, r;
return typeof t == "string" ? t : typeof ((r = (e = t == null ? void 0 : t.issues) == null ? void 0 : e[0]) == null ? void 0 : r.message) == "string" ? t.issues[0].message : t instanceof Error ? t.message : "Unknown error";
},
sortRequestedNetworks(t, e = []) {
const r = {};
return e && t && (t.forEach((n, i) => {
r[n] = i;
}), e.sort((n, i) => {
const s = r[n.id], o = r[i.id];
return s !== void 0 && o !== void 0 ? s - o : s !== void 0 ? -1 : o !== void 0 ? 1 : 0;
})), e;
},
calculateBalance(t) {
let e = 0;
for (const r of t)
e += r.value ?? 0;
return e;
},
formatTokenBalance(t) {
const e = t.toFixed(2), [r, n] = e.split(".");
return { dollars: r, pennies: n };
},
isAddress(t, e = "eip155") {
switch (e) {
case "eip155":
if (/^(?:0x)?[0-9a-f]{40}$/iu.test(t)) {
if (/^(?:0x)?