@dynamic-labs-wallet/svm 0.0.33 → 0.0.34

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 CHANGED
@@ -29,7 +29,7 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
29
29
  *
30
30
  * @param thresholdSignatureScheme The threshold signature scheme to use
31
31
  * @returns The account address, public key hex, raw public key, and client key shares
32
- */ async createWalletAccount({ thresholdSignatureScheme }) {
32
+ */ async createWalletAccount({ thresholdSignatureScheme, password = undefined }) {
33
33
  try {
34
34
  const { rawPublicKey, clientKeyShares } = await this.keyGen({
35
35
  chainName: this.chainName,
@@ -57,7 +57,7 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
57
57
  };
58
58
  await this.storeEncryptedBackupByWallet({
59
59
  accountAddress,
60
- password: undefined
60
+ password
61
61
  });
62
62
  return {
63
63
  accountAddress,
@@ -80,8 +80,14 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
80
80
  * This function takes a message and returns it after being signed with MPC
81
81
  *
82
82
  * @param message The message to sign (Uint8Array)
83
- * @param fromAddress Solana address (base58 encoded)
84
- */ async signMessage({ message, accountAddress }) {
83
+ * @param accountAddress Solana address (base58 encoded)
84
+ * @param password The password for encrypted backup shares
85
+ */ async signMessage({ message, accountAddress, password = undefined }) {
86
+ await this.verifyPassword({
87
+ accountAddress,
88
+ password,
89
+ walletOperation: browser.WalletOperation.SIGN_MESSAGE
90
+ });
85
91
  if (!accountAddress) {
86
92
  throw new Error('Account address is required');
87
93
  }
@@ -89,7 +95,8 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
89
95
  const signatureEd25519 = await this.sign({
90
96
  message,
91
97
  accountAddress: accountAddress,
92
- chainName: this.chainName
98
+ chainName: this.chainName,
99
+ password
93
100
  });
94
101
  const base58Signature = bs58.encode(signatureEd25519);
95
102
  return base58Signature;
@@ -118,7 +125,12 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
118
125
  // console.log('verified', verified);
119
126
  // return verified;
120
127
  // }
121
- async signTransaction({ senderAddress, transaction }) {
128
+ async signTransaction({ senderAddress, transaction, password = undefined }) {
129
+ await this.verifyPassword({
130
+ accountAddress: senderAddress,
131
+ password,
132
+ walletOperation: browser.WalletOperation.SIGN_TRANSACTION
133
+ });
122
134
  try {
123
135
  let messageToSign;
124
136
  if (transaction instanceof web3_js.VersionedTransaction) {
@@ -133,7 +145,8 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
133
145
  const signatureEd25519 = await this.sign({
134
146
  message: messageToSign,
135
147
  accountAddress: senderAddress,
136
- chainName: this.chainName
148
+ chainName: this.chainName,
149
+ password
137
150
  });
138
151
  if (!signatureEd25519) {
139
152
  throw new Error('Signature is undefined');
@@ -155,11 +168,13 @@ class DynamicSvmWalletClient extends browser.DynamicWalletClient {
155
168
  * Exports the private key for a given account address
156
169
  *
157
170
  * @param accountAddress The account address to export the private key for
171
+ * @param password The password for encrypted backup shares
158
172
  * @returns The private key
159
- */ async exportPrivateKey({ accountAddress }) {
173
+ */ async exportPrivateKey({ accountAddress, password = undefined }) {
160
174
  const { derivedPrivateKey } = await this.exportKey({
161
175
  accountAddress,
162
- chainName: this.chainName
176
+ chainName: this.chainName,
177
+ password
163
178
  });
164
179
  if (!derivedPrivateKey) {
165
180
  throw new Error('Derived private key is undefined');
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DynamicWalletClient, getClientKeyShareBackupInfo } from '@dynamic-labs-wallet/browser';
1
+ import { DynamicWalletClient, getClientKeyShareBackupInfo, WalletOperation } from '@dynamic-labs-wallet/browser';
2
2
  import bs58 from 'bs58';
3
3
  import { Transaction, VersionedTransaction, Keypair } from '@solana/web3.js';
4
4
  import '@dynamic-labs-wallet/core';
@@ -27,7 +27,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
27
27
  *
28
28
  * @param thresholdSignatureScheme The threshold signature scheme to use
29
29
  * @returns The account address, public key hex, raw public key, and client key shares
30
- */ async createWalletAccount({ thresholdSignatureScheme }) {
30
+ */ async createWalletAccount({ thresholdSignatureScheme, password = undefined }) {
31
31
  try {
32
32
  const { rawPublicKey, clientKeyShares } = await this.keyGen({
33
33
  chainName: this.chainName,
@@ -55,7 +55,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
55
55
  };
56
56
  await this.storeEncryptedBackupByWallet({
57
57
  accountAddress,
58
- password: undefined
58
+ password
59
59
  });
60
60
  return {
61
61
  accountAddress,
@@ -78,8 +78,14 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
78
78
  * This function takes a message and returns it after being signed with MPC
79
79
  *
80
80
  * @param message The message to sign (Uint8Array)
81
- * @param fromAddress Solana address (base58 encoded)
82
- */ async signMessage({ message, accountAddress }) {
81
+ * @param accountAddress Solana address (base58 encoded)
82
+ * @param password The password for encrypted backup shares
83
+ */ async signMessage({ message, accountAddress, password = undefined }) {
84
+ await this.verifyPassword({
85
+ accountAddress,
86
+ password,
87
+ walletOperation: WalletOperation.SIGN_MESSAGE
88
+ });
83
89
  if (!accountAddress) {
84
90
  throw new Error('Account address is required');
85
91
  }
@@ -87,7 +93,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
87
93
  const signatureEd25519 = await this.sign({
88
94
  message,
89
95
  accountAddress: accountAddress,
90
- chainName: this.chainName
96
+ chainName: this.chainName,
97
+ password
91
98
  });
92
99
  const base58Signature = bs58.encode(signatureEd25519);
93
100
  return base58Signature;
@@ -116,7 +123,12 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
116
123
  // console.log('verified', verified);
117
124
  // return verified;
118
125
  // }
119
- async signTransaction({ senderAddress, transaction }) {
126
+ async signTransaction({ senderAddress, transaction, password = undefined }) {
127
+ await this.verifyPassword({
128
+ accountAddress: senderAddress,
129
+ password,
130
+ walletOperation: WalletOperation.SIGN_TRANSACTION
131
+ });
120
132
  try {
121
133
  let messageToSign;
122
134
  if (transaction instanceof VersionedTransaction) {
@@ -131,7 +143,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
131
143
  const signatureEd25519 = await this.sign({
132
144
  message: messageToSign,
133
145
  accountAddress: senderAddress,
134
- chainName: this.chainName
146
+ chainName: this.chainName,
147
+ password
135
148
  });
136
149
  if (!signatureEd25519) {
137
150
  throw new Error('Signature is undefined');
@@ -153,11 +166,13 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
153
166
  * Exports the private key for a given account address
154
167
  *
155
168
  * @param accountAddress The account address to export the private key for
169
+ * @param password The password for encrypted backup shares
156
170
  * @returns The private key
157
- */ async exportPrivateKey({ accountAddress }) {
171
+ */ async exportPrivateKey({ accountAddress, password = undefined }) {
158
172
  const { derivedPrivateKey } = await this.exportKey({
159
173
  accountAddress,
160
- chainName: this.chainName
174
+ chainName: this.chainName,
175
+ password
161
176
  });
162
177
  if (!derivedPrivateKey) {
163
178
  throw new Error('Derived private key is undefined');
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/svm",
3
- "version": "0.0.33",
3
+ "version": "0.0.34",
4
4
  "dependencies": {
5
- "@dynamic-labs-wallet/browser": "0.0.33",
6
- "@dynamic-labs-wallet/core": "0.0.33",
5
+ "@dynamic-labs-wallet/browser": "0.0.34",
6
+ "@dynamic-labs-wallet/core": "0.0.34",
7
7
  "@solana/web3.js": "^1.98.0",
8
8
  "bs58": "^6.0.0"
9
9
  },
package/src/svm/svm.d.ts CHANGED
@@ -15,8 +15,9 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
15
15
  * @param thresholdSignatureScheme The threshold signature scheme to use
16
16
  * @returns The account address, public key hex, raw public key, and client key shares
17
17
  */
18
- createWalletAccount({ thresholdSignatureScheme, }: {
18
+ createWalletAccount({ thresholdSignatureScheme, password, }: {
19
19
  thresholdSignatureScheme: ThresholdSignatureScheme;
20
+ password?: string;
20
21
  }): Promise<{
21
22
  accountAddress: string;
22
23
  rawPublicKey: Uint8Array;
@@ -29,24 +30,29 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
29
30
  * This function takes a message and returns it after being signed with MPC
30
31
  *
31
32
  * @param message The message to sign (Uint8Array)
32
- * @param fromAddress Solana address (base58 encoded)
33
+ * @param accountAddress Solana address (base58 encoded)
34
+ * @param password The password for encrypted backup shares
33
35
  */
34
- signMessage({ message, accountAddress, }: {
36
+ signMessage({ message, accountAddress, password, }: {
35
37
  message: string;
36
- accountAddress?: string;
38
+ accountAddress: string;
39
+ password?: string;
37
40
  }): Promise<string>;
38
- signTransaction({ senderAddress, transaction, }: {
41
+ signTransaction({ senderAddress, transaction, password, }: {
39
42
  senderAddress: string;
40
43
  transaction: VersionedTransaction | Transaction;
44
+ password?: string;
41
45
  }): Promise<VersionedTransaction | Transaction>;
42
46
  /**
43
47
  * Exports the private key for a given account address
44
48
  *
45
49
  * @param accountAddress The account address to export the private key for
50
+ * @param password The password for encrypted backup shares
46
51
  * @returns The private key
47
52
  */
48
- exportPrivateKey({ accountAddress }: {
53
+ exportPrivateKey({ accountAddress, password, }: {
49
54
  accountAddress: string;
55
+ password?: string;
50
56
  }): Promise<{
51
57
  derivedPrivateKey: string;
52
58
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"svm.d.ts","sourceRoot":"","sources":["../../src/svm/svm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EAEzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;gBAEZ,EACV,aAAa,EACb,SAAS,EACT,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;IASD;;;;;OAKG;IACG,mBAAmB,CAAC,EACxB,wBAAwB,GACzB,EAAE;QACD,wBAAwB,EAAE,wBAAwB,CAAC;KACpD,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,UAAU,CAAC;QACzB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAoDI,oBAAoB,CAAC,YAAY,EAAE,UAAU;;;IAOnD;;;;;OAKG;IACG,WAAW,CAAC,EAChB,OAAO,EACP,cAAc,GACf,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IA0CK,eAAe,CAAC,EACpB,aAAa,EACb,WAAW,GACZ,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,oBAAoB,GAAG,WAAW,CAAC;KACjD,GAAG,OAAO,CAAC,oBAAoB,GAAG,WAAW,CAAC;IAuC/C;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;;;IAYrE;;;;;OAKG;IACG,uBAAuB,CAAC,EAC5B,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;;;IASD;;;;;OAKG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM;IAM5C,0BAA0B,CAAC,UAAU,EAAE,MAAM;IAQ7C,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;IAI9C;;;;;;;OAOG;IACG,gBAAgB,CAAC,EACrB,UAAU,EACV,SAAS,EACT,wBAAwB,GACzB,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;KACpD,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;QACrC,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAmDI,aAAa;CAOpB"}
1
+ {"version":3,"file":"svm.d.ts","sourceRoot":"","sources":["../../src/svm/svm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;gBAEZ,EACV,aAAa,EACb,SAAS,EACT,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;IASD;;;;;OAKG;IACG,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,GACrB,EAAE;QACD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,UAAU,CAAC;QACzB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAoDI,oBAAoB,CAAC,YAAY,EAAE,UAAU;;;IAOnD;;;;;;OAMG;IACG,WAAW,CAAC,EAChB,OAAO,EACP,cAAc,EACd,QAAoB,GACrB,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA6CK,eAAe,CAAC,EACpB,aAAa,EACb,WAAW,EACX,QAAoB,GACrB,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,oBAAoB,GAAG,WAAW,CAAC;QAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,oBAAoB,GAAG,WAAW,CAAC;IA0C/C;;;;;;OAMG;IACG,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;;;IAaD;;;;;OAKG;IACG,uBAAuB,CAAC,EAC5B,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;;;IASD;;;;;OAKG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM;IAM5C,0BAA0B,CAAC,UAAU,EAAE,MAAM;IAQ7C,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;IAI9C;;;;;;;OAOG;IACG,gBAAgB,CAAC,EACrB,UAAU,EACV,SAAS,EACT,wBAAwB,GACzB,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;KACpD,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;QACrC,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAmDI,aAAa;CAOpB"}