@dynamic-labs/multi-wallet 0.17.0-RC.0 → 0.17.0-RC.1
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 +23 -0
- package/package.json +3 -3
- package/src/index.cjs +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/multi-wallet.cjs +5 -8
- package/src/multi-wallet.js +5 -8
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +2 -2
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +2 -2
- package/src/utils/message.cjs +1 -1
- package/src/utils/message.js +1 -1
- package/src/utils/walletConnect.cjs +1 -1
- package/src/wallets/algorand/{myalgo.cjs → MyAlgoWalletConnector.cjs} +4 -42
- package/src/wallets/algorand/MyAlgoWalletConnector.d.ts +21 -0
- package/src/wallets/algorand/{myalgo.js → MyAlgoWalletConnector.js} +4 -42
- package/src/wallets/clients/coinbase/coinbase.cjs +2 -6
- package/src/wallets/clients/coinbase/coinbase.js +1 -1
- package/src/wallets/cosmos/{keplrWalletConnect.cjs → KeplrWalletConnect.cjs} +9 -25
- package/src/wallets/cosmos/{keplrWalletConnect.d.ts → KeplrWalletConnect.d.ts} +6 -14
- package/src/wallets/cosmos/{keplrWalletConnect.js → KeplrWalletConnect.js} +9 -25
- package/src/wallets/cosmos/{keplr.cjs → KeplrWalletConnector.cjs} +5 -17
- package/src/wallets/cosmos/{keplr.d.ts → KeplrWalletConnector.d.ts} +5 -13
- package/src/wallets/cosmos/{keplr.js → KeplrWalletConnector.js} +5 -17
- package/src/wallets/cosmos/getKeplrConnector.cjs +6 -6
- package/src/wallets/cosmos/getKeplrConnector.d.ts +3 -3
- package/src/wallets/cosmos/getKeplrConnector.js +3 -3
- package/src/wallets/cosmos/index.d.ts +1 -1
- package/src/wallets/ethereum/BloctoEvm.cjs +2 -31
- package/src/wallets/ethereum/BloctoEvm.d.ts +4 -13
- package/src/wallets/ethereum/BloctoEvm.js +2 -31
- package/src/wallets/ethereum/{ethProvider.cjs → EthWalletConnector.cjs} +38 -18
- package/src/wallets/ethereum/{ethProvider.d.ts → EthWalletConnector.d.ts} +4 -4
- package/src/wallets/ethereum/{ethProvider.js → EthWalletConnector.js} +38 -18
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +9 -4
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +5 -5
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +9 -4
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +1 -1
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +2 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +1 -2
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +2 -3
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +1 -2
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +6 -13
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +3 -10
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +6 -13
- package/src/wallets/ethereum/coinbase.cjs +2 -18
- package/src/wallets/ethereum/coinbase.d.ts +3 -8
- package/src/wallets/ethereum/coinbase.js +2 -18
- package/src/wallets/ethereum/ethProviderHelper.cjs +16 -9
- package/src/wallets/ethereum/ethProviderHelper.js +16 -9
- package/src/wallets/ethereum/fortmatic.cjs +2 -25
- package/src/wallets/ethereum/fortmatic.d.ts +3 -11
- package/src/wallets/ethereum/fortmatic.js +2 -25
- package/src/wallets/ethereum/meta-mask.cjs +2 -9
- package/src/wallets/ethereum/meta-mask.d.ts +3 -7
- package/src/wallets/ethereum/meta-mask.js +2 -9
- package/src/wallets/flow/{flow-provider.cjs → FlowWalletConnector.cjs} +6 -33
- package/src/wallets/flow/{flow-provider.d.ts → FlowWalletConnector.d.ts} +4 -11
- package/src/wallets/flow/{flow-provider.js → FlowWalletConnector.js} +6 -33
- package/src/wallets/flow/blocto.cjs +2 -10
- package/src/wallets/flow/blocto.d.ts +2 -8
- package/src/wallets/flow/blocto.js +2 -10
- package/src/wallets/flow/dapper.cjs +2 -10
- package/src/wallets/flow/dapper.d.ts +2 -8
- package/src/wallets/flow/dapper.js +2 -10
- package/src/wallets/flow/lilico.cjs +2 -11
- package/src/wallets/flow/lilico.d.ts +2 -9
- package/src/wallets/flow/lilico.js +2 -11
- package/src/wallets/getMobileOrInjectedWallet.cjs +1 -1
- package/src/wallets/getMobileOrInjectedWallet.d.ts +1 -3
- package/src/wallets/getWalletConnectConnector.cjs +3 -2
- package/src/wallets/getWalletConnectConnector.d.ts +2 -1
- package/src/wallets/getWalletConnectConnector.js +2 -1
- package/src/wallets/solana/CoinbaseSolana.cjs +2 -25
- package/src/wallets/solana/CoinbaseSolana.d.ts +3 -12
- package/src/wallets/solana/CoinbaseSolana.js +2 -25
- package/src/wallets/solana/glow.cjs +2 -25
- package/src/wallets/solana/glow.d.ts +3 -12
- package/src/wallets/solana/glow.js +2 -25
- package/src/wallets/solana/phantom.cjs +2 -25
- package/src/wallets/solana/phantom.d.ts +3 -12
- package/src/wallets/solana/phantom.js +2 -25
- package/src/wallets/solana/slope.cjs +2 -31
- package/src/wallets/solana/slope.d.ts +2 -14
- package/src/wallets/solana/slope.js +2 -31
- package/src/wallets/solana/{solProvider.cjs → solWalletConnector.cjs} +6 -11
- package/src/wallets/solana/{solProvider.d.ts → solWalletConnector.d.ts} +4 -4
- package/src/wallets/solana/{solProvider.js → solWalletConnector.js} +6 -11
- package/src/wallets/solana/solflare.cjs +2 -31
- package/src/wallets/solana/solflare.d.ts +2 -14
- package/src/wallets/solana/solflare.js +2 -31
- package/src/wallets/starknet/argentx.cjs +2 -2
- package/src/wallets/starknet/argentx.d.ts +1 -1
- package/src/wallets/starknet/argentx.js +2 -2
- package/src/wallets/starknet/braavos.cjs +2 -2
- package/src/wallets/starknet/braavos.d.ts +1 -1
- package/src/wallets/starknet/braavos.js +2 -2
- package/src/wallets/starknet/{starknetProvider.cjs → starknetWalletConnector.cjs} +4 -34
- package/src/wallets/starknet/{starknetProvider.d.ts → starknetWalletConnector.d.ts} +3 -14
- package/src/wallets/starknet/{starknetProvider.js → starknetWalletConnector.js} +4 -34
- package/src/wallets/walletConnect/walletConnect.cjs +2 -19
- package/src/wallets/walletConnect/walletConnect.d.ts +3 -8
- package/src/wallets/walletConnect/walletConnect.js +2 -19
- package/src/wallets/walletConnect/walletConnectV2.cjs +69 -83
- package/src/wallets/walletConnect/walletConnectV2.d.ts +10 -12
- package/src/wallets/walletConnect/walletConnectV2.js +69 -80
- package/src/wallets/algorand/myalgo.d.ts +0 -36
- package/src/wallets/initializeWalletProviders.cjs +0 -14
- package/src/wallets/initializeWalletProviders.d.ts +0 -6
- package/src/wallets/initializeWalletProviders.js +0 -10
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
|
+
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
3
4
|
import { DynamicError } from '../../errors.js';
|
|
4
5
|
import { getEvmDefaultRpcProvider, getEvmRpcProviderByChainId } from '../../rpcProviders.js';
|
|
5
6
|
import { findEvmNetwork } from './evm-network.js';
|
|
6
7
|
|
|
7
|
-
class
|
|
8
|
-
getDeepLink() {
|
|
9
|
-
return undefined;
|
|
10
|
-
}
|
|
8
|
+
class EthWalletConnector extends WalletConnectorBase {
|
|
11
9
|
getRpcProvider() {
|
|
12
10
|
var _a, _b;
|
|
13
11
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -28,19 +26,7 @@ class EthProvider {
|
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
28
|
constructor({ evmNetworks }) {
|
|
31
|
-
|
|
32
|
-
this.getBalance = () => __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
var _a;
|
|
34
|
-
// This is equivalent to getSigner().getAddress() but does not crash
|
|
35
|
-
// if the signer is not available
|
|
36
|
-
const [address] = yield this.getConnectedAccounts();
|
|
37
|
-
if (!address)
|
|
38
|
-
return;
|
|
39
|
-
const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
|
|
40
|
-
if (!result)
|
|
41
|
-
return;
|
|
42
|
-
return ethers.utils.formatEther(result);
|
|
43
|
-
});
|
|
29
|
+
super();
|
|
44
30
|
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
45
31
|
var _a;
|
|
46
32
|
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
@@ -62,12 +48,46 @@ class EthProvider {
|
|
|
62
48
|
return Promise.resolve(network === null || network === void 0 ? void 0 : network.chainId);
|
|
63
49
|
});
|
|
64
50
|
}
|
|
51
|
+
getNameService() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const [[address], provider] = yield Promise.all([
|
|
54
|
+
this.getConnectedAccounts(),
|
|
55
|
+
this.getRpcProvider(),
|
|
56
|
+
]);
|
|
57
|
+
if (!address || !provider || !('lookupAddress' in provider)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const [ensName, ensAvatar] = yield Promise.all([
|
|
61
|
+
provider.lookupAddress(address),
|
|
62
|
+
provider.getAvatar(address),
|
|
63
|
+
]);
|
|
64
|
+
const ensData = {
|
|
65
|
+
avatar: ensAvatar !== null && ensAvatar !== void 0 ? ensAvatar : undefined,
|
|
66
|
+
name: ensName !== null && ensName !== void 0 ? ensName : undefined,
|
|
67
|
+
};
|
|
68
|
+
return ensData;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
65
71
|
getSigner() {
|
|
66
72
|
var _a;
|
|
67
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
74
|
return (_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getSigner();
|
|
69
75
|
});
|
|
70
76
|
}
|
|
77
|
+
getBalance() {
|
|
78
|
+
var _a;
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
// This is equivalent to getSigner().getAddress() but does not crash
|
|
81
|
+
// if the signer is not available
|
|
82
|
+
const [address] = yield this.getConnectedAccounts();
|
|
83
|
+
if (!address)
|
|
84
|
+
return;
|
|
85
|
+
const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
|
|
86
|
+
if (!result)
|
|
87
|
+
return;
|
|
88
|
+
return ethers.utils.formatEther(result);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
71
91
|
supportsNetworkSwitching() {
|
|
72
92
|
return true;
|
|
73
93
|
}
|
|
@@ -164,4 +184,4 @@ class EthProvider {
|
|
|
164
184
|
}
|
|
165
185
|
}
|
|
166
186
|
|
|
167
|
-
export {
|
|
187
|
+
export { EthWalletConnector };
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs
CHANGED
|
@@ -15,11 +15,16 @@ class EmailMagicWalletConnector extends MagicWalletConnector.MagicWalletConnecto
|
|
|
15
15
|
}
|
|
16
16
|
setEmail(email) {
|
|
17
17
|
this._email = email;
|
|
18
|
-
|
|
18
|
+
if (!email) {
|
|
19
|
+
localStorage.removeItem('magic-link-email');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
localStorage.setItem('magic-link-email', email);
|
|
23
|
+
}
|
|
24
|
+
this.cancelPreviousEmail();
|
|
19
25
|
}
|
|
20
26
|
clearEmail() {
|
|
21
|
-
this.
|
|
22
|
-
localStorage.removeItem('magic-link-email');
|
|
27
|
+
this.setEmail(undefined);
|
|
23
28
|
}
|
|
24
29
|
endSession() {
|
|
25
30
|
const _super = Object.create(null, {
|
|
@@ -40,7 +45,7 @@ class EmailMagicWalletConnector extends MagicWalletConnector.MagicWalletConnecto
|
|
|
40
45
|
const client = this._magicClient.getClient();
|
|
41
46
|
const user = yield this.getUserMetadata();
|
|
42
47
|
if (user && user.publicAddress) {
|
|
43
|
-
this.setEmail(
|
|
48
|
+
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
44
49
|
return user.publicAddress;
|
|
45
50
|
}
|
|
46
51
|
const { email } = this;
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IEmailWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
2
2
|
import { MagicPromiEvent, MagicWalletConnector } from '../MagicWalletConnector';
|
|
3
|
-
export declare class EmailMagicWalletConnector extends MagicWalletConnector implements
|
|
3
|
+
export declare class EmailMagicWalletConnector extends MagicWalletConnector implements IEmailWalletConnector {
|
|
4
4
|
canConnectViaEmail: boolean;
|
|
5
|
-
_email: string | undefined;
|
|
6
|
-
get email(): string | undefined;
|
|
7
|
-
setEmail(email:
|
|
5
|
+
protected _email: string | undefined | null;
|
|
6
|
+
get email(): string | null | undefined;
|
|
7
|
+
setEmail(email: EmailMagicWalletConnector['email']): void;
|
|
8
8
|
clearEmail(): void;
|
|
9
9
|
endSession(): Promise<void>;
|
|
10
10
|
cancelPreviousEmail(): void;
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js
CHANGED
|
@@ -11,11 +11,16 @@ class EmailMagicWalletConnector extends MagicWalletConnector {
|
|
|
11
11
|
}
|
|
12
12
|
setEmail(email) {
|
|
13
13
|
this._email = email;
|
|
14
|
-
|
|
14
|
+
if (!email) {
|
|
15
|
+
localStorage.removeItem('magic-link-email');
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
localStorage.setItem('magic-link-email', email);
|
|
19
|
+
}
|
|
20
|
+
this.cancelPreviousEmail();
|
|
15
21
|
}
|
|
16
22
|
clearEmail() {
|
|
17
|
-
this.
|
|
18
|
-
localStorage.removeItem('magic-link-email');
|
|
23
|
+
this.setEmail(undefined);
|
|
19
24
|
}
|
|
20
25
|
endSession() {
|
|
21
26
|
const _super = Object.create(null, {
|
|
@@ -36,7 +41,7 @@ class EmailMagicWalletConnector extends MagicWalletConnector {
|
|
|
36
41
|
const client = this._magicClient.getClient();
|
|
37
42
|
const user = yield this.getUserMetadata();
|
|
38
43
|
if (user && user.publicAddress) {
|
|
39
|
-
this.setEmail(
|
|
44
|
+
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
40
45
|
return user.publicAddress;
|
|
41
46
|
}
|
|
42
47
|
const { email } = this;
|
|
@@ -37,7 +37,7 @@ class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector.EmailMagicW
|
|
|
37
37
|
const client = this._magicClient.getClient();
|
|
38
38
|
const user = yield this.getUserMetadata();
|
|
39
39
|
if (user && user.publicAddress) {
|
|
40
|
-
this.setEmail(
|
|
40
|
+
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
41
41
|
return user.publicAddress;
|
|
42
42
|
}
|
|
43
43
|
const { email } = this;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Magic } from 'magic-sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { IEmailOTPWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
import { EmailMagicWalletConnector } from '../EmailMagicWalletConnector';
|
|
4
4
|
import { MagicPromiEvent } from '../MagicWalletConnector';
|
|
5
5
|
type LoginWithEmailOTPPromiEvent = ReturnType<Magic['auth']['loginWithEmailOTP']>;
|
|
6
|
-
export declare class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector implements
|
|
6
|
+
export declare class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector implements IEmailOTPWalletConnector {
|
|
7
7
|
_handle: LoginWithEmailOTPPromiEvent | undefined;
|
|
8
8
|
verifyOneTimePassword(otp: string): Promise<boolean>;
|
|
9
9
|
loginWithMagic(): Promise<MagicPromiEvent | undefined>;
|
|
@@ -33,7 +33,7 @@ class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector {
|
|
|
33
33
|
const client = this._magicClient.getClient();
|
|
34
34
|
const user = yield this.getUserMetadata();
|
|
35
35
|
if (user && user.publicAddress) {
|
|
36
|
-
this.setEmail(
|
|
36
|
+
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
37
37
|
return user.publicAddress;
|
|
38
38
|
}
|
|
39
39
|
const { email } = this;
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs
CHANGED
|
@@ -17,12 +17,11 @@ const chainNameToChainIdMap = {
|
|
|
17
17
|
sepolia: 11155111,
|
|
18
18
|
};
|
|
19
19
|
class MagicClientNetworkHandler {
|
|
20
|
-
constructor({
|
|
20
|
+
constructor({ createClient, evmNetworks, config, }) {
|
|
21
21
|
var _a, _b;
|
|
22
22
|
this._clients = {};
|
|
23
23
|
this.evmNetworks = [];
|
|
24
24
|
this._config = config;
|
|
25
|
-
this._apiKey = apiKey;
|
|
26
25
|
this.evmNetworks = evmNetworks;
|
|
27
26
|
this._networkId =
|
|
28
27
|
typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts
CHANGED
|
@@ -6,11 +6,10 @@ export type MagicLinkConfig = Pick<MagicSDKAdditionalConfiguration<string, Magic
|
|
|
6
6
|
redirectURI?: string;
|
|
7
7
|
};
|
|
8
8
|
type ConfigForNetwork = MagicSDKAdditionalConfiguration<string, MagicSDKExtensionsOption<string>> | undefined;
|
|
9
|
-
export type MagicClientNetworkHandlerProps<TClient> = Pick<MagicConnectorProps, '
|
|
9
|
+
export type MagicClientNetworkHandlerProps<TClient> = Pick<MagicConnectorProps, 'config' | 'evmNetworks'> & {
|
|
10
10
|
createClient: (config: ConfigForNetwork) => TClient;
|
|
11
11
|
};
|
|
12
12
|
export declare class MagicClientNetworkHandler<TClient = unknown> {
|
|
13
|
-
protected _apiKey: string;
|
|
14
13
|
protected _clients: {
|
|
15
14
|
[chainId: number]: TClient;
|
|
16
15
|
};
|
|
@@ -19,7 +18,7 @@ export declare class MagicClientNetworkHandler<TClient = unknown> {
|
|
|
19
18
|
protected _listeners: WalletEventListeners | undefined;
|
|
20
19
|
evmNetworks: EvmNetwork[];
|
|
21
20
|
protected _createClient: MagicClientNetworkHandlerProps<TClient>['createClient'];
|
|
22
|
-
constructor({
|
|
21
|
+
constructor({ createClient, evmNetworks, config, }: MagicClientNetworkHandlerProps<TClient>);
|
|
23
22
|
setListeners(listeners: WalletEventListeners | undefined): void;
|
|
24
23
|
onChainChanged(networkChainId: number): void;
|
|
25
24
|
selectNetwork(networkChainId: number): Promise<void>;
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js
CHANGED
|
@@ -13,12 +13,11 @@ const chainNameToChainIdMap = {
|
|
|
13
13
|
sepolia: 11155111,
|
|
14
14
|
};
|
|
15
15
|
class MagicClientNetworkHandler {
|
|
16
|
-
constructor({
|
|
16
|
+
constructor({ createClient, evmNetworks, config, }) {
|
|
17
17
|
var _a, _b;
|
|
18
18
|
this._clients = {};
|
|
19
19
|
this.evmNetworks = [];
|
|
20
20
|
this._config = config;
|
|
21
|
-
this._apiKey = apiKey;
|
|
22
21
|
this.evmNetworks = evmNetworks;
|
|
23
22
|
this._networkId =
|
|
24
23
|
typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
|
|
@@ -14,7 +14,6 @@ class MagicSocialWalletConnector extends MagicWalletConnector.MagicWalletConnect
|
|
|
14
14
|
super(opts);
|
|
15
15
|
this.canConnectViaSocial = true;
|
|
16
16
|
this._magicClient = new MagicClientNetworkHandler.MagicClientNetworkHandler({
|
|
17
|
-
apiKey: opts.apiKey,
|
|
18
17
|
config: opts.config,
|
|
19
18
|
createClient: (config) => new magicSdk.Magic(opts.apiKey, Object.assign(Object.assign({}, config), { extensions: [new oauth.OAuthExtension()] })),
|
|
20
19
|
evmNetworks: opts.evmNetworks,
|
package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js
CHANGED
|
@@ -10,7 +10,6 @@ class MagicSocialWalletConnector extends MagicWalletConnector {
|
|
|
10
10
|
super(opts);
|
|
11
11
|
this.canConnectViaSocial = true;
|
|
12
12
|
this._magicClient = new MagicClientNetworkHandler({
|
|
13
|
-
apiKey: opts.apiKey,
|
|
14
13
|
config: opts.config,
|
|
15
14
|
createClient: (config) => new Magic(opts.apiKey, Object.assign(Object.assign({}, config), { extensions: [new OAuthExtension()] })),
|
|
16
15
|
evmNetworks: opts.evmNetworks,
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var magicSdk = require('magic-sdk');
|
|
7
7
|
var ethers = require('ethers');
|
|
8
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
9
|
var errors = require('../../../../errors.cjs');
|
|
9
10
|
var logger = require('../../../../utils/logger.cjs');
|
|
10
11
|
var assignConfirmationScreenToProvider = require('../../../../utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs');
|
|
@@ -12,19 +13,17 @@ var CancellablePromise = require('../../../../utils/CancellablePromise/Cancellab
|
|
|
12
13
|
var MagicClientNetworkHandler = require('../MagicClientNetworkHandler/MagicClientNetworkHandler.cjs');
|
|
13
14
|
|
|
14
15
|
const storedAddressKey = 'dynamic_magic_address';
|
|
15
|
-
class MagicWalletConnector {
|
|
16
|
+
class MagicWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
17
|
+
get key() {
|
|
18
|
+
return 'magiclink';
|
|
19
|
+
}
|
|
16
20
|
constructor({ apiKey, walletUiUtils, evmNetworks, config, }) {
|
|
17
|
-
|
|
21
|
+
super();
|
|
18
22
|
this.canConnectViaCustodialService = true;
|
|
19
|
-
this.canConnectViaQrCode = false;
|
|
20
|
-
this.canConnectViaSocial = false;
|
|
21
23
|
this.connectedChain = 'EVM';
|
|
22
24
|
this.supportedChains = ['ETH', 'EVM'];
|
|
23
|
-
this.isWalletConnect = false;
|
|
24
25
|
this.name = 'Magic Link';
|
|
25
|
-
this.providerResources = undefined;
|
|
26
26
|
this._magicClient = new MagicClientNetworkHandler.MagicClientNetworkHandler({
|
|
27
|
-
apiKey,
|
|
28
27
|
config,
|
|
29
28
|
createClient: (config) => new magicSdk.Magic(apiKey, config),
|
|
30
29
|
evmNetworks,
|
|
@@ -128,12 +127,6 @@ class MagicWalletConnector {
|
|
|
128
127
|
return provider;
|
|
129
128
|
});
|
|
130
129
|
}
|
|
131
|
-
isInstalledOnBrowser() {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
proveOwnership(messageToSign) {
|
|
135
|
-
return this.signMessage(messageToSign);
|
|
136
|
-
}
|
|
137
130
|
setupEventListeners(listeners) {
|
|
138
131
|
this._listeners = listeners;
|
|
139
132
|
this._magicClient.setListeners(listeners);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LoginWithMagicLinkEvents, Magic, MagicUserMetadata, PromiEvent } from 'magic-sdk';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { OAuthExtension, OAuthProvider } from '@magic-ext/oauth';
|
|
4
|
-
import { Chain,
|
|
4
|
+
import { Chain, WalletConnectorBase, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { WalletUiUtils } from '../../../../types';
|
|
6
6
|
import { CancellablePromise } from '../../../../utils/CancellablePromise';
|
|
7
7
|
import { MagicLinkConfig, MagicClientNetworkHandler } from '../MagicClientNetworkHandler';
|
|
@@ -17,17 +17,12 @@ export type MagicPromiEvent = PromiEvent<string | null, LoginWithMagicLinkEvents
|
|
|
17
17
|
error: (reason: any) => void;
|
|
18
18
|
settled: () => void;
|
|
19
19
|
}>;
|
|
20
|
-
export declare abstract class MagicWalletConnector
|
|
21
|
-
key: string;
|
|
20
|
+
export declare abstract class MagicWalletConnector extends WalletConnectorBase {
|
|
21
|
+
get key(): string;
|
|
22
22
|
canConnectViaCustodialService: boolean;
|
|
23
|
-
canConnectViaQrCode: boolean;
|
|
24
|
-
canConnectViaSocial: boolean;
|
|
25
23
|
connectedChain: Chain;
|
|
26
24
|
supportedChains: Chain[];
|
|
27
|
-
isWalletConnect: boolean;
|
|
28
25
|
name: string;
|
|
29
|
-
switchNetworkOnlyFromWallet?: boolean;
|
|
30
|
-
providerResources?: string[];
|
|
31
26
|
evmNetworks: EvmNetwork[];
|
|
32
27
|
_walletUiUtils: WalletUiUtils;
|
|
33
28
|
_listeners: WalletEventListeners | undefined;
|
|
@@ -46,8 +41,6 @@ export declare abstract class MagicWalletConnector implements WalletConnector {
|
|
|
46
41
|
getRpcProvider(): Promise<void | ethers.providers.JsonRpcProvider | undefined>;
|
|
47
42
|
getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
|
|
48
43
|
getWeb3Provider(): Promise<ethers.providers.Web3Provider>;
|
|
49
|
-
isInstalledOnBrowser(): boolean;
|
|
50
|
-
proveOwnership(messageToSign: string): Promise<string | undefined>;
|
|
51
44
|
setupEventListeners(listeners: WalletEventListeners): void;
|
|
52
45
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
53
46
|
supportsNetworkSwitching(): boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { Magic } from 'magic-sdk';
|
|
3
3
|
import { ethers } from 'ethers';
|
|
4
|
+
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
5
|
import { DynamicError } from '../../../../errors.js';
|
|
5
6
|
import { logger } from '../../../../utils/logger.js';
|
|
6
7
|
import { assignConfirmationScreenToProvider } from '../../../../utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js';
|
|
@@ -8,19 +9,17 @@ import { CancellablePromise } from '../../../../utils/CancellablePromise/Cancell
|
|
|
8
9
|
import { MagicClientNetworkHandler } from '../MagicClientNetworkHandler/MagicClientNetworkHandler.js';
|
|
9
10
|
|
|
10
11
|
const storedAddressKey = 'dynamic_magic_address';
|
|
11
|
-
class MagicWalletConnector {
|
|
12
|
+
class MagicWalletConnector extends WalletConnectorBase {
|
|
13
|
+
get key() {
|
|
14
|
+
return 'magiclink';
|
|
15
|
+
}
|
|
12
16
|
constructor({ apiKey, walletUiUtils, evmNetworks, config, }) {
|
|
13
|
-
|
|
17
|
+
super();
|
|
14
18
|
this.canConnectViaCustodialService = true;
|
|
15
|
-
this.canConnectViaQrCode = false;
|
|
16
|
-
this.canConnectViaSocial = false;
|
|
17
19
|
this.connectedChain = 'EVM';
|
|
18
20
|
this.supportedChains = ['ETH', 'EVM'];
|
|
19
|
-
this.isWalletConnect = false;
|
|
20
21
|
this.name = 'Magic Link';
|
|
21
|
-
this.providerResources = undefined;
|
|
22
22
|
this._magicClient = new MagicClientNetworkHandler({
|
|
23
|
-
apiKey,
|
|
24
23
|
config,
|
|
25
24
|
createClient: (config) => new Magic(apiKey, config),
|
|
26
25
|
evmNetworks,
|
|
@@ -124,12 +123,6 @@ class MagicWalletConnector {
|
|
|
124
123
|
return provider;
|
|
125
124
|
});
|
|
126
125
|
}
|
|
127
|
-
isInstalledOnBrowser() {
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
proveOwnership(messageToSign) {
|
|
131
|
-
return this.signMessage(messageToSign);
|
|
132
|
-
}
|
|
133
126
|
setupEventListeners(listeners) {
|
|
134
127
|
this._listeners = listeners;
|
|
135
128
|
this._magicClient.setListeners(listeners);
|
|
@@ -3,19 +3,16 @@
|
|
|
3
3
|
var tslib = require('tslib');
|
|
4
4
|
var ethers = require('ethers');
|
|
5
5
|
var coinbase = require('../clients/coinbase/coinbase.cjs');
|
|
6
|
-
var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
|
|
7
6
|
var ethProviderHelper = require('./ethProviderHelper.cjs');
|
|
8
|
-
var
|
|
7
|
+
var EthWalletConnector = require('./EthWalletConnector.cjs');
|
|
9
8
|
|
|
10
|
-
class Coinbase extends
|
|
9
|
+
class Coinbase extends EthWalletConnector.EthWalletConnector {
|
|
11
10
|
constructor({ appName, appLogoUrl, evmNetworks, }) {
|
|
12
11
|
super({ evmNetworks });
|
|
13
12
|
this.name = 'Coinbase';
|
|
14
13
|
this.supportedChains = ['EVM', 'ETH'];
|
|
15
14
|
this.connectedChain = 'EVM';
|
|
16
15
|
this.canConnectViaQrCode = true;
|
|
17
|
-
this.canConnectViaCustodialService = false;
|
|
18
|
-
this.isWalletConnect = false;
|
|
19
16
|
this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
|
|
20
17
|
this.coinbaseProviderOpts = {
|
|
21
18
|
appLogoUrl: appLogoUrl,
|
|
@@ -23,9 +20,6 @@ class Coinbase extends ethProvider.EthProvider {
|
|
|
23
20
|
evmNetworks: evmNetworks,
|
|
24
21
|
};
|
|
25
22
|
}
|
|
26
|
-
get key() {
|
|
27
|
-
return normalizeWalletName.normalizeWalletName(this.name);
|
|
28
|
-
}
|
|
29
23
|
setupEventListeners(listeners) {
|
|
30
24
|
return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
|
|
31
25
|
}
|
|
@@ -43,11 +37,6 @@ class Coinbase extends ethProvider.EthProvider {
|
|
|
43
37
|
isInstalledOnBrowser() {
|
|
44
38
|
return this.ethProviderHelper.isInstalledHelper(this.name);
|
|
45
39
|
}
|
|
46
|
-
connect() {
|
|
47
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
yield this.fetchPublicAddress();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
40
|
fetchPublicAddress(opts) {
|
|
52
41
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
53
42
|
if (this.isInstalledOnBrowser()) {
|
|
@@ -64,11 +53,6 @@ class Coinbase extends ethProvider.EthProvider {
|
|
|
64
53
|
return coinbase.signMessage(this.coinbaseProviderOpts, messageToSign);
|
|
65
54
|
});
|
|
66
55
|
}
|
|
67
|
-
proveOwnership(messageToSign) {
|
|
68
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
return this.signMessage(messageToSign);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
56
|
endSession() {
|
|
73
57
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
74
58
|
if (this.isInstalledOnBrowser())
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import { Chain, FetchPublicAddressOpts,
|
|
2
|
+
import { Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
import { EthProviderHelper } from './ethProviderHelper';
|
|
4
|
-
import {
|
|
4
|
+
import { EthWalletConnector } from './EthWalletConnector';
|
|
5
5
|
import { EvmNetwork } from './evm-network';
|
|
6
|
-
declare class Coinbase extends
|
|
6
|
+
declare class Coinbase extends EthWalletConnector {
|
|
7
7
|
name: string;
|
|
8
8
|
supportedChains: Chain[];
|
|
9
9
|
connectedChain: Chain;
|
|
10
10
|
canConnectViaQrCode: boolean;
|
|
11
|
-
canConnectViaCustodialService: boolean;
|
|
12
|
-
isWalletConnect: boolean;
|
|
13
11
|
ethProviderHelper: EthProviderHelper;
|
|
14
12
|
private coinbaseProviderOpts;
|
|
15
13
|
constructor({ appName, appLogoUrl, evmNetworks, }: {
|
|
@@ -17,15 +15,12 @@ declare class Coinbase extends EthProvider implements WalletConnector {
|
|
|
17
15
|
appName?: string;
|
|
18
16
|
evmNetworks: EvmNetwork[];
|
|
19
17
|
});
|
|
20
|
-
get key(): string;
|
|
21
18
|
setupEventListeners(listeners: WalletEventListeners): () => void;
|
|
22
19
|
teardownEventListeners(): void;
|
|
23
20
|
getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
24
21
|
isInstalledOnBrowser(): boolean;
|
|
25
|
-
connect(): Promise<void>;
|
|
26
22
|
fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
|
|
27
23
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
28
|
-
proveOwnership(messageToSign: string): Promise<string | undefined>;
|
|
29
24
|
endSession(): Promise<void>;
|
|
30
25
|
}
|
|
31
26
|
export default Coinbase;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { getCoinbaseProvider, fetchPublicAddress, signMessage, killCoinbaseSession } from '../clients/coinbase/coinbase.js';
|
|
4
|
-
import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
|
|
5
4
|
import { EthProviderHelper } from './ethProviderHelper.js';
|
|
6
|
-
import {
|
|
5
|
+
import { EthWalletConnector } from './EthWalletConnector.js';
|
|
7
6
|
|
|
8
|
-
class Coinbase extends
|
|
7
|
+
class Coinbase extends EthWalletConnector {
|
|
9
8
|
constructor({ appName, appLogoUrl, evmNetworks, }) {
|
|
10
9
|
super({ evmNetworks });
|
|
11
10
|
this.name = 'Coinbase';
|
|
12
11
|
this.supportedChains = ['EVM', 'ETH'];
|
|
13
12
|
this.connectedChain = 'EVM';
|
|
14
13
|
this.canConnectViaQrCode = true;
|
|
15
|
-
this.canConnectViaCustodialService = false;
|
|
16
|
-
this.isWalletConnect = false;
|
|
17
14
|
this.ethProviderHelper = new EthProviderHelper();
|
|
18
15
|
this.coinbaseProviderOpts = {
|
|
19
16
|
appLogoUrl: appLogoUrl,
|
|
@@ -21,9 +18,6 @@ class Coinbase extends EthProvider {
|
|
|
21
18
|
evmNetworks: evmNetworks,
|
|
22
19
|
};
|
|
23
20
|
}
|
|
24
|
-
get key() {
|
|
25
|
-
return normalizeWalletName(this.name);
|
|
26
|
-
}
|
|
27
21
|
setupEventListeners(listeners) {
|
|
28
22
|
return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
|
|
29
23
|
}
|
|
@@ -41,11 +35,6 @@ class Coinbase extends EthProvider {
|
|
|
41
35
|
isInstalledOnBrowser() {
|
|
42
36
|
return this.ethProviderHelper.isInstalledHelper(this.name);
|
|
43
37
|
}
|
|
44
|
-
connect() {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
yield this.fetchPublicAddress();
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
38
|
fetchPublicAddress(opts) {
|
|
50
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
40
|
if (this.isInstalledOnBrowser()) {
|
|
@@ -62,11 +51,6 @@ class Coinbase extends EthProvider {
|
|
|
62
51
|
return signMessage(this.coinbaseProviderOpts, messageToSign);
|
|
63
52
|
});
|
|
64
53
|
}
|
|
65
|
-
proveOwnership(messageToSign) {
|
|
66
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
return this.signMessage(messageToSign);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
54
|
endSession() {
|
|
71
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
56
|
if (this.isInstalledOnBrowser())
|
|
@@ -150,7 +150,7 @@ class EthProviderHelper {
|
|
|
150
150
|
// nothing to teardown
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
|
-
const
|
|
153
|
+
const externalProvider = web3Provider.provider;
|
|
154
154
|
this.handleAccountChange = (accounts) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
155
155
|
var _a, _b;
|
|
156
156
|
if (accounts.length === 0) {
|
|
@@ -171,19 +171,26 @@ class EthProviderHelper {
|
|
|
171
171
|
}
|
|
172
172
|
yield ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
|
|
173
173
|
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
174
|
+
externalProvider.on('accountsChanged', this.handleAccountChange);
|
|
175
|
+
externalProvider.on('chainChanged', this.handleChainChange);
|
|
176
|
+
externalProvider.on('disconnect', this.handleDisconnect);
|
|
177
177
|
return () => { };
|
|
178
178
|
}
|
|
179
179
|
_teardownEventListeners(name) {
|
|
180
180
|
const web3Provider = this.findProvider(name);
|
|
181
|
-
if (!web3Provider) {
|
|
182
|
-
|
|
181
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
182
|
+
throw new Error(`Could not find provider for ${name}`);
|
|
183
|
+
}
|
|
184
|
+
const externalProvider = web3Provider.provider;
|
|
185
|
+
if (this.handleAccountChange) {
|
|
186
|
+
externalProvider.removeListener('accountsChanged', this.handleAccountChange);
|
|
187
|
+
}
|
|
188
|
+
if (this.handleChainChange) {
|
|
189
|
+
externalProvider.removeListener('chainChanged', this.handleChainChange);
|
|
190
|
+
}
|
|
191
|
+
if (this.handleDisconnect) {
|
|
192
|
+
externalProvider.removeListener('disconnect', this.handleDisconnect);
|
|
183
193
|
}
|
|
184
|
-
web3Provider.off('accountsChanged', this.handleAccountChange);
|
|
185
|
-
web3Provider.off('chainChangedm', this.handleChainChange);
|
|
186
|
-
web3Provider.off('disconnect', this.handleDisconnect);
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
|
|
@@ -146,7 +146,7 @@ class EthProviderHelper {
|
|
|
146
146
|
// nothing to teardown
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
-
const
|
|
149
|
+
const externalProvider = web3Provider.provider;
|
|
150
150
|
this.handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
|
|
151
151
|
var _a, _b;
|
|
152
152
|
if (accounts.length === 0) {
|
|
@@ -167,19 +167,26 @@ class EthProviderHelper {
|
|
|
167
167
|
}
|
|
168
168
|
yield ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
|
|
169
169
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
externalProvider.on('accountsChanged', this.handleAccountChange);
|
|
171
|
+
externalProvider.on('chainChanged', this.handleChainChange);
|
|
172
|
+
externalProvider.on('disconnect', this.handleDisconnect);
|
|
173
173
|
return () => { };
|
|
174
174
|
}
|
|
175
175
|
_teardownEventListeners(name) {
|
|
176
176
|
const web3Provider = this.findProvider(name);
|
|
177
|
-
if (!web3Provider) {
|
|
178
|
-
|
|
177
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
178
|
+
throw new Error(`Could not find provider for ${name}`);
|
|
179
|
+
}
|
|
180
|
+
const externalProvider = web3Provider.provider;
|
|
181
|
+
if (this.handleAccountChange) {
|
|
182
|
+
externalProvider.removeListener('accountsChanged', this.handleAccountChange);
|
|
183
|
+
}
|
|
184
|
+
if (this.handleChainChange) {
|
|
185
|
+
externalProvider.removeListener('chainChanged', this.handleChainChange);
|
|
186
|
+
}
|
|
187
|
+
if (this.handleDisconnect) {
|
|
188
|
+
externalProvider.removeListener('disconnect', this.handleDisconnect);
|
|
179
189
|
}
|
|
180
|
-
web3Provider.off('accountsChanged', this.handleAccountChange);
|
|
181
|
-
web3Provider.off('chainChangedm', this.handleChainChange);
|
|
182
|
-
web3Provider.off('disconnect', this.handleDisconnect);
|
|
183
190
|
}
|
|
184
191
|
}
|
|
185
192
|
|