@dynamic-labs-wallet/sui 0.0.0-pr384.2 → 0.0.0-pr534.0

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
@@ -50,11 +50,16 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
50
50
  onError,
51
51
  onCeremonyComplete: (accountAddress, walletId)=>{
52
52
  // update wallet map
53
+ const chainConfig = browser.getMPCChainConfig(this.chainName);
53
54
  this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress] || {}, {
54
55
  accountAddress: accountAddress,
55
56
  walletId,
56
57
  chainName: this.chainName,
57
58
  thresholdSignatureScheme,
59
+ derivationPath: JSON.stringify(Object.fromEntries(chainConfig.derivationPath.map((value, index)=>[
60
+ index,
61
+ value
62
+ ]))),
58
63
  clientKeySharesBackupInfo: browser.getClientKeyShareBackupInfo()
59
64
  });
60
65
  this.logger.debug('walletMap updated for wallet', {
@@ -291,7 +296,7 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
291
296
  * @param thresholdSignatureScheme The threshold signature scheme to use
292
297
  * @param password The password for encrypted backup shares
293
298
  * @returns The account address, raw public key, and client key shares
294
- */ async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, signedSessionId, onError }) {
299
+ */ async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, signedSessionId, onError, publicAddressCheck }) {
295
300
  try {
296
301
  let ceremonyCeremonyCompleteResolver;
297
302
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -299,6 +304,9 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
299
304
  });
300
305
  const { privateKey: formattedPrivateKey, privateKeyBytes } = await this.convertSuiPrivateKey(privateKey);
301
306
  const publicKey = this.getPublicKeyFromPrivateKey(privateKeyBytes);
307
+ if (publicAddressCheck && publicKey !== publicAddressCheck) {
308
+ throw new Error(`Public address mismatch: derived address ${publicKey} !== public address ${publicAddressCheck}`);
309
+ }
302
310
  const { rawPublicKey, clientKeyShares } = await this.importRawPrivateKey({
303
311
  chainName,
304
312
  privateKey: formattedPrivateKey,
@@ -388,7 +396,7 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
388
396
  const suiWallets = wallets.filter((wallet)=>wallet.chainName === 'sui');
389
397
  return suiWallets;
390
398
  }
391
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = browser.AuthMode.HEADER, sdkVersion }){
399
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = browser.AuthMode.HEADER, sdkVersion, forwardMPCClient }){
392
400
  super({
393
401
  environmentId,
394
402
  authToken,
@@ -398,7 +406,8 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
398
406
  debug,
399
407
  featureFlags,
400
408
  authMode,
401
- sdkVersion
409
+ sdkVersion,
410
+ forwardMPCClient
402
411
  }), this.chainName = 'SUI';
403
412
  }
404
413
  }
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DynamicWalletClient, getClientKeyShareBackupInfo, ERROR_KEYGEN_FAILED, ERROR_CREATE_WALLET_ACCOUNT, getMPCChainConfig, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_SIGN_MESSAGE, ERROR_IMPORT_PRIVATE_KEY, ERROR_EXPORT_PRIVATE_KEY, AuthMode } from '@dynamic-labs-wallet/browser';
1
+ import { DynamicWalletClient, getMPCChainConfig, getClientKeyShareBackupInfo, ERROR_KEYGEN_FAILED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_SIGN_MESSAGE, ERROR_IMPORT_PRIVATE_KEY, ERROR_EXPORT_PRIVATE_KEY, AuthMode } from '@dynamic-labs-wallet/browser';
2
2
  import { messageWithIntent, toSerializedSignature } from '@mysten/sui/cryptography';
3
3
  import { Ed25519PublicKey, Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
4
4
  import { verifyPersonalMessageSignature, verifyTransactionSignature } from '@mysten/sui/verify';
@@ -48,11 +48,16 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
48
48
  onError,
49
49
  onCeremonyComplete: (accountAddress, walletId)=>{
50
50
  // update wallet map
51
+ const chainConfig = getMPCChainConfig(this.chainName);
51
52
  this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress] || {}, {
52
53
  accountAddress: accountAddress,
53
54
  walletId,
54
55
  chainName: this.chainName,
55
56
  thresholdSignatureScheme,
57
+ derivationPath: JSON.stringify(Object.fromEntries(chainConfig.derivationPath.map((value, index)=>[
58
+ index,
59
+ value
60
+ ]))),
56
61
  clientKeySharesBackupInfo: getClientKeyShareBackupInfo()
57
62
  });
58
63
  this.logger.debug('walletMap updated for wallet', {
@@ -289,7 +294,7 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
289
294
  * @param thresholdSignatureScheme The threshold signature scheme to use
290
295
  * @param password The password for encrypted backup shares
291
296
  * @returns The account address, raw public key, and client key shares
292
- */ async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, signedSessionId, onError }) {
297
+ */ async importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password = undefined, signedSessionId, onError, publicAddressCheck }) {
293
298
  try {
294
299
  let ceremonyCeremonyCompleteResolver;
295
300
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -297,6 +302,9 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
297
302
  });
298
303
  const { privateKey: formattedPrivateKey, privateKeyBytes } = await this.convertSuiPrivateKey(privateKey);
299
304
  const publicKey = this.getPublicKeyFromPrivateKey(privateKeyBytes);
305
+ if (publicAddressCheck && publicKey !== publicAddressCheck) {
306
+ throw new Error(`Public address mismatch: derived address ${publicKey} !== public address ${publicAddressCheck}`);
307
+ }
300
308
  const { rawPublicKey, clientKeyShares } = await this.importRawPrivateKey({
301
309
  chainName,
302
310
  privateKey: formattedPrivateKey,
@@ -386,7 +394,7 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
386
394
  const suiWallets = wallets.filter((wallet)=>wallet.chainName === 'sui');
387
395
  return suiWallets;
388
396
  }
389
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = AuthMode.HEADER, sdkVersion }){
397
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = AuthMode.HEADER, sdkVersion, forwardMPCClient }){
390
398
  super({
391
399
  environmentId,
392
400
  authToken,
@@ -396,7 +404,8 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
396
404
  debug,
397
405
  featureFlags,
398
406
  authMode,
399
- sdkVersion
407
+ sdkVersion,
408
+ forwardMPCClient
400
409
  }), this.chainName = 'SUI';
401
410
  }
402
411
  }
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/sui",
3
- "version": "0.0.0-pr384.2",
3
+ "version": "0.0.0-pr534.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/browser": "0.0.0-pr384.2",
7
+ "@dynamic-labs-wallet/browser": "0.0.0-pr534.0",
8
8
  "@mysten/sui": "1.26.0",
9
9
  "@noble/hashes": "1.7.1",
10
- "@dynamic-labs/sdk-api-core": "^0.0.764",
11
- "bech32-converting": "^1.0.9"
10
+ "bech32-converting": "^1.0.9",
11
+ "@dynamic-labs/sdk-api-core": "^0.0.801"
12
12
  },
13
13
  "publishConfig": {
14
14
  "access": "public"
@@ -2,7 +2,7 @@ import { type ClientKeyShare, DynamicWalletClient, type DynamicWalletClientProps
2
2
  import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
3
3
  export declare class DynamicSuiWalletClient extends DynamicWalletClient {
4
4
  readonly chainName = "SUI";
5
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode, sdkVersion, }: DynamicWalletClientProps);
5
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode, sdkVersion, forwardMPCClient, }: DynamicWalletClientProps);
6
6
  createWalletAccount({ thresholdSignatureScheme, password, onError, signedSessionId, }: {
7
7
  thresholdSignatureScheme: ThresholdSignatureScheme;
8
8
  password?: string;
@@ -73,13 +73,14 @@ export declare class DynamicSuiWalletClient extends DynamicWalletClient {
73
73
  * @param password The password for encrypted backup shares
74
74
  * @returns The account address, raw public key, and client key shares
75
75
  */
76
- importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password, signedSessionId, onError, }: {
76
+ importPrivateKey({ privateKey, chainName, thresholdSignatureScheme, password, signedSessionId, onError, publicAddressCheck, }: {
77
77
  privateKey: string;
78
78
  chainName: string;
79
79
  thresholdSignatureScheme: ThresholdSignatureScheme;
80
80
  password?: string;
81
81
  signedSessionId: string;
82
82
  onError?: (error: Error) => void;
83
+ publicAddressCheck?: string;
83
84
  }): Promise<{
84
85
  accountAddress: string;
85
86
  rawPublicKey: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}