@dynamic-labs/ethereum-core 3.9.9 → 3.9.10
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 +8 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +8 -8
- package/src/connector/EthereumWalletConnector.cjs +15 -15
- package/src/connector/EthereumWalletConnector.d.ts +3 -2
- package/src/connector/EthereumWalletConnector.js +15 -15
- package/src/rpc/RpcProvidersEthereum/RpcProvidersEthereum.cjs +5 -2
- package/src/rpc/RpcProvidersEthereum/RpcProvidersEthereum.d.ts +5 -2
- package/src/rpc/RpcProvidersEthereum/RpcProvidersEthereum.js +5 -2
- package/src/rpc/index.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
|
|
2
|
+
### [3.9.10](https://github.com/dynamic-labs/DynamicAuth/compare/v3.9.9...v3.9.10) (2025-01-16)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add EthereumWalletConnectorsWithConfig ([#7796](https://github.com/dynamic-labs/DynamicAuth/issues/7796)) ([#7819](https://github.com/dynamic-labs/DynamicAuth/issues/7819)) ([510f9ac](https://github.com/dynamic-labs/DynamicAuth/commit/510f9acbd7ffa7fa767d45de22c95e03186d542d))
|
|
8
|
+
* add new super event that aggregates all user wallet events ([#7823](https://github.com/dynamic-labs/DynamicAuth/issues/7823)) ([ffe4fe7](https://github.com/dynamic-labs/DynamicAuth/commit/ffe4fe7c4ff4d0f12dee588fce84983c7b567d5e)), closes [#7797](https://github.com/dynamic-labs/DynamicAuth/issues/7797) [#7798](https://github.com/dynamic-labs/DynamicAuth/issues/7798)
|
|
9
|
+
|
|
2
10
|
### [3.9.9](https://github.com/dynamic-labs/DynamicAuth/compare/v3.9.8...v3.9.9) (2025-01-15)
|
|
3
11
|
|
|
4
12
|
|
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": "3.9.
|
|
3
|
+
"version": "3.9.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"viem": "^2.7.12",
|
|
33
|
-
"@dynamic-labs/assert-package-version": "3.9.
|
|
34
|
-
"@dynamic-labs/logger": "3.9.
|
|
35
|
-
"@dynamic-labs/rpc-providers": "3.9.
|
|
36
|
-
"@dynamic-labs/types": "3.9.
|
|
37
|
-
"@dynamic-labs/utils": "3.9.
|
|
38
|
-
"@dynamic-labs/wallet-book": "3.9.
|
|
39
|
-
"@dynamic-labs/wallet-connector-core": "3.9.
|
|
33
|
+
"@dynamic-labs/assert-package-version": "3.9.10",
|
|
34
|
+
"@dynamic-labs/logger": "3.9.10",
|
|
35
|
+
"@dynamic-labs/rpc-providers": "3.9.10",
|
|
36
|
+
"@dynamic-labs/types": "3.9.10",
|
|
37
|
+
"@dynamic-labs/utils": "3.9.10",
|
|
38
|
+
"@dynamic-labs/wallet-book": "3.9.10",
|
|
39
|
+
"@dynamic-labs/wallet-connector-core": "3.9.10"
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -18,6 +18,21 @@ var getNameservice = require('../utils/getNameservice/getNameservice.cjs');
|
|
|
18
18
|
var EthereumWallet = require('../wallet/EthereumWallet.cjs');
|
|
19
19
|
|
|
20
20
|
class EthereumWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
21
|
+
constructor(props) {
|
|
22
|
+
var _a, _b;
|
|
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.evmNetworks = utils.parseEvmNetworks(props.evmNetworks);
|
|
33
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
34
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders((_b = props.providersConfig) !== null && _b !== void 0 ? _b : {});
|
|
35
|
+
}
|
|
21
36
|
getPublicClient() {
|
|
22
37
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
38
|
var _a, _b;
|
|
@@ -37,21 +52,6 @@ class EthereumWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
37
52
|
return (_b = this.chainRpcProviders.getEvmProviderByChainId(providers, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
38
53
|
});
|
|
39
54
|
}
|
|
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
55
|
getNetwork() {
|
|
56
56
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
57
57
|
const provider = this.getWalletClient();
|
|
@@ -2,7 +2,7 @@ import { Account, Hex, PublicClient, Transport, Chain as ViemChain, WalletClient
|
|
|
2
2
|
import { EvmNetwork, GenericNetwork, IUITransaction, TransactionReceipt } from '@dynamic-labs/types';
|
|
3
3
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
4
4
|
import { ISendBalanceWalletConnector, NameServiceData, WalletConnectorBase, WalletMetadata } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
-
import { IChainRpcProviders } from '../rpc';
|
|
5
|
+
import { IChainRpcProviders, RegisterEvmProvidersConfig } from '../rpc';
|
|
6
6
|
import { EthereumWallet } from '../wallet';
|
|
7
7
|
export type SwitchNetworkOps = {
|
|
8
8
|
networkChainId?: number;
|
|
@@ -16,6 +16,7 @@ export type EthereumWalletConnectorOpts = {
|
|
|
16
16
|
evmNetworks: GenericNetwork[];
|
|
17
17
|
walletBook: WalletBookSchema;
|
|
18
18
|
metadata?: WalletMetadata;
|
|
19
|
+
providersConfig?: RegisterEvmProvidersConfig;
|
|
19
20
|
};
|
|
20
21
|
export declare abstract class EthereumWalletConnector extends WalletConnectorBase<typeof EthereumWallet> implements ISendBalanceWalletConnector {
|
|
21
22
|
ChainWallet: typeof EthereumWallet;
|
|
@@ -23,8 +24,8 @@ export declare abstract class EthereumWalletConnector extends WalletConnectorBas
|
|
|
23
24
|
private activeAccount;
|
|
24
25
|
private activeChain;
|
|
25
26
|
abstract getWalletClient(chainId?: string): WalletClient<Transport, ViemChain, Account> | undefined;
|
|
26
|
-
getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
|
|
27
27
|
constructor(props: EthereumWalletConnectorOpts);
|
|
28
|
+
getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
|
|
28
29
|
getNetwork(): Promise<number | undefined>;
|
|
29
30
|
getNameService(address: string): Promise<NameServiceData | undefined>;
|
|
30
31
|
isTestnet(): Promise<boolean>;
|
|
@@ -14,6 +14,21 @@ import { getNameservice } from '../utils/getNameservice/getNameservice.js';
|
|
|
14
14
|
import { EthereumWallet } from '../wallet/EthereumWallet.js';
|
|
15
15
|
|
|
16
16
|
class EthereumWalletConnector extends WalletConnectorBase {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
var _a, _b;
|
|
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.evmNetworks = parseEvmNetworks(props.evmNetworks);
|
|
29
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
30
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders((_b = props.providersConfig) !== null && _b !== void 0 ? _b : {});
|
|
31
|
+
}
|
|
17
32
|
getPublicClient() {
|
|
18
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
19
34
|
var _a, _b;
|
|
@@ -33,21 +48,6 @@ class EthereumWalletConnector extends WalletConnectorBase {
|
|
|
33
48
|
return (_b = this.chainRpcProviders.getEvmProviderByChainId(providers, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
34
49
|
});
|
|
35
50
|
}
|
|
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
51
|
getNetwork() {
|
|
52
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
53
|
const provider = this.getWalletClient();
|
|
@@ -16,7 +16,10 @@ rpcProviders.ChainRpcProviders.getEvmProviderByChainId = (rpcProviders, chainId)
|
|
|
16
16
|
const provider = (_a = rpcProviders['evm']) === null || _a === void 0 ? void 0 : _a.find((provider) => provider.chainId === chainId);
|
|
17
17
|
return provider;
|
|
18
18
|
};
|
|
19
|
-
rpcProviders.ChainRpcProviders.registerEvmProviders = () => {
|
|
19
|
+
rpcProviders.ChainRpcProviders.registerEvmProviders = (providersConfig) => {
|
|
20
|
+
if (!providersConfig) {
|
|
21
|
+
throw new Error('providersConfig is required');
|
|
22
|
+
}
|
|
20
23
|
rpcProviders.ChainRpcProviders.registerChainProviders(rpcProviders.ProviderChain.EVM, (config) => {
|
|
21
24
|
const rpcProviders = {};
|
|
22
25
|
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
@@ -25,7 +28,7 @@ rpcProviders.ChainRpcProviders.registerEvmProviders = () => {
|
|
|
25
28
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
26
29
|
const provider = viem.createPublicClient({
|
|
27
30
|
chain: getOrMapViemChain.getOrMapViemChain(network),
|
|
28
|
-
transport: viem.http(rpcUrl),
|
|
31
|
+
transport: viem.http(rpcUrl, providersConfig === null || providersConfig === void 0 ? void 0 : providersConfig.publicClientHttpTransportConfig),
|
|
29
32
|
});
|
|
30
33
|
return {
|
|
31
34
|
chainId: network.chainId,
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { Chain, PublicClient, Transport } from 'viem';
|
|
1
|
+
import { Chain, PublicClient, Transport, HttpTransportConfig } from 'viem';
|
|
2
2
|
import { RpcProviders } from '@dynamic-labs/rpc-providers';
|
|
3
3
|
type IEvmRpcProvider = {
|
|
4
4
|
chainId: number;
|
|
5
5
|
chainName: string;
|
|
6
6
|
provider: PublicClient<Transport, Chain>;
|
|
7
7
|
};
|
|
8
|
+
export type RegisterEvmProvidersConfig = {
|
|
9
|
+
publicClientHttpTransportConfig?: HttpTransportConfig;
|
|
10
|
+
};
|
|
8
11
|
declare module '@dynamic-labs/rpc-providers' {
|
|
9
12
|
type EvmRpcProvider = IEvmRpcProvider;
|
|
10
13
|
interface RpcProviderLookup {
|
|
@@ -12,7 +15,7 @@ declare module '@dynamic-labs/rpc-providers' {
|
|
|
12
15
|
}
|
|
13
16
|
interface IChainRpcProviders {
|
|
14
17
|
getEvmProviderByChainId(rpcProviders: RpcProviders, chainId: number): EvmRpcProvider | undefined;
|
|
15
|
-
registerEvmProviders(): void;
|
|
18
|
+
registerEvmProviders(providersConfig: RegisterEvmProvidersConfig): void;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
export {};
|
|
@@ -14,7 +14,10 @@ ChainRpcProviders.getEvmProviderByChainId = (rpcProviders, chainId) => {
|
|
|
14
14
|
const provider = (_a = rpcProviders['evm']) === null || _a === void 0 ? void 0 : _a.find((provider) => provider.chainId === chainId);
|
|
15
15
|
return provider;
|
|
16
16
|
};
|
|
17
|
-
ChainRpcProviders.registerEvmProviders = () => {
|
|
17
|
+
ChainRpcProviders.registerEvmProviders = (providersConfig) => {
|
|
18
|
+
if (!providersConfig) {
|
|
19
|
+
throw new Error('providersConfig is required');
|
|
20
|
+
}
|
|
18
21
|
ChainRpcProviders.registerChainProviders(ProviderChain.EVM, (config) => {
|
|
19
22
|
const rpcProviders = {};
|
|
20
23
|
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
@@ -23,7 +26,7 @@ ChainRpcProviders.registerEvmProviders = () => {
|
|
|
23
26
|
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
24
27
|
const provider = createPublicClient({
|
|
25
28
|
chain: getOrMapViemChain(network),
|
|
26
|
-
transport: http(rpcUrl),
|
|
29
|
+
transport: http(rpcUrl, providersConfig === null || providersConfig === void 0 ? void 0 : providersConfig.publicClientHttpTransportConfig),
|
|
27
30
|
});
|
|
28
31
|
return {
|
|
29
32
|
chainId: network.chainId,
|
package/src/rpc/index.d.ts
CHANGED