@mysten/sui 1.28.1 → 1.29.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/CHANGELOG.md +14 -0
- package/README.md +5 -4
- package/dist/cjs/client/client.d.ts +2 -1
- package/dist/cjs/client/client.js +7 -0
- package/dist/cjs/client/client.js.map +2 -2
- package/dist/cjs/experimental/core.d.ts +2 -1
- package/dist/cjs/experimental/core.js +12 -1
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/experimental/transports/graphql.d.ts +26 -0
- package/dist/cjs/experimental/transports/graphql.js +310 -0
- package/dist/cjs/experimental/transports/graphql.js.map +7 -0
- package/dist/cjs/experimental/transports/jsonRPC.d.ts +5 -3
- package/dist/cjs/experimental/transports/jsonRPC.js +53 -105
- package/dist/cjs/experimental/transports/jsonRPC.js.map +3 -3
- package/dist/cjs/experimental/transports/utils.d.ts +6 -0
- package/dist/cjs/experimental/transports/utils.js +102 -0
- package/dist/cjs/experimental/transports/utils.js.map +7 -0
- package/dist/cjs/experimental/types.d.ts +27 -6
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/faucet/faucet.d.ts +1 -1
- package/dist/cjs/faucet/faucet.js.map +1 -1
- package/dist/cjs/graphql/client.d.ts +10 -3
- package/dist/cjs/graphql/client.js +12 -4
- package/dist/cjs/graphql/client.js.map +3 -3
- package/dist/cjs/graphql/generated/queries.d.ts +5653 -0
- package/dist/cjs/graphql/generated/queries.js +722 -0
- package/dist/cjs/graphql/generated/queries.js.map +7 -0
- package/dist/cjs/multisig/publickey.d.ts +3 -3
- package/dist/cjs/multisig/publickey.js.map +2 -2
- package/dist/cjs/transactions/Commands.d.ts +2 -2
- package/dist/cjs/transactions/Commands.js.map +2 -2
- package/dist/cjs/transactions/Transaction.d.ts +10 -2
- package/dist/cjs/transactions/Transaction.js +165 -21
- package/dist/cjs/transactions/Transaction.js.map +3 -3
- package/dist/cjs/transactions/TransactionData.d.ts +4 -2
- package/dist/cjs/transactions/TransactionData.js +72 -41
- package/dist/cjs/transactions/TransactionData.js.map +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -1
- package/dist/cjs/verify/verify.d.ts +5 -5
- package/dist/cjs/verify/verify.js.map +2 -2
- package/dist/cjs/version.d.ts +2 -2
- package/dist/cjs/version.js +2 -2
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/zklogin/publickey.d.ts +9 -3
- package/dist/cjs/zklogin/publickey.js +8 -30
- package/dist/cjs/zklogin/publickey.js.map +2 -2
- package/dist/esm/client/client.d.ts +2 -1
- package/dist/esm/client/client.js +7 -0
- package/dist/esm/client/client.js.map +2 -2
- package/dist/esm/experimental/core.d.ts +2 -1
- package/dist/esm/experimental/core.js +12 -1
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/experimental/transports/graphql.d.ts +26 -0
- package/dist/esm/experimental/transports/graphql.js +303 -0
- package/dist/esm/experimental/transports/graphql.js.map +7 -0
- package/dist/esm/experimental/transports/jsonRPC.d.ts +5 -3
- package/dist/esm/experimental/transports/jsonRPC.js +52 -104
- package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/esm/experimental/transports/utils.d.ts +6 -0
- package/dist/esm/experimental/transports/utils.js +82 -0
- package/dist/esm/experimental/transports/utils.js.map +7 -0
- package/dist/esm/experimental/types.d.ts +27 -6
- package/dist/esm/faucet/faucet.d.ts +1 -1
- package/dist/esm/faucet/faucet.js.map +1 -1
- package/dist/esm/graphql/client.d.ts +10 -3
- package/dist/esm/graphql/client.js +12 -4
- package/dist/esm/graphql/client.js.map +2 -2
- package/dist/esm/graphql/generated/queries.d.ts +5653 -0
- package/dist/esm/graphql/generated/queries.js +702 -0
- package/dist/esm/graphql/generated/queries.js.map +7 -0
- package/dist/esm/multisig/publickey.d.ts +3 -3
- package/dist/esm/multisig/publickey.js.map +2 -2
- package/dist/esm/transactions/Commands.d.ts +2 -2
- package/dist/esm/transactions/Commands.js.map +2 -2
- package/dist/esm/transactions/Transaction.d.ts +10 -2
- package/dist/esm/transactions/Transaction.js +165 -21
- package/dist/esm/transactions/Transaction.js.map +3 -3
- package/dist/esm/transactions/TransactionData.d.ts +4 -2
- package/dist/esm/transactions/TransactionData.js +72 -41
- package/dist/esm/transactions/TransactionData.js.map +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -1
- package/dist/esm/verify/verify.d.ts +5 -5
- package/dist/esm/verify/verify.js.map +2 -2
- package/dist/esm/version.d.ts +2 -2
- package/dist/esm/version.js +2 -2
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/zklogin/publickey.d.ts +9 -3
- package/dist/esm/zklogin/publickey.js +8 -30
- package/dist/esm/zklogin/publickey.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -1
- package/src/client/client.ts +10 -0
- package/src/experimental/core.ts +17 -1
- package/src/experimental/transports/graphql.ts +421 -0
- package/src/experimental/transports/jsonRPC.ts +47 -132
- package/src/experimental/transports/utils.ts +117 -0
- package/src/experimental/types.ts +38 -7
- package/src/faucet/faucet.ts +1 -1
- package/src/graphql/client.ts +21 -3
- package/src/graphql/generated/queries.ts +6061 -0
- package/src/graphql/queries/getAllBalances.graphql +20 -0
- package/src/graphql/queries/getBalance.graphql +14 -0
- package/src/graphql/queries/getCoins.graphql +29 -0
- package/src/graphql/queries/getDynamicFields.graphql +36 -0
- package/src/graphql/queries/getReferenceGasPrice.graphql +8 -0
- package/src/graphql/queries/objects.graphql +89 -0
- package/src/graphql/queries/transactions.graphql +80 -0
- package/src/graphql/queries/verifyZkLoginSignature.graphql +16 -0
- package/src/multisig/publickey.ts +3 -3
- package/src/transactions/Commands.ts +3 -2
- package/src/transactions/Transaction.ts +215 -12
- package/src/transactions/TransactionData.ts +86 -46
- package/src/transactions/intents/CoinWithBalance.ts +1 -1
- package/src/verify/verify.ts +6 -6
- package/src/version.ts +2 -2
- package/src/zklogin/publickey.ts +23 -39
|
@@ -211,54 +211,69 @@ export class TransactionDataBuilder implements TransactionData {
|
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
)
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
command
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
214
|
+
mapCommandArguments(
|
|
215
|
+
index: number,
|
|
216
|
+
fn: (arg: Argument, command: Command, commandIndex: number) => Argument,
|
|
217
|
+
) {
|
|
218
|
+
const command = this.commands[index];
|
|
219
|
+
|
|
220
|
+
switch (command.$kind) {
|
|
221
|
+
case 'MoveCall':
|
|
222
|
+
command.MoveCall.arguments = command.MoveCall.arguments.map((arg) =>
|
|
223
|
+
fn(arg, command, index),
|
|
224
|
+
);
|
|
225
|
+
break;
|
|
226
|
+
case 'TransferObjects':
|
|
227
|
+
command.TransferObjects.objects = command.TransferObjects.objects.map((arg) =>
|
|
228
|
+
fn(arg, command, index),
|
|
229
|
+
);
|
|
230
|
+
command.TransferObjects.address = fn(command.TransferObjects.address, command, index);
|
|
231
|
+
break;
|
|
232
|
+
case 'SplitCoins':
|
|
233
|
+
command.SplitCoins.coin = fn(command.SplitCoins.coin, command, index);
|
|
234
|
+
command.SplitCoins.amounts = command.SplitCoins.amounts.map((arg) =>
|
|
235
|
+
fn(arg, command, index),
|
|
236
|
+
);
|
|
237
|
+
break;
|
|
238
|
+
case 'MergeCoins':
|
|
239
|
+
command.MergeCoins.destination = fn(command.MergeCoins.destination, command, index);
|
|
240
|
+
command.MergeCoins.sources = command.MergeCoins.sources.map((arg) =>
|
|
241
|
+
fn(arg, command, index),
|
|
242
|
+
);
|
|
243
|
+
break;
|
|
244
|
+
case 'MakeMoveVec':
|
|
245
|
+
command.MakeMoveVec.elements = command.MakeMoveVec.elements.map((arg) =>
|
|
246
|
+
fn(arg, command, index),
|
|
247
|
+
);
|
|
248
|
+
break;
|
|
249
|
+
case 'Upgrade':
|
|
250
|
+
command.Upgrade.ticket = fn(command.Upgrade.ticket, command, index);
|
|
251
|
+
break;
|
|
252
|
+
case '$Intent':
|
|
253
|
+
const inputs = command.$Intent.inputs;
|
|
254
|
+
command.$Intent.inputs = {};
|
|
255
|
+
|
|
256
|
+
for (const [key, value] of Object.entries(inputs)) {
|
|
257
|
+
command.$Intent.inputs[key] = Array.isArray(value)
|
|
258
|
+
? value.map((arg) => fn(arg, command, index))
|
|
259
|
+
: fn(value, command, index);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
break;
|
|
263
|
+
case 'Publish':
|
|
264
|
+
break;
|
|
265
|
+
default:
|
|
266
|
+
throw new Error(`Unexpected transaction kind: ${(command as { $kind: unknown }).$kind}`);
|
|
258
267
|
}
|
|
259
268
|
}
|
|
260
269
|
|
|
261
|
-
|
|
270
|
+
mapArguments(fn: (arg: Argument, command: Command, commandIndex: number) => Argument) {
|
|
271
|
+
for (const commandIndex of this.commands.keys()) {
|
|
272
|
+
this.mapCommandArguments(commandIndex, fn);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
replaceCommand(index: number, replacement: Command | Command[], resultIndex = index) {
|
|
262
277
|
if (!Array.isArray(replacement)) {
|
|
263
278
|
this.commands[index] = replacement;
|
|
264
279
|
return;
|
|
@@ -268,15 +283,27 @@ export class TransactionDataBuilder implements TransactionData {
|
|
|
268
283
|
this.commands.splice(index, 1, ...replacement);
|
|
269
284
|
|
|
270
285
|
if (sizeDiff !== 0) {
|
|
271
|
-
this.mapArguments((arg) => {
|
|
286
|
+
this.mapArguments((arg, _command, commandIndex) => {
|
|
287
|
+
if (commandIndex < index + replacement.length) {
|
|
288
|
+
return arg;
|
|
289
|
+
}
|
|
290
|
+
|
|
272
291
|
switch (arg.$kind) {
|
|
273
292
|
case 'Result':
|
|
293
|
+
if (arg.Result === index) {
|
|
294
|
+
arg.Result = resultIndex;
|
|
295
|
+
}
|
|
296
|
+
|
|
274
297
|
if (arg.Result > index) {
|
|
275
298
|
arg.Result += sizeDiff;
|
|
276
299
|
}
|
|
277
300
|
break;
|
|
278
301
|
|
|
279
302
|
case 'NestedResult':
|
|
303
|
+
if (arg.NestedResult[0] === index) {
|
|
304
|
+
arg.NestedResult[0] = resultIndex;
|
|
305
|
+
}
|
|
306
|
+
|
|
280
307
|
if (arg.NestedResult[0] > index) {
|
|
281
308
|
arg.NestedResult[0] += sizeDiff;
|
|
282
309
|
}
|
|
@@ -295,4 +322,17 @@ export class TransactionDataBuilder implements TransactionData {
|
|
|
295
322
|
snapshot(): TransactionData {
|
|
296
323
|
return parse(TransactionData, this);
|
|
297
324
|
}
|
|
325
|
+
|
|
326
|
+
shallowClone() {
|
|
327
|
+
return new TransactionDataBuilder({
|
|
328
|
+
version: this.version,
|
|
329
|
+
sender: this.sender,
|
|
330
|
+
expiration: this.expiration,
|
|
331
|
+
gasData: {
|
|
332
|
+
...this.gasData,
|
|
333
|
+
},
|
|
334
|
+
inputs: [...this.inputs],
|
|
335
|
+
commands: [...this.commands],
|
|
336
|
+
});
|
|
337
|
+
}
|
|
298
338
|
}
|
|
@@ -37,7 +37,7 @@ export function coinWithBalance({
|
|
|
37
37
|
tx.addIntentResolver(COIN_WITH_BALANCE, resolveCoinBalance);
|
|
38
38
|
const coinType = type === 'gas' ? type : normalizeStructTag(type);
|
|
39
39
|
|
|
40
|
-
coinResult = tx.add
|
|
40
|
+
coinResult = tx.add(
|
|
41
41
|
Commands.Intent({
|
|
42
42
|
name: COIN_WITH_BALANCE,
|
|
43
43
|
inputs: {},
|
package/src/verify/verify.ts
CHANGED
|
@@ -5,13 +5,13 @@ import { fromBase64 } from '@mysten/bcs';
|
|
|
5
5
|
|
|
6
6
|
import type { PublicKey, SignatureFlag, SignatureScheme } from '../cryptography/index.js';
|
|
7
7
|
import { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from '../cryptography/index.js';
|
|
8
|
-
import type { SuiGraphQLClient } from '../graphql/client.js';
|
|
9
8
|
import { Ed25519PublicKey } from '../keypairs/ed25519/publickey.js';
|
|
10
9
|
import { PasskeyPublicKey } from '../keypairs/passkey/publickey.js';
|
|
11
10
|
import { Secp256k1PublicKey } from '../keypairs/secp256k1/publickey.js';
|
|
12
11
|
import { Secp256r1PublicKey } from '../keypairs/secp256r1/publickey.js';
|
|
13
12
|
// eslint-disable-next-line import/no-cycle
|
|
14
13
|
import { MultiSigPublicKey } from '../multisig/publickey.js';
|
|
14
|
+
import type { ZkLoginCompatibleClient } from '../zklogin/publickey.js';
|
|
15
15
|
import { ZkLoginPublicIdentifier } from '../zklogin/publickey.js';
|
|
16
16
|
|
|
17
17
|
export async function verifySignature(
|
|
@@ -37,7 +37,7 @@ export async function verifySignature(
|
|
|
37
37
|
export async function verifyPersonalMessageSignature(
|
|
38
38
|
message: Uint8Array,
|
|
39
39
|
signature: string,
|
|
40
|
-
options: { client?:
|
|
40
|
+
options: { client?: ZkLoginCompatibleClient; address?: string } = {},
|
|
41
41
|
): Promise<PublicKey> {
|
|
42
42
|
const parsedSignature = parseSignature(signature, options);
|
|
43
43
|
|
|
@@ -60,7 +60,7 @@ export async function verifyPersonalMessageSignature(
|
|
|
60
60
|
export async function verifyTransactionSignature(
|
|
61
61
|
transaction: Uint8Array,
|
|
62
62
|
signature: string,
|
|
63
|
-
options: { client?:
|
|
63
|
+
options: { client?: ZkLoginCompatibleClient; address?: string } = {},
|
|
64
64
|
): Promise<PublicKey> {
|
|
65
65
|
const parsedSignature = parseSignature(signature, options);
|
|
66
66
|
|
|
@@ -80,7 +80,7 @@ export async function verifyTransactionSignature(
|
|
|
80
80
|
return parsedSignature.publicKey;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
function parseSignature(signature: string, options: { client?:
|
|
83
|
+
function parseSignature(signature: string, options: { client?: ZkLoginCompatibleClient } = {}) {
|
|
84
84
|
const parsedSignature = parseSerializedSignature(signature);
|
|
85
85
|
|
|
86
86
|
if (parsedSignature.signatureScheme === 'MultiSig') {
|
|
@@ -104,7 +104,7 @@ function parseSignature(signature: string, options: { client?: SuiGraphQLClient
|
|
|
104
104
|
export function publicKeyFromRawBytes(
|
|
105
105
|
signatureScheme: SignatureScheme,
|
|
106
106
|
bytes: Uint8Array,
|
|
107
|
-
options: { client?:
|
|
107
|
+
options: { client?: ZkLoginCompatibleClient } = {},
|
|
108
108
|
): PublicKey {
|
|
109
109
|
switch (signatureScheme) {
|
|
110
110
|
case 'ED25519':
|
|
@@ -126,7 +126,7 @@ export function publicKeyFromRawBytes(
|
|
|
126
126
|
|
|
127
127
|
export function publicKeyFromSuiBytes(
|
|
128
128
|
publicKey: string | Uint8Array,
|
|
129
|
-
options: { client?:
|
|
129
|
+
options: { client?: ZkLoginCompatibleClient } = {},
|
|
130
130
|
) {
|
|
131
131
|
const bytes = typeof publicKey === 'string' ? fromBase64(publicKey) : publicKey;
|
|
132
132
|
|
package/src/version.ts
CHANGED
package/src/zklogin/publickey.ts
CHANGED
|
@@ -9,26 +9,35 @@ import { PublicKey } from '../cryptography/publickey.js';
|
|
|
9
9
|
import type { PublicKeyInitData } from '../cryptography/publickey.js';
|
|
10
10
|
import { SIGNATURE_SCHEME_TO_FLAG } from '../cryptography/signature-scheme.js';
|
|
11
11
|
import { SuiGraphQLClient } from '../graphql/client.js';
|
|
12
|
-
import { graphql } from '../graphql/schemas/latest/index.js';
|
|
13
12
|
import { normalizeSuiAddress, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';
|
|
14
13
|
import type { ZkLoginSignatureInputs } from './bcs.js';
|
|
15
14
|
import { extractClaimValue } from './jwt-utils.js';
|
|
16
15
|
import { parseZkLoginSignature } from './signature.js';
|
|
17
16
|
import { normalizeZkLoginIssuer, toBigEndianBytes, toPaddedBigEndianBytes } from './utils.js';
|
|
17
|
+
import type { ClientWithExtensions, Experimental_SuiClientTypes } from '../experimental/types.js';
|
|
18
|
+
|
|
19
|
+
export interface ZkLoginCompatibleClient
|
|
20
|
+
extends ClientWithExtensions<{
|
|
21
|
+
core: {
|
|
22
|
+
verifyZkLoginSignature: NonNullable<
|
|
23
|
+
Experimental_SuiClientTypes.TransportMethods['verifyZkLoginSignature']
|
|
24
|
+
>;
|
|
25
|
+
};
|
|
26
|
+
}> {}
|
|
18
27
|
|
|
19
28
|
/**
|
|
20
29
|
* A zkLogin public identifier
|
|
21
30
|
*/
|
|
22
31
|
export class ZkLoginPublicIdentifier extends PublicKey {
|
|
23
32
|
#data: Uint8Array;
|
|
24
|
-
#client?:
|
|
33
|
+
#client?: ZkLoginCompatibleClient;
|
|
25
34
|
#legacyAddress: boolean;
|
|
26
35
|
|
|
27
36
|
/**
|
|
28
37
|
* Create a new ZkLoginPublicIdentifier object
|
|
29
38
|
* @param value zkLogin public identifier as buffer or base-64 encoded string
|
|
30
39
|
*/
|
|
31
|
-
constructor(value: PublicKeyInitData, { client }: { client?:
|
|
40
|
+
constructor(value: PublicKeyInitData, { client }: { client?: ZkLoginCompatibleClient } = {}) {
|
|
32
41
|
super();
|
|
33
42
|
|
|
34
43
|
this.#client = client;
|
|
@@ -127,7 +136,7 @@ export class ZkLoginPublicIdentifier extends PublicKey {
|
|
|
127
136
|
address: address,
|
|
128
137
|
bytes: toBase64(message),
|
|
129
138
|
signature: parsedSignature.serializedSignature,
|
|
130
|
-
intentScope: '
|
|
139
|
+
intentScope: 'PersonalMessage',
|
|
131
140
|
client: this.#client,
|
|
132
141
|
});
|
|
133
142
|
}
|
|
@@ -142,7 +151,7 @@ export class ZkLoginPublicIdentifier extends PublicKey {
|
|
|
142
151
|
address: address,
|
|
143
152
|
bytes: toBase64(transaction),
|
|
144
153
|
signature: parsedSignature.serializedSignature,
|
|
145
|
-
intentScope: '
|
|
154
|
+
intentScope: 'TransactionData',
|
|
146
155
|
client: this.#client,
|
|
147
156
|
});
|
|
148
157
|
}
|
|
@@ -159,7 +168,7 @@ export class ZkLoginPublicIdentifier extends PublicKey {
|
|
|
159
168
|
export function toZkLoginPublicIdentifier(
|
|
160
169
|
addressSeed: bigint,
|
|
161
170
|
iss: string,
|
|
162
|
-
options?: { client?:
|
|
171
|
+
options?: { client?: ZkLoginCompatibleClient; legacyAddress?: boolean },
|
|
163
172
|
): ZkLoginPublicIdentifier {
|
|
164
173
|
// Consists of iss_bytes_len || iss_bytes || padded_32_byte_address_seed.
|
|
165
174
|
const addressSeedBytesBigEndian = options?.legacyAddress
|
|
@@ -174,25 +183,6 @@ export function toZkLoginPublicIdentifier(
|
|
|
174
183
|
return new ZkLoginPublicIdentifier(tmp, options);
|
|
175
184
|
}
|
|
176
185
|
|
|
177
|
-
const VerifyZkLoginSignatureQuery = graphql(`
|
|
178
|
-
query Zklogin(
|
|
179
|
-
$bytes: Base64!
|
|
180
|
-
$signature: Base64!
|
|
181
|
-
$intentScope: ZkLoginIntentScope!
|
|
182
|
-
$author: SuiAddress!
|
|
183
|
-
) {
|
|
184
|
-
verifyZkloginSignature(
|
|
185
|
-
bytes: $bytes
|
|
186
|
-
signature: $signature
|
|
187
|
-
intentScope: $intentScope
|
|
188
|
-
author: $author
|
|
189
|
-
) {
|
|
190
|
-
success
|
|
191
|
-
errors
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
`);
|
|
195
|
-
|
|
196
186
|
function normalizeZkLoginPublicKeyBytes(bytes: Uint8Array, legacyAddress = false) {
|
|
197
187
|
const issByteLength = bytes[0] + 1;
|
|
198
188
|
const addressSeed = BigInt(`0x${toHex(bytes.slice(issByteLength))}`);
|
|
@@ -217,23 +207,17 @@ async function graphqlVerifyZkLoginSignature({
|
|
|
217
207
|
address: string;
|
|
218
208
|
bytes: string;
|
|
219
209
|
signature: string;
|
|
220
|
-
intentScope: '
|
|
221
|
-
client?:
|
|
210
|
+
intentScope: 'PersonalMessage' | 'TransactionData';
|
|
211
|
+
client?: ZkLoginCompatibleClient;
|
|
222
212
|
}) {
|
|
223
|
-
const resp = await client.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
intentScope,
|
|
229
|
-
author: address,
|
|
230
|
-
},
|
|
213
|
+
const resp = await client.core.verifyZkLoginSignature({
|
|
214
|
+
bytes,
|
|
215
|
+
signature,
|
|
216
|
+
intentScope,
|
|
217
|
+
author: address,
|
|
231
218
|
});
|
|
232
219
|
|
|
233
|
-
return
|
|
234
|
-
resp.data?.verifyZkloginSignature.success === true &&
|
|
235
|
-
resp.data?.verifyZkloginSignature.errors.length === 0
|
|
236
|
-
);
|
|
220
|
+
return resp.success === true && resp.errors.length === 0;
|
|
237
221
|
}
|
|
238
222
|
|
|
239
223
|
export function parseSerializedZkLoginSignature(signature: Uint8Array | string) {
|