@dynamic-labs/ethereum-aa 1.0.0-alpha.3 → 1.0.0-alpha.4
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 +7 -0
- package/package.json +7 -7
- package/src/ZeroDevConnector.cjs +13 -6
- package/src/ZeroDevConnector.d.ts +7 -0
- package/src/ZeroDevConnector.js +14 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
|
|
2
|
+
## [1.0.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v1.0.0-alpha.3...v1.0.0-alpha.4) (2023-11-28)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* update zerodev provider initialization ([#4015](https://github.com/dynamic-labs/DynamicAuth/issues/4015)) ([8faca00](https://github.com/dynamic-labs/DynamicAuth/commit/8faca00d414677adc5fecde451ca01da53fe9641))
|
|
8
|
+
|
|
2
9
|
## [1.0.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2023-11-28)
|
|
3
10
|
|
|
4
11
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/ethereum-aa",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@zerodev/sdk": "^4.1.5",
|
|
30
30
|
"@dynamic-labs/sdk-api": "0.0.311",
|
|
31
|
-
"@dynamic-labs/logger": "1.0.0-alpha.
|
|
32
|
-
"@dynamic-labs/types": "1.0.0-alpha.
|
|
33
|
-
"@dynamic-labs/utils": "1.0.0-alpha.
|
|
34
|
-
"@dynamic-labs/viem-utils": "1.0.0-alpha.
|
|
35
|
-
"@dynamic-labs/wallet-book": "1.0.0-alpha.
|
|
36
|
-
"@dynamic-labs/wallet-connector-core": "1.0.0-alpha.
|
|
31
|
+
"@dynamic-labs/logger": "1.0.0-alpha.4",
|
|
32
|
+
"@dynamic-labs/types": "1.0.0-alpha.4",
|
|
33
|
+
"@dynamic-labs/utils": "1.0.0-alpha.4",
|
|
34
|
+
"@dynamic-labs/viem-utils": "1.0.0-alpha.4",
|
|
35
|
+
"@dynamic-labs/wallet-book": "1.0.0-alpha.4",
|
|
36
|
+
"@dynamic-labs/wallet-connector-core": "1.0.0-alpha.4"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"viem": "^1.1.0"
|
package/src/ZeroDevConnector.cjs
CHANGED
|
@@ -21,6 +21,7 @@ class ZeroDevConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
21
21
|
this.connectedChain = 'EVM';
|
|
22
22
|
this.supportedChains = ['ETH', 'EVM'];
|
|
23
23
|
this.isGasSponsorshipDisabled = false;
|
|
24
|
+
this.isEmbeddedWallet = true;
|
|
24
25
|
this.name = 'ZeroDev';
|
|
25
26
|
const zeroDevProjectId = (_a = opts.apiProviders.zerodev) === null || _a === void 0 ? void 0 : _a.clientId;
|
|
26
27
|
if (!zeroDevProjectId) {
|
|
@@ -38,9 +39,10 @@ class ZeroDevConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
38
39
|
}
|
|
39
40
|
setEoaConnector(connector) {
|
|
40
41
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
this.zeroDevProviderDeferredPromise = new utils.DeferredPromise();
|
|
41
43
|
this.eoaConnector = connector;
|
|
42
44
|
const signer = yield this.eoaConnector.getSigner();
|
|
43
|
-
const zeroDevProvider =
|
|
45
|
+
const zeroDevProvider = yield sdk.ECDSAProvider.init({
|
|
44
46
|
opts: {
|
|
45
47
|
paymasterConfig: {
|
|
46
48
|
onlySendSponsoredTransaction: true,
|
|
@@ -56,6 +58,7 @@ class ZeroDevConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
56
58
|
});
|
|
57
59
|
this.zeroDevProvider = zeroDevProvider;
|
|
58
60
|
yield this.checkIsProjectChainEnabled();
|
|
61
|
+
this.zeroDevProviderDeferredPromise.resolve();
|
|
59
62
|
});
|
|
60
63
|
}
|
|
61
64
|
checkIsProjectChainEnabled() {
|
|
@@ -76,29 +79,33 @@ class ZeroDevConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
76
79
|
if (!eoaConnector)
|
|
77
80
|
throw new utils.DynamicError('No EOA connector');
|
|
78
81
|
const signer = yield eoaConnector.getSigner();
|
|
79
|
-
return
|
|
82
|
+
return sdk.ECDSAProvider.init({
|
|
80
83
|
owner: sdk.convertWalletClientToAccountSigner(signer),
|
|
81
84
|
projectId: this.projectId,
|
|
82
85
|
});
|
|
83
86
|
});
|
|
84
87
|
}
|
|
85
88
|
fetchPublicAddress() {
|
|
86
|
-
var _a;
|
|
89
|
+
var _a, _b;
|
|
87
90
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
|
|
91
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
92
|
+
return (_b = this.zeroDevProvider) === null || _b === void 0 ? void 0 : _b.getAddress();
|
|
89
93
|
});
|
|
90
94
|
}
|
|
91
95
|
getConnectedAccounts() {
|
|
96
|
+
var _a;
|
|
92
97
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
93
99
|
return this.zeroDevProvider
|
|
94
100
|
? [yield this.zeroDevProvider.getAddress()]
|
|
95
101
|
: [];
|
|
96
102
|
});
|
|
97
103
|
}
|
|
98
104
|
getNetwork() {
|
|
99
|
-
var _a;
|
|
105
|
+
var _a, _b;
|
|
100
106
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
|
|
107
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
108
|
+
return (_b = this.zeroDevProvider) === null || _b === void 0 ? void 0 : _b.rpcClient.chain.id;
|
|
102
109
|
});
|
|
103
110
|
}
|
|
104
111
|
getTransport(provider) {
|
|
@@ -20,6 +20,13 @@ export declare class ZeroDevConnector extends WalletConnectorBase implements IAc
|
|
|
20
20
|
supportedChains: Chain[];
|
|
21
21
|
evmNetworks: EvmNetwork[];
|
|
22
22
|
private isGasSponsorshipDisabled;
|
|
23
|
+
isEmbeddedWallet: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Deferred promise that resolves when the ZeroDev provider is set.
|
|
26
|
+
* This is used to make sure that the provider is set before any other method is called.
|
|
27
|
+
* This is needed because the provider is set asynchronously.
|
|
28
|
+
*/
|
|
29
|
+
private zeroDevProviderDeferredPromise;
|
|
23
30
|
name: string;
|
|
24
31
|
get key(): string;
|
|
25
32
|
private _walletUiUtils;
|
package/src/ZeroDevConnector.js
CHANGED
|
@@ -3,7 +3,7 @@ import { ECDSAProvider, convertWalletClientToAccountSigner } from '@zerodev/sdk'
|
|
|
3
3
|
import { custom, createWalletClient, isHex, fromHex, formatEther } from 'viem';
|
|
4
4
|
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { confirmationTransport, unFormatTransaction } from '@dynamic-labs/viem-utils';
|
|
6
|
-
import { parseEvmNetworks, DynamicError, wrapMethodWithCallback, TransactionGasCannotBeSponsoredError } from '@dynamic-labs/utils';
|
|
6
|
+
import { parseEvmNetworks, DynamicError, DeferredPromise, wrapMethodWithCallback, TransactionGasCannotBeSponsoredError } from '@dynamic-labs/utils';
|
|
7
7
|
import { logger } from './utils/logger.js';
|
|
8
8
|
import { isGasNotSponsoredError } from './utils/isGasNotSponsoredError.js';
|
|
9
9
|
|
|
@@ -17,6 +17,7 @@ class ZeroDevConnector extends WalletConnectorBase {
|
|
|
17
17
|
this.connectedChain = 'EVM';
|
|
18
18
|
this.supportedChains = ['ETH', 'EVM'];
|
|
19
19
|
this.isGasSponsorshipDisabled = false;
|
|
20
|
+
this.isEmbeddedWallet = true;
|
|
20
21
|
this.name = 'ZeroDev';
|
|
21
22
|
const zeroDevProjectId = (_a = opts.apiProviders.zerodev) === null || _a === void 0 ? void 0 : _a.clientId;
|
|
22
23
|
if (!zeroDevProjectId) {
|
|
@@ -34,9 +35,10 @@ class ZeroDevConnector extends WalletConnectorBase {
|
|
|
34
35
|
}
|
|
35
36
|
setEoaConnector(connector) {
|
|
36
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
this.zeroDevProviderDeferredPromise = new DeferredPromise();
|
|
37
39
|
this.eoaConnector = connector;
|
|
38
40
|
const signer = yield this.eoaConnector.getSigner();
|
|
39
|
-
const zeroDevProvider =
|
|
41
|
+
const zeroDevProvider = yield ECDSAProvider.init({
|
|
40
42
|
opts: {
|
|
41
43
|
paymasterConfig: {
|
|
42
44
|
onlySendSponsoredTransaction: true,
|
|
@@ -52,6 +54,7 @@ class ZeroDevConnector extends WalletConnectorBase {
|
|
|
52
54
|
});
|
|
53
55
|
this.zeroDevProvider = zeroDevProvider;
|
|
54
56
|
yield this.checkIsProjectChainEnabled();
|
|
57
|
+
this.zeroDevProviderDeferredPromise.resolve();
|
|
55
58
|
});
|
|
56
59
|
}
|
|
57
60
|
checkIsProjectChainEnabled() {
|
|
@@ -72,29 +75,33 @@ class ZeroDevConnector extends WalletConnectorBase {
|
|
|
72
75
|
if (!eoaConnector)
|
|
73
76
|
throw new DynamicError('No EOA connector');
|
|
74
77
|
const signer = yield eoaConnector.getSigner();
|
|
75
|
-
return
|
|
78
|
+
return ECDSAProvider.init({
|
|
76
79
|
owner: convertWalletClientToAccountSigner(signer),
|
|
77
80
|
projectId: this.projectId,
|
|
78
81
|
});
|
|
79
82
|
});
|
|
80
83
|
}
|
|
81
84
|
fetchPublicAddress() {
|
|
82
|
-
var _a;
|
|
85
|
+
var _a, _b;
|
|
83
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
-
|
|
87
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
88
|
+
return (_b = this.zeroDevProvider) === null || _b === void 0 ? void 0 : _b.getAddress();
|
|
85
89
|
});
|
|
86
90
|
}
|
|
87
91
|
getConnectedAccounts() {
|
|
92
|
+
var _a;
|
|
88
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
89
95
|
return this.zeroDevProvider
|
|
90
96
|
? [yield this.zeroDevProvider.getAddress()]
|
|
91
97
|
: [];
|
|
92
98
|
});
|
|
93
99
|
}
|
|
94
100
|
getNetwork() {
|
|
95
|
-
var _a;
|
|
101
|
+
var _a, _b;
|
|
96
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
|
|
103
|
+
yield ((_a = this.zeroDevProviderDeferredPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
104
|
+
return (_b = this.zeroDevProvider) === null || _b === void 0 ? void 0 : _b.rpcClient.chain.id;
|
|
98
105
|
});
|
|
99
106
|
}
|
|
100
107
|
getTransport(provider) {
|