@safe-stars/components
Version:
React component library for buying Telegram Stars in Telegram Mini Apps via Safe Stars.
1,780 lines (1,779 loc) • 1.13 MB
JavaScript
import { jsx as te, jsxs as Ne, Fragment as Vw } from "react/jsx-runtime";
import { createContext as jf, useState as Dt, useContext as qf, useEffect as ns } from "react";
import { TonConnectUIProvider as Hw, useTonConnectUI as Kw, useTonWallet as Qw, TonConnectButton as Ww } from "@tonconnect/ui-react";
import { recoverAddress as zw, formatUnits as Yw, http as Ca, fallback as Ed, toHex as Cd, parseUnits as Gw, erc20Abi as Zw } from "viem";
import { WagmiProvider as Xw, useAccount as Jw, useWriteContract as $w, useWaitForTransactionReceipt as eA } from "wagmi";
import { QueryClient as tA, QueryClientProvider as rA } from "@tanstack/react-query";
import { WagmiAdapter as nA } from "@reown/appkit-adapter-wagmi";
import { useLaunchParams as sA } from "@telegram-apps/sdk-react";
import { TonClient as iA, beginCell as oA, Address as bd, toNano as aA } from "@ton/ton";
import { Address as vd, beginCell as cA } from "@ton/core";
const lA = Symbol(), Id = Object.getPrototypeOf, Gl = /* @__PURE__ */ new WeakMap(), uA = (t) => t && (Gl.has(t) ? Gl.get(t) : Id(t) === Object.prototype || Id(t) === Array.prototype), dA = (t) => uA(t) && t[lA] || null, Sd = (t, e = !0) => {
Gl.set(t, e);
}, tc = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1, VITE_ALCHEMY_API_KEY: "AVZOLX4DZCb05tWceBfY3SV3tF3NSNsF", VITE_API_URL: "https://tg-stars.open-lend.io", VITE_TON_API_KEY: "471a2394ca78b1282cd32211ca061f9a6a2dc7852edd99969c0825d429137c68" }, Gc = (t) => typeof t == "object" && t !== null, Qn = /* @__PURE__ */ new WeakMap(), co = /* @__PURE__ */ new WeakSet(), hA = (t = Object.is, e = (l, u) => new Proxy(l, u), r = (l) => Gc(l) && !co.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;
}
}, s = /* @__PURE__ */ new WeakMap(), i = (l, u, d = n) => {
const f = s.get(l);
if ((f == null ? void 0 : f[0]) === u)
return f[1];
const g = Array.isArray(l) ? [] : Object.create(Object.getPrototypeOf(l));
return Sd(g, !0), s.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
), I = {
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 (co.has(w))
Sd(w, !1);
else if (w instanceof Promise)
delete I.value, I.get = () => d(w);
else if (Qn.has(w)) {
const [S, R] = Qn.get(
w
);
I.value = i(
S,
R(),
d
);
}
Object.defineProperty(g, m, I);
}), Object.preventExtensions(g);
}, o = /* @__PURE__ */ new WeakMap(), a = [1, 1], c = (l) => {
if (!Gc(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, I.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);
}, I = /* @__PURE__ */ new Map(), S = (P, K) => {
if ((tc ? "production" : void 0) !== "production" && I.has(P))
throw new Error("prop listener already exists");
if (f.size) {
const j = K[3](E(P));
I.set(P, [K, j]);
} else
I.set(P, [K]);
}, R = (P) => {
var K;
const j = I.get(P);
j && (I.delete(P), (K = j[1]) == null || K.call(j));
}, T = (P) => (f.add(P), f.size === 1 && I.forEach(([j, Q], le) => {
if ((tc ? "production" : void 0) !== "production" && Q)
throw new Error("remove already exists");
const q = j[3](E(le));
I.set(le, [j, q]);
}), () => {
f.delete(P), f.size === 0 && I.forEach(([j, Q], le) => {
Q && (Q(), I.set(le, [j]));
});
}), B = Array.isArray(l) ? [] : Object.create(Object.getPrototypeOf(l)), F = e(B, {
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), Gc(j) && (j = dA(j) || j);
let C = j;
if (j instanceof Promise)
j.then((v) => {
j.status = "fulfilled", j.value = v, g(["resolve", [K], v]);
}).catch((v) => {
j.status = "rejected", j.reason = v, g(["reject", [K], v]);
});
else {
!Qn.has(j) && r(j) && (C = c(j));
const v = !co.has(C) && Qn.get(C);
v && S(K, v);
}
return Reflect.set(P, K, C, Q), g(["set", [K], j, q]), !0;
}
});
o.set(l, F);
const L = [
B,
w,
i,
T
];
return Qn.set(F, L), Reflect.ownKeys(l).forEach((P) => {
const K = Object.getOwnPropertyDescriptor(
l,
P
);
"value" in K && (F[P] = l[P], delete K.value, delete K.writable), Object.defineProperty(B, P, K);
}), F;
}) => [
// public functions
c,
// shared state
Qn,
co,
// internal things
t,
e,
r,
n,
s,
i,
o,
a
], [pA] = hA();
function lt(t = {}) {
return pA(t);
}
function Xt(t, e, r) {
const n = Qn.get(t);
(tc ? "production" : void 0) !== "production" && !n && console.warn("Please use proxy object");
let s;
const i = [], o = n[3];
let a = !1;
const l = o((u) => {
i.push(u), s || (s = Promise.resolve().then(() => {
s = void 0, a && e(i.splice(0));
}));
});
return a = !0, () => {
a = !1, l();
};
}
function Ro(t, e) {
const r = Qn.get(t);
(tc ? "production" : void 0) !== "production" && !r && console.warn("Please use proxy object");
const [n, s, i] = r;
return i(n, s(), e);
}
function Ts(t) {
return co.add(t), t;
}
function $t(t, e, r, n) {
let s = t[e];
return Xt(
t,
() => {
const i = t[e];
Object.is(s, i) || r(s = i);
}
);
}
function fA(t) {
const e = lt({
data: Array.from([]),
has(r) {
return this.data.some((n) => n[0] === r);
},
set(r, n) {
const s = this.data.find((i) => i[0] === r);
return s ? s[1] = n : this.data.push([r, n]), this;
},
get(r) {
var n;
return (n = this.data.find((s) => s[0] === r)) == null ? void 0 : n[1];
},
delete(r) {
const n = this.data.findIndex((s) => s[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 on = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function vc(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
function gA(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 s = Object.getOwnPropertyDescriptor(t, n);
Object.defineProperty(r, n, s.get ? s : {
enumerable: !0,
get: function() {
return t[n];
}
});
}), r;
}
const Vf = {
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 mA = 20, wA = 1, Ps = 1e6, Nd = 1e6, AA = -7, yA = 21, EA = !1, $o = "[big.js] ", Ms = $o + "Invalid ", Ic = Ms + "decimal places", CA = Ms + "rounding mode", Hf = $o + "Division by zero", ze = {}, un = void 0, bA = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
function Kf() {
function t(e) {
var r = this;
if (!(r instanceof t)) return e === un ? Kf() : 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(Ms + "value");
e = e === 0 && 1 / e < 0 ? "-0" : String(e);
}
vA(r, e);
}
r.constructor = t;
}
return t.prototype = ze, t.DP = mA, t.RM = wA, t.NE = AA, t.PE = yA, t.strict = EA, t.roundDown = 0, t.roundHalfUp = 1, t.roundHalfEven = 2, t.roundUp = 3, t;
}
function vA(t, e) {
var r, n, s;
if (!bA.test(e))
throw Error(Ms + "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), s = e.length, n = 0; n < s && e.charAt(n) == "0"; ) ++n;
if (n == s)
t.c = [t.e = 0];
else {
for (; s > 0 && e.charAt(--s) == "0"; ) ;
for (t.e = r - n - 1, t.c = [], r = 0; n <= s; ) t.c[r++] = +e.charAt(n++);
}
return t;
}
function js(t, e, r, n) {
var s = t.c;
if (r === un && (r = t.constructor.RM), r !== 0 && r !== 1 && r !== 2 && r !== 3)
throw Error(CA);
if (e < 1)
n = r === 3 && (n || !!s[0]) || e === 0 && (r === 1 && s[0] >= 5 || r === 2 && (s[0] > 5 || s[0] === 5 && (n || s[1] !== un))), s.length = 1, n ? (t.e = t.e - e + 1, s[0] = 1) : s[0] = t.e = 0;
else if (e < s.length) {
if (n = r === 1 && s[e] >= 5 || r === 2 && (s[e] > 5 || s[e] === 5 && (n || s[e + 1] !== un || s[e - 1] & 1)) || r === 3 && (n || !!s[0]), s.length = e, n) {
for (; ++s[--e] > 9; )
if (s[e] = 0, e === 0) {
++t.e, s.unshift(1);
break;
}
}
for (e = s.length; !s[--e]; ) s.pop();
}
return t;
}
function qs(t, e, r) {
var n = t.e, s = t.c.join(""), i = s.length;
if (e)
s = s.charAt(0) + (i > 1 ? "." + s.slice(1) : "") + (n < 0 ? "e" : "e+") + n;
else if (n < 0) {
for (; ++n; ) s = "0" + s;
s = "0." + s;
} else if (n > 0)
if (++n > i)
for (n -= i; n--; ) s += "0";
else n < i && (s = s.slice(0, n) + "." + s.slice(n));
else i > 1 && (s = s.charAt(0) + "." + s.slice(1));
return t.s < 0 && r ? "-" + s : s;
}
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, s = (t = new r.constructor(t)).c, i = r.s, o = t.s, a = r.e, c = t.e;
if (!n[0] || !s[0]) return n[0] ? i : s[0] ? -o : 0;
if (i != o) return i;
if (e = i < 0, a != c) return a > c ^ e ? 1 : -1;
for (o = (a = n.length) < (c = s.length) ? a : c, i = -1; ++i < o; )
if (n[i] != s[i]) return n[i] > s[i] ^ 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, s = (t = new r(t)).c, i = e.s == t.s ? 1 : -1, o = r.DP;
if (o !== ~~o || o < 0 || o > Ps)
throw Error(Ic);
if (!s[0])
throw Error(Hf);
if (!n[0])
return t.s = i, t.c = [t.e = 0], t;
var a, c, l, u, d, f = s.slice(), g = a = s.length, m = n.length, w = n.slice(0, a), E = w.length, I = t, S = I.c = [], R = 0, T = o + (I.e = e.e - t.e) + 1;
for (I.s = i, i = 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 (s[d] != w[d]) {
u = s[d] > w[d] ? 1 : -1;
break;
}
if (u < 0) {
for (c = E == a ? s : 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] !== un) && i--);
return !S[0] && R != 1 && (S.shift(), I.e--, T--), R > T && js(I, T, r.RM, w[0] !== un), I;
};
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, s, i = this, o = i.constructor, a = i.s, c = (t = new o(t)).s;
if (a != c)
return t.s = -c, i.plus(t);
var l = i.c.slice(), u = i.e, d = t.c, f = t.e;
if (!l[0] || !d[0])
return d[0] ? t.s = -c : l[0] ? t = new o(i) : t.s = 1, t;
if (a = u - f) {
for ((s = a < 0) ? (a = -a, n = l) : (f = u, n = d), n.reverse(), c = a; c--; ) n.push(0);
n.reverse();
} else
for (r = ((s = l.length < d.length) ? l : d).length, a = c = 0; c < r; c++)
if (l[c] != d[c]) {
s = l[c] < d[c];
break;
}
if (s && (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, s = r.s, i = (t = new n(t)).s;
if (!t.c[0])
throw Error(Hf);
return r.s = t.s = 1, e = t.cmp(r) == 1, r.s = s, t.s = i, e ? new n(r) : (s = n.DP, i = n.RM, n.DP = n.RM = 0, r = r.div(t), n.DP = s, n.RM = i, 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, s = this, i = s.constructor;
if (t = new i(t), s.s != t.s)
return t.s = -t.s, s.minus(t);
var o = s.e, a = s.c, c = t.e, l = t.c;
if (!a[0] || !l[0])
return l[0] || (a[0] ? t = new i(s) : t.s = s.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, s = t < 0;
if (t !== ~~t || t < -Nd || t > Nd)
throw Error(Ms + "exponent");
for (s && (t = -t); t & 1 && (n = n.times(e)), t >>= 1, !!t; )
e = e.times(e);
return s ? r.div(n) : n;
};
ze.prec = function(t, e) {
if (t !== ~~t || t < 1 || t > Ps)
throw Error(Ms + "precision");
return js(new this.constructor(this), t, e);
};
ze.round = function(t, e) {
if (t === un) t = 0;
else if (t !== ~~t || t < -Ps || t > Ps)
throw Error(Ic);
return js(new this.constructor(this), t + this.e + 1, e);
};
ze.sqrt = function() {
var t, e, r, n = this, s = n.constructor, i = n.s, o = n.e, a = new s("0.5");
if (!n.c[0]) return new s(n);
if (i < 0)
throw Error($o + "No square root");
i = Math.sqrt(+qs(n, !0, !0)), i === 0 || i === 1 / 0 ? (e = n.c.join(""), e.length + o & 1 || (e += "0"), i = Math.sqrt(e), o = ((o + 1) / 2 | 0) - (o < 0 || o & 1), t = new s((i == 1 / 0 ? "5e" : (i = i.toExponential()).slice(0, i.indexOf("e") + 1)) + o)) : t = new s(i + ""), o = t.e + (s.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 js(t, (s.DP -= 4) + t.e + 1, s.RM);
};
ze.times = ze.mul = function(t) {
var e, r = this, n = r.constructor, s = r.c, i = (t = new n(t)).c, o = s.length, a = i.length, c = r.e, l = t.e;
if (t.s = r.s == t.s ? 1 : -1, !s[0] || !i[0])
return t.c = [t.e = 0], t;
for (t.e = c + l, o < a && (e = s, s = i, i = 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] + i[c] * s[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 !== un) {
if (t !== ~~t || t < 0 || t > Ps)
throw Error(Ic);
for (r = js(new r.constructor(r), ++t, e); r.c.length < t; ) r.c.push(0);
}
return qs(r, !0, !!n);
};
ze.toFixed = function(t, e) {
var r = this, n = r.c[0];
if (t !== un) {
if (t !== ~~t || t < 0 || t > Ps)
throw Error(Ic);
for (r = js(new r.constructor(r), t + r.e + 1, e), t = t + r.e + 1; r.c.length < t; ) r.c.push(0);
}
return qs(r, !1, !!n);
};
ze[Symbol.for("nodejs.util.inspect.custom")] = ze.toJSON = ze.toString = function() {
var t = this, e = t.constructor;
return qs(t, t.e <= e.NE || t.e >= e.PE, !!t.c[0]);
};
ze.toNumber = function() {
var t = +qs(this, !0, !0);
if (this.constructor.strict === !0 && !this.eq(t.toString()))
throw Error($o + "Imprecise conversion");
return t;
};
ze.toPrecision = function(t, e) {
var r = this, n = r.constructor, s = r.c[0];
if (t !== un) {
if (t !== ~~t || t < 1 || t > Ps)
throw Error(Ms + "precision");
for (r = js(new n(r), t, e); r.c.length < t; ) r.c.push(0);
}
return qs(r, t <= r.e || r.e <= n.NE || r.e >= n.PE, !!s);
};
ze.valueOf = function() {
var t = this, e = t.constructor;
if (e.strict === !0)
throw Error($o + "valueOf disallowed");
return qs(t, t.e <= e.NE || t.e >= e.PE, !0);
};
var Gi = Kf();
const IA = {
bigNumber(t) {
return t ? new Gi(t) : new Gi(0);
},
multiply(t, e) {
if (t === void 0 || e === void 0)
return new Gi(0);
const r = new Gi(t), n = new Gi(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, ""));
}
}, SA = [
{
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"
}
]
}
], NA = [
{
type: "function",
name: "approve",
stateMutability: "nonpayable",
inputs: [
{ name: "spender", type: "address" },
{ name: "amount", type: "uint256" }
],
outputs: [{ type: "bool" }]
}
], RA = [
{
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 OA(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
var Qf = { exports: {} }, wt = Qf.exports = {}, nn, sn;
function Zl() {
throw new Error("setTimeout has not been defined");
}
function Xl() {
throw new Error("clearTimeout has not been defined");
}
(function() {
try {
typeof setTimeout == "function" ? nn = setTimeout : nn = Zl;
} catch {
nn = Zl;
}
try {
typeof clearTimeout == "function" ? sn = clearTimeout : sn = Xl;
} catch {
sn = Xl;
}
})();
function Wf(t) {
if (nn === setTimeout)
return setTimeout(t, 0);
if ((nn === Zl || !nn) && setTimeout)
return nn = setTimeout, setTimeout(t, 0);
try {
return nn(t, 0);
} catch {
try {
return nn.call(null, t, 0);
} catch {
return nn.call(this, t, 0);
}
}
}
function TA(t) {
if (sn === clearTimeout)
return clearTimeout(t);
if ((sn === Xl || !sn) && clearTimeout)
return sn = clearTimeout, clearTimeout(t);
try {
return sn(t);
} catch {
try {
return sn.call(null, t);
} catch {
return sn.call(this, t);
}
}
}
var On = [], vi = !1, bs, ja = -1;
function PA() {
!vi || !bs || (vi = !1, bs.length ? On = bs.concat(On) : ja = -1, On.length && zf());
}
function zf() {
if (!vi) {
var t = Wf(PA);
vi = !0;
for (var e = On.length; e; ) {
for (bs = On, On = []; ++ja < e; )
bs && bs[ja].run();
ja = -1, e = On.length;
}
bs = null, vi = !1, TA(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];
On.push(new Yf(t, e)), On.length === 1 && !vi && Wf(zf);
};
function Yf(t, e) {
this.fun = t, this.array = e;
}
Yf.prototype.run = function() {
this.fun.apply(null, this.array);
};
wt.title = "browser";
wt.browser = !0;
wt.env = {};
wt.argv = [];
wt.version = "";
wt.versions = {};
function kn() {
}
wt.on = kn;
wt.addListener = kn;
wt.once = kn;
wt.off = kn;
wt.removeListener = kn;
wt.removeAllListeners = kn;
wt.emit = kn;
wt.prependListener = kn;
wt.prependOnceListener = kn;
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 DA = Qf.exports;
const je = /* @__PURE__ */ OA(DA), $ = {
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"
}, xA = {
getERC20Abi: (t) => $.USDT_CONTRACT_ADDRESSES.includes(t) ? RA : SA,
getSwapAbi: () => NA
}, Fn = {
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, s] = e;
if (!r || !n || !s)
throw new Error(`Invalid CAIP-10 address: ${t}`);
return {
chainNamespace: r,
chainId: n,
address: s
};
},
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 Zc(t) {
if (!t)
throw new Error("Namespace is required for CONNECTED_CONNECTOR_ID");
return `@appkit/${t}:connected_connector_id`;
}
const Ce = {
setItem(t, e) {
lo() && e !== void 0 && localStorage.setItem(t, e);
},
getItem(t) {
if (lo())
return localStorage.getItem(t) || void 0;
},
removeItem(t) {
lo() && localStorage.removeItem(t);
},
clear() {
lo() && localStorage.clear();
}
};
function lo() {
return typeof window < "u" && typeof localStorage < "u";
}
function Tn(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 Xc = (
// 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"
), fk = [
{
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"]
}
], gk = "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: Xc,
SECURE_SITE_DASHBOARD: `${Xc}/dashboard`,
SECURE_SITE_FAVICON: `${Xc}/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 = Zc(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 = Zc(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 = Zc(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 s() {
t(...n);
}
r && clearTimeout(r), r = setTimeout(s, 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, s = r;
n.includes("://") || (n = t.replaceAll("/", "").replaceAll(":", ""), n = `${n}://`), n.endsWith("/") || (n = `${n}/`), s && !(s != null && s.endsWith("/")) && (s = `${s}/`), this.isTelegram() && this.isAndroid() && (e = encodeURIComponent(e));
const i = encodeURIComponent(e);
return {
redirect: `${n}wc?uri=${i}`,
redirectUniversalLink: s ? `${s}wc?uri=${i}` : 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, s;
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 = (s = window == null ? void 0 : window.navigator) == null ? void 0 : s.standalone;
return !!(t || e);
},
async preloadImage(t) {
const e = new Promise((r, n) => {
const s = new Image();
s.onload = r, s.onerror = n, s.crossOrigin = "anonymous", s.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 s = Math.floor(n * 1e3) / 1e3;
s && (r = s.toString());
}
}
return `${r}${e ? ` ${e}` : ""}`;
},
formatBalance2(t, e) {
var n;
let r;
if (t === "0")
r = "0";
else if (typeof t == "string") {
const s = Number(t);
s && (r = (n = s.toString().match(/^-?\d+(?:\.\d{0,3})?/u)) == null ? void 0 : n[0]);
}
return {
value: r ?? "0",
rest: r === "0" ? "000" : "",
symbol: e
};
},
getApiUrl() {
return $.W3M_API_URL;
},
getBlockchainApiUrl() {
return $.BLOCKCHAIN_API_RPC_URL;
},
getAnalyticsUrl() {
return $.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, s) => {
r[n] = s;
}), e.sort((n, s) => {
const i = r[n.id], o = r[s.id];
return i !== void 0 && o !== void 0 ? i - o : i !== 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 };