@dynamic-labs/ethereum-core 4.0.0-alpha.9 → 4.0.0
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 +483 -1
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +10 -10
- package/src/connector/{EthWalletConnector.cjs → EthereumWalletConnector.cjs} +38 -23
- package/src/connector/EthereumWalletConnector.d.ts +7714 -0
- package/src/connector/{EthWalletConnector.js → EthereumWalletConnector.js} +39 -24
- package/src/connector/createConnector/createConnector.cjs +103 -0
- package/src/connector/createConnector/createConnector.d.ts +23 -0
- package/src/connector/createConnector/createConnector.js +99 -0
- package/src/connector/createConnector/index.d.ts +1 -0
- package/src/connector/index.d.ts +2 -1
- package/src/connector/isEthWalletConnector/isEthWalletConnector.d.ts +2 -2
- package/src/index.cjs +4 -2
- package/src/index.js +2 -1
- package/src/rpc/RpcProvidersEthereum/RpcProvidersEthereum.cjs +0 -5
- package/src/rpc/RpcProvidersEthereum/RpcProvidersEthereum.js +0 -5
- package/src/rpc/evmProvidersSelector/evmProvidersSelector.cjs +0 -1
- package/src/rpc/evmProvidersSelector/evmProvidersSelector.d.ts +1 -1
- package/src/rpc/evmProvidersSelector/evmProvidersSelector.js +0 -1
- package/src/utils/viem/ViemRpcUiTransaction/ViemRpcUiTransaction.cjs +9 -3
- package/src/utils/viem/ViemRpcUiTransaction/ViemRpcUiTransaction.d.ts +2 -1
- package/src/utils/viem/ViemRpcUiTransaction/ViemRpcUiTransaction.js +9 -3
- package/src/utils/viem/ViemUiTransaction/ViemUiTransaction.cjs +5 -0
- package/src/utils/viem/ViemUiTransaction/ViemUiTransaction.d.ts +1 -0
- package/src/utils/viem/ViemUiTransaction/ViemUiTransaction.js +5 -0
- package/src/utils/viem/createAccountWithUiConfirmation/createAccountWithUiConfirmation.d.ts +223 -1
- package/src/utils/viem/createViemUiTransaction/createViemUiTransaction.cjs +1 -0
- package/src/utils/viem/createViemUiTransaction/createViemUiTransaction.js +1 -0
- package/src/utils/viem/getTransactionRecipient.cjs +25 -0
- package/src/utils/viem/getTransactionRecipient.d.ts +2 -0
- package/src/utils/viem/getTransactionRecipient.js +21 -0
- package/src/utils/viem/interceptTransport/interceptTransport.cjs +3 -0
- package/src/utils/viem/interceptTransport/interceptTransport.js +3 -0
- package/src/wallet/EthereumWallet.cjs +20 -1
- package/src/wallet/EthereumWallet.d.ts +12 -2
- package/src/wallet/EthereumWallet.js +21 -2
- package/src/connector/EthWalletConnector.d.ts +0 -3090
|
@@ -17,7 +17,25 @@ var findEvmNetwork = require('../utils/findEvmNetwork/findEvmNetwork.cjs');
|
|
|
17
17
|
var getNameservice = require('../utils/getNameservice/getNameservice.cjs');
|
|
18
18
|
var EthereumWallet = require('../wallet/EthereumWallet.cjs');
|
|
19
19
|
|
|
20
|
-
class
|
|
20
|
+
class EthereumWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
21
|
+
constructor(props) {
|
|
22
|
+
var _a;
|
|
23
|
+
super(props);
|
|
24
|
+
this.supportedChains = ['EVM', 'ETH'];
|
|
25
|
+
this.connectedChain = 'EVM';
|
|
26
|
+
this.ChainWallet = EthereumWallet.EthereumWallet;
|
|
27
|
+
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
28
|
+
var _a;
|
|
29
|
+
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
30
|
+
? network.privateCustomerRpcUrls
|
|
31
|
+
: network.rpcUrls;
|
|
32
|
+
return acc;
|
|
33
|
+
}, {});
|
|
34
|
+
this.walletUiUtils = props.walletUiUtils;
|
|
35
|
+
this.evmNetworks = utils.parseEvmNetworks(props.evmNetworks);
|
|
36
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
37
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
38
|
+
}
|
|
21
39
|
getPublicClient() {
|
|
22
40
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
41
|
var _a, _b;
|
|
@@ -37,21 +55,6 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
37
55
|
return (_b = this.chainRpcProviders.getEvmProviderByChainId(providers, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
38
56
|
});
|
|
39
57
|
}
|
|
40
|
-
constructor(props) {
|
|
41
|
-
var _a;
|
|
42
|
-
super(props);
|
|
43
|
-
this.ChainWallet = EthereumWallet.EthereumWallet;
|
|
44
|
-
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
45
|
-
var _a;
|
|
46
|
-
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
47
|
-
? network.privateCustomerRpcUrls
|
|
48
|
-
: network.rpcUrls;
|
|
49
|
-
return acc;
|
|
50
|
-
}, {});
|
|
51
|
-
this.evmNetworks = utils.parseEvmNetworks(props.evmNetworks);
|
|
52
|
-
this.chainRpcProviders = props.chainRpcProviders;
|
|
53
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
54
|
-
}
|
|
55
58
|
getNetwork() {
|
|
56
59
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
57
60
|
const provider = this.getWalletClient();
|
|
@@ -183,7 +186,7 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
183
186
|
}
|
|
184
187
|
providerSwitchNetwork(_a) {
|
|
185
188
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ network, provider, }) {
|
|
186
|
-
var _b, _c, _d, _e;
|
|
189
|
+
var _b, _c, _d, _e, _f;
|
|
187
190
|
const { chainId } = network;
|
|
188
191
|
const currentNetworkId = yield this.getNetwork();
|
|
189
192
|
if (currentNetworkId && currentNetworkId === chainId) {
|
|
@@ -194,7 +197,7 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
194
197
|
throw new utils.DynamicError('Network switching is not supported');
|
|
195
198
|
}
|
|
196
199
|
const viemChain = getOrMapViemChain.getOrMapViemChain(network);
|
|
197
|
-
yield provider.switchChain(viemChain);
|
|
200
|
+
yield provider.switchChain({ id: viemChain.id });
|
|
198
201
|
if (this.key === 'magiceden') {
|
|
199
202
|
const newChainId = yield provider.getChainId();
|
|
200
203
|
this.emit('chainChange', { chain: newChainId.toString() });
|
|
@@ -204,16 +207,19 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
204
207
|
}
|
|
205
208
|
}
|
|
206
209
|
catch (error) {
|
|
210
|
+
if ((_b = error.details) === null || _b === void 0 ? void 0 : _b.includes('"wallet_switchEthereumChain" not implemented')) {
|
|
211
|
+
throw new utils.DynamicError('Network switching is not available at this time. The user should manually switch network in their wallet');
|
|
212
|
+
}
|
|
207
213
|
// we need to check for unrecognized chain error first because it also contains 'rejected' in message
|
|
208
214
|
if (error.code === 4902 ||
|
|
209
|
-
((
|
|
215
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Unrecognized chain')) ||
|
|
210
216
|
// https://github.com/MetaMask/metamask-mobile/issues/3312#issuecomment-1065923294
|
|
211
|
-
((
|
|
217
|
+
((_e = (_d = error.data) === null || _d === void 0 ? void 0 : _d.orginalError) === null || _e === void 0 ? void 0 : _e.code) === 4902) {
|
|
212
218
|
// error code indicates the chain has not been added yet
|
|
213
219
|
// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
|
|
214
220
|
return this.providerAddNetwork({ network, provider });
|
|
215
221
|
}
|
|
216
|
-
else if (((
|
|
222
|
+
else if (((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('rejected')) ||
|
|
217
223
|
(typeof error === 'string' && error.includes('rejected'))) {
|
|
218
224
|
throw new utils.DynamicError("User rejected the wallet's request to switch network");
|
|
219
225
|
}
|
|
@@ -227,7 +233,16 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
227
233
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ network, provider, }) {
|
|
228
234
|
var _b;
|
|
229
235
|
try {
|
|
230
|
-
|
|
236
|
+
if (utils.isMobile()) {
|
|
237
|
+
yield this.walletUiUtils.addNetwork({
|
|
238
|
+
handler: () => provider.addChain({ chain: getOrMapViemChain.getOrMapViemChain(network) }),
|
|
239
|
+
network,
|
|
240
|
+
walletConnector: this,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
yield provider.addChain({ chain: getOrMapViemChain.getOrMapViemChain(network) });
|
|
245
|
+
}
|
|
231
246
|
}
|
|
232
247
|
catch (error) {
|
|
233
248
|
if (((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('rejected')) ||
|
|
@@ -283,4 +298,4 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
283
298
|
}
|
|
284
299
|
}
|
|
285
300
|
|
|
286
|
-
exports.
|
|
301
|
+
exports.EthereumWalletConnector = EthereumWalletConnector;
|