@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
|
@@ -8,42 +8,39 @@ class Glow extends solWalletConnector.SolWalletConnector {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.name = 'Glow';
|
|
11
|
-
this.solProviderHelper = new solProviderHelper.SolProviderHelper();
|
|
12
11
|
}
|
|
13
12
|
setupEventListeners(listeners) {
|
|
14
|
-
|
|
15
|
-
return this.solProviderHelper._setupEventListeners(listeners, this.solProviderHelper.findProvider(this.name));
|
|
16
|
-
});
|
|
13
|
+
solProviderHelper.SolProviderHelper._setupEventListeners(listeners, solProviderHelper.SolProviderHelper.findProvider(this.name));
|
|
17
14
|
}
|
|
18
15
|
teardownEventListeners() {
|
|
19
|
-
|
|
16
|
+
solProviderHelper.SolProviderHelper._teardownEventListeners(this.name);
|
|
20
17
|
}
|
|
21
18
|
connect() {
|
|
22
19
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
yield
|
|
20
|
+
yield solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
24
21
|
});
|
|
25
22
|
}
|
|
26
23
|
getSigner() {
|
|
27
24
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
return
|
|
25
|
+
return solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
29
26
|
});
|
|
30
27
|
}
|
|
31
28
|
isInstalledOnBrowser() {
|
|
32
|
-
return
|
|
29
|
+
return solProviderHelper.SolProviderHelper.isInstalledHelper(this.name);
|
|
33
30
|
}
|
|
34
31
|
fetchPublicAddress() {
|
|
35
32
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
return
|
|
33
|
+
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
37
34
|
});
|
|
38
35
|
}
|
|
39
36
|
signMessage(messageToSign) {
|
|
40
37
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return
|
|
38
|
+
return solProviderHelper.SolProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
42
39
|
});
|
|
43
40
|
}
|
|
44
41
|
getConnectedAccounts() {
|
|
45
42
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
return
|
|
43
|
+
return solProviderHelper.SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
47
44
|
});
|
|
48
45
|
}
|
|
49
46
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
2
2
|
import { SolWalletConnector } from './solWalletConnector';
|
|
3
|
-
import { SolProviderHelper } from './solProviderHelper';
|
|
4
3
|
declare class Glow extends SolWalletConnector {
|
|
5
4
|
name: string;
|
|
6
|
-
|
|
7
|
-
setupEventListeners(listeners: WalletEventListeners): Promise<() => void>;
|
|
5
|
+
setupEventListeners(listeners: WalletEventListeners): void;
|
|
8
6
|
teardownEventListeners(): void;
|
|
9
7
|
connect(): Promise<void>;
|
|
10
8
|
getSigner(): Promise<import("../window").ISolana | undefined>;
|
|
@@ -6,42 +6,39 @@ class Glow extends SolWalletConnector {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'Glow';
|
|
9
|
-
this.solProviderHelper = new SolProviderHelper();
|
|
10
9
|
}
|
|
11
10
|
setupEventListeners(listeners) {
|
|
12
|
-
|
|
13
|
-
return this.solProviderHelper._setupEventListeners(listeners, this.solProviderHelper.findProvider(this.name));
|
|
14
|
-
});
|
|
11
|
+
SolProviderHelper._setupEventListeners(listeners, SolProviderHelper.findProvider(this.name));
|
|
15
12
|
}
|
|
16
13
|
teardownEventListeners() {
|
|
17
|
-
|
|
14
|
+
SolProviderHelper._teardownEventListeners(this.name);
|
|
18
15
|
}
|
|
19
16
|
connect() {
|
|
20
17
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
yield
|
|
18
|
+
yield SolProviderHelper.connectWithName(this.name);
|
|
22
19
|
});
|
|
23
20
|
}
|
|
24
21
|
getSigner() {
|
|
25
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
return
|
|
23
|
+
return SolProviderHelper.connectWithName(this.name);
|
|
27
24
|
});
|
|
28
25
|
}
|
|
29
26
|
isInstalledOnBrowser() {
|
|
30
|
-
return
|
|
27
|
+
return SolProviderHelper.isInstalledHelper(this.name);
|
|
31
28
|
}
|
|
32
29
|
fetchPublicAddress() {
|
|
33
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
return
|
|
31
|
+
return SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
35
32
|
});
|
|
36
33
|
}
|
|
37
34
|
signMessage(messageToSign) {
|
|
38
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
return
|
|
36
|
+
return SolProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
40
37
|
});
|
|
41
38
|
}
|
|
42
39
|
getConnectedAccounts() {
|
|
43
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
return
|
|
41
|
+
return SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
45
42
|
});
|
|
46
43
|
}
|
|
47
44
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var tslib = require('tslib');
|
|
4
4
|
var phantom = require('../phantom.cjs');
|
|
5
|
+
var solProviderHelper = require('../solProviderHelper.cjs');
|
|
5
6
|
|
|
6
7
|
class BraveSol extends phantom {
|
|
7
8
|
constructor() {
|
|
@@ -10,7 +11,7 @@ class BraveSol extends phantom {
|
|
|
10
11
|
}
|
|
11
12
|
fetchPublicAddress() {
|
|
12
13
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
return
|
|
14
|
+
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
17
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import Phantom from '../phantom.js';
|
|
3
|
+
import { SolProviderHelper } from '../solProviderHelper.js';
|
|
3
4
|
|
|
4
5
|
class BraveSol extends Phantom {
|
|
5
6
|
constructor() {
|
|
@@ -8,7 +9,7 @@ class BraveSol extends Phantom {
|
|
|
8
9
|
}
|
|
9
10
|
fetchPublicAddress() {
|
|
10
11
|
return __awaiter(this, void 0, void 0, function* () {
|
|
11
|
-
return
|
|
12
|
+
return SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var web3_js = require('@solana/web3.js');
|
|
7
|
-
var
|
|
7
|
+
var utils = require('@dynamic-labs/utils');
|
|
8
8
|
var extractNonce = require('../../utils/extractNonce.cjs');
|
|
9
9
|
var phantom = require('./phantom.cjs');
|
|
10
10
|
|
|
@@ -30,7 +30,7 @@ class PhantomLedger extends phantom {
|
|
|
30
30
|
}
|
|
31
31
|
signMessage() {
|
|
32
32
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
throw new
|
|
33
|
+
throw new utils.NotSupportedError(`Message signing is currently not supported on ${walletName}
|
|
34
34
|
You can use signMessageViaTransaction instead to achieve similar functionality
|
|
35
35
|
by signing a transaction with a memo instruction.
|
|
36
36
|
You can read more about it here https://github.com/solana-labs/solana/issues/21366`);
|
|
@@ -40,7 +40,7 @@ class PhantomLedger extends phantom {
|
|
|
40
40
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
41
41
|
const nonce = extractNonce.extractNonce(messageToSign);
|
|
42
42
|
if (!nonce) {
|
|
43
|
-
throw new
|
|
43
|
+
throw new utils.DynamicError('Nonce missing');
|
|
44
44
|
}
|
|
45
45
|
return this.signMessageViaTransaction(nonce);
|
|
46
46
|
});
|
|
@@ -49,14 +49,14 @@ class PhantomLedger extends phantom {
|
|
|
49
49
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
50
50
|
const address = yield this.fetchPublicAddress();
|
|
51
51
|
if (!address) {
|
|
52
|
-
throw new
|
|
52
|
+
throw new utils.DynamicError('Address missing');
|
|
53
53
|
}
|
|
54
54
|
const transaction = this.buildAuthTx(messageToSign);
|
|
55
55
|
transaction.feePayer = new web3_js.PublicKey(address);
|
|
56
56
|
transaction.recentBlockhash = (yield this.getWeb3Provider().getLatestBlockhash()).blockhash;
|
|
57
57
|
const signer = yield this.getSigner();
|
|
58
58
|
if (!signer) {
|
|
59
|
-
throw new
|
|
59
|
+
throw new utils.DynamicError('Signer not found');
|
|
60
60
|
}
|
|
61
61
|
const signedTransaction = yield signer.signTransaction(transaction);
|
|
62
62
|
return JSON.stringify({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js';
|
|
3
|
-
import { NotSupportedError, DynamicError } from '
|
|
3
|
+
import { NotSupportedError, DynamicError } from '@dynamic-labs/utils';
|
|
4
4
|
import { extractNonce } from '../../utils/extractNonce.js';
|
|
5
5
|
import Phantom from './phantom.js';
|
|
6
6
|
|
|
@@ -9,24 +9,21 @@ class Phantom extends solWalletConnector.SolWalletConnector {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
11
11
|
this.name = 'Phantom';
|
|
12
|
-
this.solProviderHelper = new solProviderHelper.SolProviderHelper();
|
|
13
12
|
}
|
|
14
13
|
setupEventListeners(listeners) {
|
|
15
|
-
|
|
16
|
-
return this.solProviderHelper._setupEventListeners(listeners, this.solProviderHelper.findProvider(this.name));
|
|
17
|
-
});
|
|
14
|
+
solProviderHelper.SolProviderHelper._setupEventListeners(listeners, solProviderHelper.SolProviderHelper.findProvider(this.name));
|
|
18
15
|
}
|
|
19
16
|
teardownEventListeners() {
|
|
20
|
-
|
|
17
|
+
solProviderHelper.SolProviderHelper._teardownEventListeners(this.name);
|
|
21
18
|
}
|
|
22
19
|
connect() {
|
|
23
20
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
yield
|
|
21
|
+
yield solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
getSigner() {
|
|
28
25
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
return
|
|
26
|
+
return solProviderHelper.SolProviderHelper.connectWithName(this.name);
|
|
30
27
|
});
|
|
31
28
|
}
|
|
32
29
|
isInstalledOnBrowser() {
|
|
@@ -37,13 +34,12 @@ class Phantom extends solWalletConnector.SolWalletConnector {
|
|
|
37
34
|
* It relies on the fact that if both Glow and Phantom are enabled,
|
|
38
35
|
* solana.isGlow will return false.
|
|
39
36
|
*/
|
|
40
|
-
return (
|
|
41
|
-
!((_a = window.solana) === null || _a === void 0 ? void 0 : _a.isGlow));
|
|
37
|
+
return (solProviderHelper.SolProviderHelper.isInstalledHelper(this.name) && !((_a = window.solana) === null || _a === void 0 ? void 0 : _a.isGlow));
|
|
42
38
|
}
|
|
43
39
|
fetchPublicAddress() {
|
|
44
40
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
41
|
if (this.isInstalledOnBrowser()) {
|
|
46
|
-
return
|
|
42
|
+
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
47
43
|
}
|
|
48
44
|
const url = encodeURIComponent(window.location.toString());
|
|
49
45
|
const ref = encodeURIComponent(window.location.origin);
|
|
@@ -61,12 +57,12 @@ class Phantom extends solWalletConnector.SolWalletConnector {
|
|
|
61
57
|
}
|
|
62
58
|
signMessage(messageToSign) {
|
|
63
59
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
return
|
|
60
|
+
return solProviderHelper.SolProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
65
61
|
});
|
|
66
62
|
}
|
|
67
63
|
getConnectedAccounts() {
|
|
68
64
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
return
|
|
65
|
+
return solProviderHelper.SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
70
66
|
});
|
|
71
67
|
}
|
|
72
68
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
2
2
|
import { ISolana } from '../window';
|
|
3
3
|
import { SolWalletConnector } from './solWalletConnector';
|
|
4
|
-
import { SolProviderHelper } from './solProviderHelper';
|
|
5
4
|
declare class Phantom extends SolWalletConnector {
|
|
6
5
|
name: string;
|
|
7
|
-
|
|
8
|
-
setupEventListeners(listeners: WalletEventListeners): Promise<() => void>;
|
|
6
|
+
setupEventListeners(listeners: WalletEventListeners): void;
|
|
9
7
|
teardownEventListeners(): void;
|
|
10
8
|
connect(): Promise<void>;
|
|
11
9
|
getSigner(): Promise<ISolana | undefined>;
|
|
@@ -7,24 +7,21 @@ class Phantom extends SolWalletConnector {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
9
|
this.name = 'Phantom';
|
|
10
|
-
this.solProviderHelper = new SolProviderHelper();
|
|
11
10
|
}
|
|
12
11
|
setupEventListeners(listeners) {
|
|
13
|
-
|
|
14
|
-
return this.solProviderHelper._setupEventListeners(listeners, this.solProviderHelper.findProvider(this.name));
|
|
15
|
-
});
|
|
12
|
+
SolProviderHelper._setupEventListeners(listeners, SolProviderHelper.findProvider(this.name));
|
|
16
13
|
}
|
|
17
14
|
teardownEventListeners() {
|
|
18
|
-
|
|
15
|
+
SolProviderHelper._teardownEventListeners(this.name);
|
|
19
16
|
}
|
|
20
17
|
connect() {
|
|
21
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
yield
|
|
19
|
+
yield SolProviderHelper.connectWithName(this.name);
|
|
23
20
|
});
|
|
24
21
|
}
|
|
25
22
|
getSigner() {
|
|
26
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
return
|
|
24
|
+
return SolProviderHelper.connectWithName(this.name);
|
|
28
25
|
});
|
|
29
26
|
}
|
|
30
27
|
isInstalledOnBrowser() {
|
|
@@ -35,13 +32,12 @@ class Phantom extends SolWalletConnector {
|
|
|
35
32
|
* It relies on the fact that if both Glow and Phantom are enabled,
|
|
36
33
|
* solana.isGlow will return false.
|
|
37
34
|
*/
|
|
38
|
-
return (
|
|
39
|
-
!((_a = window.solana) === null || _a === void 0 ? void 0 : _a.isGlow));
|
|
35
|
+
return (SolProviderHelper.isInstalledHelper(this.name) && !((_a = window.solana) === null || _a === void 0 ? void 0 : _a.isGlow));
|
|
40
36
|
}
|
|
41
37
|
fetchPublicAddress() {
|
|
42
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
39
|
if (this.isInstalledOnBrowser()) {
|
|
44
|
-
return
|
|
40
|
+
return SolProviderHelper.fetchPublicAddressWithName(this.name);
|
|
45
41
|
}
|
|
46
42
|
const url = encodeURIComponent(window.location.toString());
|
|
47
43
|
const ref = encodeURIComponent(window.location.origin);
|
|
@@ -59,12 +55,12 @@ class Phantom extends SolWalletConnector {
|
|
|
59
55
|
}
|
|
60
56
|
signMessage(messageToSign) {
|
|
61
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
return
|
|
58
|
+
return SolProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
63
59
|
});
|
|
64
60
|
}
|
|
65
61
|
getConnectedAccounts() {
|
|
66
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
return
|
|
63
|
+
return SolProviderHelper.getConnectedAccountsWithName(this.name);
|
|
68
64
|
});
|
|
69
65
|
}
|
|
70
66
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var tslib = require('tslib');
|
|
4
4
|
var web3_js = require('@solana/web3.js');
|
|
5
|
-
var
|
|
5
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
6
6
|
var solWalletConnector = require('./solWalletConnector.cjs');
|
|
7
7
|
|
|
8
8
|
class Slope extends solWalletConnector.SolWalletConnector {
|
|
@@ -44,7 +44,7 @@ class Slope extends solWalletConnector.SolWalletConnector {
|
|
|
44
44
|
return balance.toString();
|
|
45
45
|
}
|
|
46
46
|
catch (e) {
|
|
47
|
-
|
|
47
|
+
walletConnectorCore.logger.debug(e);
|
|
48
48
|
return undefined;
|
|
49
49
|
}
|
|
50
50
|
});
|
|
@@ -61,7 +61,7 @@ class Slope extends solWalletConnector.SolWalletConnector {
|
|
|
61
61
|
return this.isConnectData(response) ? response.data.publicKey : undefined;
|
|
62
62
|
}
|
|
63
63
|
catch (e) {
|
|
64
|
-
|
|
64
|
+
walletConnectorCore.logger.debug(e);
|
|
65
65
|
return undefined;
|
|
66
66
|
}
|
|
67
67
|
});
|
|
@@ -78,7 +78,7 @@ class Slope extends solWalletConnector.SolWalletConnector {
|
|
|
78
78
|
: undefined;
|
|
79
79
|
}
|
|
80
80
|
catch (e) {
|
|
81
|
-
|
|
81
|
+
walletConnectorCore.logger.debug(e);
|
|
82
82
|
return undefined;
|
|
83
83
|
}
|
|
84
84
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
|
-
import { logger } from '
|
|
3
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
4
4
|
import { SolWalletConnector } from './solWalletConnector.js';
|
|
5
5
|
|
|
6
6
|
class Slope extends SolWalletConnector {
|
|
@@ -7,41 +7,15 @@ var convertors = require('../../utils/convertors.cjs');
|
|
|
7
7
|
var ProviderLookup = require('../ProviderLookup.cjs');
|
|
8
8
|
var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
|
|
9
9
|
|
|
10
|
+
var _a;
|
|
10
11
|
class SolProviderHelper {
|
|
11
|
-
|
|
12
|
-
this.GlowProvider = () => this.installedProviderLookup([{ flag: 'isGlow', value: true }]);
|
|
13
|
-
this.CoinbaseProvider = () => this.findSolanaProviders(window.coinbaseSolana)[0];
|
|
14
|
-
this.PhantomProvider = () => this.installedProviderLookup([
|
|
15
|
-
{ flag: 'isPhantom', value: true },
|
|
16
|
-
{ flag: 'isBraveWallet', value: false },
|
|
17
|
-
{ flag: 'isExodus', value: false },
|
|
18
|
-
]);
|
|
19
|
-
this.SolflareProvider = () => this.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
|
|
20
|
-
this.BraveProvider = () => this.installedProviderLookup([
|
|
21
|
-
{ flag: 'isPhantom', value: true },
|
|
22
|
-
{ flag: 'isBraveWallet', value: true },
|
|
23
|
-
]);
|
|
24
|
-
this.ExodusProvider = () => this.installedProviderLookup([
|
|
25
|
-
{ flag: 'isPhantom', value: true },
|
|
26
|
-
{ flag: 'isExodus', value: true },
|
|
27
|
-
]);
|
|
28
|
-
this.providers = {
|
|
29
|
-
bravesol: this.BraveProvider,
|
|
30
|
-
coinbasesolana: this.CoinbaseProvider,
|
|
31
|
-
exodussol: this.ExodusProvider,
|
|
32
|
-
glow: this.GlowProvider,
|
|
33
|
-
phantom: this.PhantomProvider,
|
|
34
|
-
phantomledger: this.PhantomProvider,
|
|
35
|
-
solflare: this.SolflareProvider,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
installedProviderLookup(providerFlags) {
|
|
12
|
+
static installedProviderLookup(providerFlags) {
|
|
39
13
|
return ProviderLookup.ProviderLookup(this.allInstalledProviders(), providerFlags);
|
|
40
14
|
}
|
|
41
|
-
allInstalledProviders() {
|
|
15
|
+
static allInstalledProviders() {
|
|
42
16
|
return this.findSolanaProviders(window.solana).concat(this.findSolanaProviders(window.solflare), this.findSolanaProviders(window.glowSolana));
|
|
43
17
|
}
|
|
44
|
-
findSolanaProviders(solana) {
|
|
18
|
+
static findSolanaProviders(solana) {
|
|
45
19
|
const solanaProviders = [];
|
|
46
20
|
if (solana && !solana.providers) {
|
|
47
21
|
solanaProviders.push(solana);
|
|
@@ -53,14 +27,14 @@ class SolProviderHelper {
|
|
|
53
27
|
}
|
|
54
28
|
return solanaProviders;
|
|
55
29
|
}
|
|
56
|
-
isInstalledHelper(walletName) {
|
|
30
|
+
static isInstalledHelper(walletName) {
|
|
57
31
|
return this.findProvider(walletName) !== undefined;
|
|
58
32
|
}
|
|
59
|
-
findProvider(walletName) {
|
|
60
|
-
var
|
|
61
|
-
return (
|
|
33
|
+
static findProvider(walletName) {
|
|
34
|
+
var _b, _c;
|
|
35
|
+
return (_c = (_b = this.providers)[normalizeWalletName.normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
62
36
|
}
|
|
63
|
-
fetchPublicAddressWithName(name) {
|
|
37
|
+
static fetchPublicAddressWithName(name) {
|
|
64
38
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
65
39
|
const provider = this.findProvider(name);
|
|
66
40
|
if (!provider) {
|
|
@@ -71,7 +45,7 @@ class SolProviderHelper {
|
|
|
71
45
|
return publicKey ? publicKey.toString() : Promise.resolve(undefined);
|
|
72
46
|
});
|
|
73
47
|
}
|
|
74
|
-
connectWithName(name) {
|
|
48
|
+
static connectWithName(name) {
|
|
75
49
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
76
50
|
const provider = this.findProvider(name);
|
|
77
51
|
if (!provider) {
|
|
@@ -86,7 +60,7 @@ class SolProviderHelper {
|
|
|
86
60
|
}
|
|
87
61
|
});
|
|
88
62
|
}
|
|
89
|
-
signMessageWithName(messageToSign, name) {
|
|
63
|
+
static signMessageWithName(messageToSign, name) {
|
|
90
64
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
91
65
|
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
92
66
|
if (!walletAddress) {
|
|
@@ -103,36 +77,35 @@ class SolProviderHelper {
|
|
|
103
77
|
}));
|
|
104
78
|
});
|
|
105
79
|
}
|
|
106
|
-
_setupEventListeners(listeners, web3Provider) {
|
|
80
|
+
static _setupEventListeners(listeners, web3Provider) {
|
|
107
81
|
const handleAccountChange = (address) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
108
|
-
var
|
|
82
|
+
var _b, _c, _d;
|
|
109
83
|
if (!address) {
|
|
110
84
|
yield (web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.connect());
|
|
111
|
-
if ((
|
|
112
|
-
(
|
|
85
|
+
if ((_b = web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString()) {
|
|
86
|
+
(_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, [web3Provider.publicKey.toString()]);
|
|
113
87
|
}
|
|
114
88
|
return;
|
|
115
89
|
}
|
|
116
90
|
if (address.toString()) {
|
|
117
|
-
yield ((
|
|
91
|
+
yield ((_d = listeners.onAccountChange) === null || _d === void 0 ? void 0 : _d.call(listeners, [address.toString()]));
|
|
118
92
|
}
|
|
119
93
|
});
|
|
120
94
|
const handleDisconnect = () => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
var
|
|
122
|
-
yield ((
|
|
95
|
+
var _e;
|
|
96
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
123
97
|
});
|
|
124
98
|
web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('accountChanged', handleAccountChange);
|
|
125
99
|
web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('disconnect', handleDisconnect);
|
|
126
|
-
return () => { };
|
|
127
100
|
}
|
|
128
|
-
_teardownEventListeners(name) {
|
|
101
|
+
static _teardownEventListeners(name) {
|
|
129
102
|
const web3Provider = this.findProvider(name);
|
|
130
103
|
if (!web3Provider) {
|
|
131
104
|
return;
|
|
132
105
|
}
|
|
133
106
|
web3Provider.removeAllListeners();
|
|
134
107
|
}
|
|
135
|
-
getConnectedAccountsWithName(name) {
|
|
108
|
+
static getConnectedAccountsWithName(name) {
|
|
136
109
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
137
110
|
const provider = this.findProvider(name);
|
|
138
111
|
if (!provider) {
|
|
@@ -159,6 +132,32 @@ class SolProviderHelper {
|
|
|
159
132
|
}
|
|
160
133
|
});
|
|
161
134
|
}
|
|
162
|
-
}
|
|
135
|
+
}
|
|
136
|
+
_a = SolProviderHelper;
|
|
137
|
+
SolProviderHelper.GlowProvider = () => _a.installedProviderLookup([{ flag: 'isGlow', value: true }]);
|
|
138
|
+
SolProviderHelper.CoinbaseProvider = () => _a.findSolanaProviders(window.coinbaseSolana)[0];
|
|
139
|
+
SolProviderHelper.PhantomProvider = () => _a.installedProviderLookup([
|
|
140
|
+
{ flag: 'isPhantom', value: true },
|
|
141
|
+
{ flag: 'isBraveWallet', value: false },
|
|
142
|
+
{ flag: 'isExodus', value: false },
|
|
143
|
+
]);
|
|
144
|
+
SolProviderHelper.SolflareProvider = () => _a.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
|
|
145
|
+
SolProviderHelper.BraveProvider = () => _a.installedProviderLookup([
|
|
146
|
+
{ flag: 'isPhantom', value: true },
|
|
147
|
+
{ flag: 'isBraveWallet', value: true },
|
|
148
|
+
]);
|
|
149
|
+
SolProviderHelper.ExodusProvider = () => _a.installedProviderLookup([
|
|
150
|
+
{ flag: 'isPhantom', value: true },
|
|
151
|
+
{ flag: 'isExodus', value: true },
|
|
152
|
+
]);
|
|
153
|
+
SolProviderHelper.providers = {
|
|
154
|
+
bravesol: _a.BraveProvider,
|
|
155
|
+
coinbasesolana: _a.CoinbaseProvider,
|
|
156
|
+
exodussol: _a.ExodusProvider,
|
|
157
|
+
glow: _a.GlowProvider,
|
|
158
|
+
phantom: _a.PhantomProvider,
|
|
159
|
+
phantomledger: _a.PhantomProvider,
|
|
160
|
+
solflare: _a.SolflareProvider,
|
|
161
|
+
};
|
|
163
162
|
|
|
164
163
|
exports.SolProviderHelper = SolProviderHelper;
|
|
@@ -5,25 +5,25 @@ export interface SignedMessage {
|
|
|
5
5
|
}
|
|
6
6
|
type Provider = () => ISolana | undefined;
|
|
7
7
|
export declare class SolProviderHelper {
|
|
8
|
-
GlowProvider: Provider;
|
|
9
|
-
CoinbaseProvider: Provider;
|
|
10
|
-
PhantomProvider: Provider;
|
|
11
|
-
SolflareProvider: Provider;
|
|
12
|
-
BraveProvider: Provider;
|
|
13
|
-
ExodusProvider: Provider;
|
|
14
|
-
providers: {
|
|
8
|
+
static GlowProvider: Provider;
|
|
9
|
+
static CoinbaseProvider: Provider;
|
|
10
|
+
static PhantomProvider: Provider;
|
|
11
|
+
static SolflareProvider: Provider;
|
|
12
|
+
static BraveProvider: Provider;
|
|
13
|
+
static ExodusProvider: Provider;
|
|
14
|
+
static providers: {
|
|
15
15
|
[wallet: string]: Provider;
|
|
16
16
|
};
|
|
17
|
-
installedProviderLookup(providerFlags: Array<ProviderCondition>): ISolana | undefined;
|
|
18
|
-
allInstalledProviders(): ISolana[];
|
|
19
|
-
findSolanaProviders(solana?: ISolana): ISolana[];
|
|
20
|
-
isInstalledHelper(walletName: string): boolean;
|
|
21
|
-
findProvider(walletName: string): ISolana | undefined;
|
|
22
|
-
fetchPublicAddressWithName(name: string): Promise<string | undefined>;
|
|
23
|
-
connectWithName(name: string): Promise<ISolana | undefined>;
|
|
24
|
-
signMessageWithName(messageToSign: string, name: string): Promise<string | undefined>;
|
|
25
|
-
_setupEventListeners(listeners: WalletEventListeners, web3Provider?: ISolana):
|
|
26
|
-
_teardownEventListeners(name: string): void;
|
|
27
|
-
getConnectedAccountsWithName(name: string): Promise<string[]>;
|
|
17
|
+
static installedProviderLookup(providerFlags: Array<ProviderCondition>): ISolana | undefined;
|
|
18
|
+
static allInstalledProviders(): ISolana[];
|
|
19
|
+
static findSolanaProviders(solana?: ISolana): ISolana[];
|
|
20
|
+
static isInstalledHelper(walletName: string): boolean;
|
|
21
|
+
static findProvider(walletName: string): ISolana | undefined;
|
|
22
|
+
static fetchPublicAddressWithName(name: string): Promise<string | undefined>;
|
|
23
|
+
static connectWithName(name: string): Promise<ISolana | undefined>;
|
|
24
|
+
static signMessageWithName(messageToSign: string, name: string): Promise<string | undefined>;
|
|
25
|
+
static _setupEventListeners(listeners: WalletEventListeners, web3Provider?: ISolana): void;
|
|
26
|
+
static _teardownEventListeners(name: string): void;
|
|
27
|
+
static getConnectedAccountsWithName(name: string): Promise<string[]>;
|
|
28
28
|
}
|
|
29
29
|
export {};
|