@dynamic-labs/ethereum 4.0.0-alpha.4 → 4.0.0-alpha.40
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 +349 -0
- package/package.cjs +8 -0
- package/package.js +4 -0
- package/package.json +11 -16
- package/src/coinbase/coinbase.cjs +1 -3
- package/src/coinbase/coinbase.d.ts +2 -5
- package/src/coinbase/coinbase.js +2 -4
- package/src/coinbase/types.d.ts +2 -2
- package/src/ethProviderHelper.cjs +46 -43
- package/src/ethProviderHelper.d.ts +5 -7
- package/src/ethProviderHelper.js +47 -44
- package/src/index.cjs +11 -3
- package/src/index.d.ts +1 -1
- package/src/index.js +7 -4
- package/src/injected/ExodusEvm.cjs +3 -5
- package/src/injected/ExodusEvm.d.ts +1 -3
- package/src/injected/ExodusEvm.js +3 -5
- package/src/injected/FallbackEvmConnector.cjs +3 -5
- package/src/injected/FallbackEvmConnector.d.ts +1 -3
- package/src/injected/FallbackEvmConnector.js +3 -5
- package/src/injected/InjectedWalletBase.cjs +20 -27
- package/src/injected/InjectedWalletBase.d.ts +6 -10
- package/src/injected/InjectedWalletBase.js +19 -28
- package/src/injected/PhantomEvm.cjs +4 -6
- package/src/injected/PhantomEvm.d.ts +1 -3
- package/src/injected/PhantomEvm.js +4 -6
- package/src/injected/fetchInjectedWalletConnectors.cjs +48 -39
- package/src/injected/fetchInjectedWalletConnectors.js +49 -40
- package/src/injected/index.d.ts +1 -1
- package/src/metaMask/MetaMaskConnector.cjs +377 -0
- package/src/metaMask/MetaMaskConnector.d.ts +52 -0
- package/src/metaMask/MetaMaskConnector.js +373 -0
- package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.cjs +58 -0
- package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.d.ts +14 -0
- package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.js +54 -0
- package/src/metaMask/utils/isPendingWalletRequestPermissionError.cjs +11 -0
- package/src/metaMask/utils/isPendingWalletRequestPermissionError.d.ts +1 -0
- package/src/metaMask/utils/isPendingWalletRequestPermissionError.js +7 -0
- package/src/metaMask/utils/waitForConnection.cjs +10 -0
- package/src/metaMask/utils/waitForConnection.d.ts +2 -0
- package/src/metaMask/utils/waitForConnection.js +6 -0
- package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.cjs +30 -0
- package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.d.ts +3 -0
- package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.js +26 -0
- package/src/utils/getConnectorConstructorForEip6963Wallet/index.d.ts +1 -0
- package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.cjs +44 -0
- package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.d.ts +3 -0
- package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.js +40 -0
- package/src/utils/getConnectorConstructorInjectedWallet/index.d.ts +1 -0
- package/src/utils/logger.cjs +10 -0
- package/src/utils/logger.d.ts +2 -0
- package/src/utils/logger.js +6 -0
- package/src/walletConnect/walletConnect.cjs +5 -11
- package/src/walletConnect/walletConnect.d.ts +4 -6
- package/src/walletConnect/walletConnect.js +5 -11
- package/src/injected/UnknownInjected.cjs +0 -21
- package/src/injected/UnknownInjected.d.ts +0 -8
- package/src/injected/UnknownInjected.js +0 -17
- package/src/utils/isString.d.ts +0 -1
- package/src/utils/last.d.ts +0 -1
- package/src/utils/parseIntSafe.cjs +0 -23
- package/src/utils/parseIntSafe.d.ts +0 -1
- package/src/utils/parseIntSafe.js +0 -19
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { Hex, WalletClient, Account, Transport, Chain as ViemChain } from 'viem';
|
|
2
2
|
import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
4
|
-
import { EthWalletConnector } from '@dynamic-labs/ethereum-core';
|
|
5
3
|
import { IEthereum, ExtensionLocator } from './types';
|
|
4
|
+
import { InjectedWalletBase } from './injected/InjectedWalletBase';
|
|
6
5
|
export declare class EthProviderHelper {
|
|
7
|
-
private
|
|
6
|
+
private walletBookWallet;
|
|
8
7
|
private connector;
|
|
9
|
-
constructor(
|
|
8
|
+
constructor(connector: InjectedWalletBase);
|
|
10
9
|
getInstalledProvider(): IEthereum | undefined;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} | undefined;
|
|
10
|
+
getInjectedProvider(): IEthereum | undefined;
|
|
11
|
+
getEip6963Provider(): IEthereum | undefined;
|
|
14
12
|
getInjectedConfig(): {
|
|
15
13
|
chain: string;
|
|
16
14
|
extensionLocators: {
|
package/src/ethProviderHelper.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../_virtual/_tslib.js';
|
|
3
3
|
import { createWalletClient, custom, getAddress } from 'viem';
|
|
4
|
-
import { ProviderLookup,
|
|
4
|
+
import { ProviderLookup, logger, eventListenerHandlers } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
5
6
|
import { getProvidersFromWindow, Eip6963ProviderSingleton } from '@dynamic-labs/utils';
|
|
6
7
|
import { chainsMap } from '@dynamic-labs/ethereum-core';
|
|
7
8
|
|
|
8
9
|
class EthProviderHelper {
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
10
|
+
constructor(connector) {
|
|
11
|
+
this.walletBookWallet = findWalletBookWallet(connector.walletBook, connector.key);
|
|
11
12
|
this.connector = connector;
|
|
12
13
|
}
|
|
13
14
|
getInstalledProvider() {
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
if (eip6963Provider) {
|
|
18
|
-
return eip6963Provider;
|
|
19
|
-
}
|
|
15
|
+
const eip6963Provider = this.getEip6963Provider();
|
|
16
|
+
if (eip6963Provider) {
|
|
17
|
+
return eip6963Provider;
|
|
20
18
|
}
|
|
19
|
+
return this.getInjectedProvider();
|
|
20
|
+
}
|
|
21
|
+
getInjectedProvider() {
|
|
21
22
|
const config = this.getInjectedConfig();
|
|
22
23
|
if (!config ||
|
|
23
24
|
!config.extensionLocators ||
|
|
@@ -25,16 +26,17 @@ class EthProviderHelper {
|
|
|
25
26
|
return undefined;
|
|
26
27
|
return this.installedProviderLookup(config.extensionLocators);
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
getEip6963Provider() {
|
|
30
|
+
const { rdns } = this.connector.metadata;
|
|
31
|
+
if (!rdns) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return this.eip6963ProviderLookup(rdns);
|
|
32
35
|
}
|
|
33
36
|
getInjectedConfig() {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return injectedConfig.find((c) => c.chain === 'evm');
|
|
37
|
+
var _a;
|
|
38
|
+
const injectedConfig = (_a = this.walletBookWallet) === null || _a === void 0 ? void 0 : _a.injectedConfig;
|
|
39
|
+
return injectedConfig === null || injectedConfig === void 0 ? void 0 : injectedConfig.find((c) => c.chain === 'evm');
|
|
38
40
|
}
|
|
39
41
|
installedProviders() {
|
|
40
42
|
const config = this.getInjectedConfig();
|
|
@@ -71,7 +73,7 @@ class EthProviderHelper {
|
|
|
71
73
|
return this.findProvider() !== undefined;
|
|
72
74
|
}
|
|
73
75
|
findProvider() {
|
|
74
|
-
return this.
|
|
76
|
+
return this.connector.findProvider();
|
|
75
77
|
}
|
|
76
78
|
findWalletClient(chainId) {
|
|
77
79
|
const provider = this.findProvider();
|
|
@@ -126,43 +128,44 @@ class EthProviderHelper {
|
|
|
126
128
|
}
|
|
127
129
|
_setupEventListeners(walletConnector) {
|
|
128
130
|
const web3Provider = this.findProvider();
|
|
129
|
-
if (web3Provider && 'on' in web3Provider) {
|
|
130
|
-
const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers(walletConnector);
|
|
131
|
-
web3Provider.on('accountsChanged', handleAccountChange);
|
|
132
|
-
web3Provider.on('chainChanged', handleChainChange);
|
|
133
|
-
web3Provider.on('disconnect', handleDisconnect);
|
|
134
|
-
const tearDownEventListeners = () => {
|
|
135
|
-
const web3Provider = this.findProvider();
|
|
136
|
-
if (!web3Provider) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (handleAccountChange) {
|
|
140
|
-
web3Provider.removeListener('accountsChanged', handleAccountChange);
|
|
141
|
-
}
|
|
142
|
-
if (handleChainChange) {
|
|
143
|
-
web3Provider.removeListener('chainChanged', handleChainChange);
|
|
144
|
-
}
|
|
145
|
-
if (handleDisconnect) {
|
|
146
|
-
web3Provider.removeListener('disconnect', handleDisconnect);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
return {
|
|
150
|
-
tearDownEventListeners,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
131
|
if (!web3Provider) {
|
|
154
132
|
logger.warn('Provider not found', {
|
|
155
133
|
connector: walletConnector,
|
|
156
134
|
});
|
|
135
|
+
return {
|
|
136
|
+
tearDownEventListeners: () => { },
|
|
137
|
+
};
|
|
157
138
|
}
|
|
158
|
-
|
|
139
|
+
if (!web3Provider.on) {
|
|
159
140
|
logger.warn('Provider does not support event listeners', {
|
|
160
141
|
connector: walletConnector,
|
|
161
142
|
provider: web3Provider,
|
|
162
143
|
});
|
|
144
|
+
return {
|
|
145
|
+
tearDownEventListeners: () => { },
|
|
146
|
+
};
|
|
163
147
|
}
|
|
148
|
+
const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers(walletConnector);
|
|
149
|
+
web3Provider.on('accountsChanged', handleAccountChange);
|
|
150
|
+
web3Provider.on('chainChanged', handleChainChange);
|
|
151
|
+
web3Provider.on('disconnect', handleDisconnect);
|
|
152
|
+
const tearDownEventListeners = () => {
|
|
153
|
+
const web3Provider = this.findProvider();
|
|
154
|
+
if (!web3Provider) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (handleAccountChange) {
|
|
158
|
+
web3Provider.removeListener('accountsChanged', handleAccountChange);
|
|
159
|
+
}
|
|
160
|
+
if (handleChainChange) {
|
|
161
|
+
web3Provider.removeListener('chainChanged', handleChainChange);
|
|
162
|
+
}
|
|
163
|
+
if (handleDisconnect) {
|
|
164
|
+
web3Provider.removeListener('disconnect', handleDisconnect);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
164
167
|
return {
|
|
165
|
-
tearDownEventListeners
|
|
168
|
+
tearDownEventListeners,
|
|
166
169
|
};
|
|
167
170
|
}
|
|
168
171
|
}
|
package/src/index.cjs
CHANGED
|
@@ -5,35 +5,43 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
require('./polyfills.cjs');
|
|
7
7
|
var embeddedWalletEvm = require('@dynamic-labs/embedded-wallet-evm');
|
|
8
|
+
var assertPackageVersion = require('@dynamic-labs/assert-package-version');
|
|
9
|
+
var _package = require('../package.cjs');
|
|
8
10
|
var PhantomEvm = require('./injected/PhantomEvm.cjs');
|
|
9
11
|
var ExodusEvm = require('./injected/ExodusEvm.cjs');
|
|
10
|
-
var UnknownInjected = require('./injected/UnknownInjected.cjs');
|
|
11
12
|
var FallbackEvmConnector = require('./injected/FallbackEvmConnector.cjs');
|
|
12
13
|
var fetchInjectedWalletConnectors = require('./injected/fetchInjectedWalletConnectors.cjs');
|
|
14
|
+
var InjectedWalletBase = require('./injected/InjectedWalletBase.cjs');
|
|
13
15
|
require('./walletConnect/walletConnect.cjs');
|
|
14
16
|
var fetchWalletConnectWallets = require('./walletConnect/fetchWalletConnectWallets.cjs');
|
|
15
17
|
var coinbase = require('./coinbase/coinbase.cjs');
|
|
16
18
|
var ethereumCore = require('@dynamic-labs/ethereum-core');
|
|
19
|
+
var MetaMaskConnector = require('./metaMask/MetaMaskConnector.cjs');
|
|
17
20
|
var ethProviderHelper = require('./ethProviderHelper.cjs');
|
|
18
21
|
var constants = require('./constants.cjs');
|
|
19
22
|
|
|
23
|
+
assertPackageVersion.assertPackageVersion('@dynamic-labs/ethereum', _package.version);
|
|
20
24
|
const EthereumWalletConnectors = (props) => [
|
|
21
25
|
...fetchInjectedWalletConnectors.injectedWalletOverrides,
|
|
22
26
|
...fetchInjectedWalletConnectors.fetchInjectedWalletConnector(props),
|
|
23
27
|
...fetchWalletConnectWallets.fetchWalletConnectWallets(props),
|
|
24
28
|
...embeddedWalletEvm.TurnkeyEVMWalletConnectors(props),
|
|
29
|
+
MetaMaskConnector.MetaMaskConnector,
|
|
25
30
|
coinbase.Coinbase,
|
|
26
|
-
UnknownInjected.UnknownInjected,
|
|
27
31
|
FallbackEvmConnector.FallbackEvmConnector,
|
|
28
32
|
fetchWalletConnectWallets.getWalletConnectConnector(),
|
|
29
33
|
];
|
|
30
34
|
|
|
31
35
|
exports.PhantomEvm = PhantomEvm.PhantomEvm;
|
|
32
36
|
exports.ExodusEvm = ExodusEvm.ExodusEvm;
|
|
33
|
-
exports.UnknownInjected = UnknownInjected.UnknownInjected;
|
|
34
37
|
exports.FallbackEvmConnector = FallbackEvmConnector.FallbackEvmConnector;
|
|
35
38
|
exports.fetchInjectedWalletConnector = fetchInjectedWalletConnectors.fetchInjectedWalletConnector;
|
|
36
39
|
exports.injectedWalletOverrides = fetchInjectedWalletConnectors.injectedWalletOverrides;
|
|
40
|
+
exports.EthereumInjectedConnector = InjectedWalletBase.InjectedWalletBase;
|
|
41
|
+
Object.defineProperty(exports, 'EthereumWalletConnector', {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return ethereumCore.EthereumWalletConnector; }
|
|
44
|
+
});
|
|
37
45
|
Object.defineProperty(exports, 'isEthereumWallet', {
|
|
38
46
|
enumerable: true,
|
|
39
47
|
get: function () { return ethereumCore.isEthereumWallet; }
|
package/src/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export * from './ethProviderHelper';
|
|
|
6
6
|
export * from './constants';
|
|
7
7
|
export * from './types';
|
|
8
8
|
export declare const EthereumWalletConnectors: (props: any) => WalletConnectorConstructor[];
|
|
9
|
-
export { isEthereumWallet } from '@dynamic-labs/ethereum-core';
|
|
9
|
+
export { isEthereumWallet, EthereumWalletConnector, } from '@dynamic-labs/ethereum-core';
|
package/src/index.js
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import './polyfills.js';
|
|
3
3
|
import { TurnkeyEVMWalletConnectors } from '@dynamic-labs/embedded-wallet-evm';
|
|
4
|
+
import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
|
|
5
|
+
import { version } from '../package.js';
|
|
4
6
|
export { PhantomEvm } from './injected/PhantomEvm.js';
|
|
5
7
|
export { ExodusEvm } from './injected/ExodusEvm.js';
|
|
6
|
-
import { UnknownInjected } from './injected/UnknownInjected.js';
|
|
7
|
-
export { UnknownInjected } from './injected/UnknownInjected.js';
|
|
8
8
|
import { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
|
|
9
9
|
export { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
|
|
10
10
|
import { injectedWalletOverrides, fetchInjectedWalletConnector } from './injected/fetchInjectedWalletConnectors.js';
|
|
11
11
|
export { fetchInjectedWalletConnector, injectedWalletOverrides } from './injected/fetchInjectedWalletConnectors.js';
|
|
12
|
+
export { InjectedWalletBase as EthereumInjectedConnector } from './injected/InjectedWalletBase.js';
|
|
12
13
|
import './walletConnect/walletConnect.js';
|
|
13
14
|
import { fetchWalletConnectWallets, getWalletConnectConnector } from './walletConnect/fetchWalletConnectWallets.js';
|
|
14
15
|
import { Coinbase } from './coinbase/coinbase.js';
|
|
15
|
-
export { isEthereumWallet } from '@dynamic-labs/ethereum-core';
|
|
16
|
+
export { EthereumWalletConnector, isEthereumWallet } from '@dynamic-labs/ethereum-core';
|
|
17
|
+
import { MetaMaskConnector } from './metaMask/MetaMaskConnector.js';
|
|
16
18
|
export { EthProviderHelper } from './ethProviderHelper.js';
|
|
17
19
|
export { INFURA_ID } from './constants.js';
|
|
18
20
|
|
|
21
|
+
assertPackageVersion('@dynamic-labs/ethereum', version);
|
|
19
22
|
const EthereumWalletConnectors = (props) => [
|
|
20
23
|
...injectedWalletOverrides,
|
|
21
24
|
...fetchInjectedWalletConnector(props),
|
|
22
25
|
...fetchWalletConnectWallets(props),
|
|
23
26
|
...TurnkeyEVMWalletConnectors(props),
|
|
27
|
+
MetaMaskConnector,
|
|
24
28
|
Coinbase,
|
|
25
|
-
UnknownInjected,
|
|
26
29
|
FallbackEvmConnector,
|
|
27
30
|
getWalletConnectConnector(),
|
|
28
31
|
];
|
|
@@ -3,17 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var walletBook = require('@dynamic-labs/wallet-book');
|
|
7
6
|
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
8
7
|
|
|
9
8
|
// leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
|
|
10
|
-
class ExodusEvm extends InjectedWalletBase {
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
9
|
+
class ExodusEvm extends InjectedWalletBase.InjectedWalletBase {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
13
12
|
this.name = 'ExodusEvm';
|
|
14
13
|
this.overrideKey = 'exodusevm';
|
|
15
14
|
this.walletConnectorFallback = true;
|
|
16
|
-
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
17
15
|
}
|
|
18
16
|
}
|
|
19
17
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import InjectedWalletBase from './InjectedWalletBase';
|
|
1
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
2
|
export declare class ExodusEvm extends InjectedWalletBase {
|
|
4
3
|
name: string;
|
|
5
4
|
overrideKey: string;
|
|
6
5
|
walletConnectorFallback: boolean;
|
|
7
|
-
constructor(props: EthWalletConnectorOpts);
|
|
8
6
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import {
|
|
3
|
-
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
4
3
|
|
|
5
4
|
// leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
|
|
6
5
|
class ExodusEvm extends InjectedWalletBase {
|
|
7
|
-
constructor(
|
|
8
|
-
super(
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
9
8
|
this.name = 'ExodusEvm';
|
|
10
9
|
this.overrideKey = 'exodusevm';
|
|
11
10
|
this.walletConnectorFallback = true;
|
|
12
|
-
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
13
11
|
}
|
|
14
12
|
}
|
|
15
13
|
|
|
@@ -3,16 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var walletBook = require('@dynamic-labs/wallet-book');
|
|
7
6
|
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
8
7
|
|
|
9
|
-
class FallbackEvmConnector extends InjectedWalletBase {
|
|
10
|
-
constructor(
|
|
11
|
-
super(
|
|
8
|
+
class FallbackEvmConnector extends InjectedWalletBase.InjectedWalletBase {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
12
11
|
this.name = 'Fallback Connector';
|
|
13
12
|
this.overrideKey = 'fallbackconnector';
|
|
14
13
|
this.isAvailable = false;
|
|
15
|
-
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
16
14
|
}
|
|
17
15
|
isInstalledOnBrowser() {
|
|
18
16
|
return false;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import InjectedWalletBase from './InjectedWalletBase';
|
|
1
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
2
|
export declare class FallbackEvmConnector extends InjectedWalletBase {
|
|
4
3
|
name: string;
|
|
5
4
|
overrideKey: string;
|
|
6
5
|
isAvailable: boolean;
|
|
7
|
-
constructor(props: EthWalletConnectorOpts);
|
|
8
6
|
isInstalledOnBrowser(): boolean;
|
|
9
7
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import {
|
|
3
|
-
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
4
3
|
|
|
5
4
|
class FallbackEvmConnector extends InjectedWalletBase {
|
|
6
|
-
constructor(
|
|
7
|
-
super(
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
8
7
|
this.name = 'Fallback Connector';
|
|
9
8
|
this.overrideKey = 'fallbackconnector';
|
|
10
9
|
this.isAvailable = false;
|
|
11
|
-
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
12
10
|
}
|
|
13
11
|
isInstalledOnBrowser() {
|
|
14
12
|
return false;
|
|
@@ -1,44 +1,34 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
4
6
|
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
5
|
-
var walletBook = require('@dynamic-labs/wallet-book');
|
|
6
7
|
var utils = require('@dynamic-labs/utils');
|
|
7
8
|
var ethereumCore = require('@dynamic-labs/ethereum-core');
|
|
8
9
|
var ethProviderHelper = require('../ethProviderHelper.cjs');
|
|
9
10
|
var walletConnect = require('../walletConnect/walletConnect.cjs');
|
|
10
11
|
|
|
11
|
-
class InjectedWalletBase extends ethereumCore.
|
|
12
|
+
class InjectedWalletBase extends ethereumCore.EthereumWalletConnector {
|
|
12
13
|
constructor() {
|
|
13
14
|
super(...arguments);
|
|
14
|
-
this.supportedChains = ['ETH', 'EVM'];
|
|
15
|
-
this.connectedChain = 'EVM';
|
|
16
15
|
this.walletConnectorFallback = false;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
if (!this.
|
|
20
|
-
|
|
21
|
-
// allows the getEthProviderHelper to return undefined if the wallet is not installed
|
|
22
|
-
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
23
|
-
}
|
|
24
|
-
if (this.wallet && !this.ethProviderHelper) {
|
|
25
|
-
this.ethProviderHelper = new ethProviderHelper.EthProviderHelper(this.wallet, this);
|
|
17
|
+
get ethProviderHelper() {
|
|
18
|
+
if (!this._ethProviderHelper) {
|
|
19
|
+
this._ethProviderHelper = new ethProviderHelper.EthProviderHelper(this);
|
|
26
20
|
}
|
|
27
|
-
|
|
28
|
-
return this.ethProviderHelper;
|
|
21
|
+
return this._ethProviderHelper;
|
|
29
22
|
}
|
|
30
23
|
getMobileOrInstalledWallet() {
|
|
31
|
-
var _a
|
|
32
|
-
if (!this.wallet) {
|
|
33
|
-
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
34
|
-
}
|
|
24
|
+
var _a;
|
|
35
25
|
if (this.isInstalledOnBrowser()) {
|
|
36
26
|
return this;
|
|
37
27
|
}
|
|
38
28
|
// this is to handle the case where the user is in a webview.
|
|
39
29
|
// when the user is in a webview, customers should set the deepLinkPreference prop to universal,
|
|
40
30
|
// in which case this condition will be false, and the SDK will use WalletConnect (if available)
|
|
41
|
-
if (((
|
|
31
|
+
if (((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
|
|
42
32
|
this.mobileExperience === 'in-app-browser' &&
|
|
43
33
|
utils.isMobile()) {
|
|
44
34
|
return this;
|
|
@@ -51,28 +41,31 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
|
|
|
51
41
|
}
|
|
52
42
|
return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
|
|
53
43
|
}
|
|
44
|
+
findProvider() {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
|
|
47
|
+
}
|
|
54
48
|
setupEventListeners() {
|
|
55
49
|
const provider = this.getWalletClient();
|
|
56
50
|
if (!provider)
|
|
57
51
|
return;
|
|
58
|
-
|
|
59
|
-
if (!ethProviderHelper)
|
|
52
|
+
if (!this.ethProviderHelper)
|
|
60
53
|
return;
|
|
61
|
-
const { tearDownEventListeners } = ethProviderHelper._setupEventListeners(this);
|
|
54
|
+
const { tearDownEventListeners } = this.ethProviderHelper._setupEventListeners(this);
|
|
62
55
|
this.teardownEventListeners = tearDownEventListeners;
|
|
63
56
|
}
|
|
64
57
|
getWalletClient(chainId) {
|
|
65
58
|
var _a;
|
|
66
|
-
return (_a = this.
|
|
59
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findWalletClient(chainId);
|
|
67
60
|
}
|
|
68
61
|
isInstalledOnBrowser() {
|
|
69
62
|
var _a;
|
|
70
|
-
return ((_a = this.
|
|
63
|
+
return ((_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
|
|
71
64
|
}
|
|
72
65
|
getAddress() {
|
|
73
66
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
74
67
|
var _a;
|
|
75
|
-
return (_a = this.
|
|
68
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getAddress();
|
|
76
69
|
});
|
|
77
70
|
}
|
|
78
71
|
connect() {
|
|
@@ -83,7 +76,7 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
|
|
|
83
76
|
signMessage(messageToSign) {
|
|
84
77
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
85
78
|
var _a;
|
|
86
|
-
return (_a = this.
|
|
79
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
|
|
87
80
|
});
|
|
88
81
|
}
|
|
89
82
|
proveOwnership(address, messageToSign) {
|
|
@@ -108,4 +101,4 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
|
|
|
108
101
|
}
|
|
109
102
|
}
|
|
110
103
|
|
|
111
|
-
|
|
104
|
+
exports.InjectedWalletBase = InjectedWalletBase;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { WalletClient, Transport, Account, Chain as ViemChain } from 'viem';
|
|
2
|
-
import { Chain } from '@dynamic-labs/wallet-connector-core';
|
|
3
2
|
import { EvmNetwork } from '@dynamic-labs/types';
|
|
4
|
-
import {
|
|
5
|
-
import { EthWalletConnector } from '@dynamic-labs/ethereum-core';
|
|
3
|
+
import { EthereumWalletConnector } from '@dynamic-labs/ethereum-core';
|
|
6
4
|
import { EthProviderHelper } from '../ethProviderHelper';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
connectedChain: Chain;
|
|
5
|
+
import { IEthereum } from '../types';
|
|
6
|
+
export declare abstract class InjectedWalletBase extends EthereumWalletConnector {
|
|
10
7
|
publicAddress: string | undefined;
|
|
11
8
|
walletConnectorFallback: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getEthProviderHelper(): EthProviderHelper | undefined;
|
|
9
|
+
_ethProviderHelper: EthProviderHelper | undefined;
|
|
10
|
+
get ethProviderHelper(): EthProviderHelper | undefined;
|
|
15
11
|
getMobileOrInstalledWallet(): InjectedWalletBase;
|
|
12
|
+
findProvider(): IEthereum | undefined;
|
|
16
13
|
setupEventListeners(): void;
|
|
17
14
|
getWalletClient(chainId?: string): WalletClient<Transport, ViemChain, Account> | undefined;
|
|
18
15
|
isInstalledOnBrowser(): boolean;
|
|
@@ -26,4 +23,3 @@ declare abstract class InjectedWalletBase extends EthWalletConnector {
|
|
|
26
23
|
provider: WalletClient;
|
|
27
24
|
}): Promise<void>;
|
|
28
25
|
}
|
|
29
|
-
export default InjectedWalletBase;
|
|
@@ -1,42 +1,30 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
|
-
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
4
3
|
import { isMobile } from '@dynamic-labs/utils';
|
|
5
|
-
import {
|
|
4
|
+
import { EthereumWalletConnector } from '@dynamic-labs/ethereum-core';
|
|
6
5
|
import { EthProviderHelper } from '../ethProviderHelper.js';
|
|
7
6
|
import { WalletConnect } from '../walletConnect/walletConnect.js';
|
|
8
7
|
|
|
9
|
-
class InjectedWalletBase extends
|
|
8
|
+
class InjectedWalletBase extends EthereumWalletConnector {
|
|
10
9
|
constructor() {
|
|
11
10
|
super(...arguments);
|
|
12
|
-
this.supportedChains = ['ETH', 'EVM'];
|
|
13
|
-
this.connectedChain = 'EVM';
|
|
14
11
|
this.walletConnectorFallback = false;
|
|
15
12
|
}
|
|
16
|
-
|
|
17
|
-
if (!this.
|
|
18
|
-
|
|
19
|
-
// allows the getEthProviderHelper to return undefined if the wallet is not installed
|
|
20
|
-
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
13
|
+
get ethProviderHelper() {
|
|
14
|
+
if (!this._ethProviderHelper) {
|
|
15
|
+
this._ethProviderHelper = new EthProviderHelper(this);
|
|
21
16
|
}
|
|
22
|
-
|
|
23
|
-
this.ethProviderHelper = new EthProviderHelper(this.wallet, this);
|
|
24
|
-
}
|
|
25
|
-
// this.ethProviderHelper is undefined if the wallet is not installed or found in walletbook
|
|
26
|
-
return this.ethProviderHelper;
|
|
17
|
+
return this._ethProviderHelper;
|
|
27
18
|
}
|
|
28
19
|
getMobileOrInstalledWallet() {
|
|
29
|
-
var _a
|
|
30
|
-
if (!this.wallet) {
|
|
31
|
-
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
32
|
-
}
|
|
20
|
+
var _a;
|
|
33
21
|
if (this.isInstalledOnBrowser()) {
|
|
34
22
|
return this;
|
|
35
23
|
}
|
|
36
24
|
// this is to handle the case where the user is in a webview.
|
|
37
25
|
// when the user is in a webview, customers should set the deepLinkPreference prop to universal,
|
|
38
26
|
// in which case this condition will be false, and the SDK will use WalletConnect (if available)
|
|
39
|
-
if (((
|
|
27
|
+
if (((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
|
|
40
28
|
this.mobileExperience === 'in-app-browser' &&
|
|
41
29
|
isMobile()) {
|
|
42
30
|
return this;
|
|
@@ -49,28 +37,31 @@ class InjectedWalletBase extends EthWalletConnector {
|
|
|
49
37
|
}
|
|
50
38
|
return new WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
|
|
51
39
|
}
|
|
40
|
+
findProvider() {
|
|
41
|
+
var _a;
|
|
42
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
|
|
43
|
+
}
|
|
52
44
|
setupEventListeners() {
|
|
53
45
|
const provider = this.getWalletClient();
|
|
54
46
|
if (!provider)
|
|
55
47
|
return;
|
|
56
|
-
|
|
57
|
-
if (!ethProviderHelper)
|
|
48
|
+
if (!this.ethProviderHelper)
|
|
58
49
|
return;
|
|
59
|
-
const { tearDownEventListeners } = ethProviderHelper._setupEventListeners(this);
|
|
50
|
+
const { tearDownEventListeners } = this.ethProviderHelper._setupEventListeners(this);
|
|
60
51
|
this.teardownEventListeners = tearDownEventListeners;
|
|
61
52
|
}
|
|
62
53
|
getWalletClient(chainId) {
|
|
63
54
|
var _a;
|
|
64
|
-
return (_a = this.
|
|
55
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findWalletClient(chainId);
|
|
65
56
|
}
|
|
66
57
|
isInstalledOnBrowser() {
|
|
67
58
|
var _a;
|
|
68
|
-
return ((_a = this.
|
|
59
|
+
return ((_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
|
|
69
60
|
}
|
|
70
61
|
getAddress() {
|
|
71
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
63
|
var _a;
|
|
73
|
-
return (_a = this.
|
|
64
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getAddress();
|
|
74
65
|
});
|
|
75
66
|
}
|
|
76
67
|
connect() {
|
|
@@ -81,7 +72,7 @@ class InjectedWalletBase extends EthWalletConnector {
|
|
|
81
72
|
signMessage(messageToSign) {
|
|
82
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
74
|
var _a;
|
|
84
|
-
return (_a = this.
|
|
75
|
+
return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
|
|
85
76
|
});
|
|
86
77
|
}
|
|
87
78
|
proveOwnership(address, messageToSign) {
|
|
@@ -106,4 +97,4 @@ class InjectedWalletBase extends EthWalletConnector {
|
|
|
106
97
|
}
|
|
107
98
|
}
|
|
108
99
|
|
|
109
|
-
export { InjectedWalletBase
|
|
100
|
+
export { InjectedWalletBase };
|
|
@@ -5,15 +5,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
7
7
|
var utils = require('@dynamic-labs/utils');
|
|
8
|
-
var walletBook = require('@dynamic-labs/wallet-book');
|
|
9
8
|
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
10
9
|
|
|
11
|
-
class PhantomEvm extends InjectedWalletBase {
|
|
12
|
-
constructor(
|
|
13
|
-
super(
|
|
10
|
+
class PhantomEvm extends InjectedWalletBase.InjectedWalletBase {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
14
13
|
this.name = 'Phantom';
|
|
15
14
|
this.overrideKey = 'phantomevm';
|
|
16
|
-
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
17
15
|
}
|
|
18
16
|
getAddress() {
|
|
19
17
|
const _super = Object.create(null, {
|
|
@@ -34,7 +32,7 @@ class PhantomEvm extends InjectedWalletBase {
|
|
|
34
32
|
}
|
|
35
33
|
canGetChainAddress() {
|
|
36
34
|
var _a, _b;
|
|
37
|
-
return Boolean((_b = (_a = this.
|
|
35
|
+
return Boolean((_b = (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.selectedAddress);
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import InjectedWalletBase from './InjectedWalletBase';
|
|
1
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
2
|
export declare class PhantomEvm extends InjectedWalletBase {
|
|
4
3
|
name: string;
|
|
5
4
|
overrideKey: string;
|
|
6
|
-
constructor(props: EthWalletConnectorOpts);
|
|
7
5
|
getAddress(): Promise<string | undefined>;
|
|
8
6
|
canGetChainAddress(): boolean;
|
|
9
7
|
}
|