@multiplatform.one/web3 7.31.1 → 7.32.0
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/README.md +63 -0
- package/dist/cjs/clients/evm.cjs +52 -1
- package/dist/cjs/clients/evm.native.js +56 -1
- package/dist/cjs/clients/evm.native.js.map +1 -1
- package/dist/cjs/clients/hooks.cjs +5 -2
- package/dist/cjs/clients/hooks.native.js +7 -2
- package/dist/cjs/clients/hooks.native.js.map +1 -1
- package/dist/cjs/clients/index.cjs +4 -0
- package/dist/cjs/clients/index.native.js +4 -0
- package/dist/cjs/clients/index.native.js.map +1 -1
- package/dist/cjs/clients/preparedSend.cjs +96 -0
- package/dist/cjs/clients/preparedSend.native.js +225 -0
- package/dist/cjs/clients/preparedSend.native.js.map +1 -0
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.cjs +108 -27
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js +105 -28
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/index.cjs +2 -0
- package/dist/cjs/connectkit/index.native.js +2 -0
- package/dist/cjs/connectkit/index.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/context.cjs +16 -3
- package/dist/cjs/connectkit/openConnector/context.native.js +19 -4
- package/dist/cjs/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/launcher.cjs +2 -2
- package/dist/cjs/connectkit/openConnector/launcher.native.js +2 -2
- package/dist/cjs/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/cjs/wagmi/driver.cjs +13 -9
- package/dist/cjs/wagmi/driver.native.js +17 -9
- package/dist/cjs/wagmi/driver.native.js.map +1 -1
- package/dist/esm/clients/evm.mjs +53 -2
- package/dist/esm/clients/evm.mjs.map +1 -1
- package/dist/esm/clients/evm.native.js +57 -2
- package/dist/esm/clients/evm.native.js.map +1 -1
- package/dist/esm/clients/hooks.mjs +5 -2
- package/dist/esm/clients/hooks.mjs.map +1 -1
- package/dist/esm/clients/hooks.native.js +7 -2
- package/dist/esm/clients/hooks.native.js.map +1 -1
- package/dist/esm/clients/index.mjs +2 -1
- package/dist/esm/clients/index.mjs.map +1 -1
- package/dist/esm/clients/index.native.js +2 -1
- package/dist/esm/clients/index.native.js.map +1 -1
- package/dist/esm/clients/preparedSend.mjs +69 -0
- package/dist/esm/clients/preparedSend.mjs.map +1 -0
- package/dist/esm/clients/preparedSend.native.js +195 -0
- package/dist/esm/clients/preparedSend.native.js.map +1 -0
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs +107 -28
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js +104 -29
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
- package/dist/esm/connectkit/index.mjs +2 -2
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +2 -2
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/context.mjs +17 -4
- package/dist/esm/connectkit/openConnector/context.mjs.map +1 -1
- package/dist/esm/connectkit/openConnector/context.native.js +20 -5
- package/dist/esm/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/launcher.mjs +2 -2
- package/dist/esm/connectkit/openConnector/launcher.mjs.map +1 -1
- package/dist/esm/connectkit/openConnector/launcher.native.js +2 -2
- package/dist/esm/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/esm/wagmi/driver.mjs +14 -10
- package/dist/esm/wagmi/driver.mjs.map +1 -1
- package/dist/esm/wagmi/driver.native.js +18 -10
- package/dist/esm/wagmi/driver.native.js.map +1 -1
- package/dist/jsx/clients/evm.mjs +53 -2
- package/dist/jsx/clients/evm.mjs.map +1 -1
- package/dist/jsx/clients/evm.native.js +56 -1
- package/dist/jsx/clients/evm.native.js.map +1 -1
- package/dist/jsx/clients/hooks.mjs +5 -2
- package/dist/jsx/clients/hooks.mjs.map +1 -1
- package/dist/jsx/clients/hooks.native.js +7 -2
- package/dist/jsx/clients/hooks.native.js.map +1 -1
- package/dist/jsx/clients/index.mjs +2 -1
- package/dist/jsx/clients/index.mjs.map +1 -1
- package/dist/jsx/clients/index.native.js +4 -0
- package/dist/jsx/clients/index.native.js.map +1 -1
- package/dist/jsx/clients/preparedSend.mjs +69 -0
- package/dist/jsx/clients/preparedSend.mjs.map +1 -0
- package/dist/jsx/clients/preparedSend.native.js +225 -0
- package/dist/jsx/clients/preparedSend.native.js.map +1 -0
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs +107 -28
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js +105 -28
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/index.mjs +2 -2
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +2 -0
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/context.mjs +17 -4
- package/dist/jsx/connectkit/openConnector/context.mjs.map +1 -1
- package/dist/jsx/connectkit/openConnector/context.native.js +19 -4
- package/dist/jsx/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/launcher.mjs +2 -2
- package/dist/jsx/connectkit/openConnector/launcher.mjs.map +1 -1
- package/dist/jsx/connectkit/openConnector/launcher.native.js +2 -2
- package/dist/jsx/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/jsx/wagmi/driver.mjs +14 -10
- package/dist/jsx/wagmi/driver.mjs.map +1 -1
- package/dist/jsx/wagmi/driver.native.js +17 -9
- package/dist/jsx/wagmi/driver.native.js.map +1 -1
- package/dist/keycloak/login.iife.js +382 -382
- package/package.json +6 -6
- package/src/clients/evm.ts +86 -0
- package/src/clients/hooks.spec.tsx +1 -0
- package/src/clients/hooks.ts +4 -1
- package/src/clients/index.ts +12 -0
- package/src/clients/preparedSend.spec.ts +214 -0
- package/src/clients/preparedSend.ts +136 -0
- package/src/connectkit/connectors/metaMaskConnectConnector.spec.ts +256 -4
- package/src/connectkit/connectors/metaMaskConnectConnector.ts +145 -33
- package/src/connectkit/index.ts +2 -0
- package/src/connectkit/openConnector/context.tsx +10 -5
- package/src/connectkit/openConnector/launcher.spec.ts +24 -2
- package/src/connectkit/openConnector/launcher.ts +10 -3
- package/src/core/types.ts +7 -0
- package/src/wagmi/driver.spec.ts +31 -0
- package/src/wagmi/driver.ts +11 -4
- package/types/clients/evm.d.ts +32 -0
- package/types/clients/evm.d.ts.map +1 -1
- package/types/clients/hooks.d.ts.map +1 -1
- package/types/clients/index.d.ts +2 -1
- package/types/clients/index.d.ts.map +1 -1
- package/types/clients/preparedSend.d.ts +71 -0
- package/types/clients/preparedSend.d.ts.map +1 -0
- package/types/connectkit/connectors/metaMaskConnectConnector.d.ts +27 -0
- package/types/connectkit/connectors/metaMaskConnectConnector.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +1 -1
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/openConnector/context.d.ts.map +1 -1
- package/types/connectkit/openConnector/launcher.d.ts +8 -1
- package/types/connectkit/openConnector/launcher.d.ts.map +1 -1
- package/types/core/types.d.ts +7 -0
- package/types/core/types.d.ts.map +1 -1
- package/types/wagmi/driver.d.ts +1 -1
- package/types/wagmi/driver.d.ts.map +1 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var preparedSend_exports = {};
|
|
26
|
+
__export(preparedSend_exports, {
|
|
27
|
+
DEFAULT_PREPARED_SEND_MAX_AGE_MS: () => DEFAULT_PREPARED_SEND_MAX_AGE_MS,
|
|
28
|
+
PreparedSendStaleError: () => PreparedSendStaleError,
|
|
29
|
+
prepareEvmSend: () => prepareEvmSend
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(preparedSend_exports);
|
|
32
|
+
var import_viem = require("viem");
|
|
33
|
+
function _assert_this_initialized(self) {
|
|
34
|
+
if (self === void 0) {
|
|
35
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
36
|
+
}
|
|
37
|
+
return self;
|
|
38
|
+
}
|
|
39
|
+
function _call_super(_this, derived, args) {
|
|
40
|
+
derived = _get_prototype_of(derived);
|
|
41
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
42
|
+
}
|
|
43
|
+
function _class_call_check(instance, Constructor) {
|
|
44
|
+
if (!(instance instanceof Constructor)) {
|
|
45
|
+
throw new TypeError("Cannot call a class as a function");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function _construct(Parent, args, Class) {
|
|
49
|
+
if (_is_native_reflect_construct()) {
|
|
50
|
+
_construct = Reflect.construct;
|
|
51
|
+
} else {
|
|
52
|
+
_construct = function construct(Parent2, args2, Class2) {
|
|
53
|
+
var a = [null];
|
|
54
|
+
a.push.apply(a, args2);
|
|
55
|
+
var Constructor = Function.bind.apply(Parent2, a);
|
|
56
|
+
var instance = new Constructor();
|
|
57
|
+
if (Class2) _set_prototype_of(instance, Class2.prototype);
|
|
58
|
+
return instance;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return _construct.apply(null, arguments);
|
|
62
|
+
}
|
|
63
|
+
function _define_property(obj, key, value) {
|
|
64
|
+
if (key in obj) {
|
|
65
|
+
Object.defineProperty(obj, key, {
|
|
66
|
+
value,
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: true,
|
|
69
|
+
writable: true
|
|
70
|
+
});
|
|
71
|
+
} else {
|
|
72
|
+
obj[key] = value;
|
|
73
|
+
}
|
|
74
|
+
return obj;
|
|
75
|
+
}
|
|
76
|
+
function _get_prototype_of(o) {
|
|
77
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
|
|
78
|
+
return o2.__proto__ || Object.getPrototypeOf(o2);
|
|
79
|
+
};
|
|
80
|
+
return _get_prototype_of(o);
|
|
81
|
+
}
|
|
82
|
+
function _inherits(subClass, superClass) {
|
|
83
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
84
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
85
|
+
}
|
|
86
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
87
|
+
constructor: {
|
|
88
|
+
value: subClass,
|
|
89
|
+
writable: true,
|
|
90
|
+
configurable: true
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
94
|
+
}
|
|
95
|
+
function _is_native_function(fn) {
|
|
96
|
+
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
|
97
|
+
}
|
|
98
|
+
function _possible_constructor_return(self, call) {
|
|
99
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
100
|
+
return call;
|
|
101
|
+
}
|
|
102
|
+
return _assert_this_initialized(self);
|
|
103
|
+
}
|
|
104
|
+
function _set_prototype_of(o, p) {
|
|
105
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
|
|
106
|
+
o2.__proto__ = p2;
|
|
107
|
+
return o2;
|
|
108
|
+
};
|
|
109
|
+
return _set_prototype_of(o, p);
|
|
110
|
+
}
|
|
111
|
+
function _type_of(obj) {
|
|
112
|
+
"@swc/helpers - typeof";
|
|
113
|
+
|
|
114
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
115
|
+
}
|
|
116
|
+
function _wrap_native_super(Class) {
|
|
117
|
+
var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
|
|
118
|
+
_wrap_native_super = function wrapNativeSuper(Class2) {
|
|
119
|
+
if (Class2 === null || !_is_native_function(Class2)) return Class2;
|
|
120
|
+
if (typeof Class2 !== "function") {
|
|
121
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
122
|
+
}
|
|
123
|
+
if (typeof _cache !== "undefined") {
|
|
124
|
+
if (_cache.has(Class2)) return _cache.get(Class2);
|
|
125
|
+
_cache.set(Class2, Wrapper);
|
|
126
|
+
}
|
|
127
|
+
function Wrapper() {
|
|
128
|
+
return _construct(Class2, arguments, _get_prototype_of(this).constructor);
|
|
129
|
+
}
|
|
130
|
+
Wrapper.prototype = Object.create(Class2.prototype, {
|
|
131
|
+
constructor: {
|
|
132
|
+
value: Wrapper,
|
|
133
|
+
enumerable: false,
|
|
134
|
+
writable: true,
|
|
135
|
+
configurable: true
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return _set_prototype_of(Wrapper, Class2);
|
|
139
|
+
};
|
|
140
|
+
return _wrap_native_super(Class);
|
|
141
|
+
}
|
|
142
|
+
function _is_native_reflect_construct() {
|
|
143
|
+
try {
|
|
144
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
145
|
+
} catch (_) {}
|
|
146
|
+
return (_is_native_reflect_construct = function () {
|
|
147
|
+
return !!result;
|
|
148
|
+
})();
|
|
149
|
+
}
|
|
150
|
+
var PreparedSendStaleError = /* @__PURE__ */function (Error1) {
|
|
151
|
+
"use strict";
|
|
152
|
+
|
|
153
|
+
_inherits(PreparedSendStaleError2, Error1);
|
|
154
|
+
function PreparedSendStaleError2(reason, detail) {
|
|
155
|
+
_class_call_check(this, PreparedSendStaleError2);
|
|
156
|
+
var _this;
|
|
157
|
+
_this = _call_super(this, PreparedSendStaleError2, [`Prepared transaction is stale (${reason}): ${detail}. Prepare it again.`]), _define_property(_this, "reason", void 0);
|
|
158
|
+
_this.name = "PreparedSendStaleError";
|
|
159
|
+
_this.reason = reason;
|
|
160
|
+
return _this;
|
|
161
|
+
}
|
|
162
|
+
return PreparedSendStaleError2;
|
|
163
|
+
}(_wrap_native_super(Error));
|
|
164
|
+
var DEFAULT_PREPARED_SEND_MAX_AGE_MS = 6e4;
|
|
165
|
+
var same = function same2(a, b) {
|
|
166
|
+
return !!a && !!b && a.toLowerCase() === b.toLowerCase();
|
|
167
|
+
};
|
|
168
|
+
async function prepareEvmSend(parameters) {
|
|
169
|
+
var _parameters_maxAgeMs;
|
|
170
|
+
var {
|
|
171
|
+
publicClient,
|
|
172
|
+
request,
|
|
173
|
+
from,
|
|
174
|
+
chainId,
|
|
175
|
+
current
|
|
176
|
+
} = parameters;
|
|
177
|
+
var maxAgeMs = (_parameters_maxAgeMs = parameters.maxAgeMs) !== null && _parameters_maxAgeMs !== void 0 ? _parameters_maxAgeMs : DEFAULT_PREPARED_SEND_MAX_AGE_MS;
|
|
178
|
+
var prepared = await publicClient.prepareTransactionRequest({
|
|
179
|
+
account: from,
|
|
180
|
+
chain: publicClient.chain,
|
|
181
|
+
to: parameters.to,
|
|
182
|
+
...(parameters.data ? {
|
|
183
|
+
data: parameters.data
|
|
184
|
+
} : {}),
|
|
185
|
+
...(parameters.value !== void 0 ? {
|
|
186
|
+
value: parameters.value
|
|
187
|
+
} : {}),
|
|
188
|
+
...(parameters.gas !== void 0 ? {
|
|
189
|
+
gas: parameters.gas
|
|
190
|
+
} : {}),
|
|
191
|
+
...(parameters.nonce !== void 0 ? {
|
|
192
|
+
nonce: parameters.nonce
|
|
193
|
+
} : {}),
|
|
194
|
+
parameters: ["fees", "gas", "nonce", "type"]
|
|
195
|
+
});
|
|
196
|
+
var {
|
|
197
|
+
account: _account,
|
|
198
|
+
chain: _chain,
|
|
199
|
+
...transaction
|
|
200
|
+
} = prepared;
|
|
201
|
+
var rpc = {
|
|
202
|
+
...(0, import_viem.formatTransactionRequest)(transaction),
|
|
203
|
+
from,
|
|
204
|
+
chainId: (0, import_viem.numberToHex)(chainId)
|
|
205
|
+
};
|
|
206
|
+
var preparedAt = Date.now();
|
|
207
|
+
return Object.freeze({
|
|
208
|
+
request: Object.freeze(rpc),
|
|
209
|
+
from,
|
|
210
|
+
chainId,
|
|
211
|
+
preparedAt,
|
|
212
|
+
send() {
|
|
213
|
+
var age = Date.now() - preparedAt;
|
|
214
|
+
if (age > maxAgeMs) return Promise.reject(new PreparedSendStaleError("expired", `prepared ${age} ms ago, limit ${maxAgeMs} ms`));
|
|
215
|
+
var now = current === null || current === void 0 ? void 0 : current();
|
|
216
|
+
if ((now === null || now === void 0 ? void 0 : now.address) !== void 0 && !same(now.address, from)) return Promise.reject(new PreparedSendStaleError("account", `prepared for ${from}, wallet is on ${now.address}`));
|
|
217
|
+
if ((now === null || now === void 0 ? void 0 : now.chainId) !== void 0 && now.chainId !== chainId) return Promise.reject(new PreparedSendStaleError("chain", `prepared for ${chainId}, wallet is on ${now.chainId}`));
|
|
218
|
+
return request({
|
|
219
|
+
method: "eth_sendTransaction",
|
|
220
|
+
params: [rpc]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=preparedSend.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","preparedSend_exports","__export","DEFAULT_PREPARED_SEND_MAX_AGE_MS","PreparedSendStaleError","prepareEvmSend","module","exports","import_viem","require","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create"],"sources":["../../../src/clients/preparedSend.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,gCAAA,EAAAA,CAAA,KAAAA,gCAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAX,YAQO,CAAAK,oBAAA;AAkCA,IAAAO,WAAM,GAAAC,OAAA;AAAqC,SACvCC,yBAAAC,IAAA;EACT,IAAAA,IAAA,KAAY,QAAiC;IAC3C,MAAM,IAAAC,cAAA,4DAAyE;EAC/E;EACA,OAAKD,IAAA;AAAS;AAElB,SAAAE,YAAAC,KAAA,EAAAC,OAAA,EAAAC,IAAA;EAyBOD,OAAM,GAAAE,iBAAA,CAAAF,OAAA;EAEb,OAAMG,4BAAiD,CAAAJ,KAAE,EAAAK,4BAAgC,KAAAC,OAAA,CAAAC,SAAA,CAAAN,OAAA,EAAAC,IAAA,QAAAC,iBAAA,CAAAH,KAAA,EAAAQ,WAAA,IAAAP,OAAA,CAAAQ,KAAA,CAAAT,KAAA,EAAAE,IAAA;AAOzF;AAGE,SAAMQ,iBAAgBA,CAAAC,QAAS,EAAAC,WAAe;EAC9C,MAAMD,QAAA,YAAWC,WAAW,GAAY;IACxC,MAAM,IAAAC,SAAW,oCAAmB;EAA0B;AACnD;AACW,SAChBC,UAAWA,CAAAC,MAAA,EAAAb,IAAA,EAAAc,KAAA;EAAA,IACfX,4BAA8B;IAC9BS,UAAI,GAAAR,OAAW,CAAAC,SAAU;EAA2C,OAChE;IACJO,UAAI,YAAWP,SAAUA,CAAAU,OAAc,EAAAC,KAAO,EAAAC,MAAW;MACzD,IAAAC,CAAA,IACQ,KACV;MACAA,CAAA,CAAMC,IAAA,CAAAZ,KAAM,CAAAW,CAAA,EAAAF,KAAA;MACV,IAAAN,WAAG,GAAAU,QAAA,CAAAC,IAAA,CAAAd,KAAA,CAAAQ,OAAyB,EAAAG,CAAA;MAC5B,IAAAT,QAAA,OAAAC,WAAA;MACA,IAAAO,MAAA,EAASK,iBAAA,CAAAb,QAAY,EAAAQ,MAAO,CAAAM,SAAA;MAC9B,OAAAd,QAAA;IACA;EAEA;EAAqB,OACnBG,UAAS,CAAOL,KAAA,KAAU,EAAAiB,SAAA;AAAA;AAC1B,SACAC,iBAAAC,GAAA,EAAAC,GAAA,EAAA3C,KAAA;EAAA,IACA2C,GAAA,IAAAD,GAAA;IACAE,MAAA,CAAsBC,cAAA,CAAAH,GAAA,EAAAC,GAAA;MACpB3C,KAAA;MACA8C,UAAU;MACRC,YAAO,MAAQ;MAAAC,QACT;IAAgF;EAExF;IACAN,GAAA,CAAAC,GAAI,IAAK3C,KAAA;EACP;EAAe,OAAA0C,GACb;AAAI;AACF,SAAAzB,iBACAA,CAAAgC,CAAgB;EAAiChC,iBACnD,GAAA2B,MAAA,CAAAM,cAAA,GAAAN,MAAA,CAAAO,cAAA,YAAAA,eAAAC,EAAA;IAAA,OACFA,EAAA,CAAAC,SAAA,IAAAT,MAAA,CAAAO,cAAA,CAAAC,EAAA;EACF;EACE,OAAAnC,iBAAe,CAAAgC,CAAA;AAAA;AACT,SAAAK,SACFA,CAAAC,QAAA,EAAAC,UAAA;EAAA,WACAA,UAAA,KAAgB,UAAO,IAAAA,UAAA,KAAsB;IAAO,MACtD,IAAA7B,SAAA;EAAA;EAEJ4B,QAAA,CAAAhB,SAAO,GAAUK,MAAA,CAAAa,MAAQ,CAAAD,UAAA,IAAAA,UAAuB,CAAQjB,SAAO;IACjEjB,WAAA;MACDtB,KAAA,EAAAuD,QAAA;MACHP,QAAA","ignoreList":[]}
|
|
@@ -35,11 +35,14 @@ var metaMaskConnectConnector_exports = {};
|
|
|
35
35
|
__export(metaMaskConnectConnector_exports, {
|
|
36
36
|
metaMaskConnect: () => metaMaskConnect,
|
|
37
37
|
metaMaskConnectChainIds: () => metaMaskConnectChainIds,
|
|
38
|
+
metaMaskMayLackChain: () => metaMaskMayLackChain,
|
|
38
39
|
metaMaskNetworks: () => metaMaskNetworks,
|
|
39
40
|
metaMaskSupportedNetworks: () => metaMaskSupportedNetworks,
|
|
41
|
+
reopenMetaMask: () => reopenMetaMask,
|
|
40
42
|
resetMetaMaskConnectClient: () => resetMetaMaskConnectClient
|
|
41
43
|
});
|
|
42
44
|
module.exports = __toCommonJS(metaMaskConnectConnector_exports);
|
|
45
|
+
var import_connectkit = require("@multiplatform.one/connectkit");
|
|
43
46
|
var import_wagmi = require("wagmi");
|
|
44
47
|
var import_viem = require("viem");
|
|
45
48
|
var import_chains = require("wagmi/chains");
|
|
@@ -93,6 +96,17 @@ function isUrl(value) {
|
|
|
93
96
|
return false;
|
|
94
97
|
}
|
|
95
98
|
}
|
|
99
|
+
const metaMaskBuiltInTestnets = /* @__PURE__ */new Set([11155111, 59141, 10143, 6342, 6343]);
|
|
100
|
+
function metaMaskMayLackChain(chain) {
|
|
101
|
+
return chain.testnet === true && !metaMaskBuiltInTestnets.has(chain.id);
|
|
102
|
+
}
|
|
103
|
+
function isUnrecognizedChain(err) {
|
|
104
|
+
const {
|
|
105
|
+
code,
|
|
106
|
+
message
|
|
107
|
+
} = err ?? {};
|
|
108
|
+
return code === 4902 || typeof message === "string" && message.includes("Unrecognized chain");
|
|
109
|
+
}
|
|
96
110
|
function metaMaskConnectChainIds(networks, chainId) {
|
|
97
111
|
const ids = Object.keys(networks);
|
|
98
112
|
if (!chainId || (0, import_syntheticChains.isSyntheticChainId)(chainId)) return ids;
|
|
@@ -101,6 +115,31 @@ function metaMaskConnectChainIds(networks, chainId) {
|
|
|
101
115
|
}
|
|
102
116
|
let client;
|
|
103
117
|
let owner;
|
|
118
|
+
const permittedChains = /* @__PURE__ */new Set();
|
|
119
|
+
const unrecognizedChains = /* @__PURE__ */new Set();
|
|
120
|
+
let lastDeeplink;
|
|
121
|
+
function forgetChains() {
|
|
122
|
+
permittedChains.clear();
|
|
123
|
+
unrecognizedChains.clear();
|
|
124
|
+
lastDeeplink = void 0;
|
|
125
|
+
}
|
|
126
|
+
function reopenMetaMask() {
|
|
127
|
+
if (!lastDeeplink) return false;
|
|
128
|
+
lastDeeplink.open(lastDeeplink.url, "_self");
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
function recordingOpenLink(open) {
|
|
132
|
+
return (url, target) => {
|
|
133
|
+
lastDeeplink = {
|
|
134
|
+
url,
|
|
135
|
+
open
|
|
136
|
+
};
|
|
137
|
+
open(url, target);
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function navigate(url) {
|
|
141
|
+
if (typeof window !== "undefined") window.location.href = url;
|
|
142
|
+
}
|
|
104
143
|
function getClient(parameters, networks) {
|
|
105
144
|
if (client) return client;
|
|
106
145
|
client = import("@metamask/connect-evm").then(({
|
|
@@ -126,16 +165,19 @@ function getClient(parameters, networks) {
|
|
|
126
165
|
headless: true
|
|
127
166
|
}
|
|
128
167
|
} : {}),
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
168
|
+
mobile: {
|
|
169
|
+
// MetaMask Connect's own opener does the same location change for a
|
|
170
|
+
// metamask:// link; going through one here keeps the link to reopen.
|
|
171
|
+
// With useDeeplink false it clicks a universal link instead, left as is.
|
|
172
|
+
...(parameters.preferredOpenLink ? {
|
|
173
|
+
preferredOpenLink: recordingOpenLink(parameters.preferredOpenLink)
|
|
174
|
+
} : parameters.useDeeplink === false ? {} : {
|
|
175
|
+
preferredOpenLink: recordingOpenLink(navigate)
|
|
176
|
+
}),
|
|
177
|
+
...(parameters.useDeeplink !== void 0 ? {
|
|
178
|
+
useDeeplink: parameters.useDeeplink
|
|
179
|
+
} : {})
|
|
180
|
+
},
|
|
139
181
|
eventHandlers: {
|
|
140
182
|
// A session approved outside connect(), in another tab say. wagmi drops
|
|
141
183
|
// `change` for a connector it has no connection for, so only `connect`
|
|
@@ -150,14 +192,23 @@ function getClient(parameters, networks) {
|
|
|
150
192
|
});
|
|
151
193
|
},
|
|
152
194
|
accountsChanged: accounts => {
|
|
153
|
-
if (accounts.length === 0)
|
|
195
|
+
if (accounts.length === 0) {
|
|
196
|
+
forgetChains();
|
|
197
|
+
owner?.emit("disconnect");
|
|
198
|
+
} else owner?.emit("change", {
|
|
154
199
|
accounts: accounts.map(a => (0, import_viem.getAddress)(a))
|
|
155
200
|
});
|
|
156
201
|
},
|
|
157
|
-
chainChanged: chainId =>
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
202
|
+
chainChanged: chainId => {
|
|
203
|
+
permittedChains.add(Number(chainId));
|
|
204
|
+
owner?.emit("change", {
|
|
205
|
+
chainId: Number(chainId)
|
|
206
|
+
});
|
|
207
|
+
},
|
|
208
|
+
disconnect: () => {
|
|
209
|
+
forgetChains();
|
|
210
|
+
owner?.emit("disconnect");
|
|
211
|
+
},
|
|
161
212
|
displayUri: uri => owner?.emit("message", {
|
|
162
213
|
type: "display_uri",
|
|
163
214
|
data: uri
|
|
@@ -172,6 +223,7 @@ function getClient(parameters, networks) {
|
|
|
172
223
|
function resetMetaMaskConnectClient() {
|
|
173
224
|
client = void 0;
|
|
174
225
|
owner = void 0;
|
|
226
|
+
forgetChains();
|
|
175
227
|
}
|
|
176
228
|
function rethrow(err) {
|
|
177
229
|
const code = err?.code;
|
|
@@ -186,6 +238,8 @@ function metaMaskConnect(parameters) {
|
|
|
186
238
|
const networks = metaMaskNetworks(config.chains, config.transports);
|
|
187
239
|
const supportedNetworks = metaMaskSupportedNetworks(networks, config.transports);
|
|
188
240
|
const fallbackChainId = Number(Object.keys(networks)[0] ?? 1);
|
|
241
|
+
const mobile = parameters.mobile ?? (0, import_connectkit.isMobile)();
|
|
242
|
+
const addChainFirst = parameters.addChainFirst ?? metaMaskMayLackChain;
|
|
189
243
|
const instance = () => getClient(parameters, supportedNetworks);
|
|
190
244
|
let guarded;
|
|
191
245
|
const claim = () => {
|
|
@@ -218,15 +272,18 @@ function metaMaskConnect(parameters) {
|
|
|
218
272
|
});
|
|
219
273
|
accounts = result.accounts.map(a => (0, import_viem.getAddress)(a));
|
|
220
274
|
}
|
|
275
|
+
const current = chainIdOf(mm);
|
|
276
|
+
permittedChains.add(current);
|
|
221
277
|
return {
|
|
222
278
|
accounts,
|
|
223
|
-
chainId:
|
|
279
|
+
chainId: current
|
|
224
280
|
};
|
|
225
281
|
} catch (err) {
|
|
226
282
|
rethrow(err);
|
|
227
283
|
}
|
|
228
284
|
},
|
|
229
285
|
async disconnect() {
|
|
286
|
+
forgetChains();
|
|
230
287
|
await (await claim()).disconnect();
|
|
231
288
|
},
|
|
232
289
|
async getAccounts() {
|
|
@@ -257,22 +314,46 @@ function metaMaskConnect(parameters) {
|
|
|
257
314
|
}) {
|
|
258
315
|
const chain = config.chains.find(c => c.id === chainId);
|
|
259
316
|
if (!chain || !networks[(0, import_viem.numberToHex)(chainId)]) throw new import_viem.SwitchChainError(new import_wagmi.ChainNotConfiguredError());
|
|
317
|
+
const chainConfiguration = {
|
|
318
|
+
chainId: (0, import_viem.numberToHex)(chainId),
|
|
319
|
+
chainName: addEthereumChainParameter?.chainName ?? chain.name,
|
|
320
|
+
nativeCurrency: addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency,
|
|
321
|
+
rpcUrls: addEthereumChainParameter?.rpcUrls ? [...addEthereumChainParameter.rpcUrls] : [networks[(0, import_viem.numberToHex)(chainId)]],
|
|
322
|
+
...(chain.blockExplorers?.default.url ? {
|
|
323
|
+
blockExplorerUrls: [chain.blockExplorers.default.url]
|
|
324
|
+
} : {})
|
|
325
|
+
};
|
|
326
|
+
const mm = await claim();
|
|
327
|
+
if (mm.getChainId() === (0, import_viem.numberToHex)(chainId)) return chain;
|
|
260
328
|
try {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
chainConfiguration: {
|
|
329
|
+
if (!mobile) {
|
|
330
|
+
await mm.switchChain({
|
|
264
331
|
chainId: (0, import_viem.numberToHex)(chainId),
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
}
|
|
332
|
+
chainConfiguration
|
|
333
|
+
});
|
|
334
|
+
} else if (!permittedChains.has(chainId) && (unrecognizedChains.has(chainId) || addChainFirst(chain))) {
|
|
335
|
+
await mm.getProvider().request({
|
|
336
|
+
method: "wallet_addEthereumChain",
|
|
337
|
+
params: [chainConfiguration]
|
|
338
|
+
});
|
|
339
|
+
} else {
|
|
340
|
+
await mm.switchChain({
|
|
341
|
+
chainId: (0, import_viem.numberToHex)(chainId)
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
permittedChains.add(chainId);
|
|
345
|
+
unrecognizedChains.delete(chainId);
|
|
273
346
|
return chain;
|
|
274
347
|
} catch (err) {
|
|
275
348
|
if (err?.code === import_viem.UserRejectedRequestError.code) throw new import_viem.UserRejectedRequestError(err);
|
|
349
|
+
if (mobile && isUnrecognizedChain(err)) {
|
|
350
|
+
unrecognizedChains.add(chainId);
|
|
351
|
+
throw new import_viem.SwitchChainError(Object.assign(new Error(`MetaMask does not have ${chain.name} yet. Switch again from a tap to add it.`, {
|
|
352
|
+
cause: err
|
|
353
|
+
}), {
|
|
354
|
+
code: 4902
|
|
355
|
+
}));
|
|
356
|
+
}
|
|
276
357
|
throw new import_viem.SwitchChainError(err);
|
|
277
358
|
}
|
|
278
359
|
},
|
|
@@ -37,11 +37,14 @@ var metaMaskConnectConnector_exports = {};
|
|
|
37
37
|
__export(metaMaskConnectConnector_exports, {
|
|
38
38
|
metaMaskConnect: () => metaMaskConnect,
|
|
39
39
|
metaMaskConnectChainIds: () => metaMaskConnectChainIds,
|
|
40
|
+
metaMaskMayLackChain: () => metaMaskMayLackChain,
|
|
40
41
|
metaMaskNetworks: () => metaMaskNetworks,
|
|
41
42
|
metaMaskSupportedNetworks: () => metaMaskSupportedNetworks,
|
|
43
|
+
reopenMetaMask: () => reopenMetaMask,
|
|
42
44
|
resetMetaMaskConnectClient: () => resetMetaMaskConnectClient
|
|
43
45
|
});
|
|
44
46
|
module.exports = __toCommonJS(metaMaskConnectConnector_exports);
|
|
47
|
+
var import_connectkit = require("@multiplatform.one/connectkit");
|
|
45
48
|
var import_wagmi = require("wagmi");
|
|
46
49
|
var import_viem = require("viem");
|
|
47
50
|
var import_chains = require("wagmi/chains");
|
|
@@ -117,6 +120,17 @@ function isUrl(value) {
|
|
|
117
120
|
return false;
|
|
118
121
|
}
|
|
119
122
|
}
|
|
123
|
+
var metaMaskBuiltInTestnets = /* @__PURE__ */new Set([11155111, 59141, 10143, 6342, 6343]);
|
|
124
|
+
function metaMaskMayLackChain(chain) {
|
|
125
|
+
return chain.testnet === true && !metaMaskBuiltInTestnets.has(chain.id);
|
|
126
|
+
}
|
|
127
|
+
function isUnrecognizedChain(err) {
|
|
128
|
+
var {
|
|
129
|
+
code,
|
|
130
|
+
message
|
|
131
|
+
} = err !== null && err !== void 0 ? err : {};
|
|
132
|
+
return code === 4902 || typeof message === "string" && message.includes("Unrecognized chain");
|
|
133
|
+
}
|
|
120
134
|
function metaMaskConnectChainIds(networks, chainId) {
|
|
121
135
|
var ids = Object.keys(networks);
|
|
122
136
|
if (!chainId || (0, import_syntheticChains.isSyntheticChainId)(chainId)) return ids;
|
|
@@ -127,6 +141,31 @@ function metaMaskConnectChainIds(networks, chainId) {
|
|
|
127
141
|
}
|
|
128
142
|
var client;
|
|
129
143
|
var owner;
|
|
144
|
+
var permittedChains = /* @__PURE__ */new Set();
|
|
145
|
+
var unrecognizedChains = /* @__PURE__ */new Set();
|
|
146
|
+
var lastDeeplink;
|
|
147
|
+
function forgetChains() {
|
|
148
|
+
permittedChains.clear();
|
|
149
|
+
unrecognizedChains.clear();
|
|
150
|
+
lastDeeplink = void 0;
|
|
151
|
+
}
|
|
152
|
+
function reopenMetaMask() {
|
|
153
|
+
if (!lastDeeplink) return false;
|
|
154
|
+
lastDeeplink.open(lastDeeplink.url, "_self");
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
function recordingOpenLink(open) {
|
|
158
|
+
return function (url, target) {
|
|
159
|
+
lastDeeplink = {
|
|
160
|
+
url,
|
|
161
|
+
open
|
|
162
|
+
};
|
|
163
|
+
open(url, target);
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function navigate(url) {
|
|
167
|
+
if (typeof window !== "undefined") window.location.href = url;
|
|
168
|
+
}
|
|
130
169
|
function getClient(parameters, networks) {
|
|
131
170
|
if (client) return client;
|
|
132
171
|
client = import("@metamask/connect-evm").then(function (param) {
|
|
@@ -155,16 +194,19 @@ function getClient(parameters, networks) {
|
|
|
155
194
|
headless: true
|
|
156
195
|
}
|
|
157
196
|
} : {}),
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
197
|
+
mobile: {
|
|
198
|
+
// MetaMask Connect's own opener does the same location change for a
|
|
199
|
+
// metamask:// link; going through one here keeps the link to reopen.
|
|
200
|
+
// With useDeeplink false it clicks a universal link instead, left as is.
|
|
201
|
+
...(parameters.preferredOpenLink ? {
|
|
202
|
+
preferredOpenLink: recordingOpenLink(parameters.preferredOpenLink)
|
|
203
|
+
} : parameters.useDeeplink === false ? {} : {
|
|
204
|
+
preferredOpenLink: recordingOpenLink(navigate)
|
|
205
|
+
}),
|
|
206
|
+
...(parameters.useDeeplink !== void 0 ? {
|
|
207
|
+
useDeeplink: parameters.useDeeplink
|
|
208
|
+
} : {})
|
|
209
|
+
},
|
|
168
210
|
eventHandlers: {
|
|
169
211
|
// A session approved outside connect(), in another tab say. wagmi drops
|
|
170
212
|
// `change` for a connector it has no connection for, so only `connect`
|
|
@@ -182,19 +224,24 @@ function getClient(parameters, networks) {
|
|
|
182
224
|
});
|
|
183
225
|
},
|
|
184
226
|
accountsChanged: function accountsChanged(accounts) {
|
|
185
|
-
if (accounts.length === 0)
|
|
227
|
+
if (accounts.length === 0) {
|
|
228
|
+
forgetChains();
|
|
229
|
+
owner === null || owner === void 0 ? void 0 : owner.emit("disconnect");
|
|
230
|
+
} else owner === null || owner === void 0 ? void 0 : owner.emit("change", {
|
|
186
231
|
accounts: accounts.map(function (a) {
|
|
187
232
|
return (0, import_viem.getAddress)(a);
|
|
188
233
|
})
|
|
189
234
|
});
|
|
190
235
|
},
|
|
191
236
|
chainChanged: function chainChanged(chainId) {
|
|
192
|
-
|
|
237
|
+
permittedChains.add(Number(chainId));
|
|
238
|
+
owner === null || owner === void 0 ? void 0 : owner.emit("change", {
|
|
193
239
|
chainId: Number(chainId)
|
|
194
240
|
});
|
|
195
241
|
},
|
|
196
242
|
disconnect: function disconnect() {
|
|
197
|
-
|
|
243
|
+
forgetChains();
|
|
244
|
+
owner === null || owner === void 0 ? void 0 : owner.emit("disconnect");
|
|
198
245
|
},
|
|
199
246
|
displayUri: function displayUri(uri) {
|
|
200
247
|
return owner === null || owner === void 0 ? void 0 : owner.emit("message", {
|
|
@@ -213,6 +260,7 @@ function getClient(parameters, networks) {
|
|
|
213
260
|
function resetMetaMaskConnectClient() {
|
|
214
261
|
client = void 0;
|
|
215
262
|
owner = void 0;
|
|
263
|
+
forgetChains();
|
|
216
264
|
}
|
|
217
265
|
function rethrow(err) {
|
|
218
266
|
var code = err === null || err === void 0 ? void 0 : err.code;
|
|
@@ -223,11 +271,13 @@ function rethrow(err) {
|
|
|
223
271
|
metaMaskConnect.type = "metaMask";
|
|
224
272
|
function metaMaskConnect(parameters) {
|
|
225
273
|
return (0, import_wagmi.createConnector)(function (config) {
|
|
226
|
-
var _Object_keys_;
|
|
274
|
+
var _Object_keys_, _parameters_mobile, _parameters_addChainFirst;
|
|
227
275
|
owner !== null && owner !== void 0 ? owner : owner = config.emitter;
|
|
228
276
|
var networks = metaMaskNetworks(config.chains, config.transports);
|
|
229
277
|
var supportedNetworks = metaMaskSupportedNetworks(networks, config.transports);
|
|
230
278
|
var fallbackChainId = Number((_Object_keys_ = Object.keys(networks)[0]) !== null && _Object_keys_ !== void 0 ? _Object_keys_ : 1);
|
|
279
|
+
var mobile = (_parameters_mobile = parameters.mobile) !== null && _parameters_mobile !== void 0 ? _parameters_mobile : (0, import_connectkit.isMobile)();
|
|
280
|
+
var addChainFirst = (_parameters_addChainFirst = parameters.addChainFirst) !== null && _parameters_addChainFirst !== void 0 ? _parameters_addChainFirst : metaMaskMayLackChain;
|
|
231
281
|
var instance = function instance2() {
|
|
232
282
|
return getClient(parameters, supportedNetworks);
|
|
233
283
|
};
|
|
@@ -271,15 +321,18 @@ function metaMaskConnect(parameters) {
|
|
|
271
321
|
return (0, import_viem.getAddress)(a);
|
|
272
322
|
});
|
|
273
323
|
}
|
|
324
|
+
var current = chainIdOf(mm);
|
|
325
|
+
permittedChains.add(current);
|
|
274
326
|
return {
|
|
275
327
|
accounts,
|
|
276
|
-
chainId:
|
|
328
|
+
chainId: current
|
|
277
329
|
};
|
|
278
330
|
} catch (err) {
|
|
279
331
|
rethrow(err);
|
|
280
332
|
}
|
|
281
333
|
},
|
|
282
334
|
async disconnect() {
|
|
335
|
+
forgetChains();
|
|
283
336
|
await (await claim()).disconnect();
|
|
284
337
|
},
|
|
285
338
|
async getAccounts() {
|
|
@@ -309,28 +362,52 @@ function metaMaskConnect(parameters) {
|
|
|
309
362
|
addEthereumChainParameter,
|
|
310
363
|
chainId
|
|
311
364
|
} = param;
|
|
365
|
+
var _ref, _ref1;
|
|
366
|
+
var _chain_blockExplorers;
|
|
312
367
|
var chain = config.chains.find(function (c) {
|
|
313
368
|
return c.id === chainId;
|
|
314
369
|
});
|
|
315
370
|
if (!chain || !networks[(0, import_viem.numberToHex)(chainId)]) throw new import_viem.SwitchChainError(new import_wagmi.ChainNotConfiguredError());
|
|
371
|
+
var chainConfiguration = {
|
|
372
|
+
chainId: (0, import_viem.numberToHex)(chainId),
|
|
373
|
+
chainName: (_ref = addEthereumChainParameter === null || addEthereumChainParameter === void 0 ? void 0 : addEthereumChainParameter.chainName) !== null && _ref !== void 0 ? _ref : chain.name,
|
|
374
|
+
nativeCurrency: (_ref1 = addEthereumChainParameter === null || addEthereumChainParameter === void 0 ? void 0 : addEthereumChainParameter.nativeCurrency) !== null && _ref1 !== void 0 ? _ref1 : chain.nativeCurrency,
|
|
375
|
+
rpcUrls: (addEthereumChainParameter === null || addEthereumChainParameter === void 0 ? void 0 : addEthereumChainParameter.rpcUrls) ? [...addEthereumChainParameter.rpcUrls] : [networks[(0, import_viem.numberToHex)(chainId)]],
|
|
376
|
+
...(((_chain_blockExplorers = chain.blockExplorers) === null || _chain_blockExplorers === void 0 ? void 0 : _chain_blockExplorers.default.url) ? {
|
|
377
|
+
blockExplorerUrls: [chain.blockExplorers.default.url]
|
|
378
|
+
} : {})
|
|
379
|
+
};
|
|
380
|
+
var mm = await claim();
|
|
381
|
+
if (mm.getChainId() === (0, import_viem.numberToHex)(chainId)) return chain;
|
|
316
382
|
try {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
await (await claim()).switchChain({
|
|
320
|
-
chainId: (0, import_viem.numberToHex)(chainId),
|
|
321
|
-
chainConfiguration: {
|
|
383
|
+
if (!mobile) {
|
|
384
|
+
await mm.switchChain({
|
|
322
385
|
chainId: (0, import_viem.numberToHex)(chainId),
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
}
|
|
330
|
-
}
|
|
386
|
+
chainConfiguration
|
|
387
|
+
});
|
|
388
|
+
} else if (!permittedChains.has(chainId) && (unrecognizedChains.has(chainId) || addChainFirst(chain))) {
|
|
389
|
+
await mm.getProvider().request({
|
|
390
|
+
method: "wallet_addEthereumChain",
|
|
391
|
+
params: [chainConfiguration]
|
|
392
|
+
});
|
|
393
|
+
} else {
|
|
394
|
+
await mm.switchChain({
|
|
395
|
+
chainId: (0, import_viem.numberToHex)(chainId)
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
permittedChains.add(chainId);
|
|
399
|
+
unrecognizedChains.delete(chainId);
|
|
331
400
|
return chain;
|
|
332
401
|
} catch (err) {
|
|
333
402
|
if ((err === null || err === void 0 ? void 0 : err.code) === import_viem.UserRejectedRequestError.code) throw new import_viem.UserRejectedRequestError(err);
|
|
403
|
+
if (mobile && isUnrecognizedChain(err)) {
|
|
404
|
+
unrecognizedChains.add(chainId);
|
|
405
|
+
throw new import_viem.SwitchChainError(Object.assign(new Error(`MetaMask does not have ${chain.name} yet. Switch again from a tap to add it.`, {
|
|
406
|
+
cause: err
|
|
407
|
+
}), {
|
|
408
|
+
code: 4902
|
|
409
|
+
}));
|
|
410
|
+
}
|
|
334
411
|
throw new import_viem.SwitchChainError(err);
|
|
335
412
|
}
|
|
336
413
|
},
|