@layerswap/wallet-starknet 2.0.0-next.0 → 2.0.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/dist/esm/init.js
CHANGED
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _DiscoveryConnector_wallet, _DiscoveryConnector_store;
|
|
12
|
+
var _DiscoveryConnector_instances, _DiscoveryConnector_wallet, _DiscoveryConnector_store, _DiscoveryConnector_link;
|
|
13
13
|
import { Connector, ConnectorNotConnectedError, UserNotConnectedError } from '@starknet-react/core';
|
|
14
14
|
import { starknetConnectorManager } from './service/starknetConnectorManager';
|
|
15
15
|
let _initialized = false;
|
|
@@ -17,6 +17,7 @@ let _loadPromise = null;
|
|
|
17
17
|
class DiscoveryConnector extends Connector {
|
|
18
18
|
constructor(wallet, store) {
|
|
19
19
|
super();
|
|
20
|
+
_DiscoveryConnector_instances.add(this);
|
|
20
21
|
_DiscoveryConnector_wallet.set(this, void 0);
|
|
21
22
|
_DiscoveryConnector_store.set(this, void 0);
|
|
22
23
|
__classPrivateFieldSet(this, _DiscoveryConnector_wallet, wallet, "f");
|
|
@@ -27,7 +28,7 @@ class DiscoveryConnector extends Connector {
|
|
|
27
28
|
get name() { return `${__classPrivateFieldGet(this, _DiscoveryConnector_wallet, "f").name} (mobile)`; }
|
|
28
29
|
available() { return true; }
|
|
29
30
|
connect() {
|
|
30
|
-
window.open(__classPrivateFieldGet(this,
|
|
31
|
+
window.open(__classPrivateFieldGet(this, _DiscoveryConnector_instances, "m", _DiscoveryConnector_link).call(this), '_blank');
|
|
31
32
|
return undefined;
|
|
32
33
|
}
|
|
33
34
|
get wallet() { throw new ConnectorNotConnectedError(); }
|
|
@@ -39,7 +40,12 @@ class DiscoveryConnector extends Connector {
|
|
|
39
40
|
throw new Error('Method not implemented.');
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
|
-
_DiscoveryConnector_wallet = new WeakMap(), _DiscoveryConnector_store = new WeakMap()
|
|
43
|
+
_DiscoveryConnector_wallet = new WeakMap(), _DiscoveryConnector_store = new WeakMap(), _DiscoveryConnector_instances = new WeakSet(), _DiscoveryConnector_link = function _DiscoveryConnector_link() {
|
|
44
|
+
if (__classPrivateFieldGet(this, _DiscoveryConnector_wallet, "f").id === 'xverse') {
|
|
45
|
+
return `https://connect.xverse.app/browser?url=${encodeURIComponent(window.location.href)}`;
|
|
46
|
+
}
|
|
47
|
+
return __classPrivateFieldGet(this, _DiscoveryConnector_wallet, "f").downloads[__classPrivateFieldGet(this, _DiscoveryConnector_store, "f")];
|
|
48
|
+
};
|
|
43
49
|
/**
|
|
44
50
|
* One-shot initialization of the Starknet connectors + manager.
|
|
45
51
|
* Safe to call multiple times — subsequent calls are no-ops.
|
|
@@ -65,19 +71,27 @@ export function initStarknetProvider() {
|
|
|
65
71
|
const isAndroid = !!navigator.userAgent.match(/Android/i);
|
|
66
72
|
const isIOS = !!navigator.userAgent.match(/iPhone|iPad|iPod/i);
|
|
67
73
|
const defaultConnectors = [];
|
|
68
|
-
if (!isSafari) {
|
|
74
|
+
if (!isSafari && !isAndroid) {
|
|
69
75
|
defaultConnectors.push(new InjectedConnector({ options: { id: 'argentX' } }));
|
|
70
76
|
defaultConnectors.push(new InjectedConnector({ options: { id: 'keplr' } }));
|
|
71
77
|
defaultConnectors.push(new InjectedConnector({ options: { id: 'braavos' } }));
|
|
72
78
|
defaultConnectors.push(new InjectedConnector({ options: { id: 'xverse' } }));
|
|
79
|
+
defaultConnectors.push(new InjectedConnector({ options: { id: 'fordefi' } }));
|
|
80
|
+
defaultConnectors.push(new InjectedConnector({ options: { id: 'okxwallet' } }));
|
|
73
81
|
}
|
|
74
82
|
if ((isAndroid || isIOS) && !defaultConnectors.some(c => c.id === 'braavos')) {
|
|
75
83
|
const starknet = (await import('@starknet-io/get-starknet-core')).default;
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
const injectedWallets = isAndroid ? await starknet.getAvailableWallets() : [];
|
|
85
|
+
if (injectedWallets.length) {
|
|
86
|
+
defaultConnectors.push(...injectedWallets.map(w => new InjectedConnector({ options: { id: w.id } })));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const discoverWallets = (await starknet.getDiscoveryWallets()).filter(w => {
|
|
90
|
+
return (isAndroid && w.downloads['android']) || (isIOS && w.downloads['ios']);
|
|
91
|
+
});
|
|
92
|
+
if (discoverWallets.length) {
|
|
93
|
+
defaultConnectors.push(...discoverWallets.map(w => new DiscoveryConnector(w, isAndroid ? 'android' : 'ios')));
|
|
94
|
+
}
|
|
81
95
|
}
|
|
82
96
|
}
|
|
83
97
|
defaultConnectors.push(new ControllerConnector());
|
|
@@ -24,6 +24,16 @@ const connectorsConfigs = [
|
|
|
24
24
|
name: 'Xverse Wallet',
|
|
25
25
|
installLink: 'https://chromewebstore.google.com/detail/xverse-bitcoin-crypto-wal/idnnbdplmphpflfnlkomgpfbpcgelopg',
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
id: 'okxwallet',
|
|
29
|
+
name: 'OKX Wallet',
|
|
30
|
+
installLink: 'https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'fordefi',
|
|
34
|
+
name: 'Fordefi',
|
|
35
|
+
installLink: 'https://chromewebstore.google.com/detail/fordefi/hcmehenccjdmfbojapcbcofkgdpbnlle',
|
|
36
|
+
},
|
|
27
37
|
];
|
|
28
38
|
/**
|
|
29
39
|
* Validate the RPC endpoint before handing it to `RpcProvider`. The signing
|