@dynamic-labs-wallet/node-evm 0.0.0-beta.271.2 → 0.0.0-beta.290.2
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/index.cjs.js +27 -14
- package/index.esm.js +27 -14
- package/package.json +2 -2
- package/src/client/client.d.ts +14 -5
- package/src/client/client.d.ts.map +1 -1
package/index.cjs.js
CHANGED
|
@@ -53,7 +53,7 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
53
53
|
transport: viem.http(rpcUrl)
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError }) {
|
|
56
|
+
async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError, signedSessionId }) {
|
|
57
57
|
try {
|
|
58
58
|
let ceremonyCeremonyCompleteResolver;
|
|
59
59
|
const ceremonyCompletePromise = new Promise((resolve)=>{
|
|
@@ -96,9 +96,11 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
96
96
|
await this.storeEncryptedBackupByWalletWithRetry({
|
|
97
97
|
accountAddress,
|
|
98
98
|
externalServerKeyShares,
|
|
99
|
-
password
|
|
99
|
+
password,
|
|
100
|
+
signedSessionId
|
|
100
101
|
});
|
|
101
102
|
return {
|
|
103
|
+
walletId: this.walletMap[accountAddress].walletId,
|
|
102
104
|
accountAddress,
|
|
103
105
|
rawPublicKey,
|
|
104
106
|
publicKeyHex,
|
|
@@ -109,15 +111,17 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
109
111
|
throw new Error(ERROR_CREATE_WALLET_ACCOUNT);
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
|
-
async signMessage({ message, accountAddress, password = undefined }) {
|
|
114
|
+
async signMessage({ message, accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
113
115
|
await this.verifyPassword({
|
|
114
116
|
accountAddress,
|
|
115
117
|
password,
|
|
116
|
-
walletOperation: node.WalletOperation.SIGN_MESSAGE
|
|
118
|
+
walletOperation: node.WalletOperation.SIGN_MESSAGE,
|
|
119
|
+
signedSessionId
|
|
117
120
|
});
|
|
118
121
|
await this.getWallet({
|
|
119
122
|
accountAddress,
|
|
120
|
-
walletOperation: node.WalletOperation.SIGN_MESSAGE
|
|
123
|
+
walletOperation: node.WalletOperation.SIGN_MESSAGE,
|
|
124
|
+
signedSessionId
|
|
121
125
|
});
|
|
122
126
|
try {
|
|
123
127
|
if (!accountAddress) {
|
|
@@ -130,7 +134,9 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
130
134
|
message: formattedMessage,
|
|
131
135
|
accountAddress: accountAddress,
|
|
132
136
|
chainName: this.chainName,
|
|
133
|
-
password
|
|
137
|
+
password,
|
|
138
|
+
signedSessionId,
|
|
139
|
+
externalServerKeyShares
|
|
134
140
|
});
|
|
135
141
|
// Serialize the signature
|
|
136
142
|
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
@@ -157,11 +163,12 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
157
163
|
throw new Error(ERROR_VERIFY_MESSAGE_SIGNATURE);
|
|
158
164
|
}
|
|
159
165
|
}
|
|
160
|
-
async signTransaction({ senderAddress, transaction, password = undefined }) {
|
|
166
|
+
async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
161
167
|
await this.verifyPassword({
|
|
162
168
|
accountAddress: senderAddress,
|
|
163
169
|
password,
|
|
164
|
-
walletOperation: node.WalletOperation.SIGN_TRANSACTION
|
|
170
|
+
walletOperation: node.WalletOperation.SIGN_TRANSACTION,
|
|
171
|
+
signedSessionId
|
|
165
172
|
});
|
|
166
173
|
const serializedTx = viem.serializeTransaction(transaction);
|
|
167
174
|
const serializedTxBytes = Uint8Array.from(Buffer.from(serializedTx.slice(2), 'hex'));
|
|
@@ -173,7 +180,9 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
173
180
|
message: serializedTxBytes,
|
|
174
181
|
accountAddress: senderAddress,
|
|
175
182
|
chainName: this.chainName,
|
|
176
|
-
password
|
|
183
|
+
password,
|
|
184
|
+
signedSessionId,
|
|
185
|
+
externalServerKeyShares
|
|
177
186
|
});
|
|
178
187
|
if (!('r' in signatureEcdsa && 's' in signatureEcdsa && 'v' in signatureEcdsa)) {
|
|
179
188
|
throw new Error('Invalid signature format returned from MPC signing');
|
|
@@ -194,16 +203,19 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
194
203
|
throw error;
|
|
195
204
|
}
|
|
196
205
|
}
|
|
197
|
-
async exportPrivateKey({ accountAddress, password = undefined }) {
|
|
206
|
+
async exportPrivateKey({ accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
198
207
|
await this.verifyPassword({
|
|
199
208
|
accountAddress,
|
|
200
209
|
password,
|
|
201
|
-
walletOperation: node.WalletOperation.EXPORT_PRIVATE_KEY
|
|
210
|
+
walletOperation: node.WalletOperation.EXPORT_PRIVATE_KEY,
|
|
211
|
+
signedSessionId
|
|
202
212
|
});
|
|
203
213
|
const { derivedPrivateKey } = await this.exportKey({
|
|
204
214
|
accountAddress,
|
|
205
215
|
chainName: this.chainName,
|
|
206
|
-
password
|
|
216
|
+
password,
|
|
217
|
+
signedSessionId,
|
|
218
|
+
externalServerKeyShares
|
|
207
219
|
});
|
|
208
220
|
return {
|
|
209
221
|
derivedPrivateKey
|
|
@@ -219,7 +231,7 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
219
231
|
derivedPrivateKey
|
|
220
232
|
};
|
|
221
233
|
}
|
|
222
|
-
async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, onError }) {
|
|
234
|
+
async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, onError, signedSessionId }) {
|
|
223
235
|
let ceremonyCeremonyCompleteResolver;
|
|
224
236
|
const ceremonyCompletePromise = new Promise((resolve)=>{
|
|
225
237
|
ceremonyCeremonyCompleteResolver = resolve;
|
|
@@ -254,7 +266,8 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
254
266
|
await this.storeEncryptedBackupByWalletWithRetry({
|
|
255
267
|
accountAddress,
|
|
256
268
|
externalServerKeyShares,
|
|
257
|
-
password
|
|
269
|
+
password,
|
|
270
|
+
signedSessionId
|
|
258
271
|
});
|
|
259
272
|
return {
|
|
260
273
|
accountAddress,
|
package/index.esm.js
CHANGED
|
@@ -51,7 +51,7 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
51
51
|
transport: http(rpcUrl)
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError }) {
|
|
54
|
+
async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError, signedSessionId }) {
|
|
55
55
|
try {
|
|
56
56
|
let ceremonyCeremonyCompleteResolver;
|
|
57
57
|
const ceremonyCompletePromise = new Promise((resolve)=>{
|
|
@@ -94,9 +94,11 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
94
94
|
await this.storeEncryptedBackupByWalletWithRetry({
|
|
95
95
|
accountAddress,
|
|
96
96
|
externalServerKeyShares,
|
|
97
|
-
password
|
|
97
|
+
password,
|
|
98
|
+
signedSessionId
|
|
98
99
|
});
|
|
99
100
|
return {
|
|
101
|
+
walletId: this.walletMap[accountAddress].walletId,
|
|
100
102
|
accountAddress,
|
|
101
103
|
rawPublicKey,
|
|
102
104
|
publicKeyHex,
|
|
@@ -107,15 +109,17 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
107
109
|
throw new Error(ERROR_CREATE_WALLET_ACCOUNT);
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
|
-
async signMessage({ message, accountAddress, password = undefined }) {
|
|
112
|
+
async signMessage({ message, accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
111
113
|
await this.verifyPassword({
|
|
112
114
|
accountAddress,
|
|
113
115
|
password,
|
|
114
|
-
walletOperation: WalletOperation.SIGN_MESSAGE
|
|
116
|
+
walletOperation: WalletOperation.SIGN_MESSAGE,
|
|
117
|
+
signedSessionId
|
|
115
118
|
});
|
|
116
119
|
await this.getWallet({
|
|
117
120
|
accountAddress,
|
|
118
|
-
walletOperation: WalletOperation.SIGN_MESSAGE
|
|
121
|
+
walletOperation: WalletOperation.SIGN_MESSAGE,
|
|
122
|
+
signedSessionId
|
|
119
123
|
});
|
|
120
124
|
try {
|
|
121
125
|
if (!accountAddress) {
|
|
@@ -128,7 +132,9 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
128
132
|
message: formattedMessage,
|
|
129
133
|
accountAddress: accountAddress,
|
|
130
134
|
chainName: this.chainName,
|
|
131
|
-
password
|
|
135
|
+
password,
|
|
136
|
+
signedSessionId,
|
|
137
|
+
externalServerKeyShares
|
|
132
138
|
});
|
|
133
139
|
// Serialize the signature
|
|
134
140
|
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
@@ -155,11 +161,12 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
155
161
|
throw new Error(ERROR_VERIFY_MESSAGE_SIGNATURE);
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
|
-
async signTransaction({ senderAddress, transaction, password = undefined }) {
|
|
164
|
+
async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
159
165
|
await this.verifyPassword({
|
|
160
166
|
accountAddress: senderAddress,
|
|
161
167
|
password,
|
|
162
|
-
walletOperation: WalletOperation.SIGN_TRANSACTION
|
|
168
|
+
walletOperation: WalletOperation.SIGN_TRANSACTION,
|
|
169
|
+
signedSessionId
|
|
163
170
|
});
|
|
164
171
|
const serializedTx = serializeTransaction(transaction);
|
|
165
172
|
const serializedTxBytes = Uint8Array.from(Buffer.from(serializedTx.slice(2), 'hex'));
|
|
@@ -171,7 +178,9 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
171
178
|
message: serializedTxBytes,
|
|
172
179
|
accountAddress: senderAddress,
|
|
173
180
|
chainName: this.chainName,
|
|
174
|
-
password
|
|
181
|
+
password,
|
|
182
|
+
signedSessionId,
|
|
183
|
+
externalServerKeyShares
|
|
175
184
|
});
|
|
176
185
|
if (!('r' in signatureEcdsa && 's' in signatureEcdsa && 'v' in signatureEcdsa)) {
|
|
177
186
|
throw new Error('Invalid signature format returned from MPC signing');
|
|
@@ -192,16 +201,19 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
192
201
|
throw error;
|
|
193
202
|
}
|
|
194
203
|
}
|
|
195
|
-
async exportPrivateKey({ accountAddress, password = undefined }) {
|
|
204
|
+
async exportPrivateKey({ accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
196
205
|
await this.verifyPassword({
|
|
197
206
|
accountAddress,
|
|
198
207
|
password,
|
|
199
|
-
walletOperation: WalletOperation.EXPORT_PRIVATE_KEY
|
|
208
|
+
walletOperation: WalletOperation.EXPORT_PRIVATE_KEY,
|
|
209
|
+
signedSessionId
|
|
200
210
|
});
|
|
201
211
|
const { derivedPrivateKey } = await this.exportKey({
|
|
202
212
|
accountAddress,
|
|
203
213
|
chainName: this.chainName,
|
|
204
|
-
password
|
|
214
|
+
password,
|
|
215
|
+
signedSessionId,
|
|
216
|
+
externalServerKeyShares
|
|
205
217
|
});
|
|
206
218
|
return {
|
|
207
219
|
derivedPrivateKey
|
|
@@ -217,7 +229,7 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
217
229
|
derivedPrivateKey
|
|
218
230
|
};
|
|
219
231
|
}
|
|
220
|
-
async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, onError }) {
|
|
232
|
+
async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, onError, signedSessionId }) {
|
|
221
233
|
let ceremonyCeremonyCompleteResolver;
|
|
222
234
|
const ceremonyCompletePromise = new Promise((resolve)=>{
|
|
223
235
|
ceremonyCeremonyCompleteResolver = resolve;
|
|
@@ -252,7 +264,8 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
252
264
|
await this.storeEncryptedBackupByWalletWithRetry({
|
|
253
265
|
accountAddress,
|
|
254
266
|
externalServerKeyShares,
|
|
255
|
-
password
|
|
267
|
+
password,
|
|
268
|
+
signedSessionId
|
|
256
269
|
});
|
|
257
270
|
return {
|
|
258
271
|
accountAddress,
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/node-evm",
|
|
3
|
-
"version": "0.0.0-beta.
|
|
3
|
+
"version": "0.0.0-beta.290.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@dynamic-labs-wallet/node": "0.0.0-beta.
|
|
6
|
+
"@dynamic-labs-wallet/node": "0.0.0-beta.290.2"
|
|
7
7
|
},
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
package/src/client/client.d.ts
CHANGED
|
@@ -7,34 +7,42 @@ export declare class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
7
7
|
chain: Chain;
|
|
8
8
|
rpcUrl?: string;
|
|
9
9
|
}): PublicClient;
|
|
10
|
-
createWalletAccount({ thresholdSignatureScheme, password, onError, }: {
|
|
10
|
+
createWalletAccount({ thresholdSignatureScheme, password, onError, signedSessionId, }: {
|
|
11
11
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
12
12
|
password?: string;
|
|
13
13
|
onError?: (error: Error) => void;
|
|
14
|
+
signedSessionId: string;
|
|
14
15
|
}): Promise<{
|
|
15
16
|
accountAddress: string;
|
|
16
17
|
publicKeyHex: string;
|
|
17
18
|
rawPublicKey: EcdsaPublicKey | Uint8Array | undefined;
|
|
18
19
|
externalServerKeyShares: ServerKeyShare[];
|
|
20
|
+
walletId: string;
|
|
19
21
|
}>;
|
|
20
|
-
signMessage({ message, accountAddress, password, }: {
|
|
22
|
+
signMessage({ message, accountAddress, password, signedSessionId, externalServerKeyShares, }: {
|
|
21
23
|
message: string;
|
|
22
24
|
accountAddress: string;
|
|
23
25
|
password?: string;
|
|
26
|
+
signedSessionId: string;
|
|
27
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
24
28
|
}): Promise<`0x${string}`>;
|
|
25
29
|
verifyMessageSignature({ accountAddress, message, signature, }: {
|
|
26
30
|
accountAddress: string;
|
|
27
31
|
message: SignableMessage;
|
|
28
32
|
signature: any;
|
|
29
33
|
}): Promise<boolean>;
|
|
30
|
-
signTransaction({ senderAddress, transaction, password, }: {
|
|
34
|
+
signTransaction({ senderAddress, transaction, password, signedSessionId, externalServerKeyShares, }: {
|
|
31
35
|
senderAddress: string;
|
|
32
36
|
transaction: TransactionSerializable;
|
|
33
37
|
password?: string;
|
|
38
|
+
signedSessionId: string;
|
|
39
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
34
40
|
}): Promise<string>;
|
|
35
|
-
exportPrivateKey({ accountAddress, password, }: {
|
|
41
|
+
exportPrivateKey({ accountAddress, password, signedSessionId, externalServerKeyShares, }: {
|
|
36
42
|
accountAddress: string;
|
|
37
43
|
password?: string;
|
|
44
|
+
signedSessionId: string;
|
|
45
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
38
46
|
}): Promise<{
|
|
39
47
|
derivedPrivateKey: string | undefined;
|
|
40
48
|
}>;
|
|
@@ -44,12 +52,13 @@ export declare class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
44
52
|
}): Promise<{
|
|
45
53
|
derivedPrivateKey: string | undefined;
|
|
46
54
|
}>;
|
|
47
|
-
importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password, onError, }: {
|
|
55
|
+
importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password, onError, signedSessionId, }: {
|
|
48
56
|
privateKey: string;
|
|
49
57
|
chainName: string;
|
|
50
58
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
51
59
|
password?: string;
|
|
52
60
|
onError?: (error: Error) => void;
|
|
61
|
+
signedSessionId: string;
|
|
53
62
|
}): Promise<{
|
|
54
63
|
accountAddress: string;
|
|
55
64
|
publicKeyHex: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EAEd,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,KAAK,EAEV,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE7B,MAAM,MAAM,CAAC;AAed,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;gBAEf,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,KAAK,GACN,EAAE,wBAAwB;IAS3B,sBAAsB,CAAC,EACrB,KAAK,EACL,MAAM,GACP,EAAE;QACD,KAAK,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,YAAY;IAOV,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,EACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|