@dynamic-labs-wallet/node-svm 0.0.122 → 0.0.123
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 +23 -22
- package/index.esm.js +23 -22
- package/package.json +2 -2
- package/src/client/client.d.ts +10 -9
- package/src/client/client.d.ts.map +1 -1
package/index.cjs.js
CHANGED
|
@@ -92,8 +92,8 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
92
92
|
});
|
|
93
93
|
// Wait for the ceremony to complete before proceeding
|
|
94
94
|
await ceremonyCompletePromise;
|
|
95
|
-
if (!rawPublicKey || !(rawPublicKey instanceof Uint8Array)) {
|
|
96
|
-
throw new Error('Raw public key is not a Uint8Array');
|
|
95
|
+
if (!rawPublicKey || !(rawPublicKey instanceof Uint8Array || typeof rawPublicKey === 'string')) {
|
|
96
|
+
throw new Error('Raw public key is not a Uint8Array or string' + typeof rawPublicKey);
|
|
97
97
|
}
|
|
98
98
|
if (!externalServerKeyShares) {
|
|
99
99
|
throw new Error('Error creating wallet account');
|
|
@@ -107,7 +107,7 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
107
107
|
});
|
|
108
108
|
return {
|
|
109
109
|
accountAddress,
|
|
110
|
-
rawPublicKey
|
|
110
|
+
rawPublicKey,
|
|
111
111
|
externalServerKeyShares
|
|
112
112
|
};
|
|
113
113
|
} catch (error) {
|
|
@@ -117,9 +117,10 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
117
117
|
}
|
|
118
118
|
// Function to properly derive account address
|
|
119
119
|
async deriveAccountAddress(rawPublicKey) {
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
const
|
|
120
|
+
const pubKeyBytes = typeof rawPublicKey === 'string' ? Buffer.from(rawPublicKey, 'hex') : rawPublicKey;
|
|
121
|
+
// Create PublicKey from bytes and convert to base58
|
|
122
|
+
const pubKey = new web3_js.PublicKey(pubKeyBytes);
|
|
123
|
+
const accountAddress = pubKey.toBase58();
|
|
123
124
|
return {
|
|
124
125
|
accountAddress
|
|
125
126
|
};
|
|
@@ -130,7 +131,7 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
130
131
|
* @param message The message to sign (Uint8Array)
|
|
131
132
|
* @param accountAddress Solana address (base58 encoded)
|
|
132
133
|
* @param password The password for encrypted backup shares
|
|
133
|
-
*/ async signMessage({ message, accountAddress, password = undefined, signedSessionId }) {
|
|
134
|
+
*/ async signMessage({ message, accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
134
135
|
await this.verifyPassword({
|
|
135
136
|
accountAddress,
|
|
136
137
|
password,
|
|
@@ -146,8 +147,10 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
146
147
|
accountAddress: accountAddress,
|
|
147
148
|
chainName: this.chainName,
|
|
148
149
|
password,
|
|
149
|
-
signedSessionId
|
|
150
|
+
signedSessionId,
|
|
151
|
+
externalServerKeyShares
|
|
150
152
|
});
|
|
153
|
+
// Use PublicKey to encode signature
|
|
151
154
|
const base58Signature = new web3_js.PublicKey(signatureEd25519).toBase58();
|
|
152
155
|
return base58Signature;
|
|
153
156
|
} catch (error) {
|
|
@@ -155,7 +158,8 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
155
158
|
throw error;
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
|
-
|
|
161
|
+
//todo:should txn just be a string?
|
|
162
|
+
async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
159
163
|
await this.verifyPassword({
|
|
160
164
|
accountAddress: senderAddress,
|
|
161
165
|
password,
|
|
@@ -178,7 +182,8 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
178
182
|
accountAddress: senderAddress,
|
|
179
183
|
chainName: this.chainName,
|
|
180
184
|
password,
|
|
181
|
-
signedSessionId
|
|
185
|
+
signedSessionId,
|
|
186
|
+
externalServerKeyShares
|
|
182
187
|
});
|
|
183
188
|
if (!signatureEd25519) {
|
|
184
189
|
throw new Error('Signature is undefined');
|
|
@@ -204,20 +209,18 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
204
209
|
* @param accountAddress The account address to export the private key for
|
|
205
210
|
* @param password The password for encrypted backup shares
|
|
206
211
|
* @returns The private key
|
|
207
|
-
*/ async exportPrivateKey({ accountAddress, password = undefined, signedSessionId }) {
|
|
212
|
+
*/ async exportPrivateKey({ accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
208
213
|
const { derivedPrivateKey } = await this.exportKey({
|
|
209
214
|
accountAddress,
|
|
210
215
|
chainName: this.chainName,
|
|
211
216
|
password,
|
|
212
|
-
signedSessionId
|
|
217
|
+
signedSessionId,
|
|
218
|
+
externalServerKeyShares
|
|
213
219
|
});
|
|
214
220
|
if (!derivedPrivateKey) {
|
|
215
221
|
throw new Error('Derived private key is undefined');
|
|
216
222
|
}
|
|
217
|
-
|
|
218
|
-
return {
|
|
219
|
-
derivedPrivateKey: encodedPrivateKey
|
|
220
|
-
};
|
|
223
|
+
return derivedPrivateKey;
|
|
221
224
|
}
|
|
222
225
|
/**
|
|
223
226
|
* Exports the private key for a given account address
|
|
@@ -240,20 +243,18 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
|
|
|
240
243
|
* @param privateKey The private key to convert
|
|
241
244
|
* @returns The hex string
|
|
242
245
|
*/ decodePrivateKeyForSolana(privateKey) {
|
|
243
|
-
const decoded = new web3_js.PublicKey(privateKey).
|
|
246
|
+
const decoded = new web3_js.PublicKey(privateKey).toBuffer();
|
|
244
247
|
const slicedBytes = decoded.slice(0, 32);
|
|
245
248
|
return Buffer.from(slicedBytes).toString('hex');
|
|
246
249
|
}
|
|
247
250
|
getPublicKeyFromPrivateKey(privateKey) {
|
|
248
|
-
const privateKeyBytes = new web3_js.PublicKey(privateKey).
|
|
249
|
-
const keypair = web3_js.Keypair.fromSecretKey(
|
|
251
|
+
const privateKeyBytes = new web3_js.PublicKey(privateKey).toBuffer();
|
|
252
|
+
const keypair = web3_js.Keypair.fromSecretKey(privateKeyBytes);
|
|
250
253
|
const publicKeyBase58 = keypair.publicKey.toBase58();
|
|
251
254
|
return publicKeyBase58;
|
|
252
255
|
}
|
|
253
256
|
encodePublicKey(publicKey) {
|
|
254
|
-
|
|
255
|
-
const fromKey = pubKey.toBase58();
|
|
256
|
-
return fromKey;
|
|
257
|
+
return new web3_js.PublicKey(publicKey).toBase58();
|
|
257
258
|
}
|
|
258
259
|
/**
|
|
259
260
|
* Imports the private key for a given account address
|
package/index.esm.js
CHANGED
|
@@ -90,8 +90,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
90
90
|
});
|
|
91
91
|
// Wait for the ceremony to complete before proceeding
|
|
92
92
|
await ceremonyCompletePromise;
|
|
93
|
-
if (!rawPublicKey || !(rawPublicKey instanceof Uint8Array)) {
|
|
94
|
-
throw new Error('Raw public key is not a Uint8Array');
|
|
93
|
+
if (!rawPublicKey || !(rawPublicKey instanceof Uint8Array || typeof rawPublicKey === 'string')) {
|
|
94
|
+
throw new Error('Raw public key is not a Uint8Array or string' + typeof rawPublicKey);
|
|
95
95
|
}
|
|
96
96
|
if (!externalServerKeyShares) {
|
|
97
97
|
throw new Error('Error creating wallet account');
|
|
@@ -105,7 +105,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
105
105
|
});
|
|
106
106
|
return {
|
|
107
107
|
accountAddress,
|
|
108
|
-
rawPublicKey
|
|
108
|
+
rawPublicKey,
|
|
109
109
|
externalServerKeyShares
|
|
110
110
|
};
|
|
111
111
|
} catch (error) {
|
|
@@ -115,9 +115,10 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
115
115
|
}
|
|
116
116
|
// Function to properly derive account address
|
|
117
117
|
async deriveAccountAddress(rawPublicKey) {
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
const
|
|
118
|
+
const pubKeyBytes = typeof rawPublicKey === 'string' ? Buffer.from(rawPublicKey, 'hex') : rawPublicKey;
|
|
119
|
+
// Create PublicKey from bytes and convert to base58
|
|
120
|
+
const pubKey = new PublicKey(pubKeyBytes);
|
|
121
|
+
const accountAddress = pubKey.toBase58();
|
|
121
122
|
return {
|
|
122
123
|
accountAddress
|
|
123
124
|
};
|
|
@@ -128,7 +129,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
128
129
|
* @param message The message to sign (Uint8Array)
|
|
129
130
|
* @param accountAddress Solana address (base58 encoded)
|
|
130
131
|
* @param password The password for encrypted backup shares
|
|
131
|
-
*/ async signMessage({ message, accountAddress, password = undefined, signedSessionId }) {
|
|
132
|
+
*/ async signMessage({ message, accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
132
133
|
await this.verifyPassword({
|
|
133
134
|
accountAddress,
|
|
134
135
|
password,
|
|
@@ -144,8 +145,10 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
144
145
|
accountAddress: accountAddress,
|
|
145
146
|
chainName: this.chainName,
|
|
146
147
|
password,
|
|
147
|
-
signedSessionId
|
|
148
|
+
signedSessionId,
|
|
149
|
+
externalServerKeyShares
|
|
148
150
|
});
|
|
151
|
+
// Use PublicKey to encode signature
|
|
149
152
|
const base58Signature = new PublicKey(signatureEd25519).toBase58();
|
|
150
153
|
return base58Signature;
|
|
151
154
|
} catch (error) {
|
|
@@ -153,7 +156,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
153
156
|
throw error;
|
|
154
157
|
}
|
|
155
158
|
}
|
|
156
|
-
|
|
159
|
+
//todo:should txn just be a string?
|
|
160
|
+
async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
157
161
|
await this.verifyPassword({
|
|
158
162
|
accountAddress: senderAddress,
|
|
159
163
|
password,
|
|
@@ -176,7 +180,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
176
180
|
accountAddress: senderAddress,
|
|
177
181
|
chainName: this.chainName,
|
|
178
182
|
password,
|
|
179
|
-
signedSessionId
|
|
183
|
+
signedSessionId,
|
|
184
|
+
externalServerKeyShares
|
|
180
185
|
});
|
|
181
186
|
if (!signatureEd25519) {
|
|
182
187
|
throw new Error('Signature is undefined');
|
|
@@ -202,20 +207,18 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
202
207
|
* @param accountAddress The account address to export the private key for
|
|
203
208
|
* @param password The password for encrypted backup shares
|
|
204
209
|
* @returns The private key
|
|
205
|
-
*/ async exportPrivateKey({ accountAddress, password = undefined, signedSessionId }) {
|
|
210
|
+
*/ async exportPrivateKey({ accountAddress, password = undefined, signedSessionId, externalServerKeyShares }) {
|
|
206
211
|
const { derivedPrivateKey } = await this.exportKey({
|
|
207
212
|
accountAddress,
|
|
208
213
|
chainName: this.chainName,
|
|
209
214
|
password,
|
|
210
|
-
signedSessionId
|
|
215
|
+
signedSessionId,
|
|
216
|
+
externalServerKeyShares
|
|
211
217
|
});
|
|
212
218
|
if (!derivedPrivateKey) {
|
|
213
219
|
throw new Error('Derived private key is undefined');
|
|
214
220
|
}
|
|
215
|
-
|
|
216
|
-
return {
|
|
217
|
-
derivedPrivateKey: encodedPrivateKey
|
|
218
|
-
};
|
|
221
|
+
return derivedPrivateKey;
|
|
219
222
|
}
|
|
220
223
|
/**
|
|
221
224
|
* Exports the private key for a given account address
|
|
@@ -238,20 +241,18 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
238
241
|
* @param privateKey The private key to convert
|
|
239
242
|
* @returns The hex string
|
|
240
243
|
*/ decodePrivateKeyForSolana(privateKey) {
|
|
241
|
-
const decoded = new PublicKey(privateKey).
|
|
244
|
+
const decoded = new PublicKey(privateKey).toBuffer();
|
|
242
245
|
const slicedBytes = decoded.slice(0, 32);
|
|
243
246
|
return Buffer.from(slicedBytes).toString('hex');
|
|
244
247
|
}
|
|
245
248
|
getPublicKeyFromPrivateKey(privateKey) {
|
|
246
|
-
const privateKeyBytes = new PublicKey(privateKey).
|
|
247
|
-
const keypair = Keypair.fromSecretKey(
|
|
249
|
+
const privateKeyBytes = new PublicKey(privateKey).toBuffer();
|
|
250
|
+
const keypair = Keypair.fromSecretKey(privateKeyBytes);
|
|
248
251
|
const publicKeyBase58 = keypair.publicKey.toBase58();
|
|
249
252
|
return publicKeyBase58;
|
|
250
253
|
}
|
|
251
254
|
encodePublicKey(publicKey) {
|
|
252
|
-
|
|
253
|
-
const fromKey = pubKey.toBase58();
|
|
254
|
-
return fromKey;
|
|
255
|
+
return new PublicKey(publicKey).toBase58();
|
|
255
256
|
}
|
|
256
257
|
/**
|
|
257
258
|
* Imports the private key for a given account address
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/node-svm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.123",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@dynamic-labs-wallet/node": "0.0.
|
|
6
|
+
"@dynamic-labs-wallet/node": "0.0.123",
|
|
7
7
|
"@solana/web3.js": "^1.98.2"
|
|
8
8
|
},
|
|
9
9
|
"publishConfig": {
|
package/src/client/client.d.ts
CHANGED
|
@@ -22,10 +22,10 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
22
22
|
signedSessionId: string;
|
|
23
23
|
}): Promise<{
|
|
24
24
|
accountAddress: string;
|
|
25
|
-
rawPublicKey: Uint8Array;
|
|
25
|
+
rawPublicKey: Uint8Array | string;
|
|
26
26
|
externalServerKeyShares: ServerKeyShare[];
|
|
27
27
|
}>;
|
|
28
|
-
deriveAccountAddress(rawPublicKey: Uint8Array): Promise<{
|
|
28
|
+
deriveAccountAddress(rawPublicKey: string | Uint8Array): Promise<{
|
|
29
29
|
accountAddress: string;
|
|
30
30
|
}>;
|
|
31
31
|
/**
|
|
@@ -35,17 +35,19 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
35
35
|
* @param accountAddress Solana address (base58 encoded)
|
|
36
36
|
* @param password The password for encrypted backup shares
|
|
37
37
|
*/
|
|
38
|
-
signMessage({ message, accountAddress, password, signedSessionId, }: {
|
|
38
|
+
signMessage({ message, accountAddress, password, signedSessionId, externalServerKeyShares, }: {
|
|
39
39
|
message: string;
|
|
40
40
|
accountAddress: string;
|
|
41
41
|
password?: string;
|
|
42
42
|
signedSessionId: string;
|
|
43
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
43
44
|
}): Promise<string>;
|
|
44
|
-
signTransaction({ senderAddress, transaction, password, signedSessionId, }: {
|
|
45
|
+
signTransaction({ senderAddress, transaction, password, signedSessionId, externalServerKeyShares, }: {
|
|
45
46
|
senderAddress: string;
|
|
46
47
|
transaction: VersionedTransaction | Transaction;
|
|
47
48
|
password?: string;
|
|
48
49
|
signedSessionId: string;
|
|
50
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
49
51
|
}): Promise<VersionedTransaction | Transaction>;
|
|
50
52
|
/**
|
|
51
53
|
* Exports the private key for a given account address
|
|
@@ -54,13 +56,12 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
54
56
|
* @param password The password for encrypted backup shares
|
|
55
57
|
* @returns The private key
|
|
56
58
|
*/
|
|
57
|
-
exportPrivateKey({ accountAddress, password, signedSessionId, }: {
|
|
59
|
+
exportPrivateKey({ accountAddress, password, signedSessionId, externalServerKeyShares, }: {
|
|
58
60
|
accountAddress: string;
|
|
59
61
|
password?: string;
|
|
60
62
|
signedSessionId: string;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}>;
|
|
63
|
+
externalServerKeyShares: ServerKeyShare[];
|
|
64
|
+
}): Promise<string>;
|
|
64
65
|
/**
|
|
65
66
|
* Exports the private key for a given account address
|
|
66
67
|
*
|
|
@@ -100,7 +101,7 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
|
|
|
100
101
|
signedSessionId: string;
|
|
101
102
|
}): Promise<{
|
|
102
103
|
accountAddress: string;
|
|
103
|
-
rawPublicKey: Uint8Array | undefined;
|
|
104
|
+
rawPublicKey: Uint8Array | string | undefined;
|
|
104
105
|
externalServerKeyShares: ServerKeyShare[];
|
|
105
106
|
}>;
|
|
106
107
|
getSvmWallets(): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,WAAW,EACX,oBAAoB,EAErB,MAAM,iBAAiB,CAAC;AAIzB,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;gBAEZ,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,GACnB,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IAQD;;;;;OAKG;IACG,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,EACpB,OAAO,EACP,eAAe,GAChB,EAAE;QACD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|