@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.
- package/.turbo/turbo-build$colon$deps.log +49 -59
- package/.turbo/turbo-build.log +45 -63
- package/.turbo/turbo-format.log +39 -0
- package/dist/account.d.ts +35 -0
- package/dist/constants.d.ts +3 -0
- package/dist/controller.d.ts +3 -6
- package/dist/errors.d.ts +3 -0
- package/dist/icon.d.ts +1 -0
- package/dist/iframe/base.d.ts +26 -0
- package/dist/iframe/index.d.ts +3 -0
- package/dist/iframe/keychain.d.ts +10 -0
- package/dist/iframe/profile.d.ts +12 -0
- package/dist/index.d.ts +6 -67
- package/dist/index.js +1124 -1064
- package/dist/index.js.map +1 -1
- package/dist/lookup.d.ts +2 -4
- package/dist/mutex.d.ts +12 -0
- package/dist/node/index.cjs +1 -12
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +95 -8
- package/dist/node/index.d.ts +95 -8
- package/dist/node/index.js +2 -12
- package/dist/node/index.js.map +1 -1
- package/dist/policies.d.ts +15 -0
- package/dist/provider-CGv2ANQX.js +286 -0
- package/dist/provider-CGv2ANQX.js.map +1 -0
- package/dist/provider.d.ts +21 -0
- package/dist/session/account.d.ts +31 -0
- package/dist/session/backend.d.ts +58 -0
- package/dist/session/index.d.ts +4 -38
- package/dist/session/{index.d.cts → provider.d.ts} +4 -10
- package/dist/session.d.ts +6 -0
- package/dist/session.js +354 -0
- package/dist/session.js.map +1 -0
- package/dist/stats.html +4949 -0
- package/dist/telegram/backend.d.ts +30 -0
- package/dist/telegram/provider.d.ts +24 -0
- package/dist/types.d.ts +146 -0
- package/dist/utils.d.ts +15 -0
- package/dist/wallets/argent/index.d.ts +15 -0
- package/dist/wallets/bridge.d.ts +31 -0
- package/dist/wallets/index.d.ts +5 -0
- package/dist/wallets/metamask/index.d.ts +17 -0
- package/dist/wallets/phantom/index.d.ts +14 -0
- package/dist/wallets/types.d.ts +28 -0
- package/package.json +17 -41
- package/src/iframe/profile.ts +9 -7
- package/src/node/index.ts +1 -1
- package/src/wallets/argent/index.ts +8 -2
- package/src/wallets/bridge.ts +19 -5
- package/src/wallets/metamask/index.ts +8 -0
- package/src/wallets/phantom/index.ts +66 -15
- package/src/wallets/types.ts +1 -0
- package/tsup.node.config.ts +15 -0
- package/vite.config.js +82 -0
- package/dist/controller.cjs +0 -1272
- package/dist/controller.cjs.map +0 -1
- package/dist/controller.d.cts +0 -34
- package/dist/controller.js +0 -1270
- package/dist/controller.js.map +0 -1
- package/dist/index.cjs +0 -3389
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -68
- package/dist/lookup.cjs +0 -59
- package/dist/lookup.cjs.map +0 -1
- package/dist/lookup.d.cts +0 -4
- package/dist/lookup.js +0 -56
- package/dist/lookup.js.map +0 -1
- package/dist/policies-DD1aPjQ4.d.cts +0 -21
- package/dist/policies-DD1aPjQ4.d.ts +0 -21
- package/dist/provider-BeCgS86X.d.cts +0 -266
- package/dist/provider-BeCgS86X.d.ts +0 -266
- package/dist/session/index.cjs +0 -484
- package/dist/session/index.cjs.map +0 -1
- package/dist/session/index.js +0 -478
- package/dist/session/index.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,162 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
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(
|
|
155
|
-
super({ nodeUrl:
|
|
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(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
34
|
+
!1
|
|
181
35
|
);
|
|
182
|
-
if (
|
|
183
|
-
|
|
36
|
+
if (n.code === A.SUCCESS) {
|
|
37
|
+
t(n);
|
|
184
38
|
return;
|
|
185
39
|
}
|
|
186
|
-
if (this.options?.propagateSessionErrors &&
|
|
187
|
-
|
|
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
|
|
192
|
-
|
|
45
|
+
const o = await this.keychain.execute(
|
|
46
|
+
e,
|
|
193
47
|
void 0,
|
|
194
48
|
void 0,
|
|
195
|
-
|
|
196
|
-
|
|
49
|
+
!0,
|
|
50
|
+
n.error
|
|
197
51
|
);
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
this.modal.close();
|
|
52
|
+
if (o.code === A.SUCCESS) {
|
|
53
|
+
t(o), this.modal.close();
|
|
201
54
|
return;
|
|
202
55
|
}
|
|
203
|
-
|
|
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(
|
|
216
|
-
return new Promise(async (
|
|
217
|
-
const
|
|
218
|
-
if (!("code" in
|
|
219
|
-
|
|
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
|
|
224
|
-
|
|
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
|
-
|
|
234
|
-
|
|
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
|
|
337
|
+
if (typeof document > "u")
|
|
248
338
|
return;
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
this.
|
|
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: (
|
|
287
|
-
}).promise.then(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
-
|
|
300
|
-
childList:
|
|
301
|
-
subtree:
|
|
351
|
+
p.observe(document.documentElement, {
|
|
352
|
+
childList: !0,
|
|
353
|
+
subtree: !0
|
|
302
354
|
});
|
|
303
|
-
const
|
|
304
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
326
|
-
this.container.style.zIndex = "9999";
|
|
365
|
+
this.container && (this.container.style.zIndex = "9999");
|
|
327
366
|
}
|
|
328
367
|
sendForward() {
|
|
329
|
-
|
|
330
|
-
this.container.style.zIndex = "10000";
|
|
368
|
+
this.container && (this.container.style.zIndex = "10000");
|
|
331
369
|
}
|
|
332
370
|
resize() {
|
|
333
|
-
if (
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
this.iframe.style.borderRadius = "
|
|
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
|
|
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
|
|
394
|
+
return typeof window < "u" && !!window.ethereum?.isMetaMask;
|
|
366
395
|
}
|
|
367
396
|
getInfo() {
|
|
368
|
-
const
|
|
397
|
+
const e = this.isAvailable();
|
|
369
398
|
return {
|
|
370
399
|
type: this.type,
|
|
371
|
-
available,
|
|
372
|
-
version:
|
|
373
|
-
chainId:
|
|
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:
|
|
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
|
-
|
|
387
|
-
|
|
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 (
|
|
393
|
-
console.error(
|
|
394
|
-
|
|
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:
|
|
421
|
+
error: e.message || "Unknown error"
|
|
398
422
|
};
|
|
399
423
|
}
|
|
400
424
|
}
|
|
401
|
-
async signTransaction(
|
|
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
|
-
|
|
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: [
|
|
434
|
+
params: [e]
|
|
413
435
|
});
|
|
414
|
-
return { success:
|
|
415
|
-
} catch (
|
|
416
|
-
console.error(
|
|
417
|
-
|
|
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:
|
|
441
|
+
error: t.message || "Unknown error"
|
|
421
442
|
};
|
|
422
443
|
}
|
|
423
444
|
}
|
|
424
|
-
async signMessage(
|
|
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
|
-
|
|
430
|
-
msg: message
|
|
449
|
+
const t = await this.MMSDK.connectAndSign({
|
|
450
|
+
msg: e
|
|
431
451
|
});
|
|
432
|
-
return { success:
|
|
433
|
-
} catch (
|
|
434
|
-
console.error(
|
|
435
|
-
|
|
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:
|
|
457
|
+
error: t.message || "Unknown error"
|
|
439
458
|
};
|
|
440
459
|
}
|
|
441
460
|
}
|
|
442
|
-
async signTypedData(
|
|
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
|
-
|
|
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(
|
|
470
|
+
params: [this.account, JSON.stringify(e)]
|
|
454
471
|
});
|
|
455
|
-
return { success:
|
|
456
|
-
} catch (
|
|
457
|
-
console.error(
|
|
458
|
-
|
|
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:
|
|
477
|
+
error: t.message || "Unknown error"
|
|
462
478
|
};
|
|
463
479
|
}
|
|
464
480
|
}
|
|
465
|
-
async
|
|
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
|
-
|
|
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
|
|
496
|
+
return await t.request({
|
|
476
497
|
method: "wallet_switchEthereumChain",
|
|
477
|
-
params: [{ chainId }]
|
|
478
|
-
});
|
|
479
|
-
|
|
480
|
-
|
|
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 (
|
|
487
|
-
console.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(
|
|
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:
|
|
513
|
+
success: !1,
|
|
499
514
|
wallet: this.type,
|
|
500
515
|
error: "Not implemented for ERC20"
|
|
501
516
|
};
|
|
502
|
-
|
|
503
|
-
const
|
|
504
|
-
if (!
|
|
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:
|
|
525
|
+
return { success: !0, wallet: this.type, result: r };
|
|
512
526
|
}
|
|
513
|
-
} catch (
|
|
514
|
-
console.error(
|
|
515
|
-
|
|
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:
|
|
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
|
|
549
|
+
return typeof window < "u" && !!window.solana?.isPhantom;
|
|
531
550
|
}
|
|
532
551
|
getInfo() {
|
|
533
|
-
const
|
|
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:
|
|
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
|
-
|
|
551
|
-
|
|
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 (
|
|
557
|
-
console.error(
|
|
558
|
-
|
|
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:
|
|
575
|
+
error: e.message || "Unknown error"
|
|
562
576
|
};
|
|
563
577
|
}
|
|
564
578
|
}
|
|
565
|
-
async
|
|
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
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
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:
|
|
592
|
+
error: t.message || "Unknown error"
|
|
578
593
|
};
|
|
579
594
|
}
|
|
580
595
|
}
|
|
581
|
-
async
|
|
596
|
+
async sendTransaction(e) {
|
|
597
|
+
if (!this.isAvailable() || !this.account)
|
|
598
|
+
throw new Error("Phantom is not connected");
|
|
582
599
|
try {
|
|
583
|
-
|
|
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:
|
|
602
|
+
success: !0,
|
|
593
603
|
wallet: this.type,
|
|
594
|
-
|
|
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(
|
|
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(
|
|
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:
|
|
622
|
+
success: !0,
|
|
609
623
|
wallet: this.type,
|
|
610
624
|
result: "Implement based on Phantom API"
|
|
611
625
|
};
|
|
612
|
-
} catch (
|
|
613
|
-
console.error(
|
|
614
|
-
|
|
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:
|
|
630
|
+
error: t.message || "Unknown error"
|
|
618
631
|
};
|
|
619
632
|
}
|
|
620
633
|
}
|
|
621
|
-
}
|
|
622
|
-
|
|
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
|
|
641
|
+
return typeof window < "u" && !!window.starknet_argentX;
|
|
629
642
|
}
|
|
630
643
|
getInfo() {
|
|
631
|
-
const
|
|
644
|
+
const e = this.isAvailable();
|
|
632
645
|
return {
|
|
633
646
|
type: this.type,
|
|
634
|
-
available,
|
|
635
|
-
version:
|
|
636
|
-
chainId:
|
|
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:
|
|
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
|
-
|
|
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 (!
|
|
663
|
+
if (!e)
|
|
653
664
|
throw new Error("No wallet found");
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
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:
|
|
670
|
+
error: e.message || "Unknown error"
|
|
664
671
|
};
|
|
665
672
|
}
|
|
666
673
|
}
|
|
667
|
-
async signTypedData(
|
|
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:
|
|
680
|
+
params: e
|
|
676
681
|
});
|
|
677
|
-
return { success:
|
|
678
|
-
} catch (
|
|
679
|
-
console.error(
|
|
680
|
-
|
|
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:
|
|
687
|
+
error: t.message || "Unknown error"
|
|
684
688
|
};
|
|
685
689
|
}
|
|
686
690
|
}
|
|
687
|
-
async
|
|
688
|
-
|
|
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(
|
|
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:
|
|
708
|
+
success: !0,
|
|
700
709
|
wallet: this.type,
|
|
701
710
|
result: "Implement based on Argent API"
|
|
702
711
|
};
|
|
703
|
-
} catch (
|
|
704
|
-
console.error(
|
|
705
|
-
|
|
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:
|
|
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: (
|
|
730
|
-
externalConnectWallet: (
|
|
731
|
-
externalSignMessage: (
|
|
732
|
-
externalSignTypedData: (
|
|
733
|
-
|
|
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
|
-
|
|
738
|
-
(
|
|
738
|
+
return Array.from(this.walletAdapters.values()).map(
|
|
739
|
+
(t) => t.getInfo()
|
|
739
740
|
);
|
|
740
|
-
return wallets;
|
|
741
741
|
}
|
|
742
|
-
getWalletAdapter(
|
|
743
|
-
const
|
|
744
|
-
if (!
|
|
745
|
-
throw new Error(`Unsupported wallet 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(
|
|
750
|
-
const
|
|
751
|
-
console.error(`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(
|
|
752
|
+
async connectWallet(e) {
|
|
755
753
|
try {
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
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(
|
|
760
|
+
async signMessage(e, t) {
|
|
771
761
|
try {
|
|
772
|
-
if (!this.connectedWallets.has(
|
|
773
|
-
throw new Error(`Wallet ${
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
return
|
|
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(
|
|
772
|
+
async signTypedData(e, t) {
|
|
785
773
|
try {
|
|
786
|
-
if (!this.connectedWallets.has(
|
|
787
|
-
throw new Error(`Wallet ${
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
return
|
|
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
|
|
784
|
+
async sendTransaction(e, t) {
|
|
799
785
|
try {
|
|
800
|
-
if (!this.connectedWallets.has(
|
|
801
|
-
throw new Error(`Wallet ${
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
return
|
|
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
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
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
|
-
|
|
824
|
-
|
|
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:
|
|
827
|
-
methods:
|
|
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
|
-
...
|
|
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
|
|
850
|
-
let
|
|
851
|
-
|
|
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 (
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
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
|
-
|
|
844
|
+
l.searchParams.set(
|
|
872
845
|
"methods",
|
|
873
|
-
encodeURIComponent(JSON.stringify(
|
|
846
|
+
encodeURIComponent(JSON.stringify(f))
|
|
874
847
|
);
|
|
875
848
|
}
|
|
876
849
|
super({
|
|
877
|
-
...
|
|
850
|
+
...p,
|
|
878
851
|
id: "controller-profile",
|
|
879
|
-
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
|
-
|
|
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(
|
|
1079
|
-
super()
|
|
1080
|
-
|
|
1081
|
-
|
|
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: (
|
|
1087
|
-
this.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
|
-
|
|
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
|
|
1105
|
-
let
|
|
1106
|
-
this.account = new
|
|
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
|
-
|
|
1109
|
-
|
|
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
|
|
1120
|
-
this.iframes.profile = new
|
|
895
|
+
const e = await this.keychain.username();
|
|
896
|
+
this.iframes.profile = new Ie({
|
|
1121
897
|
...this.options,
|
|
1122
|
-
onConnect: (
|
|
1123
|
-
this.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
|
|
917
|
+
console.error(new g().message);
|
|
1143
918
|
return;
|
|
1144
919
|
}
|
|
1145
|
-
|
|
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
|
|
922
|
+
let e = await this.keychain.connect(
|
|
1154
923
|
this.options.policies || {},
|
|
1155
924
|
this.rpcUrl()
|
|
1156
925
|
);
|
|
1157
|
-
if (
|
|
1158
|
-
throw new Error(
|
|
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
|
-
|
|
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(
|
|
1177
|
-
if (!this.keychain || !this.iframes.keychain)
|
|
1178
|
-
console.error(new
|
|
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 =
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
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(
|
|
1194
|
-
return true;
|
|
952
|
+
return this.emitNetworkChanged(e), !0;
|
|
1195
953
|
}
|
|
1196
|
-
addStarknetChain(
|
|
1197
|
-
return Promise.resolve(
|
|
954
|
+
addStarknetChain(e) {
|
|
955
|
+
return Promise.resolve(!0);
|
|
1198
956
|
}
|
|
1199
957
|
async disconnect() {
|
|
1200
958
|
if (!this.keychain) {
|
|
1201
|
-
console.error(new
|
|
959
|
+
console.error(new g().message);
|
|
1202
960
|
return;
|
|
1203
961
|
}
|
|
1204
|
-
|
|
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(
|
|
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}/${
|
|
1223
|
-
this.iframes.profile.open();
|
|
973
|
+
this.profile.navigate(`${this.iframes.profile.url?.pathname}/${e}`), this.iframes.profile.open();
|
|
1224
974
|
}
|
|
1225
|
-
async openProfileTo(
|
|
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}/${
|
|
1235
|
-
this.iframes.profile.open();
|
|
984
|
+
this.profile.navigate(`${this.iframes.profile.url?.pathname}/${e}`), this.iframes.profile.open();
|
|
1236
985
|
}
|
|
1237
|
-
async openProfileAt(
|
|
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(
|
|
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
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
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(
|
|
1269
|
-
|
|
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
|
|
1277
|
-
if (!
|
|
1278
|
-
const
|
|
1279
|
-
(
|
|
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: ${
|
|
1014
|
+
`Chain not found: ${M.decodeShortString(this.selectedChain)}. Available chains: ${t.join(", ")}`
|
|
1283
1015
|
);
|
|
1284
1016
|
}
|
|
1285
|
-
return
|
|
1017
|
+
return e.rpcUrl;
|
|
1286
1018
|
}
|
|
1287
1019
|
username() {
|
|
1288
1020
|
if (!this.keychain) {
|
|
1289
|
-
console.error(new
|
|
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
|
|
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(
|
|
1037
|
+
async openExecute(e, t) {
|
|
1308
1038
|
if (!this.keychain || !this.iframes.keychain) {
|
|
1309
|
-
console.error(new
|
|
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
|
|
1317
|
-
|
|
1318
|
-
|
|
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
|
-
|
|
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(
|
|
1340
|
-
for (const
|
|
1054
|
+
async validateChains(e) {
|
|
1055
|
+
for (const t of e)
|
|
1341
1056
|
try {
|
|
1342
|
-
const
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
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
|
-
|
|
1350
|
-
|
|
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((
|
|
1360
|
-
const
|
|
1361
|
-
|
|
1362
|
-
|
|
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
|
-
|
|
1368
|
-
|
|
1369
|
-
resolve();
|
|
1370
|
-
}, interval);
|
|
1076
|
+
this.keychain && (clearInterval(c), r());
|
|
1077
|
+
}, t);
|
|
1371
1078
|
});
|
|
1372
1079
|
}
|
|
1373
|
-
}
|
|
1374
|
-
|
|
1375
|
-
async function
|
|
1376
|
-
if (!
|
|
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(
|
|
1090
|
+
body: JSON.stringify(a)
|
|
1385
1091
|
});
|
|
1386
|
-
if (!
|
|
1387
|
-
throw new Error(`HTTP error! 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
|
|
1392
|
-
const
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
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
|
|
1404
|
-
|
|
1405
|
-
const
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
2984
|
-
disabled:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
3404
|
+
hidden: !0,
|
|
3359
3405
|
logo_url: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/6deef27f-df40-4248-4e1b-ed1d79a3f000/logo"
|
|
3360
3406
|
}
|
|
3361
|
-
];
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
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
|