@dynamic-labs/ethereum 0.19.0-alpha.2 → 0.19.0-alpha.20
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 +279 -0
- package/package.json +11 -10
- package/src/EthWalletConnector.cjs +189 -193
- package/src/EthWalletConnector.d.ts +298 -41
- package/src/EthWalletConnector.js +190 -194
- package/src/constants.d.ts +1 -1
- package/src/ethProviderHelper.cjs +132 -209
- package/src/ethProviderHelper.d.ts +28 -36
- package/src/ethProviderHelper.js +133 -210
- package/src/index.cjs +26 -26
- package/src/index.d.ts +9 -8
- package/src/index.js +21 -20
- package/src/injected/BloctoInjected.cjs +6 -6
- package/src/injected/BloctoInjected.d.ts +4 -4
- package/src/injected/BloctoInjected.js +6 -6
- package/src/injected/BraveEvm.cjs +6 -6
- package/src/injected/BraveEvm.d.ts +4 -4
- package/src/injected/BraveEvm.js +6 -6
- package/src/injected/Dawn.cjs +6 -6
- package/src/injected/Dawn.d.ts +4 -4
- package/src/injected/Dawn.js +6 -6
- package/src/injected/ExodusEvm.cjs +8 -8
- package/src/injected/ExodusEvm.d.ts +5 -5
- package/src/injected/ExodusEvm.js +7 -7
- package/src/injected/Frame.cjs +6 -6
- package/src/injected/Frame.d.ts +4 -4
- package/src/injected/Frame.js +6 -6
- package/src/injected/GameStop.cjs +6 -6
- package/src/injected/GameStop.d.ts +4 -4
- package/src/injected/GameStop.js +6 -6
- package/src/injected/InjectedWalletBase.cjs +79 -65
- package/src/injected/InjectedWalletBase.d.ts +286 -24
- package/src/injected/InjectedWalletBase.js +79 -65
- package/src/injected/LegacyInjectedWalletBase.cjs +83 -0
- package/src/injected/LegacyInjectedWalletBase.d.ts +24 -0
- package/src/injected/LegacyInjectedWalletBase.js +81 -0
- package/src/injected/Opera.cjs +6 -6
- package/src/injected/Opera.d.ts +4 -4
- package/src/injected/Opera.js +6 -6
- package/src/injected/PhantomEvm.cjs +28 -28
- package/src/injected/PhantomEvm.d.ts +5 -5
- package/src/injected/PhantomEvm.js +28 -28
- package/src/injected/Rabby.cjs +8 -8
- package/src/injected/Rabby.d.ts +5 -5
- package/src/injected/Rabby.js +7 -7
- package/src/injected/Superb.cjs +6 -6
- package/src/injected/Superb.d.ts +4 -4
- package/src/injected/Superb.js +6 -6
- package/src/injected/Trust.cjs +8 -8
- package/src/injected/Trust.d.ts +5 -5
- package/src/injected/Trust.js +7 -7
- package/src/injected/Zerion.cjs +8 -8
- package/src/injected/Zerion.d.ts +5 -5
- package/src/injected/Zerion.js +7 -7
- package/src/injected/fetchInjectedWalletConnectors.cjs +33 -0
- package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
- package/src/injected/fetchInjectedWalletConnectors.js +29 -0
- package/src/injected/index.d.ts +13 -16
- package/src/injected/legacyInjectedWallets.cjs +48 -0
- package/src/injected/legacyInjectedWallets.d.ts +3 -0
- package/src/injected/legacyInjectedWallets.js +43 -0
- package/src/legacyEthProviderHelper.cjs +187 -0
- package/src/legacyEthProviderHelper.d.ts +34 -0
- package/src/legacyEthProviderHelper.js +183 -0
- package/src/polyfills.cjs +11 -11
- package/src/polyfills.d.ts +1 -1
- package/src/polyfills.js +11 -11
- package/src/types.d.ts +37 -24
- package/src/utils/eventListenerHandlers.cjs +34 -0
- package/src/utils/eventListenerHandlers.d.ts +8 -0
- package/src/utils/eventListenerHandlers.js +30 -0
- package/src/utils/findEvmNetwork.cjs +13 -13
- package/src/utils/findEvmNetwork.d.ts +6 -6
- package/src/utils/findEvmNetwork.js +13 -13
- package/src/utils/isString.d.ts +1 -1
- package/src/utils/isUnsupportedProviderError/index.d.ts +1 -1
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +6 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +6 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +6 -6
- package/src/utils/last.d.ts +1 -1
- package/src/utils/parseIntSafe.cjs +13 -13
- package/src/utils/parseIntSafe.d.ts +1 -1
- package/src/utils/parseIntSafe.js +13 -13
- package/src/walletConnect/client/client.cjs +179 -176
- package/src/walletConnect/client/client.d.ts +17 -17
- package/src/walletConnect/client/client.js +179 -176
- package/src/walletConnect/client/index.d.ts +1 -1
- package/src/walletConnect/client/types.d.ts +4 -4
- package/src/walletConnect/fetchWalletConnectWallets.cjs +37 -52
- package/src/walletConnect/fetchWalletConnectWallets.d.ts +9 -10
- package/src/walletConnect/fetchWalletConnectWallets.js +38 -52
- package/src/walletConnect/index.d.ts +3 -3
- package/src/walletConnect/walletConnect.cjs +131 -130
- package/src/walletConnect/walletConnect.d.ts +52 -50
- package/src/walletConnect/walletConnect.js +131 -130
- package/src/walletConnect/walletConnectV2.cjs +419 -374
- package/src/walletConnect/walletConnectV2.d.ts +326 -61
- package/src/walletConnect/walletConnectV2.js +420 -375
- package/src/injected/MetaMask.cjs +0 -15
- package/src/injected/MetaMask.d.ts +0 -5
- package/src/injected/MetaMask.js +0 -11
- package/src/injected/OKX.cjs +0 -15
- package/src/injected/OKX.d.ts +0 -5
- package/src/injected/OKX.js +0 -11
- package/src/injected/UnknownInjectedWallet.cjs +0 -14
- package/src/injected/UnknownInjectedWallet.d.ts +0 -4
- package/src/injected/UnknownInjectedWallet.js +0 -10
- package/src/injected/index.cjs +0 -53
- package/src/injected/index.js +0 -49
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __rest, __awaiter } from '../../_virtual/_tslib.js';
|
|
2
2
|
import WalletConnectProvider from '@walletconnect/ethereum-provider';
|
|
3
|
-
import {
|
|
3
|
+
import { createWalletClient, custom } from 'viem';
|
|
4
4
|
import { normalizeWalletName, getDeepLink } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
6
6
|
import { isMobile, DynamicError } from '@dynamic-labs/utils';
|
|
@@ -8,135 +8,136 @@ import { EthWalletConnector } from '../EthWalletConnector.js';
|
|
|
8
8
|
import { INFURA_ID } from '../constants.js';
|
|
9
9
|
import { initClient, setupWalletConnectEventListeners, teardownWalletConnectEventListeners, fetchWalletConnectEVMPublicAddress, signWalletConnectPersonalMessage, killWalletConnectSession } from './client/client.js';
|
|
10
10
|
|
|
11
|
-
class WalletConnect extends EthWalletConnector {
|
|
12
|
-
constructor(_a) {
|
|
13
|
-
var { walletConnectV1Bridge, walletName } = _a, props = __rest(_a, ["walletConnectV1Bridge", "walletName"]);
|
|
14
|
-
super(props);
|
|
15
|
-
this.supportedChains = ['EVM', 'ETH'];
|
|
16
|
-
this.connectedChain = 'EVM';
|
|
17
|
-
this.bridge = 'https://bridge.walletconnect.org';
|
|
18
|
-
this.canConnectViaQrCode = true;
|
|
19
|
-
this.isWalletConnect = true;
|
|
20
|
-
this.switchNetworkOnlyFromWallet = false;
|
|
21
|
-
this.name = walletName;
|
|
22
|
-
if (walletConnectV1Bridge) {
|
|
23
|
-
this.bridge = walletConnectV1Bridge;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
uri: this.getClient().uri,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
signMessage(messageToSign) {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
return signWalletConnectPersonalMessage(messageToSign, getWalletBookWallet(this.walletBook, this.
|
|
86
|
-
// don't call
|
|
87
|
-
() => __awaiter(this, void 0, void 0, function* () { return this.
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
endSession() {
|
|
91
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
killWalletConnectSession(this.getClient());
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
providerSwitchNetwork({ network, provider, }) {
|
|
96
|
-
const _super = Object.create(null, {
|
|
97
|
-
providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
|
|
98
|
-
});
|
|
99
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const client = this.getClient();
|
|
101
|
-
const currentNetworkId = yield this.getNetwork();
|
|
102
|
-
if (currentNetworkId && currentNetworkId === network.chainId) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (this.switchNetworkOnlyFromWallet !== undefined &&
|
|
106
|
-
this.switchNetworkOnlyFromWallet) {
|
|
107
|
-
throw new DynamicError('Network switching is only supported through the wallet');
|
|
108
|
-
}
|
|
109
|
-
if (!this.supportsNetworkSwitching()) {
|
|
110
|
-
throw new DynamicError('Network switching not supported');
|
|
111
|
-
}
|
|
112
|
-
if (!client) {
|
|
113
|
-
throw new DynamicError('Client not found');
|
|
114
|
-
}
|
|
115
|
-
if (isMobile()) {
|
|
116
|
-
const deepLink = getDeepLink({
|
|
117
|
-
metadata: getWalletBookWallet(this.walletBook, this.
|
|
118
|
-
mode: 'regular',
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
11
|
+
class WalletConnect extends EthWalletConnector {
|
|
12
|
+
constructor(_a) {
|
|
13
|
+
var { walletConnectV1Bridge, walletName } = _a, props = __rest(_a, ["walletConnectV1Bridge", "walletName"]);
|
|
14
|
+
super(props);
|
|
15
|
+
this.supportedChains = ['EVM', 'ETH'];
|
|
16
|
+
this.connectedChain = 'EVM';
|
|
17
|
+
this.bridge = 'https://bridge.walletconnect.org';
|
|
18
|
+
this.canConnectViaQrCode = true;
|
|
19
|
+
this.isWalletConnect = true;
|
|
20
|
+
this.switchNetworkOnlyFromWallet = false;
|
|
21
|
+
this.name = walletName;
|
|
22
|
+
if (walletConnectV1Bridge) {
|
|
23
|
+
this.bridge = walletConnectV1Bridge;
|
|
24
|
+
}
|
|
25
|
+
this.deepLinkPreference = props.deepLinkPreference || 'native';
|
|
26
|
+
}
|
|
27
|
+
getClient() {
|
|
28
|
+
if (this.client) {
|
|
29
|
+
return this.client;
|
|
30
|
+
}
|
|
31
|
+
this.client = initClient(normalizeWalletName(this.name), this.bridge, this.clientOptions);
|
|
32
|
+
return this.client;
|
|
33
|
+
}
|
|
34
|
+
supportsNetworkSwitching() {
|
|
35
|
+
if (this.connectedChain === 'EVM') {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const client = this.getClient();
|
|
40
|
+
return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
setupEventListeners() {
|
|
44
|
+
setupWalletConnectEventListeners(this, this.getClient());
|
|
45
|
+
}
|
|
46
|
+
teardownEventListeners() {
|
|
47
|
+
teardownWalletConnectEventListeners(this.getClient());
|
|
48
|
+
}
|
|
49
|
+
getWalletClient() {
|
|
50
|
+
const client = this.getClient();
|
|
51
|
+
return client
|
|
52
|
+
? createWalletClient({
|
|
53
|
+
transport: custom(new WalletConnectProvider({
|
|
54
|
+
connector: client,
|
|
55
|
+
infuraId: INFURA_ID,
|
|
56
|
+
rpc: this.evmNetworkRpcMap(),
|
|
57
|
+
})),
|
|
58
|
+
})
|
|
59
|
+
: undefined;
|
|
60
|
+
}
|
|
61
|
+
fetchPublicAddress(opts) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return fetchWalletConnectEVMPublicAddress(getWalletBookWallet(this.walletBook, this.key), this.getClient(), this.deepLinkPreference, Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
|
|
64
|
+
var _a;
|
|
65
|
+
(_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
|
|
66
|
+
this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
|
|
67
|
+
} }));
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
getDeepLink() {
|
|
71
|
+
var _a;
|
|
72
|
+
const wallet = getWalletBookWallet(this.walletBook, this.key);
|
|
73
|
+
if (!isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
return getDeepLink({
|
|
77
|
+
metadata: wallet,
|
|
78
|
+
mode: 'regular',
|
|
79
|
+
preference: this.deepLinkPreference,
|
|
80
|
+
uri: this.getClient().uri,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
signMessage(messageToSign) {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
return signWalletConnectPersonalMessage(messageToSign, getWalletBookWallet(this.walletBook, this.key), this.getClient(), this.deepLinkPreference,
|
|
86
|
+
// don't call getPublicClient until we really need to
|
|
87
|
+
() => __awaiter(this, void 0, void 0, function* () { return this.getPublicClient(); }));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
endSession() {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
killWalletConnectSession(this.getClient());
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
providerSwitchNetwork({ network, provider, }) {
|
|
96
|
+
const _super = Object.create(null, {
|
|
97
|
+
providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
|
|
98
|
+
});
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
const client = this.getClient();
|
|
101
|
+
const currentNetworkId = yield this.getNetwork();
|
|
102
|
+
if (currentNetworkId && currentNetworkId === network.chainId) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (this.switchNetworkOnlyFromWallet !== undefined &&
|
|
106
|
+
this.switchNetworkOnlyFromWallet) {
|
|
107
|
+
throw new DynamicError('Network switching is only supported through the wallet');
|
|
108
|
+
}
|
|
109
|
+
if (!this.supportsNetworkSwitching()) {
|
|
110
|
+
throw new DynamicError('Network switching not supported');
|
|
111
|
+
}
|
|
112
|
+
if (!client) {
|
|
113
|
+
throw new DynamicError('Client not found');
|
|
114
|
+
}
|
|
115
|
+
if (isMobile()) {
|
|
116
|
+
const deepLink = getDeepLink({
|
|
117
|
+
metadata: getWalletBookWallet(this.walletBook, this.key),
|
|
118
|
+
mode: 'regular',
|
|
119
|
+
preference: this.deepLinkPreference,
|
|
120
|
+
uri: client.uri,
|
|
121
|
+
});
|
|
122
|
+
window.location.href = deepLink;
|
|
123
|
+
}
|
|
124
|
+
return _super.providerSwitchNetwork.call(this, { network, provider });
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
getConnectedAccounts() {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const client = this.getClient();
|
|
130
|
+
if (!client.connected)
|
|
131
|
+
return [];
|
|
132
|
+
return client.accounts;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
getSession() {
|
|
136
|
+
var _a;
|
|
137
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
return (_a = this.client) === null || _a === void 0 ? void 0 : _a.session;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
export { WalletConnect };
|