@cartridge/controller 0.7.8 → 0.7.9-alpha.2

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 (76) hide show
  1. package/.turbo/turbo-build$colon$deps.log +49 -59
  2. package/.turbo/turbo-build.log +45 -63
  3. package/.turbo/turbo-format.log +39 -0
  4. package/dist/account.d.ts +35 -0
  5. package/dist/constants.d.ts +3 -0
  6. package/dist/controller.d.ts +3 -6
  7. package/dist/errors.d.ts +3 -0
  8. package/dist/icon.d.ts +1 -0
  9. package/dist/iframe/base.d.ts +26 -0
  10. package/dist/iframe/index.d.ts +3 -0
  11. package/dist/iframe/keychain.d.ts +10 -0
  12. package/dist/iframe/profile.d.ts +12 -0
  13. package/dist/index.d.ts +6 -67
  14. package/dist/index.js +1124 -1064
  15. package/dist/index.js.map +1 -1
  16. package/dist/lookup.d.ts +2 -4
  17. package/dist/mutex.d.ts +12 -0
  18. package/dist/node/index.cjs +1 -12
  19. package/dist/node/index.cjs.map +1 -1
  20. package/dist/node/index.d.cts +95 -8
  21. package/dist/node/index.d.ts +95 -8
  22. package/dist/node/index.js +2 -12
  23. package/dist/node/index.js.map +1 -1
  24. package/dist/policies.d.ts +15 -0
  25. package/dist/provider-CGv2ANQX.js +286 -0
  26. package/dist/provider-CGv2ANQX.js.map +1 -0
  27. package/dist/provider.d.ts +21 -0
  28. package/dist/session/account.d.ts +31 -0
  29. package/dist/session/backend.d.ts +58 -0
  30. package/dist/session/index.d.ts +4 -38
  31. package/dist/session/{index.d.cts → provider.d.ts} +4 -10
  32. package/dist/session.d.ts +6 -0
  33. package/dist/session.js +354 -0
  34. package/dist/session.js.map +1 -0
  35. package/dist/stats.html +4949 -0
  36. package/dist/telegram/backend.d.ts +30 -0
  37. package/dist/telegram/provider.d.ts +24 -0
  38. package/dist/types.d.ts +146 -0
  39. package/dist/utils.d.ts +15 -0
  40. package/dist/wallets/argent/index.d.ts +15 -0
  41. package/dist/wallets/bridge.d.ts +31 -0
  42. package/dist/wallets/index.d.ts +5 -0
  43. package/dist/wallets/metamask/index.d.ts +17 -0
  44. package/dist/wallets/phantom/index.d.ts +14 -0
  45. package/dist/wallets/types.d.ts +28 -0
  46. package/package.json +17 -41
  47. package/src/iframe/profile.ts +9 -7
  48. package/src/node/index.ts +1 -1
  49. package/src/wallets/argent/index.ts +8 -2
  50. package/src/wallets/bridge.ts +19 -5
  51. package/src/wallets/metamask/index.ts +8 -0
  52. package/src/wallets/phantom/index.ts +66 -15
  53. package/src/wallets/types.ts +1 -0
  54. package/tsup.node.config.ts +15 -0
  55. package/vite.config.js +82 -0
  56. package/dist/controller.cjs +0 -1272
  57. package/dist/controller.cjs.map +0 -1
  58. package/dist/controller.d.cts +0 -34
  59. package/dist/controller.js +0 -1270
  60. package/dist/controller.js.map +0 -1
  61. package/dist/index.cjs +0 -3389
  62. package/dist/index.cjs.map +0 -1
  63. package/dist/index.d.cts +0 -68
  64. package/dist/lookup.cjs +0 -59
  65. package/dist/lookup.cjs.map +0 -1
  66. package/dist/lookup.d.cts +0 -4
  67. package/dist/lookup.js +0 -56
  68. package/dist/lookup.js.map +0 -1
  69. package/dist/policies-DD1aPjQ4.d.cts +0 -21
  70. package/dist/policies-DD1aPjQ4.d.ts +0 -21
  71. package/dist/provider-BeCgS86X.d.cts +0 -266
  72. package/dist/provider-BeCgS86X.d.ts +0 -266
  73. package/dist/session/index.cjs +0 -484
  74. package/dist/session/index.cjs.map +0 -1
  75. package/dist/session/index.js +0 -478
  76. package/dist/session/index.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,162 +1,17 @@
1
- import { CallData, addAddressPadding, getChecksumAddress, typedData, TypedDataRevision, hash, constants, shortString, Provider, num, WalletAccount } from 'starknet';
2
- import { connectToChild } from '@cartridge/penpal';
3
- import { MetaMaskSDK } from '@metamask/sdk';
4
- import { connect } from 'starknetkit';
5
- import { InjectedConnector } from 'starknetkit/injected';
6
- import { Permission } from '@starknet-io/types-js';
7
-
8
- // src/account.ts
9
-
10
- // src/types.ts
11
- var ResponseCodes = /* @__PURE__ */ ((ResponseCodes2) => {
12
- ResponseCodes2["SUCCESS"] = "SUCCESS";
13
- ResponseCodes2["NOT_CONNECTED"] = "NOT_CONNECTED";
14
- ResponseCodes2["ERROR"] = "ERROR";
15
- ResponseCodes2["CANCELED"] = "CANCELED";
16
- ResponseCodes2["USER_INTERACTION_REQUIRED"] = "USER_INTERACTION_REQUIRED";
17
- return ResponseCodes2;
18
- })(ResponseCodes || {});
19
- var ALLOWED_PROPERTIES = /* @__PURE__ */ new Set([
20
- "contracts",
21
- "messages",
22
- "target",
23
- "method",
24
- "name",
25
- "description",
26
- "types",
27
- "domain",
28
- "primaryType"
29
- ]);
30
- var LOCAL_HOSTNAMES = ["localhost", "127.0.0.1", "0.0.0.0"];
31
- function validatePropertyName(prop) {
32
- if (!ALLOWED_PROPERTIES.has(prop)) {
33
- throw new Error(`Invalid property name: ${prop}`);
34
- }
35
- }
36
- function safeObjectAccess(obj, prop) {
37
- validatePropertyName(prop);
38
- return obj[prop];
39
- }
40
- function normalizeCalls(calls) {
41
- return toArray(calls).map((call) => {
42
- return {
43
- entrypoint: call.entrypoint,
44
- contractAddress: addAddressPadding(call.contractAddress),
45
- calldata: CallData.toHex(call.calldata)
46
- };
47
- });
48
- }
49
- function toSessionPolicies(policies) {
50
- return Array.isArray(policies) ? policies.reduce(
51
- (prev, p) => {
52
- if (safeObjectAccess(p, "target")) {
53
- const target = getChecksumAddress(
54
- safeObjectAccess(p, "target")
55
- );
56
- const entrypoint = safeObjectAccess(p, "method");
57
- const contracts = safeObjectAccess(
58
- prev,
59
- "contracts"
60
- );
61
- const item = {
62
- name: humanizeString(entrypoint),
63
- entrypoint,
64
- description: safeObjectAccess(p, "description")
65
- };
66
- if (target in contracts) {
67
- const methods = toArray(contracts[target].methods);
68
- contracts[target] = {
69
- methods: [...methods, item]
70
- };
71
- } else {
72
- contracts[target] = {
73
- methods: [item]
74
- };
75
- }
76
- } else {
77
- const messages = safeObjectAccess(prev, "messages");
78
- messages.push(p);
79
- }
80
- return prev;
81
- },
82
- { contracts: {}, messages: [] }
83
- ) : policies;
84
- }
85
- function toWasmPolicies(policies) {
86
- return [
87
- ...Object.entries(policies.contracts ?? {}).flatMap(
88
- ([target, { methods }]) => toArray(methods).map((m) => ({
89
- target,
90
- method: m.entrypoint,
91
- authorized: m.authorized
92
- }))
93
- ),
94
- ...(policies.messages ?? []).map((p) => {
95
- const domainHash = typedData.getStructHash(
96
- p.types,
97
- "StarknetDomain",
98
- p.domain,
99
- TypedDataRevision.ACTIVE
100
- );
101
- const typeHash = typedData.getTypeHash(
102
- p.types,
103
- p.primaryType,
104
- TypedDataRevision.ACTIVE
105
- );
106
- return {
107
- scope_hash: hash.computePoseidonHash(domainHash, typeHash),
108
- authorized: p.authorized
109
- };
110
- })
111
- ];
112
- }
113
- function toArray(val) {
114
- return Array.isArray(val) ? val : [val];
115
- }
116
- function humanizeString(str) {
117
- return str.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/_/g, " ").toLowerCase().replace(/^\w/, (c) => c.toUpperCase());
118
- }
119
- async function parseChainId(url) {
120
- const parts = url.pathname.split("/");
121
- if (parts.includes("starknet")) {
122
- if (parts.includes("mainnet")) {
123
- return constants.StarknetChainId.SN_MAIN;
124
- } else if (parts.includes("sepolia")) {
125
- return constants.StarknetChainId.SN_SEPOLIA;
126
- }
127
- } else if (parts.length >= 3) {
128
- const projectName = parts[2];
129
- if (parts.includes("katana")) {
130
- return shortString.encodeShortString(
131
- `WP_${projectName.toUpperCase().replace(/-/g, "_")}`
132
- );
133
- } else if (parts.includes("mainnet")) {
134
- return shortString.encodeShortString(
135
- `GG_${projectName.toUpperCase().replace(/-/g, "_")}`
136
- );
137
- }
138
- }
139
- if (LOCAL_HOSTNAMES.includes(url.hostname)) {
140
- const provider = new Provider({
141
- nodeUrl: url.toString()
142
- });
143
- return await provider.getChainId();
144
- }
145
- throw new Error(`Chain ${url.toString()} not supported`);
146
- }
147
-
148
- // src/account.ts
149
- var ControllerAccount = class extends WalletAccount {
1
+ import { WalletAccount as O, shortString as M, num as Y } from "starknet";
2
+ import { R as A, t as $, K as W, P as H, B as j, N as g, p as K, A as q } from "./provider-CGv2ANQX.js";
3
+ import { h as Ye, n as $e, a as We, b as He } from "./provider-CGv2ANQX.js";
4
+ import { MetaMaskSDK as G } from "@metamask/sdk";
5
+ import { Transaction as V } from "@solana/web3.js";
6
+ import { connect as J } from "starknetkit";
7
+ import { InjectedConnector as X } from "starknetkit/injected";
8
+ class N extends O {
150
9
  address;
151
10
  keychain;
152
11
  modal;
153
12
  options;
154
- constructor(provider, rpcUrl, address, keychain, options, modal) {
155
- super({ nodeUrl: rpcUrl }, provider);
156
- this.address = address;
157
- this.keychain = keychain;
158
- this.options = options;
159
- this.modal = modal;
13
+ constructor(e, t, r, n, o, c) {
14
+ super({ nodeUrl: t }, e), this.address = r, this.keychain = n, this.options = o, this.modal = c;
160
15
  }
161
16
  /**
162
17
  * Invoke execute function in account contract
@@ -170,38 +25,35 @@ var ControllerAccount = class extends WalletAccount {
170
25
  *
171
26
  * @returns response from addTransaction
172
27
  */
173
- async execute(calls) {
174
- calls = toArray(calls);
175
- return new Promise(async (resolve, reject) => {
176
- const sessionExecute = await this.keychain.execute(
177
- calls,
28
+ async execute(e) {
29
+ return e = $(e), new Promise(async (t, r) => {
30
+ const n = await this.keychain.execute(
31
+ e,
178
32
  void 0,
179
33
  void 0,
180
- false
34
+ !1
181
35
  );
182
- if (sessionExecute.code === "SUCCESS" /* SUCCESS */) {
183
- resolve(sessionExecute);
36
+ if (n.code === A.SUCCESS) {
37
+ t(n);
184
38
  return;
185
39
  }
186
- if (this.options?.propagateSessionErrors && sessionExecute.code !== "USER_INTERACTION_REQUIRED" /* USER_INTERACTION_REQUIRED */) {
187
- reject(sessionExecute.error);
40
+ if (this.options?.propagateSessionErrors && n.code !== A.USER_INTERACTION_REQUIRED) {
41
+ r(n.error);
188
42
  return;
189
43
  }
190
44
  this.modal.open();
191
- const manualExecute = await this.keychain.execute(
192
- calls,
45
+ const o = await this.keychain.execute(
46
+ e,
193
47
  void 0,
194
48
  void 0,
195
- true,
196
- sessionExecute.error
49
+ !0,
50
+ n.error
197
51
  );
198
- if (manualExecute.code === "SUCCESS" /* SUCCESS */) {
199
- resolve(manualExecute);
200
- this.modal.close();
52
+ if (o.code === A.SUCCESS) {
53
+ t(o), this.modal.close();
201
54
  return;
202
55
  }
203
- reject(manualExecute.error);
204
- return;
56
+ r(o.error);
205
57
  });
206
58
  }
207
59
  /**
@@ -212,149 +64,326 @@ var ControllerAccount = class extends WalletAccount {
212
64
  * @returns the signature of the JSON object
213
65
  * @throws {Error} if the JSON object is not a valid JSON
214
66
  */
215
- async signMessage(typedData2) {
216
- return new Promise(async (resolve, reject) => {
217
- const sessionSign = await this.keychain.signMessage(typedData2, "", true);
218
- if (!("code" in sessionSign)) {
219
- resolve(sessionSign);
67
+ async signMessage(e) {
68
+ return new Promise(async (t, r) => {
69
+ const n = await this.keychain.signMessage(e, "", !0);
70
+ if (!("code" in n)) {
71
+ t(n);
220
72
  return;
221
73
  }
222
74
  this.modal.open();
223
- const manualSign = await this.keychain.signMessage(typedData2, "", false);
224
- if (!("code" in manualSign)) {
225
- resolve(manualSign);
226
- } else {
227
- reject(manualSign.error);
228
- }
229
- this.modal.close();
75
+ const o = await this.keychain.signMessage(e, "", !1);
76
+ "code" in o ? r(o.error) : t(o), this.modal.close();
230
77
  });
231
78
  }
79
+ }
80
+ var y;
81
+ (function(a) {
82
+ a.Call = "call", a.Reply = "reply", a.Syn = "syn", a.SynAck = "synAck", a.Ack = "ack";
83
+ })(y || (y = {}));
84
+ var x;
85
+ (function(a) {
86
+ a.Fulfilled = "fulfilled", a.Rejected = "rejected";
87
+ })(x || (x = {}));
88
+ var E;
89
+ (function(a) {
90
+ a.ConnectionDestroyed = "ConnectionDestroyed", a.ConnectionTimeout = "ConnectionTimeout", a.NoIframeSrc = "NoIframeSrc";
91
+ })(E || (E = {}));
92
+ var D;
93
+ (function(a) {
94
+ a.DataCloneError = "DataCloneError";
95
+ })(D || (D = {}));
96
+ var v;
97
+ (function(a) {
98
+ a.Message = "message";
99
+ })(v || (v = {}));
100
+ const Z = (a, e) => {
101
+ const t = [];
102
+ let r = !1;
103
+ return {
104
+ destroy(n) {
105
+ r || (r = !0, e(`${a}: Destroying connection`), t.forEach((o) => {
106
+ o(n);
107
+ }));
108
+ },
109
+ onDestroy(n) {
110
+ r ? n() : t.push(n);
111
+ }
112
+ };
113
+ }, ee = (a) => (...e) => {
114
+ a && console.log("[Penpal]", ...e);
115
+ }, te = {
116
+ "http:": "80",
117
+ "https:": "443"
118
+ }, re = /^(https?:)?\/\/([^/:]+)?(:(\d+))?/, ae = ["file:", "data:"], ne = (a) => {
119
+ if (a && ae.find((s) => a.startsWith(s)))
120
+ return "null";
121
+ const e = document.location, t = re.exec(a);
122
+ let r, n, o;
123
+ t ? (r = t[1] ? t[1] : e.protocol, n = t[2], o = t[4]) : (r = e.protocol, n = e.hostname, o = e.port);
124
+ const c = o && o !== te[r] ? `:${o}` : "";
125
+ return `${r}//${n}${c}`;
126
+ }, B = ({ name: a, message: e, stack: t }) => ({
127
+ name: a,
128
+ message: e,
129
+ stack: t
130
+ }), oe = (a) => {
131
+ const e = new Error();
132
+ return Object.keys(a).forEach((t) => e[t] = a[t]), e;
133
+ }, se = (a, e, t) => {
134
+ const { localName: r, local: n, remote: o, originForSending: c, originForReceiving: s } = a;
135
+ let i = !1;
136
+ const p = (d) => {
137
+ if (d.source !== o || d.data.penpal !== y.Call)
138
+ return;
139
+ if (s !== "*" && d.origin !== s) {
140
+ t(`${r} received message from origin ${d.origin} which did not match expected origin ${s}`);
141
+ return;
142
+ }
143
+ const l = d.data, { methodName: f, args: h, id: _ } = l;
144
+ t(`${r}: Received ${f}() call`);
145
+ const w = (u) => (k) => {
146
+ if (t(`${r}: Sending ${f}() reply`), i) {
147
+ t(`${r}: Unable to send ${f}() reply due to destroyed connection`);
148
+ return;
149
+ }
150
+ const b = {
151
+ penpal: y.Reply,
152
+ id: _,
153
+ resolution: u,
154
+ returnValue: k
155
+ };
156
+ u === x.Rejected && k instanceof Error && (b.returnValue = B(k), b.returnValueIsError = !0);
157
+ try {
158
+ o.postMessage(b, c);
159
+ } catch (m) {
160
+ if (m.name === D.DataCloneError) {
161
+ const C = {
162
+ penpal: y.Reply,
163
+ id: _,
164
+ resolution: x.Rejected,
165
+ returnValue: B(m),
166
+ returnValueIsError: !0
167
+ };
168
+ o.postMessage(C, c);
169
+ }
170
+ throw m;
171
+ }
172
+ };
173
+ new Promise((u) => u(e[f].call(e, d.origin).apply(e, h))).then(w(x.Fulfilled), w(x.Rejected));
174
+ };
175
+ return n.addEventListener(v.Message, p), () => {
176
+ i = !0, n.removeEventListener(v.Message, p);
177
+ };
232
178
  };
233
- var account_default = ControllerAccount;
234
- var IFrame = class {
179
+ let ie = 0;
180
+ const ce = () => ++ie, T = ".", Q = (a) => a ? a.split(T) : [], de = (a) => a.join(T), le = (a, e) => {
181
+ const t = Q(e || "");
182
+ return t.push(a), de(t);
183
+ }, pe = (a, e, t) => {
184
+ const r = Q(e);
185
+ return r.reduce((n, o, c) => (typeof n[o] > "u" && (n[o] = {}), c === r.length - 1 && (n[o] = t), n[o]), a), a;
186
+ }, z = (a, e) => {
187
+ const t = {};
188
+ return Object.keys(a).forEach((r) => {
189
+ const n = a[r], o = le(r, e);
190
+ typeof n == "object" && Object.assign(t, z(n, o)), typeof n == "function" && (t[o] = n);
191
+ }), t;
192
+ }, me = (a) => {
193
+ const e = {};
194
+ for (const t in a)
195
+ pe(e, t, a[t]);
196
+ return e;
197
+ }, he = (a, e, t, r, n) => {
198
+ const { localName: o, local: c, remote: s, originForSending: i, originForReceiving: p } = e;
199
+ let d = !1;
200
+ n(`${o}: Connecting call sender`);
201
+ const l = (h) => (..._) => {
202
+ n(`${o}: Sending ${h}() call`);
203
+ let w;
204
+ try {
205
+ s.closed && (w = !0);
206
+ } catch {
207
+ w = !0;
208
+ }
209
+ if (w && r(), d) {
210
+ const u = new Error(`Unable to send ${h}() call due to destroyed connection`);
211
+ throw u.code = E.ConnectionDestroyed, u;
212
+ }
213
+ return new Promise((u, k) => {
214
+ const b = ce(), m = (I) => {
215
+ if (I.source !== s || I.data.penpal !== y.Reply || I.data.id !== b)
216
+ return;
217
+ if (p !== "*" && I.origin !== p) {
218
+ n(`${o} received message from origin ${I.origin} which did not match expected origin ${p}`);
219
+ return;
220
+ }
221
+ const S = I.data;
222
+ n(`${o}: Received ${h}() reply`), c.removeEventListener(v.Message, m);
223
+ let P = S.returnValue;
224
+ S.returnValueIsError && (P = oe(P)), (S.resolution === x.Fulfilled ? u : k)(P);
225
+ };
226
+ c.addEventListener(v.Message, m);
227
+ const C = {
228
+ penpal: y.Call,
229
+ id: b,
230
+ methodName: h,
231
+ args: _
232
+ };
233
+ s.postMessage(C, i);
234
+ });
235
+ }, f = t.reduce((h, _) => (h[_] = l(_), h), {});
236
+ return Object.assign(a, me(f)), () => {
237
+ d = !0;
238
+ };
239
+ }, fe = (a, e, t, r, n) => {
240
+ const { destroy: o, onDestroy: c } = r;
241
+ let s, i;
242
+ const p = {};
243
+ return (d) => {
244
+ if (e !== "*" && d.origin !== e) {
245
+ n(`Parent: Handshake - Received ACK message from origin ${d.origin} which did not match expected origin ${e}`);
246
+ return;
247
+ }
248
+ n("Parent: Handshake - Received ACK");
249
+ const l = {
250
+ localName: "Parent",
251
+ local: window,
252
+ remote: d.source,
253
+ originForSending: t,
254
+ originForReceiving: e
255
+ };
256
+ s && s(), s = se(l, a, n), c(s), i && i.forEach((h) => {
257
+ delete p[h];
258
+ }), i = d.data.methodNames;
259
+ const f = he(p, l, i, o, n);
260
+ return c(f), p;
261
+ };
262
+ }, ue = (a, e, t, r) => (n) => {
263
+ if (!n.source)
264
+ return;
265
+ if (t !== "*" && n.origin !== t) {
266
+ a(`Parent: Handshake - Received SYN message from origin ${n.origin} which did not match expected origin ${t}`);
267
+ return;
268
+ }
269
+ a("Parent: Handshake - Received SYN, responding with SYN-ACK");
270
+ const o = {
271
+ penpal: y.SynAck,
272
+ methodNames: Object.keys(e)
273
+ };
274
+ n.source.postMessage(o, r);
275
+ }, ge = 6e4, ye = (a, e) => {
276
+ const { destroy: t, onDestroy: r } = e, n = setInterval(() => {
277
+ a.isConnected || (clearInterval(n), t());
278
+ }, ge);
279
+ r(() => {
280
+ clearInterval(n);
281
+ });
282
+ }, be = (a, e) => {
283
+ let t;
284
+ return a !== void 0 && (t = window.setTimeout(() => {
285
+ const r = new Error(`Connection timed out after ${a}ms`);
286
+ r.code = E.ConnectionTimeout, e(r);
287
+ }, a)), () => {
288
+ clearTimeout(t);
289
+ };
290
+ }, _e = (a) => {
291
+ if (!a.src && !a.srcdoc) {
292
+ const e = new Error("Iframe must have src or srcdoc property defined.");
293
+ throw e.code = E.NoIframeSrc, e;
294
+ }
295
+ }, we = (a) => {
296
+ let { iframe: e, methods: t = {}, childOrigin: r, timeout: n, debug: o = !1 } = a;
297
+ const c = ee(o), s = Z("Parent", c), { onDestroy: i, destroy: p } = s;
298
+ r || (_e(e), r = ne(e.src));
299
+ const d = r === "null" ? "*" : r, l = z(t), f = ue(c, l, r, d), h = fe(l, r, d, s, c);
300
+ return {
301
+ promise: new Promise((w, u) => {
302
+ const k = be(n, p), b = (m) => {
303
+ if (!(m.source !== e.contentWindow || !m.data)) {
304
+ if (m.data.penpal === y.Syn) {
305
+ f(m);
306
+ return;
307
+ }
308
+ if (m.data.penpal === y.Ack) {
309
+ const C = h(m);
310
+ C && (k(), w(C));
311
+ return;
312
+ }
313
+ }
314
+ };
315
+ window.addEventListener(v.Message, b), c("Parent: Awaiting handshake"), ye(e, s), i((m) => {
316
+ window.removeEventListener(v.Message, b), m && u(m);
317
+ });
318
+ }),
319
+ destroy() {
320
+ p();
321
+ }
322
+ };
323
+ };
324
+ class F {
235
325
  url;
236
326
  iframe;
237
327
  container;
238
328
  onClose;
239
329
  constructor({
240
- id,
241
- url,
242
- preset,
243
- onClose,
244
- onConnect,
245
- methods = {}
330
+ id: e,
331
+ url: t,
332
+ preset: r,
333
+ onClose: n,
334
+ onConnect: o,
335
+ methods: c = {}
246
336
  }) {
247
- if (typeof document === "undefined") {
337
+ if (typeof document > "u")
248
338
  return;
249
- }
250
- if (preset) {
251
- url.searchParams.set("preset", preset);
252
- }
253
- this.url = url;
254
- const iframe = document.createElement("iframe");
255
- iframe.src = url.toString();
256
- iframe.id = id;
257
- iframe.style.border = "none";
258
- iframe.sandbox.add("allow-forms");
259
- iframe.sandbox.add("allow-popups");
260
- iframe.sandbox.add("allow-scripts");
261
- iframe.sandbox.add("allow-same-origin");
262
- iframe.allow = "publickey-credentials-create *; publickey-credentials-get *; clipboard-write";
263
- if (!!document.hasStorageAccess) {
264
- iframe.sandbox.add("allow-storage-access-by-user-activation");
265
- }
266
- const container = document.createElement("div");
267
- container.id = "controller";
268
- container.style.position = "fixed";
269
- container.style.height = "100%";
270
- container.style.width = "100%";
271
- container.style.top = "0";
272
- container.style.left = "0";
273
- container.style.zIndex = "10000";
274
- container.style.backgroundColor = "rgba(0,0,0,0.6)";
275
- container.style.display = "flex";
276
- container.style.alignItems = "center";
277
- container.style.justifyContent = "center";
278
- container.style.visibility = "hidden";
279
- container.style.opacity = "0";
280
- container.style.transition = "opacity 0.2s ease";
281
- container.appendChild(iframe);
282
- this.iframe = iframe;
283
- this.container = container;
284
- connectToChild({
339
+ r && t.searchParams.set("preset", r), this.url = t;
340
+ const s = document.createElement("iframe");
341
+ s.src = t.toString(), s.id = e, s.style.border = "none", s.sandbox.add("allow-forms"), s.sandbox.add("allow-popups"), s.sandbox.add("allow-scripts"), s.sandbox.add("allow-same-origin"), s.allow = "publickey-credentials-create *; publickey-credentials-get *; clipboard-write", document.hasStorageAccess && s.sandbox.add("allow-storage-access-by-user-activation");
342
+ const i = document.createElement("div");
343
+ i.id = "controller", i.style.position = "fixed", i.style.height = "100%", i.style.width = "100%", i.style.top = "0", i.style.left = "0", i.style.zIndex = "10000", i.style.backgroundColor = "rgba(0,0,0,0.6)", i.style.display = "flex", i.style.alignItems = "center", i.style.justifyContent = "center", i.style.visibility = "hidden", i.style.opacity = "0", i.style.transition = "opacity 0.2s ease", i.appendChild(s), this.iframe = s, this.container = i, we({
285
344
  iframe: this.iframe,
286
- methods: { close: (_origin) => () => this.close(), ...methods }
287
- }).promise.then(onConnect);
288
- this.resize();
289
- window.addEventListener("resize", () => this.resize());
290
- const observer = new MutationObserver(() => {
291
- const existingController2 = document.getElementById("controller");
292
- if (document.body) {
293
- if (id === "controller-keychain" && !existingController2 || id === "controller-profile") {
294
- document.body.appendChild(container);
295
- observer.disconnect();
296
- }
297
- }
345
+ methods: { close: (l) => () => this.close(), ...c }
346
+ }).promise.then(o), this.resize(), window.addEventListener("resize", () => this.resize());
347
+ const p = new MutationObserver(() => {
348
+ const l = document.getElementById("controller");
349
+ document.body && (e === "controller-keychain" && !l || e === "controller-profile") && (document.body.appendChild(i), p.disconnect());
298
350
  });
299
- observer.observe(document.documentElement, {
300
- childList: true,
301
- subtree: true
351
+ p.observe(document.documentElement, {
352
+ childList: !0,
353
+ subtree: !0
302
354
  });
303
- const existingController = document.getElementById("controller");
304
- if (document.body) {
305
- if (id === "controller-keychain" && !existingController || id === "controller-profile") {
306
- document.body.appendChild(container);
307
- }
308
- }
309
- this.onClose = onClose;
355
+ const d = document.getElementById("controller");
356
+ document.body && (e === "controller-keychain" && !d || e === "controller-profile") && document.body.appendChild(i), this.onClose = n;
310
357
  }
311
358
  open() {
312
- if (!this.container) return;
313
- document.body.style.overflow = "hidden";
314
- this.container.style.visibility = "visible";
315
- this.container.style.opacity = "1";
359
+ this.container && (document.body.style.overflow = "hidden", this.container.style.visibility = "visible", this.container.style.opacity = "1");
316
360
  }
317
361
  close() {
318
- if (!this.container) return;
319
- this.onClose?.();
320
- document.body.style.overflow = "auto";
321
- this.container.style.visibility = "hidden";
322
- this.container.style.opacity = "0";
362
+ this.container && (this.onClose?.(), document.body.style.overflow = "auto", this.container.style.visibility = "hidden", this.container.style.opacity = "0");
323
363
  }
324
364
  sendBackward() {
325
- if (!this.container) return;
326
- this.container.style.zIndex = "9999";
365
+ this.container && (this.container.style.zIndex = "9999");
327
366
  }
328
367
  sendForward() {
329
- if (!this.container) return;
330
- this.container.style.zIndex = "10000";
368
+ this.container && (this.container.style.zIndex = "10000");
331
369
  }
332
370
  resize() {
333
- if (!this.iframe) return;
334
- this.iframe.style.userSelect = "none";
335
- if (window.innerWidth < 768) {
336
- this.iframe.style.height = "100%";
337
- this.iframe.style.width = "100%";
338
- this.iframe.style.borderRadius = "0";
339
- return;
371
+ if (this.iframe) {
372
+ if (this.iframe.style.userSelect = "none", window.innerWidth < 768) {
373
+ this.iframe.style.height = "100%", this.iframe.style.width = "100%", this.iframe.style.borderRadius = "0";
374
+ return;
375
+ }
376
+ this.iframe.style.height = "600px", this.iframe.style.width = "432px", this.iframe.style.borderRadius = "8px";
340
377
  }
341
- this.iframe.style.height = "600px";
342
- this.iframe.style.width = "432px";
343
- this.iframe.style.borderRadius = "8px";
344
378
  }
345
- };
346
-
347
- // src/constants.ts
348
- var KEYCHAIN_URL = "https://x.cartridge.gg";
349
- var PROFILE_URL = "https://profile.cartridge.gg";
350
- var API_URL = "https://api.cartridge.gg";
351
- var MetaMaskWallet = class {
379
+ }
380
+ class ve {
352
381
  type = "metamask";
353
382
  platform = "ethereum";
354
383
  MMSDK;
355
384
  account = void 0;
356
385
  constructor() {
357
- this.MMSDK = new MetaMaskSDK({
386
+ this.MMSDK = new G({
358
387
  dappMetadata: {
359
388
  name: "Cartridge Controller",
360
389
  url: window.location.href
@@ -362,751 +391,498 @@ var MetaMaskWallet = class {
362
391
  });
363
392
  }
364
393
  isAvailable() {
365
- return typeof window !== "undefined" && !!window.ethereum?.isMetaMask;
394
+ return typeof window < "u" && !!window.ethereum?.isMetaMask;
366
395
  }
367
396
  getInfo() {
368
- const available = this.isAvailable();
397
+ const e = this.isAvailable();
369
398
  return {
370
399
  type: this.type,
371
- available,
372
- version: available ? window.ethereum?.version || "Unknown" : void 0,
373
- chainId: available ? window.ethereum?.chainId : void 0,
400
+ available: e,
401
+ version: e ? window.ethereum?.version || "Unknown" : void 0,
402
+ chainId: e ? window.ethereum?.chainId : void 0,
374
403
  name: "MetaMask",
375
404
  platform: this.platform
376
405
  };
377
406
  }
378
407
  async connect() {
379
- if (this.account) {
380
- return { success: true, wallet: this.type, account: this.account };
381
- }
408
+ if (this.account)
409
+ return { success: !0, wallet: this.type, account: this.account };
382
410
  try {
383
- if (!this.isAvailable()) {
411
+ if (!this.isAvailable())
384
412
  throw new Error("MetaMask is not available");
385
- }
386
- const accounts = await this.MMSDK.connect();
387
- if (accounts && accounts.length > 0) {
388
- this.account = accounts[0];
389
- return { success: true, wallet: this.type, account: this.account };
390
- }
413
+ const e = await this.MMSDK.connect();
414
+ if (e && e.length > 0)
415
+ return this.account = e[0], { success: !0, wallet: this.type, account: this.account };
391
416
  throw new Error("No accounts found");
392
- } catch (error) {
393
- console.error(`Error connecting to MetaMask:`, error);
394
- return {
395
- success: false,
417
+ } catch (e) {
418
+ return console.error("Error connecting to MetaMask:", e), {
419
+ success: !1,
396
420
  wallet: this.type,
397
- error: error.message || "Unknown error"
421
+ error: e.message || "Unknown error"
398
422
  };
399
423
  }
400
424
  }
401
- async signTransaction(transaction) {
425
+ async signTransaction(e) {
402
426
  try {
403
- if (!this.isAvailable() || !this.account) {
427
+ if (!this.isAvailable() || !this.account)
404
428
  throw new Error("MetaMask is not connected");
405
- }
406
- const ethereum = this.MMSDK.getProvider();
407
- if (!ethereum) {
429
+ const t = this.MMSDK.getProvider();
430
+ if (!t)
408
431
  throw new Error("MetaMask is not connected");
409
- }
410
- const result = await ethereum.request({
432
+ const r = await t.request({
411
433
  method: "eth_sendTransaction",
412
- params: [transaction]
434
+ params: [e]
413
435
  });
414
- return { success: true, wallet: this.type, result };
415
- } catch (error) {
416
- console.error(`Error signing transaction with MetaMask:`, error);
417
- return {
418
- success: false,
436
+ return { success: !0, wallet: this.type, result: r };
437
+ } catch (t) {
438
+ return console.error("Error signing transaction with MetaMask:", t), {
439
+ success: !1,
419
440
  wallet: this.type,
420
- error: error.message || "Unknown error"
441
+ error: t.message || "Unknown error"
421
442
  };
422
443
  }
423
444
  }
424
- async signMessage(message) {
445
+ async signMessage(e) {
425
446
  try {
426
- if (!this.isAvailable() || !this.account) {
447
+ if (!this.isAvailable() || !this.account)
427
448
  throw new Error("MetaMask is not connected");
428
- }
429
- const result = await this.MMSDK.connectAndSign({
430
- msg: message
449
+ const t = await this.MMSDK.connectAndSign({
450
+ msg: e
431
451
  });
432
- return { success: true, wallet: this.type, result };
433
- } catch (error) {
434
- console.error(`Error signing message with MetaMask:`, error);
435
- return {
436
- success: false,
452
+ return { success: !0, wallet: this.type, result: t };
453
+ } catch (t) {
454
+ return console.error("Error signing message with MetaMask:", t), {
455
+ success: !1,
437
456
  wallet: this.type,
438
- error: error.message || "Unknown error"
457
+ error: t.message || "Unknown error"
439
458
  };
440
459
  }
441
460
  }
442
- async signTypedData(data) {
461
+ async signTypedData(e) {
443
462
  try {
444
- if (!this.isAvailable() || !this.account) {
463
+ if (!this.isAvailable() || !this.account)
445
464
  throw new Error("MetaMask is not connected");
446
- }
447
- const ethereum = this.MMSDK.getProvider();
448
- if (!ethereum) {
465
+ const t = this.MMSDK.getProvider();
466
+ if (!t)
449
467
  throw new Error("MetaMask is not connected");
450
- }
451
- const result = await ethereum.request({
468
+ const r = await t.request({
452
469
  method: "eth_signTypedData_v4",
453
- params: [this.account, JSON.stringify(data)]
470
+ params: [this.account, JSON.stringify(e)]
454
471
  });
455
- return { success: true, wallet: this.type, result };
456
- } catch (error) {
457
- console.error(`Error signing typed data with MetaMask:`, error);
458
- return {
459
- success: false,
472
+ return { success: !0, wallet: this.type, result: r };
473
+ } catch (t) {
474
+ return console.error("Error signing typed data with MetaMask:", t), {
475
+ success: !1,
460
476
  wallet: this.type,
461
- error: error.message || "Unknown error"
477
+ error: t.message || "Unknown error"
462
478
  };
463
479
  }
464
480
  }
465
- async switchChain(chainId) {
481
+ async sendTransaction(e) {
482
+ return {
483
+ success: !1,
484
+ wallet: this.type,
485
+ error: "Not implemented"
486
+ };
487
+ }
488
+ async switchChain(e) {
466
489
  try {
467
- if (!this.isAvailable()) {
490
+ if (!this.isAvailable())
468
491
  throw new Error("MetaMask is not available");
469
- }
470
- const ethereum = this.MMSDK.getProvider();
471
- if (!ethereum) {
492
+ const t = this.MMSDK.getProvider();
493
+ if (!t)
472
494
  throw new Error("MetaMask is not connected");
473
- }
474
495
  try {
475
- await ethereum.request({
496
+ return await t.request({
476
497
  method: "wallet_switchEthereumChain",
477
- params: [{ chainId }]
478
- });
479
- return true;
480
- } catch (error) {
481
- if (error.code === 4902) {
482
- console.warn("Chain not added to MetaMask");
483
- }
484
- throw error;
498
+ params: [{ chainId: e }]
499
+ }), !0;
500
+ } catch (r) {
501
+ throw r.code === 4902 && console.warn("Chain not added to MetaMask"), r;
485
502
  }
486
- } catch (error) {
487
- console.error(`Error switching chain for MetaMask:`, error);
488
- return false;
503
+ } catch (t) {
504
+ return console.error("Error switching chain for MetaMask:", t), !1;
489
505
  }
490
506
  }
491
- async getBalance(tokenAddress) {
507
+ async getBalance(e) {
492
508
  try {
493
- if (!this.isAvailable() || !this.account) {
509
+ if (!this.isAvailable() || !this.account)
494
510
  throw new Error("MetaMask is not connected");
495
- }
496
- if (tokenAddress) {
511
+ if (e)
497
512
  return {
498
- success: false,
513
+ success: !1,
499
514
  wallet: this.type,
500
515
  error: "Not implemented for ERC20"
501
516
  };
502
- } else {
503
- const ethereum = this.MMSDK.getProvider();
504
- if (!ethereum) {
517
+ {
518
+ const t = this.MMSDK.getProvider();
519
+ if (!t)
505
520
  throw new Error("MetaMask is not connected");
506
- }
507
- const balance = await ethereum.request({
521
+ const r = await t.request({
508
522
  method: "eth_getBalance",
509
523
  params: [this.account, "latest"]
510
524
  });
511
- return { success: true, wallet: this.type, result: balance };
525
+ return { success: !0, wallet: this.type, result: r };
512
526
  }
513
- } catch (error) {
514
- console.error(`Error getting balance from MetaMask:`, error);
515
- return {
516
- success: false,
527
+ } catch (t) {
528
+ return console.error("Error getting balance from MetaMask:", t), {
529
+ success: !1,
517
530
  wallet: this.type,
518
- error: error.message || "Unknown error"
531
+ error: t.message || "Unknown error"
519
532
  };
520
533
  }
521
534
  }
522
- };
523
-
524
- // src/wallets/phantom/index.ts
525
- var PhantomWallet = class {
535
+ }
536
+ class ke {
526
537
  type = "phantom";
527
538
  platform = "solana";
528
539
  account = void 0;
540
+ getProvider() {
541
+ if (typeof window > "u")
542
+ throw new Error("Not ready");
543
+ const e = window.solana;
544
+ if (!e?.isPhantom)
545
+ throw new Error("Phantom is not available");
546
+ return e;
547
+ }
529
548
  isAvailable() {
530
- return typeof window !== "undefined" && !!window.solana?.isPhantom;
549
+ return typeof window < "u" && !!window.solana?.isPhantom;
531
550
  }
532
551
  getInfo() {
533
- const available = this.isAvailable();
552
+ const e = this.isAvailable();
534
553
  return {
535
554
  type: this.type,
536
- available,
555
+ available: e,
537
556
  version: "Unknown",
538
557
  name: "Phantom",
539
558
  platform: this.platform
540
559
  };
541
560
  }
542
561
  async connect() {
543
- if (this.account) {
544
- return { success: true, wallet: this.type, account: this.account };
545
- }
562
+ if (this.account)
563
+ return { success: !0, wallet: this.type, account: this.account };
546
564
  try {
547
- if (!this.isAvailable()) {
565
+ if (!this.isAvailable())
548
566
  throw new Error("Phantom is not available");
549
- }
550
- const response = await window.solana.connect();
551
- if (response.publicKey) {
552
- this.account = response.publicKey.toString();
553
- return { success: true, wallet: this.type, account: this.account };
554
- }
567
+ const e = await this.getProvider().connect();
568
+ if (e.publicKey)
569
+ return this.account = e.publicKey.toString(), { success: !0, wallet: this.type, account: this.account };
555
570
  throw new Error("No accounts found");
556
- } catch (error) {
557
- console.error(`Error connecting to Phantom:`, error);
558
- return {
559
- success: false,
571
+ } catch (e) {
572
+ return console.error("Error connecting to Phantom:", e), {
573
+ success: !1,
560
574
  wallet: this.type,
561
- error: error.message || "Unknown error"
575
+ error: e.message || "Unknown error"
562
576
  };
563
577
  }
564
578
  }
565
- async signTransaction(transaction) {
579
+ async signMessage(e) {
566
580
  try {
567
- if (!this.isAvailable() || !this.account) {
581
+ if (!this.isAvailable() || !this.account)
568
582
  throw new Error("Phantom is not connected");
569
- }
570
- const result = await window.solana.signTransaction(transaction);
571
- return { success: true, wallet: this.type, result };
572
- } catch (error) {
573
- console.error(`Error signing transaction with Phantom:`, error);
574
- return {
575
- success: false,
583
+ const t = new TextEncoder().encode(e), r = await this.getProvider().signMessage(
584
+ t,
585
+ "utf8"
586
+ );
587
+ return { success: !0, wallet: this.type, result: r };
588
+ } catch (t) {
589
+ return console.error("Error signing message with Phantom:", t), {
590
+ success: !1,
576
591
  wallet: this.type,
577
- error: error.message || "Unknown error"
592
+ error: t.message || "Unknown error"
578
593
  };
579
594
  }
580
595
  }
581
- async signMessage(message) {
596
+ async sendTransaction(e) {
597
+ if (!this.isAvailable() || !this.account)
598
+ throw new Error("Phantom is not connected");
582
599
  try {
583
- if (!this.isAvailable() || !this.account) {
584
- throw new Error("Phantom is not connected");
585
- }
586
- const encodedMessage = new TextEncoder().encode(message);
587
- const result = await window.solana.signMessage(encodedMessage, "utf8");
588
- return { success: true, wallet: this.type, result };
589
- } catch (error) {
590
- console.error(`Error signing message with Phantom:`, error);
600
+ const t = V.from(Buffer.from(e, "base64")), n = await this.getProvider().signAndSendTransaction(t);
591
601
  return {
592
- success: false,
602
+ success: !0,
593
603
  wallet: this.type,
594
- error: error.message || "Unknown error"
604
+ result: n
605
+ };
606
+ } catch (t) {
607
+ return console.error("Error sending transaction with Phantom:", t), {
608
+ success: !1,
609
+ wallet: this.type,
610
+ error: t.message || "Unknown error"
595
611
  };
596
612
  }
597
613
  }
598
- async switchChain(_chainId) {
599
- console.warn("Chain switching not supported for Phantom");
600
- return false;
614
+ async switchChain(e) {
615
+ return console.warn("Chain switching not supported for Phantom"), !1;
601
616
  }
602
- async getBalance(_tokenAddress) {
617
+ async getBalance(e) {
603
618
  try {
604
- if (!this.isAvailable() || !this.account) {
619
+ if (!this.isAvailable() || !this.account)
605
620
  throw new Error("Phantom is not connected");
606
- }
607
621
  return {
608
- success: true,
622
+ success: !0,
609
623
  wallet: this.type,
610
624
  result: "Implement based on Phantom API"
611
625
  };
612
- } catch (error) {
613
- console.error(`Error getting balance from Phantom:`, error);
614
- return {
615
- success: false,
626
+ } catch (t) {
627
+ return console.error("Error getting balance from Phantom:", t), {
628
+ success: !1,
616
629
  wallet: this.type,
617
- error: error.message || "Unknown error"
630
+ error: t.message || "Unknown error"
618
631
  };
619
632
  }
620
633
  }
621
- };
622
- var ArgentWallet = class {
634
+ }
635
+ class Ae {
623
636
  type = "argent";
624
637
  platform = "starknet";
625
638
  wallet = void 0;
626
639
  account = void 0;
627
640
  isAvailable() {
628
- return typeof window !== "undefined" && !!window.starknet_argentX;
641
+ return typeof window < "u" && !!window.starknet_argentX;
629
642
  }
630
643
  getInfo() {
631
- const available = this.isAvailable();
644
+ const e = this.isAvailable();
632
645
  return {
633
646
  type: this.type,
634
- available,
635
- version: available ? window.starknet_argentX?.version || "Unknown" : void 0,
636
- chainId: available ? window.starknet_argentX?.chainId : void 0,
647
+ available: e,
648
+ version: e ? window.starknet_argentX?.version || "Unknown" : void 0,
649
+ chainId: e ? window.starknet_argentX?.chainId : void 0,
637
650
  name: "Argent",
638
651
  platform: this.platform
639
652
  };
640
653
  }
641
654
  async connect() {
642
- if (this.account) {
643
- return { success: true, wallet: this.type, account: this.account };
644
- }
655
+ if (this.account)
656
+ return { success: !0, wallet: this.type, account: this.account };
645
657
  try {
646
- if (!this.isAvailable()) {
658
+ if (!this.isAvailable())
647
659
  throw new Error("Argent is not available");
648
- }
649
- const { wallet, connectorData } = await connect({
650
- connectors: [new InjectedConnector({ options: { id: "argentX" } })]
660
+ const { wallet: e, connectorData: t } = await J({
661
+ connectors: [new X({ options: { id: "argentX" } })]
651
662
  });
652
- if (!wallet) {
663
+ if (!e)
653
664
  throw new Error("No wallet found");
654
- }
655
- this.wallet = wallet;
656
- this.account = connectorData?.account;
657
- return { success: true, wallet: this.type, account: this.account };
658
- } catch (error) {
659
- console.error(`Error connecting to Argent:`, error);
660
- return {
661
- success: false,
665
+ return this.wallet = e, this.account = t?.account, { success: !0, wallet: this.type, account: this.account };
666
+ } catch (e) {
667
+ return console.error("Error connecting to Argent:", e), {
668
+ success: !1,
662
669
  wallet: this.type,
663
- error: error.message || "Unknown error"
670
+ error: e.message || "Unknown error"
664
671
  };
665
672
  }
666
673
  }
667
- async signTypedData(data) {
674
+ async signTypedData(e) {
668
675
  try {
669
- if (!this.isAvailable() || !this.wallet) {
676
+ if (!this.isAvailable() || !this.wallet)
670
677
  throw new Error("Argent is not connected");
671
- }
672
- console.log("signTypedData", data);
673
- const sig = await this.wallet.request({
678
+ const t = await this.wallet.request({
674
679
  type: "wallet_signTypedData",
675
- params: data
680
+ params: e
676
681
  });
677
- return { success: true, wallet: this.type, result: sig };
678
- } catch (error) {
679
- console.error(`Error signing typed data with Argent:`, error);
680
- return {
681
- success: false,
682
+ return { success: !0, wallet: this.type, result: t };
683
+ } catch (t) {
684
+ return console.error("Error signing typed data with Argent:", t), {
685
+ success: !1,
682
686
  wallet: this.type,
683
- error: error.message || "Unknown error"
687
+ error: t.message || "Unknown error"
684
688
  };
685
689
  }
686
690
  }
687
- async switchChain(_chainId) {
688
- console.warn(
691
+ async sendTransaction(e) {
692
+ return {
693
+ success: !1,
694
+ wallet: this.type,
695
+ error: "Not implemented"
696
+ };
697
+ }
698
+ async switchChain(e) {
699
+ return console.warn(
689
700
  "Chain switching for Argent may require custom implementation"
690
- );
691
- return false;
701
+ ), !1;
692
702
  }
693
- async getBalance(_tokenAddress) {
703
+ async getBalance(e) {
694
704
  try {
695
- if (!this.isAvailable() || !this.wallet) {
705
+ if (!this.isAvailable() || !this.wallet)
696
706
  throw new Error("Argent is not connected");
697
- }
698
707
  return {
699
- success: true,
708
+ success: !0,
700
709
  wallet: this.type,
701
710
  result: "Implement based on Argent API"
702
711
  };
703
- } catch (error) {
704
- console.error(`Error getting balance from Argent:`, error);
705
- return {
706
- success: false,
712
+ } catch (t) {
713
+ return console.error("Error getting balance from Argent:", t), {
714
+ success: !1,
707
715
  wallet: this.type,
708
- error: error.message || "Unknown error"
716
+ error: t.message || "Unknown error"
709
717
  };
710
718
  }
711
719
  }
712
- };
713
-
714
- // src/wallets/bridge.ts
715
- var WalletBridge = class {
720
+ }
721
+ class xe {
716
722
  walletAdapters;
717
723
  connectedWallets = /* @__PURE__ */ new Map();
718
724
  constructor() {
719
- this.walletAdapters = /* @__PURE__ */ new Map();
720
- this.walletAdapters.set("metamask", new MetaMaskWallet());
721
- this.walletAdapters.set("phantom", new PhantomWallet());
722
- this.walletAdapters.set("argent", new ArgentWallet());
723
- if (typeof window !== "undefined") {
724
- window.wallet_bridge = this;
725
- }
725
+ this.walletAdapters = /* @__PURE__ */ new Map(), this.walletAdapters.set("metamask", new ve()), this.walletAdapters.set("phantom", new ke()), this.walletAdapters.set("argent", new Ae()), typeof window < "u" && (window.wallet_bridge = this);
726
726
  }
727
727
  getIFrameMethods() {
728
728
  return {
729
- externalDetectWallets: (_origin) => () => this.detectWallets(),
730
- externalConnectWallet: (_origin) => (type) => this.connectWallet(type),
731
- externalSignMessage: (_origin) => (type, message) => this.signMessage(type, message),
732
- externalSignTypedData: (_origin) => (type, data) => this.signTypedData(type, data),
733
- externalGetBalance: (_origin) => (type, tokenAddress) => this.getBalance(type, tokenAddress)
729
+ externalDetectWallets: (e) => () => this.detectWallets(),
730
+ externalConnectWallet: (e) => (t) => this.connectWallet(t),
731
+ externalSignMessage: (e) => (t, r) => this.signMessage(t, r),
732
+ externalSignTypedData: (e) => (t, r) => this.signTypedData(t, r),
733
+ externalSendTransaction: (e) => (t, r) => this.sendTransaction(t, r),
734
+ externalGetBalance: (e) => (t, r) => this.getBalance(t, r)
734
735
  };
735
736
  }
736
737
  async detectWallets() {
737
- const wallets = Array.from(this.walletAdapters.values()).map(
738
- (adapter) => adapter.getInfo()
738
+ return Array.from(this.walletAdapters.values()).map(
739
+ (t) => t.getInfo()
739
740
  );
740
- return wallets;
741
741
  }
742
- getWalletAdapter(type) {
743
- const adapter = this.walletAdapters.get(type);
744
- if (!adapter) {
745
- throw new Error(`Unsupported wallet type: ${type}`);
746
- }
747
- return adapter;
742
+ getWalletAdapter(e) {
743
+ const t = this.walletAdapters.get(e);
744
+ if (!t)
745
+ throw new Error(`Unsupported wallet type: ${e}`);
746
+ return t;
748
747
  }
749
- handleError(type, error, operation) {
750
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
751
- console.error(`Error ${operation} with ${type} wallet:`, error);
752
- return { success: false, wallet: type, error: errorMessage };
748
+ handleError(e, t, r) {
749
+ const n = t instanceof Error ? t.message : "Unknown error";
750
+ return console.error(`Error ${r} with ${e} wallet:`, t), { success: !1, wallet: e, error: n };
753
751
  }
754
- async connectWallet(type) {
752
+ async connectWallet(e) {
755
753
  try {
756
- if (this.connectedWallets.has(type)) {
757
- const wallet2 = this.connectedWallets.get(type);
758
- return { success: true, wallet: type, account: wallet2.type };
759
- }
760
- const wallet = this.getWalletAdapter(type);
761
- const response = await wallet.connect();
762
- if (response.success) {
763
- this.connectedWallets.set(type, wallet);
764
- }
765
- return response;
766
- } catch (error) {
767
- return this.handleError(type, error, "connecting to");
754
+ const t = this.getWalletAdapter(e), r = await t.connect();
755
+ return r.success && this.connectedWallets.set(e, t), r;
756
+ } catch (t) {
757
+ return this.handleError(e, t, "connecting to");
768
758
  }
769
759
  }
770
- async signMessage(type, message) {
760
+ async signMessage(e, t) {
771
761
  try {
772
- if (!this.connectedWallets.has(type)) {
773
- throw new Error(`Wallet ${type} is not connected`);
774
- }
775
- const wallet = this.connectedWallets.get(type);
776
- if (!wallet.signMessage) {
777
- throw new Error(`Wallet ${type} does not support signing messages`);
778
- }
779
- return await wallet.signMessage(message);
780
- } catch (error) {
781
- return this.handleError(type, error, "signing message with");
762
+ if (!this.connectedWallets.has(e))
763
+ throw new Error(`Wallet ${e} is not connected`);
764
+ const r = this.connectedWallets.get(e);
765
+ if (!r.signMessage)
766
+ throw new Error(`Wallet ${e} does not support signing messages`);
767
+ return await r.signMessage(t);
768
+ } catch (r) {
769
+ return this.handleError(e, r, "signing message with");
782
770
  }
783
771
  }
784
- async signTypedData(type, data) {
772
+ async signTypedData(e, t) {
785
773
  try {
786
- if (!this.connectedWallets.has(type)) {
787
- throw new Error(`Wallet ${type} is not connected`);
788
- }
789
- const wallet = this.connectedWallets.get(type);
790
- if (!wallet.signTypedData) {
791
- throw new Error(`Wallet ${type} does not support signing typed data`);
792
- }
793
- return await wallet.signTypedData(data);
794
- } catch (error) {
795
- return this.handleError(type, error, "signing typed data with");
774
+ if (!this.connectedWallets.has(e))
775
+ throw new Error(`Wallet ${e} is not connected`);
776
+ const r = this.connectedWallets.get(e);
777
+ if (!r.signTypedData)
778
+ throw new Error(`Wallet ${e} does not support signing typed data`);
779
+ return await r.signTypedData(t);
780
+ } catch (r) {
781
+ return this.handleError(e, r, "signing typed data with");
796
782
  }
797
783
  }
798
- async getBalance(type, tokenAddress) {
784
+ async sendTransaction(e, t) {
799
785
  try {
800
- if (!this.connectedWallets.has(type)) {
801
- throw new Error(`Wallet ${type} is not connected`);
802
- }
803
- const wallet = this.connectedWallets.get(type);
804
- return await wallet.getBalance(tokenAddress);
805
- } catch (error) {
806
- return this.handleError(type, error, "getting balance from");
786
+ if (!this.connectedWallets.has(e))
787
+ throw new Error(`Wallet ${e} is not connected`);
788
+ return await this.connectedWallets.get(e).sendTransaction(t);
789
+ } catch (r) {
790
+ return this.handleError(e, r, "sending transaction with");
807
791
  }
808
792
  }
809
- };
810
-
811
- // src/iframe/keychain.ts
812
- var KeychainIFrame = class extends IFrame {
813
- walletBridge;
814
- constructor({ url, policies, ...iframeOptions }) {
815
- const _url = new URL(url ?? KEYCHAIN_URL);
816
- const walletBridge = new WalletBridge();
817
- if (policies) {
818
- _url.searchParams.set(
819
- "policies",
820
- encodeURIComponent(JSON.stringify(policies))
821
- );
793
+ async getBalance(e, t) {
794
+ try {
795
+ if (!this.connectedWallets.has(e))
796
+ throw new Error(`Wallet ${e} is not connected`);
797
+ return await this.connectedWallets.get(e).getBalance(t);
798
+ } catch (r) {
799
+ return this.handleError(e, r, "getting balance from");
822
800
  }
823
- super({
824
- ...iframeOptions,
801
+ }
802
+ }
803
+ class Ce extends F {
804
+ walletBridge;
805
+ constructor({ url: e, policies: t, ...r }) {
806
+ const n = new URL(e ?? W), o = new xe();
807
+ t && n.searchParams.set(
808
+ "policies",
809
+ encodeURIComponent(JSON.stringify(t))
810
+ ), super({
811
+ ...r,
825
812
  id: "controller-keychain",
826
- url: _url,
827
- methods: walletBridge.getIFrameMethods()
828
- });
829
- this.walletBridge = walletBridge;
813
+ url: n,
814
+ methods: o.getIFrameMethods()
815
+ }), this.walletBridge = o;
830
816
  }
831
817
  getWalletBridge() {
832
818
  return this.walletBridge;
833
819
  }
834
- };
835
-
836
- // src/iframe/profile.ts
837
- var ProfileIFrame = class extends IFrame {
820
+ }
821
+ class Ie extends F {
838
822
  constructor({
839
- profileUrl,
840
- rpcUrl,
841
- version,
842
- username,
843
- slot,
844
- namespace,
845
- tokens,
846
- policies,
847
- ...iframeOptions
823
+ profileUrl: e,
824
+ rpcUrl: t,
825
+ version: r,
826
+ username: n,
827
+ slot: o,
828
+ namespace: c,
829
+ tokens: s,
830
+ policies: i,
831
+ ...p
848
832
  }) {
849
- const _profileUrl = (profileUrl || PROFILE_URL).replace(/\/$/, "");
850
- let _url = new URL(
851
- slot ? namespace ? `${_profileUrl}/account/${username}/slot/${slot}?ps=${encodeURIComponent(
852
- slot
853
- )}&ns=${encodeURIComponent(namespace)}` : `${_profileUrl}/account/${username}/slot/${slot}?ps=${encodeURIComponent(
854
- slot
855
- )}` : `${_profileUrl}/account/${username}`
833
+ const d = (e || H).replace(/\/$/, "");
834
+ let l = new URL(
835
+ o ? `${d}/account/${n}/slot/${o}` : `${d}/account/${n}`
856
836
  );
857
- if (version) {
858
- _url.searchParams.set("v", encodeURIComponent(version));
859
- }
860
- _url.searchParams.set("rpcUrl", encodeURIComponent(rpcUrl));
861
- if (tokens?.erc20) {
862
- _url.searchParams.set(
863
- "erc20",
864
- encodeURIComponent(tokens.erc20.toString())
865
- );
866
- }
867
- if (policies?.contracts) {
868
- const methods = Object.values(policies.contracts).flatMap(
869
- (contract) => contract.methods
837
+ if (o && l.searchParams.set("ps", encodeURIComponent(o)), c && l.searchParams.set("ns", encodeURIComponent(c)), r && l.searchParams.set("v", encodeURIComponent(r)), l.searchParams.set("rpcUrl", encodeURIComponent(t)), s?.erc20 && l.searchParams.set(
838
+ "erc20",
839
+ encodeURIComponent(s.erc20.toString())
840
+ ), i?.contracts) {
841
+ const f = Object.values(i.contracts).flatMap(
842
+ (h) => h.methods
870
843
  );
871
- _url.searchParams.set(
844
+ l.searchParams.set(
872
845
  "methods",
873
- encodeURIComponent(JSON.stringify(methods))
846
+ encodeURIComponent(JSON.stringify(f))
874
847
  );
875
848
  }
876
849
  super({
877
- ...iframeOptions,
850
+ ...p,
878
851
  id: "controller-profile",
879
- url: _url
852
+ url: l
880
853
  });
881
854
  }
882
- };
883
-
884
- // src/errors.ts
885
- var NotReadyToConnect = class _NotReadyToConnect extends Error {
886
- constructor() {
887
- super("Not ready to connect");
888
- Object.setPrototypeOf(this, _NotReadyToConnect.prototype);
889
- }
890
- };
891
-
892
- // package.json
893
- var package_default = {
894
- version: "0.7.8"};
895
-
896
- // src/icon.ts
897
- var icon = "data:image/png;base64,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";
898
-
899
- // src/mutex.ts
900
- function releaseStub() {
901
855
  }
902
- var Mutex = class {
903
- m_lastPromise = Promise.resolve();
904
- /**
905
- * Acquire lock
906
- * @param [bypass=false] option to skip lock acquisition
907
- */
908
- async obtain(bypass = false) {
909
- let release = releaseStub;
910
- if (bypass) return release;
911
- const lastPromise = this.m_lastPromise;
912
- this.m_lastPromise = new Promise((resolve) => release = resolve);
913
- await lastPromise;
914
- return release;
915
- }
916
- };
917
-
918
- // src/provider.ts
919
- var mutex = new Mutex();
920
- var BaseProvider = class {
921
- id = "controller";
922
- name = "Controller";
923
- version = package_default.version;
924
- icon = icon;
925
- account;
926
- subscriptions = [];
927
- _probePromise = null;
928
- async safeProbe() {
929
- if (this.account) {
930
- return this.account;
931
- }
932
- if (this._probePromise) {
933
- return this._probePromise;
934
- }
935
- const release = await mutex.obtain();
936
- return await new Promise(async (resolve) => {
937
- try {
938
- this._probePromise = this.probe();
939
- const result = await this._probePromise;
940
- resolve(result);
941
- } finally {
942
- this._probePromise = null;
943
- }
944
- }).finally(() => {
945
- release();
946
- });
947
- }
948
- request = async (call) => {
949
- switch (call.type) {
950
- case "wallet_getPermissions":
951
- await this.safeProbe();
952
- if (this.account) {
953
- return [Permission.ACCOUNTS];
954
- }
955
- return [];
956
- case "wallet_requestAccounts": {
957
- if (this.account) {
958
- return [this.account.address];
959
- }
960
- const silentMode = call.params && call.params.silent_mode;
961
- this.account = await this.safeProbe();
962
- if (!this.account && !silentMode) {
963
- this.account = await this.connect();
964
- }
965
- if (this.account) {
966
- return [this.account.address];
967
- }
968
- return [];
969
- }
970
- case "wallet_watchAsset":
971
- throw {
972
- code: 63,
973
- message: "An unexpected error occurred",
974
- data: "wallet_watchAsset not implemented"
975
- };
976
- case "wallet_addStarknetChain": {
977
- let params2 = call.params;
978
- return this.addStarknetChain(params2);
979
- }
980
- case "wallet_switchStarknetChain": {
981
- let params2 = call.params;
982
- return this.switchStarknetChain(params2.chainId);
983
- }
984
- case "wallet_requestChainId":
985
- if (!this.account) {
986
- throw {
987
- code: 63,
988
- message: "An unexpected error occurred",
989
- data: "Account not initialized"
990
- };
991
- }
992
- return await this.account.getChainId();
993
- case "wallet_deploymentData":
994
- throw {
995
- code: 63,
996
- message: "An unexpected error occurred",
997
- data: "wallet_deploymentData not implemented"
998
- };
999
- case "wallet_addInvokeTransaction":
1000
- if (!this.account) {
1001
- throw {
1002
- code: 63,
1003
- message: "An unexpected error occurred",
1004
- data: "Account not initialized"
1005
- };
1006
- }
1007
- let params = call.params;
1008
- return await this.account.execute(
1009
- params.calls.map((call2) => ({
1010
- contractAddress: call2.contract_address,
1011
- entrypoint: call2.entry_point,
1012
- calldata: call2.calldata
1013
- }))
1014
- );
1015
- case "wallet_addDeclareTransaction":
1016
- throw {
1017
- code: 63,
1018
- message: "An unexpected error occurred",
1019
- data: "wallet_addDeclareTransaction not implemented"
1020
- };
1021
- case "wallet_signTypedData": {
1022
- if (!this.account) {
1023
- throw {
1024
- code: 63,
1025
- message: "An unexpected error occurred",
1026
- data: "Account not initialized"
1027
- };
1028
- }
1029
- return await this.account.signMessage(call.params);
1030
- }
1031
- case "wallet_supportedSpecs":
1032
- return [];
1033
- case "wallet_supportedWalletApi":
1034
- return [];
1035
- default:
1036
- throw {
1037
- code: 63,
1038
- message: "An unexpected error occurred",
1039
- data: `Unknown RPC call type: ${call.type}`
1040
- };
1041
- }
1042
- };
1043
- on = (event, handler) => {
1044
- if (event !== "accountsChanged" && event !== "networkChanged") {
1045
- throw new Error(`Unknown event: ${event}`);
1046
- }
1047
- this.subscriptions.push({ type: event, handler });
1048
- };
1049
- off = (event, handler) => {
1050
- if (event !== "accountsChanged" && event !== "networkChanged") {
1051
- throw new Error(`Unknown event: ${event}`);
1052
- }
1053
- const idx = this.subscriptions.findIndex(
1054
- (sub) => sub.type === event && sub.handler === handler
1055
- );
1056
- if (idx >= 0) {
1057
- this.subscriptions.splice(idx, 1);
1058
- }
1059
- };
1060
- emitNetworkChanged(chainId) {
1061
- this.subscriptions.filter((sub) => sub.type === "networkChanged").forEach((sub) => {
1062
- sub.handler(chainId);
1063
- });
1064
- }
1065
- emitAccountsChanged(accounts) {
1066
- this.subscriptions.filter((sub) => sub.type === "accountsChanged").forEach((sub) => {
1067
- sub.handler(accounts);
1068
- });
1069
- }
1070
- };
1071
- var ControllerProvider = class extends BaseProvider {
856
+ class Be extends j {
1072
857
  keychain;
1073
858
  profile;
1074
859
  options;
1075
860
  iframes;
1076
861
  selectedChain;
1077
862
  chains;
1078
- constructor(options) {
1079
- super();
1080
- this.selectedChain = options.defaultChainId;
1081
- this.chains = /* @__PURE__ */ new Map();
1082
- this.iframes = {
1083
- keychain: new KeychainIFrame({
1084
- ...options,
863
+ constructor(e) {
864
+ super(), this.selectedChain = e.defaultChainId, this.chains = /* @__PURE__ */ new Map(), this.iframes = {
865
+ keychain: new Ce({
866
+ ...e,
1085
867
  onClose: this.keychain?.reset,
1086
- onConnect: (keychain) => {
1087
- this.keychain = keychain;
868
+ onConnect: (t) => {
869
+ this.keychain = t;
1088
870
  }
1089
871
  })
1090
- };
1091
- this.options = options;
1092
- this.validateChains(options.chains);
1093
- if (typeof window !== "undefined") {
1094
- window.starknet_controller = this;
1095
- }
872
+ }, this.options = e, this.validateChains(e.chains), typeof window < "u" && (window.starknet_controller = this);
1096
873
  }
1097
874
  async probe() {
1098
875
  try {
1099
- await this.waitForKeychain();
1100
- if (!this.keychain) {
1101
- console.error(new NotReadyToConnect().message);
876
+ if (await this.waitForKeychain(), !this.keychain) {
877
+ console.error(new g().message);
1102
878
  return;
1103
879
  }
1104
- const response = await this.keychain.probe(this.rpcUrl());
1105
- let rpcUrl = response?.rpcUrl || this.rpcUrl();
1106
- this.account = new account_default(
880
+ const e = await this.keychain.probe(this.rpcUrl());
881
+ let t = e?.rpcUrl || this.rpcUrl();
882
+ this.account = new N(
1107
883
  this,
1108
- rpcUrl,
1109
- response.address,
884
+ t,
885
+ e.address,
1110
886
  this.keychain,
1111
887
  this.options,
1112
888
  this.iframes.keychain
@@ -1116,11 +892,11 @@ var ControllerProvider = class extends BaseProvider {
1116
892
  return;
1117
893
  }
1118
894
  if (!this.iframes.profile) {
1119
- const username = await this.keychain.username();
1120
- this.iframes.profile = new ProfileIFrame({
895
+ const e = await this.keychain.username();
896
+ this.iframes.profile = new Ie({
1121
897
  ...this.options,
1122
- onConnect: (profile) => {
1123
- this.profile = profile;
898
+ onConnect: (t) => {
899
+ this.profile = t;
1124
900
  },
1125
901
  methods: {
1126
902
  openSettings: () => this.openSettings.bind(this),
@@ -1128,89 +904,64 @@ var ControllerProvider = class extends BaseProvider {
1128
904
  openExecute: () => this.openExecute.bind(this)
1129
905
  },
1130
906
  rpcUrl: this.rpcUrl(),
1131
- username,
907
+ username: e,
1132
908
  version: this.version
1133
909
  });
1134
910
  }
1135
911
  return this.account;
1136
912
  }
1137
913
  async connect() {
1138
- if (this.account) {
914
+ if (this.account)
1139
915
  return this.account;
1140
- }
1141
916
  if (!this.keychain || !this.iframes.keychain) {
1142
- console.error(new NotReadyToConnect().message);
917
+ console.error(new g().message);
1143
918
  return;
1144
919
  }
1145
- if (!!document.hasStorageAccess) {
1146
- const ok = await document.hasStorageAccess();
1147
- if (!ok) {
1148
- await document.requestStorageAccess();
1149
- }
1150
- }
1151
- this.iframes.keychain.open();
920
+ document.hasStorageAccess && (await document.hasStorageAccess() || await document.requestStorageAccess()), this.iframes.keychain.open();
1152
921
  try {
1153
- let response = await this.keychain.connect(
922
+ let e = await this.keychain.connect(
1154
923
  this.options.policies || {},
1155
924
  this.rpcUrl()
1156
925
  );
1157
- if (response.code !== "SUCCESS" /* SUCCESS */) {
1158
- throw new Error(response.message);
1159
- }
1160
- response = response;
1161
- this.account = new account_default(
926
+ if (e.code !== A.SUCCESS)
927
+ throw new Error(e.message);
928
+ return e = e, this.account = new N(
1162
929
  this,
1163
930
  this.rpcUrl(),
1164
- response.address,
931
+ e.address,
1165
932
  this.keychain,
1166
933
  this.options,
1167
934
  this.iframes.keychain
1168
- );
1169
- return this.account;
935
+ ), this.account;
1170
936
  } catch (e) {
1171
937
  console.log(e);
1172
938
  } finally {
1173
939
  this.iframes.keychain.close();
1174
940
  }
1175
941
  }
1176
- async switchStarknetChain(chainId) {
1177
- if (!this.keychain || !this.iframes.keychain) {
1178
- console.error(new NotReadyToConnect().message);
1179
- return false;
1180
- }
942
+ async switchStarknetChain(e) {
943
+ if (!this.keychain || !this.iframes.keychain)
944
+ return console.error(new g().message), !1;
1181
945
  try {
1182
- this.selectedChain = chainId;
1183
- const response = await this.keychain.probe(this.rpcUrl());
1184
- if (response.rpcUrl === this.rpcUrl()) {
1185
- return true;
1186
- }
1187
- await this.keychain.switchChain(this.rpcUrl());
1188
- await this.profile?.switchChain(this.rpcUrl());
1189
- } catch (e) {
1190
- console.error(e);
1191
- return false;
946
+ if (this.selectedChain = e, (await this.keychain.probe(this.rpcUrl())).rpcUrl === this.rpcUrl())
947
+ return !0;
948
+ await this.keychain.switchChain(this.rpcUrl()), await this.profile?.switchChain(this.rpcUrl());
949
+ } catch (t) {
950
+ return console.error(t), !1;
1192
951
  }
1193
- this.emitNetworkChanged(chainId);
1194
- return true;
952
+ return this.emitNetworkChanged(e), !0;
1195
953
  }
1196
- addStarknetChain(_chain) {
1197
- return Promise.resolve(true);
954
+ addStarknetChain(e) {
955
+ return Promise.resolve(!0);
1198
956
  }
1199
957
  async disconnect() {
1200
958
  if (!this.keychain) {
1201
- console.error(new NotReadyToConnect().message);
959
+ console.error(new g().message);
1202
960
  return;
1203
961
  }
1204
- if (!!document.hasStorageAccess) {
1205
- const ok = await document.hasStorageAccess();
1206
- if (!ok) {
1207
- await document.requestStorageAccess();
1208
- }
1209
- }
1210
- this.account = void 0;
1211
- return this.keychain.disconnect();
962
+ return document.hasStorageAccess && (await document.hasStorageAccess() || await document.requestStorageAccess()), this.account = void 0, this.keychain.disconnect();
1212
963
  }
1213
- async openProfile(tab = "inventory") {
964
+ async openProfile(e = "inventory") {
1214
965
  if (!this.profile || !this.iframes.profile?.url) {
1215
966
  console.error("Profile is not ready");
1216
967
  return;
@@ -1219,10 +970,9 @@ var ControllerProvider = class extends BaseProvider {
1219
970
  console.error("Account is not ready");
1220
971
  return;
1221
972
  }
1222
- this.profile.navigate(`${this.iframes.profile.url?.pathname}/${tab}`);
1223
- this.iframes.profile.open();
973
+ this.profile.navigate(`${this.iframes.profile.url?.pathname}/${e}`), this.iframes.profile.open();
1224
974
  }
1225
- async openProfileTo(to) {
975
+ async openProfileTo(e) {
1226
976
  if (!this.profile || !this.iframes.profile?.url) {
1227
977
  console.error("Profile is not ready");
1228
978
  return;
@@ -1231,10 +981,9 @@ var ControllerProvider = class extends BaseProvider {
1231
981
  console.error("Account is not ready");
1232
982
  return;
1233
983
  }
1234
- this.profile.navigate(`${this.iframes.profile.url?.pathname}/${to}`);
1235
- this.iframes.profile.open();
984
+ this.profile.navigate(`${this.iframes.profile.url?.pathname}/${e}`), this.iframes.profile.open();
1236
985
  }
1237
- async openProfileAt(at) {
986
+ async openProfileAt(e) {
1238
987
  if (!this.profile || !this.iframes.profile?.url) {
1239
988
  console.error("Profile is not ready");
1240
989
  return;
@@ -1243,181 +992,127 @@ var ControllerProvider = class extends BaseProvider {
1243
992
  console.error("Account is not ready");
1244
993
  return;
1245
994
  }
1246
- this.profile.navigate(at);
1247
- this.iframes.profile.open();
995
+ this.profile.navigate(e), this.iframes.profile.open();
1248
996
  }
1249
997
  async openSettings() {
1250
- if (!this.keychain || !this.iframes.keychain) {
1251
- console.error(new NotReadyToConnect().message);
1252
- return null;
1253
- }
1254
- if (this.iframes.profile?.sendBackward) {
1255
- this.iframes.profile?.sendBackward();
1256
- } else {
1257
- this.iframes.profile?.close();
1258
- }
1259
- this.iframes.keychain.open();
1260
- const res = await this.keychain.openSettings();
1261
- this.iframes.keychain.close();
1262
- this.iframes.profile?.sendForward?.();
1263
- if (res && res.code === "NOT_CONNECTED" /* NOT_CONNECTED */) {
1264
- return false;
1265
- }
1266
- return true;
998
+ if (!this.keychain || !this.iframes.keychain)
999
+ return console.error(new g().message), null;
1000
+ this.iframes.profile?.sendBackward ? this.iframes.profile?.sendBackward() : this.iframes.profile?.close(), this.iframes.keychain.open();
1001
+ const e = await this.keychain.openSettings();
1002
+ return this.iframes.keychain.close(), this.iframes.profile?.sendForward?.(), !(e && e.code === A.NOT_CONNECTED);
1267
1003
  }
1268
- revoke(origin, _policy) {
1269
- if (!this.keychain) {
1270
- console.error(new NotReadyToConnect().message);
1271
- return null;
1272
- }
1273
- return this.keychain.revoke(origin);
1004
+ revoke(e, t) {
1005
+ return this.keychain ? this.keychain.revoke(e) : (console.error(new g().message), null);
1274
1006
  }
1275
1007
  rpcUrl() {
1276
- const chain = this.chains.get(this.selectedChain);
1277
- if (!chain) {
1278
- const availableChains = Array.from(this.chains.keys()).map(
1279
- (chain2) => shortString.decodeShortString(chain2)
1008
+ const e = this.chains.get(this.selectedChain);
1009
+ if (!e) {
1010
+ const t = Array.from(this.chains.keys()).map(
1011
+ (r) => M.decodeShortString(r)
1280
1012
  );
1281
1013
  throw new Error(
1282
- `Chain not found: ${shortString.decodeShortString(this.selectedChain)}. Available chains: ${availableChains.join(", ")}`
1014
+ `Chain not found: ${M.decodeShortString(this.selectedChain)}. Available chains: ${t.join(", ")}`
1283
1015
  );
1284
1016
  }
1285
- return chain.rpcUrl;
1017
+ return e.rpcUrl;
1286
1018
  }
1287
1019
  username() {
1288
1020
  if (!this.keychain) {
1289
- console.error(new NotReadyToConnect().message);
1021
+ console.error(new g().message);
1290
1022
  return;
1291
1023
  }
1292
1024
  return this.keychain.username();
1293
1025
  }
1294
1026
  openPurchaseCredits() {
1295
1027
  if (!this.keychain || !this.iframes.keychain) {
1296
- console.error(new NotReadyToConnect().message);
1028
+ console.error(new g().message);
1297
1029
  return;
1298
1030
  }
1299
1031
  if (!this.iframes.profile) {
1300
1032
  console.error("Profile is not ready");
1301
1033
  return;
1302
1034
  }
1303
- this.iframes.profile.close();
1304
- this.iframes.keychain.open();
1305
- this.keychain.openPurchaseCredits();
1035
+ this.iframes.profile.close(), this.iframes.keychain.open(), this.keychain.openPurchaseCredits();
1306
1036
  }
1307
- async openExecute(calls, chainId) {
1037
+ async openExecute(e, t) {
1308
1038
  if (!this.keychain || !this.iframes.keychain) {
1309
- console.error(new NotReadyToConnect().message);
1039
+ console.error(new g().message);
1310
1040
  return;
1311
1041
  }
1312
1042
  if (!this.iframes.profile) {
1313
1043
  console.error("Profile is not ready");
1314
1044
  return;
1315
1045
  }
1316
- let currentChainId = this.selectedChain;
1317
- if (chainId) {
1318
- this.switchStarknetChain(chainId);
1319
- }
1320
- this.iframes.profile?.sendBackward();
1321
- this.iframes.keychain.open();
1322
- this.iframes.profile?.close();
1323
- const res = await this.keychain.execute(calls, void 0, void 0, true);
1324
- this.iframes.profile?.open();
1325
- this.iframes.keychain.close();
1326
- this.iframes.profile?.sendForward();
1327
- if (chainId) {
1328
- this.switchStarknetChain(currentChainId);
1329
- }
1330
- return !(res && (res.code === "NOT_CONNECTED" /* NOT_CONNECTED */ || res.code === "CANCELED" /* CANCELED */));
1046
+ let r = this.selectedChain;
1047
+ t && this.switchStarknetChain(t), this.iframes.profile?.sendBackward(), this.iframes.keychain.open(), this.iframes.profile?.close();
1048
+ const n = await this.keychain.execute(e, void 0, void 0, !0);
1049
+ return this.iframes.profile?.open(), this.iframes.keychain.close(), this.iframes.profile?.sendForward(), t && this.switchStarknetChain(r), !(n && (n.code === A.NOT_CONNECTED || n.code === A.CANCELED));
1331
1050
  }
1332
1051
  async delegateAccount() {
1333
- if (!this.keychain) {
1334
- console.error(new NotReadyToConnect().message);
1335
- return null;
1336
- }
1337
- return await this.keychain.delegateAccount();
1052
+ return this.keychain ? await this.keychain.delegateAccount() : (console.error(new g().message), null);
1338
1053
  }
1339
- async validateChains(chains) {
1340
- for (const chain of chains) {
1054
+ async validateChains(e) {
1055
+ for (const t of e)
1341
1056
  try {
1342
- const url = new URL(chain.rpcUrl);
1343
- const chainId = await parseChainId(url);
1344
- this.chains.set(chainId, chain);
1345
- } catch (error) {
1346
- console.error(`Failed to parse chainId for ${chain.rpcUrl}:`, error);
1057
+ const r = new URL(t.rpcUrl), n = await K(r);
1058
+ this.chains.set(n, t);
1059
+ } catch (r) {
1060
+ console.error(`Failed to parse chainId for ${t.rpcUrl}:`, r);
1347
1061
  }
1348
- }
1349
- if (!this.chains.has(this.selectedChain)) {
1350
- console.warn(
1351
- `Selected chain ${this.selectedChain} not found in configured chains. Available chains: ${Array.from(this.chains.keys()).join(", ")}`
1352
- );
1353
- }
1062
+ this.chains.has(this.selectedChain) || console.warn(
1063
+ `Selected chain ${this.selectedChain} not found in configured chains. Available chains: ${Array.from(this.chains.keys()).join(", ")}`
1064
+ );
1354
1065
  }
1355
1066
  waitForKeychain({
1356
- timeout = 5e4,
1357
- interval = 100
1067
+ timeout: e = 5e4,
1068
+ interval: t = 100
1358
1069
  } = {}) {
1359
- return new Promise((resolve, reject) => {
1360
- const startTime = Date.now();
1361
- const id = setInterval(() => {
1362
- if (Date.now() - startTime > timeout) {
1363
- clearInterval(id);
1364
- reject(new Error("Timeout waiting for keychain"));
1070
+ return new Promise((r, n) => {
1071
+ const o = Date.now(), c = setInterval(() => {
1072
+ if (Date.now() - o > e) {
1073
+ clearInterval(c), n(new Error("Timeout waiting for keychain"));
1365
1074
  return;
1366
1075
  }
1367
- if (!this.keychain) return;
1368
- clearInterval(id);
1369
- resolve();
1370
- }, interval);
1076
+ this.keychain && (clearInterval(c), r());
1077
+ }, t);
1371
1078
  });
1372
1079
  }
1373
- };
1374
- var cache = /* @__PURE__ */ new Map();
1375
- async function lookup(request) {
1376
- if (!request.addresses?.length && !request.usernames?.length) {
1080
+ }
1081
+ const R = /* @__PURE__ */ new Map();
1082
+ async function U(a) {
1083
+ if (!a.addresses?.length && !a.usernames?.length)
1377
1084
  return { results: [] };
1378
- }
1379
- const response = await fetch(`${API_URL}/lookup`, {
1085
+ const e = await fetch(`${q}/lookup`, {
1380
1086
  method: "POST",
1381
1087
  headers: {
1382
1088
  "Content-Type": "application/json"
1383
1089
  },
1384
- body: JSON.stringify(request)
1090
+ body: JSON.stringify(a)
1385
1091
  });
1386
- if (!response.ok) {
1387
- throw new Error(`HTTP error! status: ${response.status}`);
1388
- }
1389
- return response.json();
1092
+ if (!e.ok)
1093
+ throw new Error(`HTTP error! status: ${e.status}`);
1094
+ return e.json();
1390
1095
  }
1391
- async function lookupUsernames(usernames) {
1392
- const uncachedUsernames = usernames.filter((name) => !cache.has(name));
1393
- if (uncachedUsernames.length > 0) {
1394
- const response = await lookup({ usernames: uncachedUsernames });
1395
- response.results.forEach((result) => {
1396
- cache.set(result.username, result.addresses[0]);
1397
- });
1398
- }
1399
- return new Map(
1400
- usernames.map((name) => [name, cache.get(name)]).filter((entry) => entry[1] !== void 0)
1096
+ async function Te(a) {
1097
+ const e = a.filter((t) => !R.has(t));
1098
+ return e.length > 0 && (await U({ usernames: e })).results.forEach((r) => {
1099
+ R.set(r.username, r.addresses[0]);
1100
+ }), new Map(
1101
+ a.map((t) => [t, R.get(t)]).filter((t) => t[1] !== void 0)
1401
1102
  );
1402
1103
  }
1403
- async function lookupAddresses(addresses) {
1404
- addresses = addresses.map(num.toHex);
1405
- const uncachedAddresses = addresses.filter((addr) => !cache.has(addr));
1406
- if (uncachedAddresses.length > 0) {
1407
- const response = await lookup({
1408
- addresses: uncachedAddresses
1409
- });
1410
- response.results.forEach((result) => {
1411
- cache.set(result.addresses[0], result.username);
1412
- });
1413
- }
1414
- return new Map(
1415
- addresses.map((addr) => [addr, cache.get(addr)]).filter((entry) => entry[1] !== void 0)
1104
+ async function Qe(a) {
1105
+ a = a.map(Y.toHex);
1106
+ const e = a.filter((t) => !R.has(t));
1107
+ return e.length > 0 && (await U({
1108
+ addresses: e
1109
+ })).results.forEach((r) => {
1110
+ R.set(r.addresses[0], r.username);
1111
+ }), new Map(
1112
+ a.map((t) => [t, R.get(t)]).filter((t) => t[1] !== void 0)
1416
1113
  );
1417
1114
  }
1418
-
1419
- // ../../node_modules/.pnpm/@cartridge+presets@https+++codeload.github.com+cartridge-gg+presets+tar.gz+b7d379e/node_modules/@cartridge/presets/dist/index.js
1420
- var configs = {
1115
+ var L = {
1421
1116
  "blob-arena": {
1422
1117
  origin: "blobarena.xyz",
1423
1118
  theme: {
@@ -1427,6 +1122,249 @@ var configs = {
1427
1122
  cover: "https://static.cartridge.gg/presets/blob-arena/cover.png",
1428
1123
  icon: "https://static.cartridge.gg/presets/blob-arena/icon.png",
1429
1124
  name: "Blob Arena"
1125
+ },
1126
+ chains: {
1127
+ SN_MAIN: {
1128
+ policies: {
1129
+ contracts: {
1130
+ "0x0170d4eb49bf626342a15cf77b0809baebee30cafbf7884b2d89bbb27e689f6d": {
1131
+ name: "Lobby Contract",
1132
+ description: "Game invites and responses",
1133
+ methods: [
1134
+ {
1135
+ name: "Send Invite",
1136
+ entrypoint: "send_invite",
1137
+ description: "Send users an invite"
1138
+ },
1139
+ {
1140
+ name: "Rescind Invite",
1141
+ entrypoint: "rescind_invite",
1142
+ description: "Rescind a previously sent invite"
1143
+ },
1144
+ {
1145
+ name: "Respond Invite",
1146
+ entrypoint: "respond_invite",
1147
+ description: "Respond to a received invite"
1148
+ },
1149
+ {
1150
+ name: "Rescind Response",
1151
+ entrypoint: "rescind_response",
1152
+ description: "Rescind a previous response to an invite"
1153
+ },
1154
+ {
1155
+ name: "Reject Invite",
1156
+ entrypoint: "reject_invite",
1157
+ description: "Reject a received invite"
1158
+ },
1159
+ {
1160
+ name: "Reject Response",
1161
+ entrypoint: "reject_response",
1162
+ description: "Reject a response to an invite"
1163
+ },
1164
+ {
1165
+ name: "Accept Response",
1166
+ entrypoint: "accept_response",
1167
+ description: "Accept a response to an invite"
1168
+ }
1169
+ ]
1170
+ },
1171
+ "0x02e4769ec3ac16456e6c6f806efc90f49d46df2a07b431a5a5d8b62e4fb21633": {
1172
+ name: "Game Contract",
1173
+ description: "Manages core gameplay interactions",
1174
+ methods: [
1175
+ {
1176
+ name: "Start Game",
1177
+ entrypoint: "start",
1178
+ description: "Start the game"
1179
+ },
1180
+ {
1181
+ name: "Commit Attack",
1182
+ entrypoint: "commit",
1183
+ description: "Commit an attack in the game"
1184
+ },
1185
+ {
1186
+ name: "Reveal Attack",
1187
+ entrypoint: "reveal",
1188
+ description: "Reveal the committed attack in the game"
1189
+ },
1190
+ {
1191
+ name: "Run Round",
1192
+ entrypoint: "run",
1193
+ description: "Run the next round of the game"
1194
+ },
1195
+ {
1196
+ name: "Forfeit",
1197
+ entrypoint: "forfeit",
1198
+ description: "Forfeit the game"
1199
+ },
1200
+ {
1201
+ name: "Kick Player",
1202
+ entrypoint: "kick_player",
1203
+ description: "Kick an inactive player from the game"
1204
+ }
1205
+ ]
1206
+ },
1207
+ "0x220896431692627f8d0caf9ac45e71c3b3d88c7c009acff756ff2081030a2b1": {
1208
+ name: "Betsy Contract",
1209
+ description: "Wager operations",
1210
+ methods: [
1211
+ {
1212
+ name: "Set Owner's Fee",
1213
+ entrypoint: "set_owners_fee",
1214
+ description: "Set the owner's fee"
1215
+ },
1216
+ {
1217
+ name: "Create Bet",
1218
+ entrypoint: "create",
1219
+ description: "Create a bet"
1220
+ },
1221
+ {
1222
+ name: "Accept Bet",
1223
+ entrypoint: "accept",
1224
+ description: "Accept a bet"
1225
+ },
1226
+ {
1227
+ name: "Reject Bet",
1228
+ entrypoint: "reject",
1229
+ description: "Reject a bet"
1230
+ },
1231
+ {
1232
+ name: "Revoke Bet",
1233
+ entrypoint: "revoke",
1234
+ description: "Revoke a bet"
1235
+ },
1236
+ {
1237
+ name: "Claim Win",
1238
+ entrypoint: "claim_win",
1239
+ description: "Claim the win"
1240
+ },
1241
+ {
1242
+ name: "Approve Release",
1243
+ entrypoint: "approve_release",
1244
+ description: "Approve fund release"
1245
+ },
1246
+ {
1247
+ name: "Revoke Release",
1248
+ entrypoint: "revoke_release",
1249
+ description: "Revoke fund release"
1250
+ },
1251
+ {
1252
+ name: "Release Funds",
1253
+ entrypoint: "release_funds",
1254
+ description: "Release funds"
1255
+ }
1256
+ ]
1257
+ },
1258
+ "0x56e5ae9af38c6eb85c226fbadaa31e37b5ee1a5401a9c371f4e7f154b76dce3": {
1259
+ name: "Arcade Contract",
1260
+ description: "Minting of arcade Bloberts",
1261
+ methods: [
1262
+ {
1263
+ name: "Mint Arcade Blobert",
1264
+ entrypoint: "mint",
1265
+ description: "Mint arcade blobert"
1266
+ }
1267
+ ]
1268
+ },
1269
+ "0x05a929a543e55877c58973a677fbd3b145f5057b39b87c89d879c87715878d52": {
1270
+ name: "AMMA Contract",
1271
+ description: "Minting of AMMA Bloberts",
1272
+ methods: [
1273
+ {
1274
+ name: "Mint AMMA Blobert",
1275
+ entrypoint: "mint",
1276
+ description: "Mint AMMA blobert"
1277
+ }
1278
+ ]
1279
+ },
1280
+ "0x14aefc8245c5f2c17204857372944aba413ec639547359b629682c542eca555": {
1281
+ name: "PVE Contract",
1282
+ description: "Arcade mode contract",
1283
+ methods: [
1284
+ {
1285
+ name: "Start Game",
1286
+ entrypoint: "start_game",
1287
+ description: "Start the game"
1288
+ },
1289
+ {
1290
+ name: "Attack",
1291
+ entrypoint: "attack",
1292
+ description: "Submit an attack"
1293
+ },
1294
+ {
1295
+ name: "Start Challenge",
1296
+ entrypoint: "start_challenge",
1297
+ description: "Start a challenge"
1298
+ },
1299
+ {
1300
+ name: "Next Challenge Round",
1301
+ entrypoint: "next_challenge_round",
1302
+ description: "Go forward"
1303
+ },
1304
+ {
1305
+ name: "Respawn Challenge",
1306
+ entrypoint: "respawn_challenge",
1307
+ description: "Restart a challenge"
1308
+ },
1309
+ {
1310
+ name: "End Challenge",
1311
+ entrypoint: "end_challenge",
1312
+ description: "End a challenge"
1313
+ },
1314
+ {
1315
+ name: "Claim Free Game",
1316
+ entrypoint: "claim_free_game",
1317
+ description: "Claim an arcade game"
1318
+ }
1319
+ ]
1320
+ },
1321
+ "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7": {
1322
+ name: "ETH Token",
1323
+ description: "ETH ERC20 approval",
1324
+ methods: [
1325
+ {
1326
+ name: "Approve",
1327
+ entrypoint: "approve",
1328
+ description: "ETH allowance"
1329
+ }
1330
+ ]
1331
+ },
1332
+ "0x072599086bffce6593a2e08169c21d23564f08be1e1d0b8e05a9768f20469a3f": {
1333
+ name: "LORDS Token",
1334
+ description: "LORDS ERC20 approval",
1335
+ methods: [
1336
+ {
1337
+ name: "Approve",
1338
+ entrypoint: "approve",
1339
+ description: "LORDS allowance"
1340
+ }
1341
+ ]
1342
+ },
1343
+ "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d": {
1344
+ name: "STRK Token",
1345
+ description: "STRK ERC20 approval",
1346
+ methods: [
1347
+ {
1348
+ name: "Approve",
1349
+ entrypoint: "approve",
1350
+ description: "STRK allowance"
1351
+ }
1352
+ ]
1353
+ }
1354
+ }
1355
+ }
1356
+ }
1357
+ }
1358
+ },
1359
+ "blob-arena-amma": {
1360
+ origin: "blobarena.xyz",
1361
+ theme: {
1362
+ colors: {
1363
+ primary: "#D7B000"
1364
+ },
1365
+ cover: "https://static.cartridge.gg/presets/blob-arena-amma/cover.png",
1366
+ icon: "https://static.cartridge.gg/presets/blob-arena-amma/icon.png",
1367
+ name: "Blob Arena AMMA"
1430
1368
  }
1431
1369
  },
1432
1370
  budokan: {
@@ -1435,7 +1373,7 @@ var configs = {
1435
1373
  SN_MAIN: {
1436
1374
  policies: {
1437
1375
  contracts: {
1438
- "0x0530d9693304c79b5b506aa2fa09c27681373d71b69a839378ff5fd108aa5fc6": {
1376
+ "0x05fb427962210ac4b3be5e23419b0d9e91ca6a9c57b0665d2ca7783092506f6e": {
1439
1377
  name: "Budokan",
1440
1378
  methods: [
1441
1379
  {
@@ -1471,6 +1409,17 @@ var configs = {
1471
1409
  name: "Budokan"
1472
1410
  }
1473
1411
  },
1412
+ "bytebeasts-tamagotchi": {
1413
+ origin: "bytebeasts.games",
1414
+ theme: {
1415
+ colors: {
1416
+ primary: "#ECECDA"
1417
+ },
1418
+ cover: "https://static.cartridge.gg/presets/bytebeasts-tamagotchi/cover.png",
1419
+ icon: "https://static.cartridge.gg/presets/bytebeasts-tamagotchi/icon.png",
1420
+ name: "ByteBeasts-Tamagotchi"
1421
+ }
1422
+ },
1474
1423
  cartridge: {
1475
1424
  origin: "*",
1476
1425
  theme: {
@@ -1482,6 +1431,112 @@ var configs = {
1482
1431
  }
1483
1432
  }
1484
1433
  },
1434
+ coloniz: {
1435
+ origin: ["coloniz.xyz"],
1436
+ chains: {
1437
+ SN_MAIN: {
1438
+ policies: {
1439
+ contracts: {
1440
+ "0x430d7262fb9ad2c830d793471c3a07e08afe54f9a5f0d28db48712bc918f5f": {
1441
+ name: "Tokenbound Sessions",
1442
+ methods: [
1443
+ {
1444
+ name: "Execute",
1445
+ entrypoint: "execute",
1446
+ description: "Session proxy"
1447
+ }
1448
+ ]
1449
+ },
1450
+ "0x56977e22ad4751ea5b3df958da3080971c7f26036127452b98c154fbea86d06": {
1451
+ name: "Profile Creation",
1452
+ methods: [
1453
+ {
1454
+ name: "Create A Coloniz Profile",
1455
+ entrypoint: "create_profile",
1456
+ description: "Create a profile on Coloniz"
1457
+ }
1458
+ ]
1459
+ },
1460
+ "0x5cc4644374e3f91b52cfe64937dacaec91b2d81fe2f146a860ab5b3bb751ce8": {
1461
+ name: "Handles Minting",
1462
+ methods: [
1463
+ {
1464
+ name: "Mint Handle",
1465
+ entrypoint: "mint_handle",
1466
+ description: "Mint Coloniz Profile Handle"
1467
+ }
1468
+ ]
1469
+ },
1470
+ "0x79914426e3cc5336c479ee87770380ceeda4b60496657e70c3ee7d57a992226": {
1471
+ name: "Handle Registry",
1472
+ methods: [
1473
+ {
1474
+ name: "Link Handle",
1475
+ entrypoint: "link",
1476
+ description: "Link handle to Coloniz Profile"
1477
+ }
1478
+ ]
1479
+ }
1480
+ },
1481
+ messages: [
1482
+ {
1483
+ name: "Sign in to Coloniz",
1484
+ description: "Sign the message to login to Coloniz",
1485
+ types: {
1486
+ StarknetDomain: [
1487
+ {
1488
+ name: "name",
1489
+ type: "shortstring"
1490
+ },
1491
+ {
1492
+ name: "version",
1493
+ type: "shortstring"
1494
+ },
1495
+ {
1496
+ name: "chainId",
1497
+ type: "shortstring"
1498
+ },
1499
+ {
1500
+ name: "revision",
1501
+ type: "shortstring"
1502
+ }
1503
+ ],
1504
+ Signin: [
1505
+ {
1506
+ name: "content",
1507
+ type: "string"
1508
+ },
1509
+ {
1510
+ name: "nonce",
1511
+ type: "string"
1512
+ },
1513
+ {
1514
+ name: "timestamp",
1515
+ type: "string"
1516
+ }
1517
+ ]
1518
+ },
1519
+ primaryType: "Signin",
1520
+ domain: {
1521
+ name: "Coloniz",
1522
+ version: "1",
1523
+ revision: "1",
1524
+ chainId: "SN_MAIN"
1525
+ }
1526
+ }
1527
+ ]
1528
+ }
1529
+ }
1530
+ },
1531
+ theme: {
1532
+ colors: {
1533
+ primary: "#4285F4"
1534
+ },
1535
+ cover: "https://static.cartridge.gg/presets/coloniz/cover.png",
1536
+ icon: "https://static.cartridge.gg/presets/coloniz/icon.png",
1537
+ name: "Coloniz"
1538
+ }
1539
+ },
1485
1540
  credit: {
1486
1541
  origin: "*",
1487
1542
  theme: {
@@ -1504,7 +1559,7 @@ var configs = {
1504
1559
  SN_MAIN: {
1505
1560
  policies: {
1506
1561
  contracts: {
1507
- "0x020fc3c9efd0dde5f53642dac7f53638aeaae98ff9af5f1642546f389ce9dec5": {
1562
+ "0x0320f977f47f0885e376b781d9e244d9f59f10154ce844ae1815c919f0374726": {
1508
1563
  name: "game_systems",
1509
1564
  methods: [
1510
1565
  {
@@ -1515,7 +1570,7 @@ var configs = {
1515
1570
  }
1516
1571
  ]
1517
1572
  },
1518
- "0x036d27fb8604302b7e4f747a73a84b7c9ae9106f3c5f65e51e934fac9f7c753f": {
1573
+ "0x0062cfee20a5be4b305f610a23291aa27f3fca7a5fd14bd8e2d0389556003e12": {
1519
1574
  name: "battle_systems",
1520
1575
  methods: [
1521
1576
  {
@@ -1523,7 +1578,7 @@ var configs = {
1523
1578
  }
1524
1579
  ]
1525
1580
  },
1526
- "0x046f9c2f2f3144059f7332bd989151f782f462f4ea6e3755c2f7b3eac49be73d": {
1581
+ "0x00ae7393b60ad9fd5c26851341b9a4afe61c6ae34326dee79cf5d096e9f55a36": {
1527
1582
  name: "draft_systems",
1528
1583
  methods: [
1529
1584
  {
@@ -1531,7 +1586,7 @@ var configs = {
1531
1586
  }
1532
1587
  ]
1533
1588
  },
1534
- "0x045543452215a2b416d8c52e5a475e7e0eed2e7cbaf5a699ae5fc0599f4afae9": {
1589
+ "0x07c9a684813410b39c776c49544d8ecb2d39f0b91bd83ffec31ebc938e053e25": {
1535
1590
  name: "map_systems",
1536
1591
  methods: [
1537
1592
  {
@@ -1541,14 +1596,6 @@ var configs = {
1541
1596
  entrypoint: "select_node"
1542
1597
  }
1543
1598
  ]
1544
- },
1545
- "0x0530d9693304c79b5b506aa2fa09c27681373d71b69a839378ff5fd108aa5fc6": {
1546
- name: "tournament_component",
1547
- methods: [
1548
- {
1549
- entrypoint: "enter_tournament"
1550
- }
1551
- ]
1552
1599
  }
1553
1600
  }
1554
1601
  }
@@ -2811,8 +2858,7 @@ var configs = {
2811
2858
  name: "zKube"
2812
2859
  }
2813
2860
  }
2814
- };
2815
- var metadata = [
2861
+ }, Re = [
2816
2862
  {
2817
2863
  name: "Wrapped BTC",
2818
2864
  symbol: "WBTC",
@@ -2838,7 +2884,7 @@ var metadata = [
2838
2884
  l2_token_address: "0x070a76fd48ca0ef910631754d77dd822147fe98a569b826ec85e3c33fde586ac",
2839
2885
  sort_order: 3,
2840
2886
  total_supply: null,
2841
- hidden: true,
2887
+ hidden: !0,
2842
2888
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/dc0ae733-5498-4afa-f475-48dba677aa00/logo"
2843
2889
  },
2844
2890
  {
@@ -2866,7 +2912,7 @@ var metadata = [
2866
2912
  l2_token_address: "0x00da114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3",
2867
2913
  sort_order: 4,
2868
2914
  total_supply: null,
2869
- hidden: true,
2915
+ hidden: !0,
2870
2916
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/919e761b-56f7-4f53-32aa-5e066f7f6200/logo"
2871
2917
  },
2872
2918
  {
@@ -2921,7 +2967,7 @@ var metadata = [
2921
2967
  l2_token_address: "0x01fa2fb85f624600112040e1f3a848f53a37ed5a7385810063d5fe6887280333",
2922
2968
  sort_order: 3,
2923
2969
  total_supply: null,
2924
- hidden: true,
2970
+ hidden: !0,
2925
2971
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/77612e4e-f7ee-4dba-2066-af321843ef00/logo"
2926
2972
  },
2927
2973
  {
@@ -2931,7 +2977,7 @@ var metadata = [
2931
2977
  l2_token_address: "0x009c6b4fb13dfaa025c1383ed6190af8ed8cbb09d9588a3bb020feb152442406",
2932
2978
  sort_order: 1,
2933
2979
  total_supply: 649462235,
2934
- hidden: true,
2980
+ hidden: !0,
2935
2981
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/eeaf0779-e492-474c-ef19-b27843525600/logo"
2936
2982
  },
2937
2983
  {
@@ -2941,7 +2987,7 @@ var metadata = [
2941
2987
  l2_token_address: "0x0058efd0e73c33a848ffaa88738d128ebf0af98ea78cf3c14dc757bb02d39ffb",
2942
2988
  sort_order: 1,
2943
2989
  total_supply: null,
2944
- hidden: true,
2990
+ hidden: !0,
2945
2991
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/98bea621-1e4f-4d63-9689-bdaef0d56500/logo"
2946
2992
  },
2947
2993
  {
@@ -2951,7 +2997,7 @@ var metadata = [
2951
2997
  l2_token_address: "0x04578fffc279e61b5cb0267a5f8e24b6089d40f93158fbbad2cb23b8622c9233",
2952
2998
  sort_order: 1,
2953
2999
  total_supply: null,
2954
- hidden: true,
3000
+ hidden: !0,
2955
3001
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/cd6fe18a-25db-4de9-758a-daf3b364ea00/logo"
2956
3002
  },
2957
3003
  {
@@ -2970,7 +3016,7 @@ var metadata = [
2970
3016
  l2_token_address: "0x0410466536b5ae074f7fea81e5533b8134a9fa08b3dd077dd9db08f64997d113",
2971
3017
  sort_order: 1,
2972
3018
  total_supply: null,
2973
- hidden: true,
3019
+ hidden: !0,
2974
3020
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/811f019a-0461-4cff-6c1e-442102863f00/logo"
2975
3021
  },
2976
3022
  {
@@ -2980,8 +3026,8 @@ var metadata = [
2980
3026
  l2_token_address: "0x06f15ec4b6ff0b7f7a216c4b2ccdefc96cbf114d6242292ca82971592f62273b",
2981
3027
  sort_order: 1,
2982
3028
  total_supply: null,
2983
- hidden: true,
2984
- disabled: true
3029
+ hidden: !0,
3030
+ disabled: !0
2985
3031
  },
2986
3032
  {
2987
3033
  name: "StarkNet Token",
@@ -3017,7 +3063,7 @@ var metadata = [
3017
3063
  l2_token_address: "0x023ed2ba4fb5709302c5dfd739fa7613359042f143286c115b6c7f7dc2601015",
3018
3064
  sort_order: 1,
3019
3065
  total_supply: 1e11,
3020
- hidden: true,
3066
+ hidden: !0,
3021
3067
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/2db5a2a6-c98e-4b80-35e0-31b489132100/logo"
3022
3068
  },
3023
3069
  {
@@ -3045,7 +3091,7 @@ var metadata = [
3045
3091
  l2_token_address: "0x498edfaf50ca5855666a700c25dd629d577eb9afccdf3b5977aec79aee55ada",
3046
3092
  sort_order: 3,
3047
3093
  total_supply: null,
3048
- hidden: false,
3094
+ hidden: !1,
3049
3095
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/6bd6d156-f509-4b51-5dfc-3ee566143600/logo"
3050
3096
  },
3051
3097
  {
@@ -3055,7 +3101,7 @@ var metadata = [
3055
3101
  l2_token_address: "0xe5f10eddc01699dc899a30dbc3c9858148fa4aa0a47c0ffd85f887ffc4653e",
3056
3102
  sort_order: 1,
3057
3103
  total_supply: 1,
3058
- hidden: true,
3104
+ hidden: !0,
3059
3105
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/90868d05-cb75-4c42-278c-5a540db2cf00/logo"
3060
3106
  },
3061
3107
  {
@@ -3065,7 +3111,7 @@ var metadata = [
3065
3111
  l2_token_address: "0x01bfe97d729138fc7c2d93c77d6d1d8a24708d5060608017d9b384adf38f04c7",
3066
3112
  sort_order: 1,
3067
3113
  total_supply: null,
3068
- hidden: true,
3114
+ hidden: !0,
3069
3115
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/275f0fa8-a691-471c-ace6-0eb0315dde00/logo"
3070
3116
  },
3071
3117
  {
@@ -3075,7 +3121,7 @@ var metadata = [
3075
3121
  l2_token_address: "0x439a1c010e3e1bb2d43d43411000893c0042bd88f6c701611a0ea914d426da4",
3076
3122
  sort_order: 1,
3077
3123
  total_supply: null,
3078
- hidden: true,
3124
+ hidden: !0,
3079
3125
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/932e7f83-a4c2-40f0-3048-35af3b194100/logo"
3080
3126
  },
3081
3127
  {
@@ -3085,7 +3131,7 @@ var metadata = [
3085
3131
  l2_token_address: "0xce635e3f241b0ae78c46a929d84a9101910188f9c4024eaa7559556503c31a",
3086
3132
  sort_order: 1,
3087
3133
  total_supply: null,
3088
- hidden: true,
3134
+ hidden: !0,
3089
3135
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/cf2ee180-06bf-4443-e3aa-724d7c28e800/logo"
3090
3136
  },
3091
3137
  {
@@ -3095,7 +3141,7 @@ var metadata = [
3095
3141
  l2_token_address: "0x40d8907cec0f7ae9c364dfb12485a1314d84c129bf1898d2f3d4b7fcc7d44f4",
3096
3142
  sort_order: 1,
3097
3143
  total_supply: null,
3098
- hidden: true,
3144
+ hidden: !0,
3099
3145
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/1db5f954-c1ef-447e-9f8f-05bd9f3b2b00/logo"
3100
3146
  },
3101
3147
  {
@@ -3105,7 +3151,7 @@ var metadata = [
3105
3151
  l2_token_address: "0x66ed5c928ee027a9419ace1cbea8389885161db5572a7c5c4fef2310e9bf494",
3106
3152
  sort_order: 1,
3107
3153
  total_supply: null,
3108
- hidden: true,
3154
+ hidden: !0,
3109
3155
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/6bbcdcc9-6146-404d-9501-92a664cf3100/logo"
3110
3156
  },
3111
3157
  {
@@ -3115,7 +3161,7 @@ var metadata = [
3115
3161
  l2_token_address: "0x1720cf6318bff45e62acc588680ae3cd4d5f8465b1d52cb710533c9299b031a",
3116
3162
  sort_order: 1,
3117
3163
  total_supply: null,
3118
- hidden: true,
3164
+ hidden: !0,
3119
3165
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/5af7c03b-e4ae-4aee-eba4-a4e2160a1d00/logo"
3120
3166
  },
3121
3167
  {
@@ -3125,7 +3171,7 @@ var metadata = [
3125
3171
  l2_token_address: "0x3b6448d09dcd023507376402686261f5d6739455fa02f804907b066e488da66",
3126
3172
  sort_order: 1,
3127
3173
  total_supply: null,
3128
- hidden: true,
3174
+ hidden: !0,
3129
3175
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/8be9bc66-486b-4181-6804-725a1db8ad00/logo"
3130
3176
  },
3131
3177
  {
@@ -3135,7 +3181,7 @@ var metadata = [
3135
3181
  l2_token_address: "0xdff9dca192609c4e86ab3be22c7ec1e968876c992d21986f3c542be97fa2f",
3136
3182
  sort_order: 1,
3137
3183
  total_supply: null,
3138
- hidden: true,
3184
+ hidden: !0,
3139
3185
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/fb9e90f7-3c2f-4c64-7e43-c3f694f35e00/logo"
3140
3186
  },
3141
3187
  {
@@ -3145,7 +3191,7 @@ var metadata = [
3145
3191
  l2_token_address: "0x6fe21d2d4a8a05bdb70f09c9250af9870020d5dcc35f410b4a39d6605c3e353",
3146
3192
  sort_order: 1,
3147
3193
  total_supply: null,
3148
- hidden: true,
3194
+ hidden: !0,
3149
3195
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/e443afeb-850b-46a0-a7ba-a473306d6b00/logo"
3150
3196
  },
3151
3197
  {
@@ -3155,7 +3201,7 @@ var metadata = [
3155
3201
  l2_token_address: "0x67ba235c569c23877064b2ac6ebd4d79f32d3c00f5fab8e28a3b5700b957f6",
3156
3202
  sort_order: 1,
3157
3203
  total_supply: null,
3158
- hidden: true,
3204
+ hidden: !0,
3159
3205
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/33dc517f-8a66-45eb-f2c5-de5388e47500/logo"
3160
3206
  },
3161
3207
  {
@@ -3165,7 +3211,7 @@ var metadata = [
3165
3211
  l2_token_address: "0x3956a5301e99522038a2e7dcb9c2a89bf087ffa79310ee0a508b5538efd8ddd",
3166
3212
  sort_order: 1,
3167
3213
  total_supply: null,
3168
- hidden: true,
3214
+ hidden: !0,
3169
3215
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/3d2e0fd8-4af8-49a0-4bdb-691a4d6ef800/logo"
3170
3216
  },
3171
3217
  {
@@ -3175,7 +3221,7 @@ var metadata = [
3175
3221
  l2_token_address: "0x555d713e59d4ff96b7960447e9bc9e79bfdeab5b0eea74e3df81bce61cfbc77",
3176
3222
  sort_order: 1,
3177
3223
  total_supply: null,
3178
- hidden: true,
3224
+ hidden: !0,
3179
3225
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/878c0d8a-8e2c-4281-0896-9cbbb2ef9400/logo"
3180
3226
  },
3181
3227
  {
@@ -3185,7 +3231,7 @@ var metadata = [
3185
3231
  l2_token_address: "0x1d655ac834d38df7921074fc1588411e202b1af83307cbd996983aff52db3a8",
3186
3232
  sort_order: 1,
3187
3233
  total_supply: null,
3188
- hidden: true,
3234
+ hidden: !0,
3189
3235
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/1c2c954f-448c-476b-a4a6-19b52efe3e00/logo"
3190
3236
  },
3191
3237
  {
@@ -3195,7 +3241,7 @@ var metadata = [
3195
3241
  l2_token_address: "0x3d9b66720959d0e7687b898292c10e62e78626f2dba5e1909961a2ce3f86612",
3196
3242
  sort_order: 1,
3197
3243
  total_supply: null,
3198
- hidden: true,
3244
+ hidden: !0,
3199
3245
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/6a45b34d-3bfe-4994-45b0-f2bee8abac00/logo"
3200
3246
  },
3201
3247
  {
@@ -3205,7 +3251,7 @@ var metadata = [
3205
3251
  l2_token_address: "0xe03ea8ae385f64754820af5c01c36abf1b8130dd6797d3fd9d430e4114e876",
3206
3252
  sort_order: 1,
3207
3253
  total_supply: null,
3208
- hidden: true,
3254
+ hidden: !0,
3209
3255
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/b1fa609d-8799-4754-cdea-ab69514ca700/logo"
3210
3256
  },
3211
3257
  {
@@ -3215,7 +3261,7 @@ var metadata = [
3215
3261
  l2_token_address: "0x5620aa7170cd66dbcbc37d03087bfe4633ffef91d3e4d97b501de906004f79b",
3216
3262
  sort_order: 1,
3217
3263
  total_supply: null,
3218
- hidden: true,
3264
+ hidden: !0,
3219
3265
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/27e37e85-91bd-4ee1-0552-1e0795077400/logo"
3220
3266
  },
3221
3267
  {
@@ -3225,7 +3271,7 @@ var metadata = [
3225
3271
  l2_token_address: "0x625c1f789b03ebebc7a9322366f38ebad1f693b84b2abd8cb8f5b2748b0cdd5",
3226
3272
  sort_order: 1,
3227
3273
  total_supply: null,
3228
- hidden: true,
3274
+ hidden: !0,
3229
3275
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/58591e20-24fb-4353-417a-81d877a5a200/logo"
3230
3276
  },
3231
3277
  {
@@ -3235,7 +3281,7 @@ var metadata = [
3235
3281
  l2_token_address: "0x35e24c02409c3cfe8d5646399a62c4d102bb782938d5f5180e92c9c62d3faf7",
3236
3282
  sort_order: 1,
3237
3283
  total_supply: null,
3238
- hidden: true,
3284
+ hidden: !0,
3239
3285
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/2f8cb892-e82a-4af3-bd09-316061faec00/logo"
3240
3286
  },
3241
3287
  {
@@ -3245,7 +3291,7 @@ var metadata = [
3245
3291
  l2_token_address: "0x4485f5a6e16562e1c761cd348e63256d00389e3ddf4f5d98afe7ab44c57c481",
3246
3292
  sort_order: 1,
3247
3293
  total_supply: null,
3248
- hidden: true,
3294
+ hidden: !0,
3249
3295
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/fe4bfc17-6553-4dc5-58d2-f452b4aa8a00/logo"
3250
3296
  },
3251
3297
  {
@@ -3255,7 +3301,7 @@ var metadata = [
3255
3301
  l2_token_address: "0x367f838f85a2f5e1580d6f011e4476f581083314cff8721ba3dda9706076eed",
3256
3302
  sort_order: 1,
3257
3303
  total_supply: null,
3258
- hidden: true,
3304
+ hidden: !0,
3259
3305
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/13bd026b-3612-480e-0119-04cf4c505a00/logo"
3260
3306
  },
3261
3307
  {
@@ -3265,7 +3311,7 @@ var metadata = [
3265
3311
  l2_token_address: "0x2f8dd022568af8f9f718aa37707a9b858529db56910633a160456838b6cbcbc",
3266
3312
  sort_order: 1,
3267
3313
  total_supply: null,
3268
- hidden: true,
3314
+ hidden: !0,
3269
3315
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/0ebf555f-e732-4054-f8e5-55b2ed49ba00/logo"
3270
3316
  },
3271
3317
  {
@@ -3275,7 +3321,7 @@ var metadata = [
3275
3321
  l2_token_address: "0x68b6e23cbbd58a644700f55e96c83580921e9f521b6e5175396b53ba7910e7d",
3276
3322
  sort_order: 1,
3277
3323
  total_supply: null,
3278
- hidden: true,
3324
+ hidden: !0,
3279
3325
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/f02a5b43-bfcf-408c-7d1b-fcfe68b02d00/logo"
3280
3326
  },
3281
3327
  {
@@ -3285,7 +3331,7 @@ var metadata = [
3285
3331
  l2_token_address: "0x3bf856515bece3c93f5061b7941b8645f817a0acab93c758b8c7b4bc0afa3c6",
3286
3332
  sort_order: 1,
3287
3333
  total_supply: null,
3288
- hidden: true,
3334
+ hidden: !0,
3289
3335
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/e74955fc-5c8a-4dff-4882-a49a46a5a800/logo"
3290
3336
  },
3291
3337
  {
@@ -3295,7 +3341,7 @@ var metadata = [
3295
3341
  l2_token_address: "0x0695b08ecdfdd828c2e6267da62f59e6d7543e690ef56a484df25c8566b332a5",
3296
3342
  sort_order: 1,
3297
3343
  total_supply: null,
3298
- hidden: true,
3344
+ hidden: !0,
3299
3345
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/9af855b7-4790-4390-9466-6bed4481ab00/logo"
3300
3346
  },
3301
3347
  {
@@ -3305,7 +3351,7 @@ var metadata = [
3305
3351
  l2_token_address: "0x264be95a4a2ace20add68cb321acdccd2f9f8440ee1c7abd85da44ddab01085",
3306
3352
  sort_order: 1,
3307
3353
  total_supply: null,
3308
- hidden: true,
3354
+ hidden: !0,
3309
3355
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/20817378-a45e-4521-f464-10f6dd13c500/logo"
3310
3356
  },
3311
3357
  {
@@ -3315,7 +3361,7 @@ var metadata = [
3315
3361
  l2_token_address: "0xac965f9e67164723c16735a9da8dbc9eb8e43b1bd0323591e87c056badf606",
3316
3362
  sort_order: 1,
3317
3363
  total_supply: null,
3318
- hidden: true,
3364
+ hidden: !0,
3319
3365
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/8787ed1f-af5c-4873-c01a-55f05e999a00/logo"
3320
3366
  },
3321
3367
  {
@@ -3325,7 +3371,7 @@ var metadata = [
3325
3371
  l2_token_address: "0x67e4ac00a241be06ba6afc11fa2715ec7da0c42c05a67ef6ecfcfeda725aaa8",
3326
3372
  sort_order: 1,
3327
3373
  total_supply: null,
3328
- hidden: true,
3374
+ hidden: !0,
3329
3375
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/dec7f31b-4b1d-46bb-4fca-c0253cf55a00/logo"
3330
3376
  },
3331
3377
  {
@@ -3335,7 +3381,7 @@ var metadata = [
3335
3381
  l2_token_address: "0x3bc86299bee061c7c8d7546ccb62b9daf9bffc653b1508facb722c6593874bc",
3336
3382
  sort_order: 1,
3337
3383
  total_supply: null,
3338
- hidden: true,
3384
+ hidden: !0,
3339
3385
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/7d2cd5a5-f38a-49f6-11f8-ba3b59a59e00/logo"
3340
3386
  },
3341
3387
  {
@@ -3345,7 +3391,7 @@ var metadata = [
3345
3391
  l2_token_address: "0x57a3f1ee475e072ce3be41785c0e889b7295d7a0dcc22b992c5b9408dbeb280",
3346
3392
  sort_order: 1,
3347
3393
  total_supply: null,
3348
- hidden: true,
3394
+ hidden: !0,
3349
3395
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/c338b6a8-77c4-4dd6-34f5-1af0d3fb1e00/logo"
3350
3396
  },
3351
3397
  {
@@ -3355,14 +3401,28 @@ var metadata = [
3355
3401
  l2_token_address: "0x27719173cfe10f1aa38d2aaed0a075b6077290f1e817aa3485d2b828394f4d9",
3356
3402
  sort_order: 1,
3357
3403
  total_supply: null,
3358
- hidden: true,
3404
+ hidden: !0,
3359
3405
  logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/6deef27f-df40-4248-4e1b-ed1d79a3f000/logo"
3360
3406
  }
3361
- ];
3362
- var controllerConfigs = configs;
3363
- var erc20Metadata = metadata;
3364
- var defaultTheme = configs["cartridge"].theme;
3365
-
3366
- export { ArgentWallet, MetaMaskWallet, NotReadyToConnect, PhantomWallet, ResponseCodes, WalletBridge, controllerConfigs, ControllerProvider as default, defaultTheme, erc20Metadata, humanizeString, lookupAddresses, lookupUsernames, normalizeCalls, parseChainId, toArray, toSessionPolicies, toWasmPolicies };
3407
+ ], ze = L, Fe = Re, Ue = L.cartridge.theme;
3408
+ export {
3409
+ Ae as ArgentWallet,
3410
+ ve as MetaMaskWallet,
3411
+ g as NotReadyToConnect,
3412
+ ke as PhantomWallet,
3413
+ A as ResponseCodes,
3414
+ xe as WalletBridge,
3415
+ ze as controllerConfigs,
3416
+ Be as default,
3417
+ Ue as defaultTheme,
3418
+ Fe as erc20Metadata,
3419
+ Ye as humanizeString,
3420
+ Qe as lookupAddresses,
3421
+ Te as lookupUsernames,
3422
+ $e as normalizeCalls,
3423
+ K as parseChainId,
3424
+ $ as toArray,
3425
+ We as toSessionPolicies,
3426
+ He as toWasmPolicies
3427
+ };
3367
3428
  //# sourceMappingURL=index.js.map
3368
- //# sourceMappingURL=index.js.map