@dynamic-labs/multi-wallet 0.17.0-RC.6 → 0.17.0-RC.8
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/CHANGELOG.md +53 -0
- package/package.json +8 -6
- package/src/index.cjs +0 -18
- package/src/index.d.ts +0 -4
- package/src/index.js +1 -4
- package/src/multi-wallet.cjs +53 -96
- package/src/multi-wallet.js +53 -96
- package/src/types.d.ts +9 -47
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +1 -1
- package/src/utils/getApiProviders.cjs +15 -0
- package/src/utils/getApiProviders.d.ts +10 -0
- package/src/utils/getApiProviders.js +11 -0
- package/src/utils/message.cjs +2 -2
- package/src/utils/message.d.ts +2 -2
- package/src/utils/message.js +1 -1
- package/src/utils/walletConnect.cjs +11 -8
- package/src/utils/walletConnect.d.ts +4 -4
- package/src/utils/walletConnect.js +11 -8
- package/src/wallets/algorand/MyAlgoWalletConnector.cjs +3 -3
- package/src/wallets/algorand/MyAlgoWalletConnector.js +1 -1
- package/src/wallets/clients/coinbase/coinbase.cjs +4 -4
- package/src/wallets/clients/coinbase/coinbase.js +1 -1
- package/src/wallets/clients/coinbase/types.d.ts +2 -2
- package/src/wallets/clients/walletConnect/walletConnect.cjs +20 -46
- package/src/wallets/clients/walletConnect/walletConnect.d.ts +1 -3
- package/src/wallets/clients/walletConnect/walletConnect.js +18 -43
- package/src/wallets/cosmos/KeplrWalletConnect.cjs +18 -16
- package/src/wallets/cosmos/KeplrWalletConnect.d.ts +7 -6
- package/src/wallets/cosmos/KeplrWalletConnect.js +14 -12
- package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
- package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -5
- package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
- package/src/wallets/cosmos/wcClient.lib.cjs +100 -0
- package/src/wallets/cosmos/wcClient.lib.d.ts +20 -0
- package/src/wallets/cosmos/wcClient.lib.js +87 -0
- package/src/wallets/ethereum/BloctoEvm.cjs +10 -12
- package/src/wallets/ethereum/BloctoEvm.d.ts +2 -7
- package/src/wallets/ethereum/BloctoEvm.js +8 -10
- package/src/wallets/ethereum/EthWalletConnector.cjs +34 -19
- package/src/wallets/ethereum/EthWalletConnector.d.ts +8 -4
- package/src/wallets/ethereum/EthWalletConnector.js +28 -13
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +2 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +5 -7
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +10 -4
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +9 -3
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +15 -11
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +9 -8
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +13 -9
- package/src/wallets/ethereum/coinbase.cjs +9 -11
- package/src/wallets/ethereum/coinbase.d.ts +7 -11
- package/src/wallets/ethereum/coinbase.js +10 -12
- package/src/wallets/ethereum/ethProviderHelper.cjs +103 -101
- package/src/wallets/ethereum/ethProviderHelper.d.ts +24 -31
- package/src/wallets/ethereum/ethProviderHelper.js +100 -98
- package/src/wallets/ethereum/evm-network.cjs +2 -2
- package/src/wallets/ethereum/evm-network.d.ts +1 -17
- package/src/wallets/ethereum/evm-network.js +2 -2
- package/src/wallets/ethereum/injected/BloctoInjected.cjs +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.js +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.js +2 -3
- package/src/wallets/ethereum/injected/Dawn.cjs +2 -3
- package/src/wallets/ethereum/injected/Dawn.d.ts +2 -3
- package/src/wallets/ethereum/injected/Dawn.js +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.js +2 -3
- package/src/wallets/ethereum/injected/Frame.cjs +2 -3
- package/src/wallets/ethereum/injected/Frame.d.ts +2 -3
- package/src/wallets/ethereum/injected/Frame.js +2 -3
- package/src/wallets/ethereum/injected/GameStop.cjs +2 -3
- package/src/wallets/ethereum/injected/GameStop.d.ts +2 -3
- package/src/wallets/ethereum/injected/GameStop.js +2 -3
- package/src/wallets/ethereum/injected/InjectedWalletBase.cjs +74 -0
- package/src/wallets/ethereum/{meta-mask.d.ts → injected/InjectedWalletBase.d.ts} +7 -9
- package/src/wallets/ethereum/injected/InjectedWalletBase.js +72 -0
- package/src/wallets/ethereum/injected/MetaMask.cjs +13 -0
- package/src/wallets/ethereum/injected/MetaMask.d.ts +6 -0
- package/src/wallets/ethereum/injected/MetaMask.js +11 -0
- package/src/wallets/ethereum/injected/Opera.cjs +2 -3
- package/src/wallets/ethereum/injected/Opera.d.ts +2 -3
- package/src/wallets/ethereum/injected/Opera.js +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.js +2 -3
- package/src/wallets/ethereum/injected/Trust.cjs +3 -3
- package/src/wallets/ethereum/injected/Trust.d.ts +3 -3
- package/src/wallets/ethereum/injected/Trust.js +3 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +2 -3
- package/src/wallets/ethereum/injected/Zerion.cjs +3 -3
- package/src/wallets/ethereum/injected/Zerion.d.ts +3 -3
- package/src/wallets/ethereum/injected/Zerion.js +3 -3
- package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
- package/src/wallets/flow/FlowWalletConnector.js +2 -3
- package/src/wallets/getWalletConnectConnector.cjs +7 -10
- package/src/wallets/getWalletConnectConnector.d.ts +2 -5
- package/src/wallets/getWalletConnectConnector.js +7 -10
- package/src/wallets/solana/CoinbaseSolana.cjs +8 -11
- package/src/wallets/solana/CoinbaseSolana.d.ts +1 -3
- package/src/wallets/solana/CoinbaseSolana.js +8 -11
- package/src/wallets/solana/glow.cjs +8 -11
- package/src/wallets/solana/glow.d.ts +1 -3
- package/src/wallets/solana/glow.js +8 -11
- package/src/wallets/solana/injected/BraveSol.cjs +2 -1
- package/src/wallets/solana/injected/BraveSol.js +2 -1
- package/src/wallets/solana/phantom-ledger.cjs +5 -5
- package/src/wallets/solana/phantom-ledger.js +1 -1
- package/src/wallets/solana/phantom.cjs +8 -12
- package/src/wallets/solana/phantom.d.ts +1 -3
- package/src/wallets/solana/phantom.js +8 -12
- package/src/wallets/solana/slope.cjs +4 -4
- package/src/wallets/solana/slope.js +1 -1
- package/src/wallets/solana/solProviderHelper.cjs +47 -48
- package/src/wallets/solana/solProviderHelper.d.ts +18 -18
- package/src/wallets/solana/solProviderHelper.js +47 -48
- package/src/wallets/solana/solWalletConnector.cjs +24 -6
- package/src/wallets/solana/solWalletConnector.d.ts +8 -5
- package/src/wallets/solana/solWalletConnector.js +23 -5
- package/src/wallets/solana/solflare.cjs +6 -7
- package/src/wallets/solana/solflare.d.ts +0 -2
- package/src/wallets/solana/solflare.js +6 -7
- package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
- package/src/wallets/starknet/starknetWalletConnector.js +2 -3
- package/src/wallets/walletConnect/index.d.ts +1 -1
- package/src/wallets/walletConnect/walletConnect.cjs +8 -7
- package/src/wallets/walletConnect/walletConnect.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnect.js +6 -5
- package/src/wallets/walletConnect/walletConnectV2.cjs +14 -14
- package/src/wallets/walletConnect/walletConnectV2.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnectV2.js +3 -3
- package/src/wallets/walletConnect/zerion.d.ts +2 -4
- package/src/errors.cjs +0 -66
- package/src/errors.d.ts +0 -34
- package/src/errors.js +0 -54
- package/src/rpcProviders.cjs +0 -76
- package/src/rpcProviders.d.ts +0 -5
- package/src/rpcProviders.js +0 -69
- package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
- package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
- package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
- package/src/utils/CancellablePromise/index.d.ts +0 -1
- package/src/utils/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
- package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
- package/src/wallets/cosmos/getKeplrConnector.js +0 -14
- package/src/wallets/ethereum/fortmatic.cjs +0 -75
- package/src/wallets/ethereum/fortmatic.d.ts +0 -26
- package/src/wallets/ethereum/fortmatic.js +0 -69
- package/src/wallets/ethereum/meta-mask.cjs +0 -63
- package/src/wallets/ethereum/meta-mask.js +0 -61
- package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
- package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
- package/src/wallets/getMobileOrInjectedWallet.js +0 -22
|
@@ -3,41 +3,15 @@ import { bufferToBase64 } from '../../utils/convertors.js';
|
|
|
3
3
|
import { ProviderLookup } from '../ProviderLookup.js';
|
|
4
4
|
import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
|
|
5
5
|
|
|
6
|
+
var _a;
|
|
6
7
|
class SolProviderHelper {
|
|
7
|
-
|
|
8
|
-
this.GlowProvider = () => this.installedProviderLookup([{ flag: 'isGlow', value: true }]);
|
|
9
|
-
this.CoinbaseProvider = () => this.findSolanaProviders(window.coinbaseSolana)[0];
|
|
10
|
-
this.PhantomProvider = () => this.installedProviderLookup([
|
|
11
|
-
{ flag: 'isPhantom', value: true },
|
|
12
|
-
{ flag: 'isBraveWallet', value: false },
|
|
13
|
-
{ flag: 'isExodus', value: false },
|
|
14
|
-
]);
|
|
15
|
-
this.SolflareProvider = () => this.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
|
|
16
|
-
this.BraveProvider = () => this.installedProviderLookup([
|
|
17
|
-
{ flag: 'isPhantom', value: true },
|
|
18
|
-
{ flag: 'isBraveWallet', value: true },
|
|
19
|
-
]);
|
|
20
|
-
this.ExodusProvider = () => this.installedProviderLookup([
|
|
21
|
-
{ flag: 'isPhantom', value: true },
|
|
22
|
-
{ flag: 'isExodus', value: true },
|
|
23
|
-
]);
|
|
24
|
-
this.providers = {
|
|
25
|
-
bravesol: this.BraveProvider,
|
|
26
|
-
coinbasesolana: this.CoinbaseProvider,
|
|
27
|
-
exodussol: this.ExodusProvider,
|
|
28
|
-
glow: this.GlowProvider,
|
|
29
|
-
phantom: this.PhantomProvider,
|
|
30
|
-
phantomledger: this.PhantomProvider,
|
|
31
|
-
solflare: this.SolflareProvider,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
installedProviderLookup(providerFlags) {
|
|
8
|
+
static installedProviderLookup(providerFlags) {
|
|
35
9
|
return ProviderLookup(this.allInstalledProviders(), providerFlags);
|
|
36
10
|
}
|
|
37
|
-
allInstalledProviders() {
|
|
11
|
+
static allInstalledProviders() {
|
|
38
12
|
return this.findSolanaProviders(window.solana).concat(this.findSolanaProviders(window.solflare), this.findSolanaProviders(window.glowSolana));
|
|
39
13
|
}
|
|
40
|
-
findSolanaProviders(solana) {
|
|
14
|
+
static findSolanaProviders(solana) {
|
|
41
15
|
const solanaProviders = [];
|
|
42
16
|
if (solana && !solana.providers) {
|
|
43
17
|
solanaProviders.push(solana);
|
|
@@ -49,14 +23,14 @@ class SolProviderHelper {
|
|
|
49
23
|
}
|
|
50
24
|
return solanaProviders;
|
|
51
25
|
}
|
|
52
|
-
isInstalledHelper(walletName) {
|
|
26
|
+
static isInstalledHelper(walletName) {
|
|
53
27
|
return this.findProvider(walletName) !== undefined;
|
|
54
28
|
}
|
|
55
|
-
findProvider(walletName) {
|
|
56
|
-
var
|
|
57
|
-
return (
|
|
29
|
+
static findProvider(walletName) {
|
|
30
|
+
var _b, _c;
|
|
31
|
+
return (_c = (_b = this.providers)[normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
58
32
|
}
|
|
59
|
-
fetchPublicAddressWithName(name) {
|
|
33
|
+
static fetchPublicAddressWithName(name) {
|
|
60
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
35
|
const provider = this.findProvider(name);
|
|
62
36
|
if (!provider) {
|
|
@@ -67,7 +41,7 @@ class SolProviderHelper {
|
|
|
67
41
|
return publicKey ? publicKey.toString() : Promise.resolve(undefined);
|
|
68
42
|
});
|
|
69
43
|
}
|
|
70
|
-
connectWithName(name) {
|
|
44
|
+
static connectWithName(name) {
|
|
71
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
46
|
const provider = this.findProvider(name);
|
|
73
47
|
if (!provider) {
|
|
@@ -82,7 +56,7 @@ class SolProviderHelper {
|
|
|
82
56
|
}
|
|
83
57
|
});
|
|
84
58
|
}
|
|
85
|
-
signMessageWithName(messageToSign, name) {
|
|
59
|
+
static signMessageWithName(messageToSign, name) {
|
|
86
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
61
|
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
88
62
|
if (!walletAddress) {
|
|
@@ -99,36 +73,35 @@ class SolProviderHelper {
|
|
|
99
73
|
}));
|
|
100
74
|
});
|
|
101
75
|
}
|
|
102
|
-
_setupEventListeners(listeners, web3Provider) {
|
|
76
|
+
static _setupEventListeners(listeners, web3Provider) {
|
|
103
77
|
const handleAccountChange = (address) => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
var
|
|
78
|
+
var _b, _c, _d;
|
|
105
79
|
if (!address) {
|
|
106
80
|
yield (web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.connect());
|
|
107
|
-
if ((
|
|
108
|
-
(
|
|
81
|
+
if ((_b = web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString()) {
|
|
82
|
+
(_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, [web3Provider.publicKey.toString()]);
|
|
109
83
|
}
|
|
110
84
|
return;
|
|
111
85
|
}
|
|
112
86
|
if (address.toString()) {
|
|
113
|
-
yield ((
|
|
87
|
+
yield ((_d = listeners.onAccountChange) === null || _d === void 0 ? void 0 : _d.call(listeners, [address.toString()]));
|
|
114
88
|
}
|
|
115
89
|
});
|
|
116
90
|
const handleDisconnect = () => __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
var
|
|
118
|
-
yield ((
|
|
91
|
+
var _e;
|
|
92
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
119
93
|
});
|
|
120
94
|
web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('accountChanged', handleAccountChange);
|
|
121
95
|
web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('disconnect', handleDisconnect);
|
|
122
|
-
return () => { };
|
|
123
96
|
}
|
|
124
|
-
_teardownEventListeners(name) {
|
|
97
|
+
static _teardownEventListeners(name) {
|
|
125
98
|
const web3Provider = this.findProvider(name);
|
|
126
99
|
if (!web3Provider) {
|
|
127
100
|
return;
|
|
128
101
|
}
|
|
129
102
|
web3Provider.removeAllListeners();
|
|
130
103
|
}
|
|
131
|
-
getConnectedAccountsWithName(name) {
|
|
104
|
+
static getConnectedAccountsWithName(name) {
|
|
132
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
133
106
|
const provider = this.findProvider(name);
|
|
134
107
|
if (!provider) {
|
|
@@ -155,6 +128,32 @@ class SolProviderHelper {
|
|
|
155
128
|
}
|
|
156
129
|
});
|
|
157
130
|
}
|
|
158
|
-
}
|
|
131
|
+
}
|
|
132
|
+
_a = SolProviderHelper;
|
|
133
|
+
SolProviderHelper.GlowProvider = () => _a.installedProviderLookup([{ flag: 'isGlow', value: true }]);
|
|
134
|
+
SolProviderHelper.CoinbaseProvider = () => _a.findSolanaProviders(window.coinbaseSolana)[0];
|
|
135
|
+
SolProviderHelper.PhantomProvider = () => _a.installedProviderLookup([
|
|
136
|
+
{ flag: 'isPhantom', value: true },
|
|
137
|
+
{ flag: 'isBraveWallet', value: false },
|
|
138
|
+
{ flag: 'isExodus', value: false },
|
|
139
|
+
]);
|
|
140
|
+
SolProviderHelper.SolflareProvider = () => _a.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
|
|
141
|
+
SolProviderHelper.BraveProvider = () => _a.installedProviderLookup([
|
|
142
|
+
{ flag: 'isPhantom', value: true },
|
|
143
|
+
{ flag: 'isBraveWallet', value: true },
|
|
144
|
+
]);
|
|
145
|
+
SolProviderHelper.ExodusProvider = () => _a.installedProviderLookup([
|
|
146
|
+
{ flag: 'isPhantom', value: true },
|
|
147
|
+
{ flag: 'isExodus', value: true },
|
|
148
|
+
]);
|
|
149
|
+
SolProviderHelper.providers = {
|
|
150
|
+
bravesol: _a.BraveProvider,
|
|
151
|
+
coinbasesolana: _a.CoinbaseProvider,
|
|
152
|
+
exodussol: _a.ExodusProvider,
|
|
153
|
+
glow: _a.GlowProvider,
|
|
154
|
+
phantom: _a.PhantomProvider,
|
|
155
|
+
phantomledger: _a.PhantomProvider,
|
|
156
|
+
solflare: _a.SolflareProvider,
|
|
157
|
+
};
|
|
159
158
|
|
|
160
159
|
export { SolProviderHelper };
|
|
@@ -5,27 +5,45 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var web3_js = require('@solana/web3.js');
|
|
7
7
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
-
var rpcProviders = require('
|
|
9
|
-
var
|
|
8
|
+
var rpcProviders = require('@dynamic-labs/rpc-providers');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
10
10
|
|
|
11
11
|
class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
12
|
-
constructor({ solNetworks }) {
|
|
12
|
+
constructor({ solNetworks, chainRpcProviders }) {
|
|
13
|
+
var _a;
|
|
13
14
|
super();
|
|
14
15
|
this.supportedChains = ['SOL'];
|
|
15
16
|
this.connectedChain = 'SOL';
|
|
16
17
|
this.solNetworks = solNetworks;
|
|
18
|
+
this.chainRpcProviders = chainRpcProviders;
|
|
19
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(rpcProviders.ProviderChain.SOLANA, (config) => {
|
|
20
|
+
const rpcProviders = {};
|
|
21
|
+
if (config === null || config === void 0 ? void 0 : config.solana) {
|
|
22
|
+
rpcProviders.solana = config.solana.map((network) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
25
|
+
const provider = new web3_js.Connection(rpcUrl);
|
|
26
|
+
return {
|
|
27
|
+
chainId: network.chainId.toString(),
|
|
28
|
+
chainName: network.name,
|
|
29
|
+
provider,
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return rpcProviders.solana;
|
|
34
|
+
});
|
|
17
35
|
}
|
|
18
36
|
getWeb3Provider() {
|
|
19
37
|
var _a;
|
|
20
38
|
const [network] = this.solNetworks;
|
|
21
39
|
if (!network) {
|
|
22
|
-
throw new
|
|
40
|
+
throw new utils.DynamicError('No enabled networks');
|
|
23
41
|
}
|
|
24
42
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
25
43
|
return new web3_js.Connection(rpcUrl, 'confirmed');
|
|
26
44
|
}
|
|
27
45
|
getRpcProvider() {
|
|
28
|
-
var _a;
|
|
46
|
+
var _a, _b;
|
|
29
47
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
30
48
|
if (this.solNetworks.length === 0)
|
|
31
49
|
return;
|
|
@@ -35,7 +53,7 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
35
53
|
solana: this.solNetworks,
|
|
36
54
|
starknet: undefined,
|
|
37
55
|
};
|
|
38
|
-
return (_a =
|
|
56
|
+
return (_b = (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.getSolanaRpcProviderByChainId(configurations, '101')) === null || _b === void 0 ? void 0 : _b.provider;
|
|
39
57
|
});
|
|
40
58
|
}
|
|
41
59
|
getBalance() {
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Connection } from '@solana/web3.js';
|
|
2
|
-
import type { NetworkConfiguration } from '@dynamic-labs/sdk-api';
|
|
3
2
|
import { Chain, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
+
import { GenericNetwork } from '@dynamic-labs/types';
|
|
4
|
+
import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
|
|
4
5
|
import { ISolana } from '../window';
|
|
6
|
+
export type SolWalletConnectorOpts = {
|
|
7
|
+
chainRpcProviders: typeof ChainRpcProviders;
|
|
8
|
+
solNetworks: GenericNetwork[];
|
|
9
|
+
};
|
|
5
10
|
export declare abstract class SolWalletConnector extends WalletConnectorBase {
|
|
6
|
-
solNetworks:
|
|
11
|
+
solNetworks: GenericNetwork[];
|
|
7
12
|
supportedChains: Chain[];
|
|
8
13
|
connectedChain: Chain;
|
|
9
|
-
constructor({ solNetworks }:
|
|
10
|
-
solNetworks: NetworkConfiguration[];
|
|
11
|
-
});
|
|
14
|
+
constructor({ solNetworks, chainRpcProviders }: SolWalletConnectorOpts);
|
|
12
15
|
getWeb3Provider(): Connection;
|
|
13
16
|
getRpcProvider(): Promise<Connection | undefined>;
|
|
14
17
|
abstract getSigner(): Promise<ISolana | undefined>;
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { Connection, PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import {
|
|
5
|
-
import { DynamicError } from '
|
|
4
|
+
import { ProviderChain } from '@dynamic-labs/rpc-providers';
|
|
5
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
6
6
|
|
|
7
7
|
class SolWalletConnector extends WalletConnectorBase {
|
|
8
|
-
constructor({ solNetworks }) {
|
|
8
|
+
constructor({ solNetworks, chainRpcProviders }) {
|
|
9
|
+
var _a;
|
|
9
10
|
super();
|
|
10
11
|
this.supportedChains = ['SOL'];
|
|
11
12
|
this.connectedChain = 'SOL';
|
|
12
13
|
this.solNetworks = solNetworks;
|
|
14
|
+
this.chainRpcProviders = chainRpcProviders;
|
|
15
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(ProviderChain.SOLANA, (config) => {
|
|
16
|
+
const rpcProviders = {};
|
|
17
|
+
if (config === null || config === void 0 ? void 0 : config.solana) {
|
|
18
|
+
rpcProviders.solana = config.solana.map((network) => {
|
|
19
|
+
var _a;
|
|
20
|
+
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
21
|
+
const provider = new Connection(rpcUrl);
|
|
22
|
+
return {
|
|
23
|
+
chainId: network.chainId.toString(),
|
|
24
|
+
chainName: network.name,
|
|
25
|
+
provider,
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return rpcProviders.solana;
|
|
30
|
+
});
|
|
13
31
|
}
|
|
14
32
|
getWeb3Provider() {
|
|
15
33
|
var _a;
|
|
@@ -21,7 +39,7 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
21
39
|
return new Connection(rpcUrl, 'confirmed');
|
|
22
40
|
}
|
|
23
41
|
getRpcProvider() {
|
|
24
|
-
var _a;
|
|
42
|
+
var _a, _b;
|
|
25
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
44
|
if (this.solNetworks.length === 0)
|
|
27
45
|
return;
|
|
@@ -31,7 +49,7 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
31
49
|
solana: this.solNetworks,
|
|
32
50
|
starknet: undefined,
|
|
33
51
|
};
|
|
34
|
-
return (_a =
|
|
52
|
+
return (_b = (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.getSolanaRpcProviderByChainId(configurations, '101')) === null || _b === void 0 ? void 0 : _b.provider;
|
|
35
53
|
});
|
|
36
54
|
}
|
|
37
55
|
getBalance() {
|
|
@@ -9,24 +9,23 @@ class Solflare extends solWalletConnector.SolWalletConnector {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
11
11
|
this.name = 'Solflare';
|
|
12
|
-
this.solProviderHelper = new solProviderHelper.SolProviderHelper();
|
|
13
12
|
}
|
|
14
13
|
isInstalledOnBrowser() {
|
|
15
|
-
return
|
|
14
|
+
return solProviderHelper.SolProviderHelper.isInstalledHelper(this.name);
|
|
16
15
|
}
|
|
17
16
|
fetchPublicAddress() {
|
|
18
17
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
return
|
|
18
|
+
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
21
|
connect() {
|
|
23
22
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
yield
|
|
23
|
+
yield solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
getSigner() {
|
|
28
27
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
return
|
|
28
|
+
return solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
30
29
|
});
|
|
31
30
|
}
|
|
32
31
|
signMessage(messageToSign) {
|
|
@@ -35,7 +34,7 @@ class Solflare extends solWalletConnector.SolWalletConnector {
|
|
|
35
34
|
if (!walletAddress) {
|
|
36
35
|
return undefined;
|
|
37
36
|
}
|
|
38
|
-
const provider =
|
|
37
|
+
const provider = solProviderHelper.SolProviderHelper.findProvider(this.name);
|
|
39
38
|
if (!provider) {
|
|
40
39
|
return undefined;
|
|
41
40
|
}
|
|
@@ -57,7 +56,7 @@ class Solflare extends solWalletConnector.SolWalletConnector {
|
|
|
57
56
|
}
|
|
58
57
|
getConnectedAccounts() {
|
|
59
58
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
return
|
|
59
|
+
return solProviderHelper.SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
61
60
|
});
|
|
62
61
|
}
|
|
63
62
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ISolana } from '../window';
|
|
2
2
|
import { SolWalletConnector } from './solWalletConnector';
|
|
3
|
-
import { SolProviderHelper } from './solProviderHelper';
|
|
4
3
|
declare class Solflare extends SolWalletConnector {
|
|
5
4
|
name: string;
|
|
6
|
-
solProviderHelper: SolProviderHelper;
|
|
7
5
|
isInstalledOnBrowser(): boolean;
|
|
8
6
|
fetchPublicAddress(): Promise<string | undefined>;
|
|
9
7
|
connect(): Promise<void>;
|
|
@@ -7,24 +7,23 @@ class Solflare extends SolWalletConnector {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
9
|
this.name = 'Solflare';
|
|
10
|
-
this.solProviderHelper = new SolProviderHelper();
|
|
11
10
|
}
|
|
12
11
|
isInstalledOnBrowser() {
|
|
13
|
-
return
|
|
12
|
+
return SolProviderHelper.isInstalledHelper(this.name);
|
|
14
13
|
}
|
|
15
14
|
fetchPublicAddress() {
|
|
16
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
return
|
|
16
|
+
return SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
connect() {
|
|
21
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
yield
|
|
21
|
+
yield SolProviderHelper.connectWithName(this.name);
|
|
23
22
|
});
|
|
24
23
|
}
|
|
25
24
|
getSigner() {
|
|
26
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
return
|
|
26
|
+
return SolProviderHelper.connectWithName(this.name);
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
29
|
signMessage(messageToSign) {
|
|
@@ -33,7 +32,7 @@ class Solflare extends SolWalletConnector {
|
|
|
33
32
|
if (!walletAddress) {
|
|
34
33
|
return undefined;
|
|
35
34
|
}
|
|
36
|
-
const provider =
|
|
35
|
+
const provider = SolProviderHelper.findProvider(this.name);
|
|
37
36
|
if (!provider) {
|
|
38
37
|
return undefined;
|
|
39
38
|
}
|
|
@@ -55,7 +54,7 @@ class Solflare extends SolWalletConnector {
|
|
|
55
54
|
}
|
|
56
55
|
getConnectedAccounts() {
|
|
57
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
return
|
|
57
|
+
return SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
59
58
|
});
|
|
60
59
|
}
|
|
61
60
|
}
|
|
@@ -6,8 +6,7 @@ var starknet = require('starknet');
|
|
|
6
6
|
var constants = require('starknet/constants');
|
|
7
7
|
var uint256 = require('starknet/dist/utils/uint256');
|
|
8
8
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
|
-
var
|
|
10
|
-
var logger = require('../../utils/logger.cjs');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
11
10
|
var convertors = require('../../utils/convertors.cjs');
|
|
12
11
|
var constants$1 = require('../constants.cjs');
|
|
13
12
|
var ethereumContractAbi = require('./ethereumContractAbi.cjs');
|
|
@@ -31,7 +30,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
catch (err) {
|
|
34
|
-
|
|
33
|
+
walletConnectorCore.logger.error(err);
|
|
35
34
|
}
|
|
36
35
|
});
|
|
37
36
|
}
|
|
@@ -68,7 +67,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
68
67
|
const wallet = yield this.getWallet();
|
|
69
68
|
const walletAddress = yield this.fetchPublicAddress();
|
|
70
69
|
if (!walletAddress || !wallet) {
|
|
71
|
-
|
|
70
|
+
walletConnectorCore.logger.error('Could not fetch wallet address for signing message');
|
|
72
71
|
return undefined;
|
|
73
72
|
}
|
|
74
73
|
const { account } = wallet;
|
|
@@ -83,7 +82,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
83
82
|
const walletAddress = yield this.fetchPublicAddress();
|
|
84
83
|
const provider = yield this.getWeb3Provider();
|
|
85
84
|
if (!walletAddress || !provider) {
|
|
86
|
-
|
|
85
|
+
walletConnectorCore.logger.error('Could not fetch wallet address for getting balance');
|
|
87
86
|
return undefined;
|
|
88
87
|
}
|
|
89
88
|
const contract = new starknet.Contract(ethereumContractAbi, constants$1.ETH_STARKNET_ADDRESS, provider);
|
|
@@ -97,7 +96,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
97
96
|
return (gweiBalance / 1e18).toFixed(6);
|
|
98
97
|
}
|
|
99
98
|
catch (error) {
|
|
100
|
-
throw new
|
|
99
|
+
throw new utils.DynamicError('Something went wrong');
|
|
101
100
|
}
|
|
102
101
|
});
|
|
103
102
|
}
|
|
@@ -3,9 +3,8 @@ import { getInstalledWallets, disconnect } from 'get-starknet';
|
|
|
3
3
|
import { Contract } from 'starknet';
|
|
4
4
|
import { StarknetChainId } from 'starknet/constants.js';
|
|
5
5
|
import { uint256ToBN } from 'starknet/dist/utils/uint256.js';
|
|
6
|
-
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
7
|
-
import { DynamicError } from '
|
|
8
|
-
import { logger } from '../../utils/logger.js';
|
|
6
|
+
import { WalletConnectorBase, logger } from '@dynamic-labs/wallet-connector-core';
|
|
7
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
9
8
|
import { formatTypedDataMessage } from '../../utils/convertors.js';
|
|
10
9
|
import { ETH_STARKNET_ADDRESS } from '../constants.js';
|
|
11
10
|
import ETH_CONTRACT_ABI from './ethereumContractAbi.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default } from './walletConnect';
|
|
2
|
-
export { default as WalletConnectV2 } from './walletConnectV2';
|
|
2
|
+
export { default as WalletConnectV2, type WalletConnectorV2Opts, } from './walletConnectV2';
|
|
@@ -4,20 +4,21 @@ var tslib = require('tslib');
|
|
|
4
4
|
var WalletConnectProvider = require('@walletconnect/ethereum-provider');
|
|
5
5
|
var ethers = require('ethers');
|
|
6
6
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
7
|
+
var utils = require('@dynamic-labs/utils');
|
|
7
8
|
var constants = require('../constants.cjs');
|
|
8
9
|
var EthWalletConnector = require('../ethereum/EthWalletConnector.cjs');
|
|
9
10
|
var walletConnect = require('../clients/walletConnect/walletConnect.cjs');
|
|
10
11
|
var isMobile = require('../../utils/isMobile.cjs');
|
|
11
12
|
var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
|
|
12
|
-
var errors = require('../../errors.cjs');
|
|
13
13
|
|
|
14
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
15
|
|
|
16
16
|
var WalletConnectProvider__default = /*#__PURE__*/_interopDefaultLegacy(WalletConnectProvider);
|
|
17
17
|
|
|
18
18
|
class WalletConnect extends EthWalletConnector.EthWalletConnector {
|
|
19
|
-
constructor(
|
|
20
|
-
|
|
19
|
+
constructor(_a) {
|
|
20
|
+
var { walletName } = _a, props = tslib.__rest(_a, ["walletName"]);
|
|
21
|
+
super(props);
|
|
21
22
|
this.supportedChains = ['EVM', 'ETH'];
|
|
22
23
|
this.connectedChain = 'EVM';
|
|
23
24
|
this.canConnectViaQrCode = true;
|
|
@@ -42,7 +43,7 @@ class WalletConnect extends EthWalletConnector.EthWalletConnector {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
setupEventListeners(listeners) {
|
|
45
|
-
|
|
46
|
+
walletConnect.setupWalletConnectEventListeners({
|
|
46
47
|
onAccountChange: listeners.onAccountChange,
|
|
47
48
|
onChainChange: listeners.onChainChange,
|
|
48
49
|
onDisconnect: listeners.onDisconnect,
|
|
@@ -104,13 +105,13 @@ class WalletConnect extends EthWalletConnector.EthWalletConnector {
|
|
|
104
105
|
}
|
|
105
106
|
if (this.switchNetworkOnlyFromWallet !== undefined &&
|
|
106
107
|
this.switchNetworkOnlyFromWallet) {
|
|
107
|
-
throw new
|
|
108
|
+
throw new utils.DynamicError('Network switching is only supported through the wallet');
|
|
108
109
|
}
|
|
109
110
|
if (!this.supportsNetworkSwitching()) {
|
|
110
|
-
throw new
|
|
111
|
+
throw new utils.DynamicError('Network switching not supported');
|
|
111
112
|
}
|
|
112
113
|
if (!client) {
|
|
113
|
-
throw new
|
|
114
|
+
throw new utils.DynamicError('Client not found');
|
|
114
115
|
}
|
|
115
116
|
if (isMobile.isMobile()) {
|
|
116
117
|
const deepLink = walletConnect.getDeepLink(client.uri, walletBook.getWalletBookWallet(this.name));
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import Client from '@walletconnect/client';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { EvmNetwork } from '@dynamic-labs/types';
|
|
5
|
+
import { EthWalletConnector, EthWalletConnectorOpts } from '../ethereum/EthWalletConnector';
|
|
6
|
+
export type WalletConnectOpts = EthWalletConnectorOpts & {
|
|
7
|
+
walletName: string;
|
|
8
|
+
};
|
|
6
9
|
declare class WalletConnect extends EthWalletConnector {
|
|
7
10
|
supportedChains: Chain[];
|
|
8
11
|
connectedChain: Chain;
|
|
@@ -12,13 +15,10 @@ declare class WalletConnect extends EthWalletConnector {
|
|
|
12
15
|
switchNetworkOnlyFromWallet: boolean;
|
|
13
16
|
client?: Client;
|
|
14
17
|
clientOptions?: any;
|
|
15
|
-
constructor({ walletName,
|
|
16
|
-
evmNetworks: EvmNetwork[];
|
|
17
|
-
walletName: string;
|
|
18
|
-
});
|
|
18
|
+
constructor({ walletName, ...props }: WalletConnectOpts);
|
|
19
19
|
getClient(): Client;
|
|
20
20
|
supportsNetworkSwitching(): boolean;
|
|
21
|
-
setupEventListeners(listeners: WalletEventListeners):
|
|
21
|
+
setupEventListeners(listeners: WalletEventListeners): void;
|
|
22
22
|
teardownEventListeners(): void;
|
|
23
23
|
getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
24
24
|
fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
1
|
+
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import WalletConnectProvider from '@walletconnect/ethereum-provider';
|
|
3
3
|
import { ethers } from 'ethers';
|
|
4
4
|
import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
5
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
5
6
|
import { infuraId } from '../constants.js';
|
|
6
7
|
import { EthWalletConnector } from '../ethereum/EthWalletConnector.js';
|
|
7
8
|
import { initClient, setupWalletConnectEventListeners, teardownWalletConnectEventListeners, fetchWalletConnectEVMPublicAddress, getDeepLink, signWalletConnectPersonalMessage, killWalletConnectSession } from '../clients/walletConnect/walletConnect.js';
|
|
8
9
|
import { isMobile, isIOS } from '../../utils/isMobile.js';
|
|
9
10
|
import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
|
|
10
|
-
import { DynamicError } from '../../errors.js';
|
|
11
11
|
|
|
12
12
|
class WalletConnect extends EthWalletConnector {
|
|
13
|
-
constructor(
|
|
14
|
-
|
|
13
|
+
constructor(_a) {
|
|
14
|
+
var { walletName } = _a, props = __rest(_a, ["walletName"]);
|
|
15
|
+
super(props);
|
|
15
16
|
this.supportedChains = ['EVM', 'ETH'];
|
|
16
17
|
this.connectedChain = 'EVM';
|
|
17
18
|
this.canConnectViaQrCode = true;
|
|
@@ -36,7 +37,7 @@ class WalletConnect extends EthWalletConnector {
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
setupEventListeners(listeners) {
|
|
39
|
-
|
|
40
|
+
setupWalletConnectEventListeners({
|
|
40
41
|
onAccountChange: listeners.onAccountChange,
|
|
41
42
|
onChainChange: listeners.onChainChange,
|
|
42
43
|
onDisconnect: listeners.onDisconnect,
|