@dynamic-labs-wallet/sui 0.0.0-preview-124.2 → 0.0.57

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
@@ -4,6 +4,8 @@ var browser = require('@dynamic-labs-wallet/browser');
4
4
  var ed25519 = require('@mysten/sui/keypairs/ed25519');
5
5
  var cryptography = require('@mysten/sui/cryptography');
6
6
  var verify = require('@mysten/sui/verify');
7
+ var bcs = require('@mysten/sui/bcs');
8
+ var blake2b = require('@noble/hashes/blake2b');
7
9
 
8
10
  function _extends() {
9
11
  _extends = Object.assign || function assign(target) {
@@ -21,6 +23,23 @@ const ERROR_CREATE_WALLET_ACCOUNT = 'Error creating sui wallet account';
21
23
  const ERROR_VERIFY_MESSAGE_SIGNATURE = 'Error verifying message signature';
22
24
  const ERROR_VERIFY_TRANSACTION_SIGNATURE = 'Error verifying transaction signature';
23
25
 
26
+ const formatMessage = (message, intentScope)=>{
27
+ if (intentScope === 'TransactionData') {
28
+ const txBytes = Uint8Array.from(Buffer.from(message, 'hex'));
29
+ const intentMessage = cryptography.messageWithIntent(intentScope, txBytes);
30
+ return blake2b.blake2b(intentMessage, {
31
+ dkLen: 32
32
+ });
33
+ } else {
34
+ const encodedMessage = new TextEncoder().encode(message);
35
+ const serializedMessage = bcs.bcs.vector(bcs.bcs.u8()).serialize(encodedMessage).toBytes();
36
+ const intentMessage = cryptography.messageWithIntent(intentScope, serializedMessage);
37
+ return blake2b.blake2b(intentMessage, {
38
+ dkLen: 32
39
+ });
40
+ }
41
+ };
42
+
24
43
  class DynamicSuiWalletClient extends browser.DynamicWalletClient {
25
44
  async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError }) {
26
45
  try {
@@ -132,12 +151,12 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
132
151
  throw new Error('Account address is required');
133
152
  }
134
153
  try {
154
+ const formattedMessage = formatMessage(message, 'PersonalMessage');
135
155
  const signatureEd25519 = await this.sign({
136
- message,
156
+ message: formattedMessage,
137
157
  accountAddress: accountAddress,
138
158
  chainName: this.chainName,
139
- password,
140
- intent: browser.MessageIntent.SIGN_MESSAGE
159
+ password
141
160
  });
142
161
  const formattedSignature = await this.formatSignature(signatureEd25519, accountAddress);
143
162
  await this.verifyMessageSignature({
@@ -156,12 +175,12 @@ class DynamicSuiWalletClient extends browser.DynamicWalletClient {
156
175
  throw new Error('Account address is required');
157
176
  }
158
177
  try {
178
+ const formattedMessage = formatMessage(message, 'TransactionData');
159
179
  const signatureEd25519 = await this.sign({
160
- message,
180
+ message: formattedMessage,
161
181
  accountAddress: accountAddress,
162
182
  chainName: this.chainName,
163
- password,
164
- intent: browser.MessageIntent.SIGN_TRANSACTION
183
+ password
165
184
  });
166
185
  const formattedSignature = await this.formatSignature(signatureEd25519, accountAddress);
167
186
  await this.verifyTransactionSignature({
package/index.esm.js CHANGED
@@ -1,7 +1,9 @@
1
- import { DynamicWalletClient, getClientKeyShareBackupInfo, getMPCChainConfig, MessageIntent } from '@dynamic-labs-wallet/browser';
1
+ import { DynamicWalletClient, getClientKeyShareBackupInfo, getMPCChainConfig } from '@dynamic-labs-wallet/browser';
2
2
  import { Ed25519PublicKey } from '@mysten/sui/keypairs/ed25519';
3
- import { toSerializedSignature } from '@mysten/sui/cryptography';
3
+ import { messageWithIntent, toSerializedSignature } from '@mysten/sui/cryptography';
4
4
  import { verifyPersonalMessageSignature, verifyTransactionSignature } from '@mysten/sui/verify';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+ import { blake2b } from '@noble/hashes/blake2b';
5
7
 
6
8
  function _extends() {
7
9
  _extends = Object.assign || function assign(target) {
@@ -19,6 +21,23 @@ const ERROR_CREATE_WALLET_ACCOUNT = 'Error creating sui wallet account';
19
21
  const ERROR_VERIFY_MESSAGE_SIGNATURE = 'Error verifying message signature';
20
22
  const ERROR_VERIFY_TRANSACTION_SIGNATURE = 'Error verifying transaction signature';
21
23
 
24
+ const formatMessage = (message, intentScope)=>{
25
+ if (intentScope === 'TransactionData') {
26
+ const txBytes = Uint8Array.from(Buffer.from(message, 'hex'));
27
+ const intentMessage = messageWithIntent(intentScope, txBytes);
28
+ return blake2b(intentMessage, {
29
+ dkLen: 32
30
+ });
31
+ } else {
32
+ const encodedMessage = new TextEncoder().encode(message);
33
+ const serializedMessage = bcs.vector(bcs.u8()).serialize(encodedMessage).toBytes();
34
+ const intentMessage = messageWithIntent(intentScope, serializedMessage);
35
+ return blake2b(intentMessage, {
36
+ dkLen: 32
37
+ });
38
+ }
39
+ };
40
+
22
41
  class DynamicSuiWalletClient extends DynamicWalletClient {
23
42
  async createWalletAccount({ thresholdSignatureScheme, password = undefined, onError }) {
24
43
  try {
@@ -130,12 +149,12 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
130
149
  throw new Error('Account address is required');
131
150
  }
132
151
  try {
152
+ const formattedMessage = formatMessage(message, 'PersonalMessage');
133
153
  const signatureEd25519 = await this.sign({
134
- message,
154
+ message: formattedMessage,
135
155
  accountAddress: accountAddress,
136
156
  chainName: this.chainName,
137
- password,
138
- intent: MessageIntent.SIGN_MESSAGE
157
+ password
139
158
  });
140
159
  const formattedSignature = await this.formatSignature(signatureEd25519, accountAddress);
141
160
  await this.verifyMessageSignature({
@@ -154,12 +173,12 @@ class DynamicSuiWalletClient extends DynamicWalletClient {
154
173
  throw new Error('Account address is required');
155
174
  }
156
175
  try {
176
+ const formattedMessage = formatMessage(message, 'TransactionData');
157
177
  const signatureEd25519 = await this.sign({
158
- message,
178
+ message: formattedMessage,
159
179
  accountAddress: accountAddress,
160
180
  chainName: this.chainName,
161
- password,
162
- intent: MessageIntent.SIGN_TRANSACTION
181
+ password
163
182
  });
164
183
  const formattedSignature = await this.formatSignature(signatureEd25519, accountAddress);
165
184
  await this.verifyTransactionSignature({
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/sui",
3
- "version": "0.0.0-preview-124.2",
3
+ "version": "0.0.57",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
- "@dynamic-labs-wallet/browser": "0.0.0-preview-124.2",
7
- "@mysten/sui": "^1.26.0"
6
+ "@dynamic-labs-wallet/browser": "0.0.57",
7
+ "@mysten/sui": "1.26.0",
8
+ "@noble/hashes": "1.7.1"
8
9
  },
9
10
  "publishConfig": {
10
11
  "access": "public"
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EAIzB,MAAM,8BAA8B,CAAC;AActC,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;gBAEf,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,GACN,EAAE,wBAAwB;IAWrB,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,EACpB,OAAO,GACR,EAAE;QACD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;QACtD,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAwDI,kCAAkC,CAAC,EACvC,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;KAChC;IAYD;;OAEG;YACW,eAAe;YAyBf,sBAAsB;YA6BtB,0BAA0B;IA6BlC,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,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCb,eAAe,CAAC,EACpB,OAAO,EACP,cAAc,EACd,QAAoB,GACrB,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BnB,oBAAoB,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,UAAU,CAAA;KAAE;;;;IAU7D,aAAa;CAOpB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,8BAA8B,CAAC;AAetC,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,SAAS,SAAS;gBAEf,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,GACN,EAAE,wBAAwB;IAWrB,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,EACpB,OAAO,GACR,EAAE;QACD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;QACtD,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;IAwDI,kCAAkC,CAAC,EACvC,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;KAChC;IAYD;;OAEG;YACW,eAAe;YAyBf,sBAAsB;YA6BtB,0BAA0B;IA6BlC,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,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCb,eAAe,CAAC,EACpB,OAAO,EACP,cAAc,EACd,QAAoB,GACrB,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCnB,oBAAoB,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,UAAU,CAAA;KAAE;;;;IAU7D,aAAa;CAOpB"}
package/src/utils.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { IntentScope } from '@mysten/sui/cryptography';
2
+ export declare const formatMessage: (message: string, intentScope: IntentScope) => Uint8Array;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAqB,MAAM,0BAA0B,CAAC;AAG1E,eAAO,MAAM,aAAa,YACf,MAAM,eACF,WAAW,KACvB,UAeF,CAAC"}