@dynamic-labs/ethereum-core 4.0.0-alpha.13 → 4.0.0-alpha.15
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
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.0.0-alpha.15](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.14...v4.0.0-alpha.15) (2024-10-19)
|
|
3
|
+
|
|
4
|
+
## [4.0.0-alpha.14](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.13...v4.0.0-alpha.14) (2024-10-18)
|
|
5
|
+
|
|
2
6
|
## [4.0.0-alpha.13](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.12...v4.0.0-alpha.13) (2024-10-18)
|
|
3
7
|
|
|
4
8
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/ethereum-core",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.15",
|
|
4
4
|
"description": "Core package for utilities and types for viem",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
},
|
|
19
19
|
"homepage": "https://www.dynamic.xyz/",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
21
|
+
"@dynamic-labs/sdk-api-core": "0.0.549"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"viem": "^2.7.6",
|
|
25
|
-
"@dynamic-labs/assert-package-version": "4.0.0-alpha.
|
|
26
|
-
"@dynamic-labs/logger": "4.0.0-alpha.
|
|
27
|
-
"@dynamic-labs/rpc-providers": "4.0.0-alpha.
|
|
28
|
-
"@dynamic-labs/types": "4.0.0-alpha.
|
|
29
|
-
"@dynamic-labs/utils": "4.0.0-alpha.
|
|
30
|
-
"@dynamic-labs/wallet-book": "4.0.0-alpha.
|
|
31
|
-
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.
|
|
25
|
+
"@dynamic-labs/assert-package-version": "4.0.0-alpha.15",
|
|
26
|
+
"@dynamic-labs/logger": "4.0.0-alpha.15",
|
|
27
|
+
"@dynamic-labs/rpc-providers": "4.0.0-alpha.15",
|
|
28
|
+
"@dynamic-labs/types": "4.0.0-alpha.15",
|
|
29
|
+
"@dynamic-labs/utils": "4.0.0-alpha.15",
|
|
30
|
+
"@dynamic-labs/wallet-book": "4.0.0-alpha.15",
|
|
31
|
+
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.15"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -18,6 +18,22 @@ var getNameservice = require('../utils/getNameservice/getNameservice.cjs');
|
|
|
18
18
|
var EthereumWallet = require('../wallet/EthereumWallet.cjs');
|
|
19
19
|
|
|
20
20
|
class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
21
|
+
constructor(props) {
|
|
22
|
+
var _a;
|
|
23
|
+
super(props);
|
|
24
|
+
this.ChainWallet = EthereumWallet.EthereumWallet;
|
|
25
|
+
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
26
|
+
var _a;
|
|
27
|
+
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
28
|
+
? network.privateCustomerRpcUrls
|
|
29
|
+
: network.rpcUrls;
|
|
30
|
+
return acc;
|
|
31
|
+
}, {});
|
|
32
|
+
this.walletUiUtils = props.walletUiUtils;
|
|
33
|
+
this.evmNetworks = utils.parseEvmNetworks(props.evmNetworks);
|
|
34
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
35
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
36
|
+
}
|
|
21
37
|
getPublicClient() {
|
|
22
38
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
39
|
var _a, _b;
|
|
@@ -37,21 +53,6 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
37
53
|
return (_b = this.chainRpcProviders.getEvmProviderByChainId(providers, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
38
54
|
});
|
|
39
55
|
}
|
|
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
56
|
getNetwork() {
|
|
56
57
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
57
58
|
const provider = this.getWalletClient();
|
|
@@ -230,7 +231,16 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
230
231
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ network, provider, }) {
|
|
231
232
|
var _b;
|
|
232
233
|
try {
|
|
233
|
-
|
|
234
|
+
if (utils.isMobile()) {
|
|
235
|
+
yield this.walletUiUtils.addNetwork({
|
|
236
|
+
handler: () => provider.addChain({ chain: getOrMapViemChain.getOrMapViemChain(network) }),
|
|
237
|
+
network,
|
|
238
|
+
walletKey: this.key,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
yield provider.addChain({ chain: getOrMapViemChain.getOrMapViemChain(network) });
|
|
243
|
+
}
|
|
234
244
|
}
|
|
235
245
|
catch (error) {
|
|
236
246
|
if (((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('rejected')) ||
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Account, Hex, PublicClient, Transport, Chain as ViemChain, WalletClient } from 'viem';
|
|
2
|
-
import { EvmNetwork, GenericNetwork, IUITransaction, TransactionReceipt } from '@dynamic-labs/types';
|
|
2
|
+
import { EvmNetwork, GenericNetwork, IUITransaction, TransactionReceipt, WalletUiUtils } from '@dynamic-labs/types';
|
|
3
3
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
4
|
-
import { ISendBalanceWalletConnector, NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { ISendBalanceWalletConnector, InternalWalletConnector, NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { IChainRpcProviders } from '../rpc';
|
|
6
6
|
import { EthereumWallet } from '../wallet';
|
|
7
7
|
export type SwitchNetworkOps = {
|
|
@@ -15,15 +15,17 @@ export type EthWalletConnectorOpts = {
|
|
|
15
15
|
chainRpcProviders: IChainRpcProviders;
|
|
16
16
|
evmNetworks: GenericNetwork[];
|
|
17
17
|
walletBook: WalletBookSchema;
|
|
18
|
+
walletUiUtils: WalletUiUtils<InternalWalletConnector>;
|
|
18
19
|
};
|
|
19
20
|
export declare abstract class EthWalletConnector extends WalletConnectorBase<typeof EthereumWallet> implements ISendBalanceWalletConnector {
|
|
20
21
|
ChainWallet: typeof EthereumWallet;
|
|
21
22
|
evmNetworks: EvmNetwork[];
|
|
22
23
|
private activeAccount;
|
|
23
24
|
private activeChain;
|
|
25
|
+
private walletUiUtils;
|
|
24
26
|
abstract getWalletClient(chainId?: string): WalletClient<Transport, ViemChain, Account> | undefined;
|
|
25
|
-
getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
|
|
26
27
|
constructor(props: EthWalletConnectorOpts);
|
|
28
|
+
getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
|
|
27
29
|
getNetwork(): Promise<number | undefined>;
|
|
28
30
|
getNameService(address: string): Promise<NameServiceData | undefined>;
|
|
29
31
|
isTestnet(): Promise<boolean>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
3
|
import { getAddress, formatEther } from 'viem';
|
|
4
4
|
import { toAccount } from 'viem/accounts';
|
|
5
|
-
import { parseEvmNetworks, retryableFn, FALLBACK_UNDEFINED, DynamicError, UserRejectedRequestError } from '@dynamic-labs/utils';
|
|
5
|
+
import { parseEvmNetworks, retryableFn, FALLBACK_UNDEFINED, DynamicError, UserRejectedRequestError, isMobile } from '@dynamic-labs/utils';
|
|
6
6
|
import { WalletConnectorBase, logger } from '@dynamic-labs/wallet-connector-core';
|
|
7
7
|
import '../utils/logger.js';
|
|
8
8
|
import '../utils/viem/estimateL1Fee/opStack/estimateL1Fee.js';
|
|
@@ -14,6 +14,22 @@ import { getNameservice } from '../utils/getNameservice/getNameservice.js';
|
|
|
14
14
|
import { EthereumWallet } from '../wallet/EthereumWallet.js';
|
|
15
15
|
|
|
16
16
|
class EthWalletConnector extends WalletConnectorBase {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
var _a;
|
|
19
|
+
super(props);
|
|
20
|
+
this.ChainWallet = EthereumWallet;
|
|
21
|
+
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
22
|
+
var _a;
|
|
23
|
+
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
24
|
+
? network.privateCustomerRpcUrls
|
|
25
|
+
: network.rpcUrls;
|
|
26
|
+
return acc;
|
|
27
|
+
}, {});
|
|
28
|
+
this.walletUiUtils = props.walletUiUtils;
|
|
29
|
+
this.evmNetworks = parseEvmNetworks(props.evmNetworks);
|
|
30
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
31
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
32
|
+
}
|
|
17
33
|
getPublicClient() {
|
|
18
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
19
35
|
var _a, _b;
|
|
@@ -33,21 +49,6 @@ class EthWalletConnector extends WalletConnectorBase {
|
|
|
33
49
|
return (_b = this.chainRpcProviders.getEvmProviderByChainId(providers, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
34
50
|
});
|
|
35
51
|
}
|
|
36
|
-
constructor(props) {
|
|
37
|
-
var _a;
|
|
38
|
-
super(props);
|
|
39
|
-
this.ChainWallet = EthereumWallet;
|
|
40
|
-
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
41
|
-
var _a;
|
|
42
|
-
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
43
|
-
? network.privateCustomerRpcUrls
|
|
44
|
-
: network.rpcUrls;
|
|
45
|
-
return acc;
|
|
46
|
-
}, {});
|
|
47
|
-
this.evmNetworks = parseEvmNetworks(props.evmNetworks);
|
|
48
|
-
this.chainRpcProviders = props.chainRpcProviders;
|
|
49
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
50
|
-
}
|
|
51
52
|
getNetwork() {
|
|
52
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
54
|
const provider = this.getWalletClient();
|
|
@@ -226,7 +227,16 @@ class EthWalletConnector extends WalletConnectorBase {
|
|
|
226
227
|
return __awaiter(this, arguments, void 0, function* ({ network, provider, }) {
|
|
227
228
|
var _b;
|
|
228
229
|
try {
|
|
229
|
-
|
|
230
|
+
if (isMobile()) {
|
|
231
|
+
yield this.walletUiUtils.addNetwork({
|
|
232
|
+
handler: () => provider.addChain({ chain: getOrMapViemChain(network) }),
|
|
233
|
+
network,
|
|
234
|
+
walletKey: this.key,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
yield provider.addChain({ chain: getOrMapViemChain(network) });
|
|
239
|
+
}
|
|
230
240
|
}
|
|
231
241
|
catch (error) {
|
|
232
242
|
if (((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('rejected')) ||
|