@mysten/sui 1.17.0 → 1.18.1
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 +25 -0
- package/dist/cjs/bcs/bcs.d.ts +95 -95
- package/dist/cjs/bcs/effects.d.ts +41 -41
- package/dist/cjs/bcs/index.d.ts +136 -136
- package/dist/cjs/client/client.d.ts +1 -0
- package/dist/cjs/client/types/generated.d.ts +76 -27
- package/dist/cjs/client/types/generated.js.map +1 -1
- package/dist/cjs/client/types/params.d.ts +5 -1
- package/dist/cjs/client/types/params.js.map +1 -1
- package/dist/cjs/cryptography/intent.d.ts +1 -1
- package/dist/cjs/cryptography/publickey.d.ts +4 -0
- package/dist/cjs/cryptography/publickey.js +6 -0
- package/dist/cjs/cryptography/publickey.js.map +2 -2
- package/dist/cjs/cryptography/signature.d.ts +9 -9
- package/dist/cjs/graphql/generated/2024.1/tada-env.d.ts +11380 -0
- package/dist/cjs/graphql/generated/2024.1/tada-env.js +13142 -0
- package/dist/cjs/graphql/generated/2024.1/tada-env.js.map +7 -0
- package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +1 -1
- package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js.map +1 -1
- package/dist/cjs/graphql/generated/2024.4/tada-env.d.ts +11496 -0
- package/dist/cjs/graphql/generated/2024.4/tada-env.js +13288 -0
- package/dist/cjs/graphql/generated/2024.4/tada-env.js.map +7 -0
- package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +1 -1
- package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js.map +1 -1
- package/dist/cjs/graphql/generated/latest/tada-env.d.ts +12540 -0
- package/dist/cjs/graphql/generated/latest/tada-env.js +14498 -0
- package/dist/cjs/graphql/generated/latest/tada-env.js.map +7 -0
- package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +12 -0
- package/dist/cjs/graphql/generated/latest/tsconfig.tada.js.map +7 -0
- package/dist/cjs/graphql/schemas/2024.1/index.d.ts +6 -8999
- package/dist/cjs/graphql/schemas/2024.1/index.js.map +1 -1
- package/dist/cjs/graphql/schemas/2024.4/index.d.ts +6 -9053
- package/dist/cjs/graphql/schemas/2024.4/index.js.map +1 -1
- package/dist/cjs/graphql/schemas/latest/index.d.ts +10 -0
- package/dist/cjs/graphql/schemas/latest/index.js +31 -0
- package/dist/cjs/graphql/schemas/latest/index.js.map +7 -0
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.d.ts +0 -5
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -25
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +3 -3
- package/dist/cjs/keypairs/ed25519/keypair.d.ts +1 -1
- package/dist/cjs/keypairs/ed25519/keypair.js +22 -18
- package/dist/cjs/keypairs/ed25519/keypair.js.map +3 -3
- package/dist/cjs/keypairs/ed25519/publickey.js +2 -12
- package/dist/cjs/keypairs/ed25519/publickey.js.map +3 -3
- package/dist/cjs/keypairs/passkey/keypair.d.ts +1 -1
- package/dist/cjs/keypairs/passkey/publickey.d.ts +4 -4
- package/dist/cjs/keypairs/secp256k1/keypair.d.ts +1 -1
- package/dist/cjs/keypairs/secp256r1/keypair.d.ts +1 -1
- package/dist/cjs/transactions/Arguments.d.ts +11 -980
- package/dist/cjs/transactions/Arguments.js +1 -3
- package/dist/cjs/transactions/Arguments.js.map +2 -2
- package/dist/cjs/transactions/ObjectCache.d.ts +2 -1
- package/dist/cjs/transactions/ObjectCache.js +8 -3
- package/dist/cjs/transactions/ObjectCache.js.map +2 -2
- package/dist/cjs/transactions/Transaction.d.ts +13 -33
- package/dist/cjs/transactions/Transaction.js +8 -8
- package/dist/cjs/transactions/Transaction.js.map +2 -2
- package/dist/cjs/transactions/TransactionData.d.ts +1 -1
- package/dist/cjs/transactions/executor/caching.d.ts +1 -1
- package/dist/cjs/transactions/executor/serial.d.ts +3 -3
- package/dist/cjs/transactions/executor/serial.js +3 -5
- package/dist/cjs/transactions/executor/serial.js.map +3 -3
- package/dist/cjs/verify/verify.d.ts +5 -1
- package/dist/cjs/verify/verify.js +10 -1
- 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 +6 -2
- package/dist/cjs/zklogin/publickey.js +22 -10
- package/dist/cjs/zklogin/publickey.js.map +2 -2
- package/dist/esm/bcs/bcs.d.ts +95 -95
- package/dist/esm/bcs/effects.d.ts +41 -41
- package/dist/esm/bcs/index.d.ts +136 -136
- package/dist/esm/client/client.d.ts +1 -0
- package/dist/esm/client/types/generated.d.ts +76 -27
- package/dist/esm/client/types/params.d.ts +5 -1
- package/dist/esm/cryptography/intent.d.ts +1 -1
- package/dist/esm/cryptography/publickey.d.ts +4 -0
- package/dist/esm/cryptography/publickey.js +6 -0
- package/dist/esm/cryptography/publickey.js.map +2 -2
- package/dist/esm/cryptography/signature.d.ts +9 -9
- package/dist/esm/graphql/generated/2024.1/tada-env.d.ts +11380 -0
- package/dist/esm/graphql/generated/2024.1/tada-env.js +13122 -0
- package/dist/esm/graphql/generated/2024.1/tada-env.js.map +7 -0
- package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +1 -1
- package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js.map +1 -1
- package/dist/esm/graphql/generated/2024.4/tada-env.d.ts +11496 -0
- package/dist/esm/graphql/generated/2024.4/tada-env.js +13268 -0
- package/dist/esm/graphql/generated/2024.4/tada-env.js.map +7 -0
- package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +1 -1
- package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js.map +1 -1
- package/dist/esm/graphql/generated/latest/tada-env.d.ts +12540 -0
- package/dist/esm/graphql/generated/latest/tada-env.js +14478 -0
- package/dist/esm/graphql/generated/latest/tada-env.js.map +7 -0
- package/dist/esm/graphql/generated/latest/tsconfig.tada.js +17 -0
- package/dist/esm/graphql/generated/latest/tsconfig.tada.js.map +7 -0
- package/dist/esm/graphql/schemas/2024.1/index.d.ts +6 -8999
- package/dist/esm/graphql/schemas/2024.1/index.js.map +1 -1
- package/dist/esm/graphql/schemas/2024.4/index.d.ts +6 -9053
- package/dist/esm/graphql/schemas/2024.4/index.js.map +1 -1
- package/dist/esm/graphql/schemas/latest/index.d.ts +10 -0
- package/dist/esm/graphql/schemas/latest/index.js +10 -0
- package/dist/esm/graphql/schemas/latest/index.js.map +7 -0
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.d.ts +0 -5
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -15
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +2 -2
- package/dist/esm/keypairs/ed25519/keypair.d.ts +1 -1
- package/dist/esm/keypairs/ed25519/keypair.js +22 -8
- package/dist/esm/keypairs/ed25519/keypair.js.map +2 -2
- package/dist/esm/keypairs/ed25519/publickey.js +2 -2
- package/dist/esm/keypairs/ed25519/publickey.js.map +2 -2
- package/dist/esm/keypairs/passkey/keypair.d.ts +1 -1
- package/dist/esm/keypairs/passkey/publickey.d.ts +4 -4
- package/dist/esm/keypairs/secp256k1/keypair.d.ts +1 -1
- package/dist/esm/keypairs/secp256r1/keypair.d.ts +1 -1
- package/dist/esm/transactions/Arguments.d.ts +11 -980
- package/dist/esm/transactions/Arguments.js +1 -3
- package/dist/esm/transactions/Arguments.js.map +2 -2
- package/dist/esm/transactions/ObjectCache.d.ts +2 -1
- package/dist/esm/transactions/ObjectCache.js +8 -3
- package/dist/esm/transactions/ObjectCache.js.map +2 -2
- package/dist/esm/transactions/Transaction.d.ts +13 -33
- package/dist/esm/transactions/Transaction.js +8 -8
- package/dist/esm/transactions/Transaction.js.map +2 -2
- package/dist/esm/transactions/TransactionData.d.ts +1 -1
- package/dist/esm/transactions/executor/caching.d.ts +1 -1
- package/dist/esm/transactions/executor/serial.d.ts +3 -3
- package/dist/esm/transactions/executor/serial.js +3 -5
- package/dist/esm/transactions/executor/serial.js.map +2 -2
- package/dist/esm/verify/verify.d.ts +5 -1
- package/dist/esm/verify/verify.js +10 -1
- 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 +6 -2
- package/dist/esm/zklogin/publickey.js +21 -9
- package/dist/esm/zklogin/publickey.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/graphql/schemas/latest/package.json +6 -0
- package/package.json +15 -13
- package/src/client/types/generated.ts +110 -59
- package/src/client/types/params.ts +5 -1
- package/src/cryptography/publickey.ts +7 -0
- package/src/graphql/generated/2024.1/tada-env.ts +13144 -0
- package/src/graphql/generated/2024.1/tsconfig.tada.json +1 -1
- package/src/graphql/generated/2024.4/tada-env.ts +13290 -0
- package/src/graphql/generated/2024.4/tsconfig.tada.json +1 -1
- package/src/graphql/generated/latest/schema.graphql +4808 -0
- package/src/graphql/generated/latest/tada-env.ts +14500 -0
- package/src/graphql/generated/latest/tsconfig.tada.json +11 -0
- package/src/graphql/schemas/2024.1/index.ts +1 -1
- package/src/graphql/schemas/2024.4/index.ts +1 -1
- package/src/graphql/schemas/latest/index.ts +17 -0
- package/src/keypairs/ed25519/ed25519-hd-key.ts +4 -14
- package/src/keypairs/ed25519/keypair.ts +23 -8
- package/src/keypairs/ed25519/publickey.ts +2 -2
- package/src/transactions/Arguments.ts +6 -5
- package/src/transactions/ObjectCache.ts +5 -1
- package/src/transactions/Transaction.ts +21 -15
- package/src/transactions/__tests__/bcs.test.ts +1 -1
- package/src/transactions/executor/serial.ts +3 -5
- package/src/verify/verify.ts +21 -3
- package/src/version.ts +2 -2
- package/src/zklogin/publickey.ts +19 -8
- package/dist/cjs/graphql/generated/2024.1/tada-env.d.js +0 -17
- package/dist/cjs/graphql/generated/2024.1/tada-env.d.js.map +0 -7
- package/dist/cjs/graphql/generated/2024.4/tada-env.d.js +0 -17
- package/dist/cjs/graphql/generated/2024.4/tada-env.d.js.map +0 -7
- package/dist/esm/graphql/generated/2024.1/tada-env.d.js +0 -1
- package/dist/esm/graphql/generated/2024.1/tada-env.d.js.map +0 -7
- package/dist/esm/graphql/generated/2024.4/tada-env.d.js +0 -1
- package/dist/esm/graphql/generated/2024.4/tada-env.d.js.map +0 -7
- package/src/graphql/generated/2024.1/tada-env.d.ts +0 -201
- package/src/graphql/generated/2024.4/tada-env.d.ts +0 -203
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphql/schemas/2024.4/index.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { initGraphQLTada } from 'gql.tada';\n\nimport type { introspection } from '../../generated/2024.4/tada-env.js';\nimport type { CustomScalars } from '../../types.js';\n\nexport * from '../../types.js';\n\nexport type { FragmentOf, ResultOf, VariablesOf, TadaDocumentNode } from 'gql.tada';\nexport { readFragment, maskFragments } from 'gql.tada';\n\nexport const graphql = initGraphQLTada<{\n\tintrospection: introspection;\n\tscalars: CustomScalars;\n}>();\n"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { initGraphQLTada } from 'gql.tada';\n\nimport type { introspection } from '../../generated/2024.4/tada-env.js';\nimport type { CustomScalars } from '../../types.js';\n\nexport * from '../../types.js';\n\nexport type { FragmentOf, ResultOf, VariablesOf, TadaDocumentNode } from 'gql.tada';\nexport { readFragment, maskFragments } from 'gql.tada';\n\nexport const graphql = initGraphQLTada<{\n\tintrospection: typeof introspection;\n\tscalars: CustomScalars;\n}>();\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAgC;AAKhC,sBAAc,2BARd;AAWA,IAAAA,cAA4C;AAErC,MAAM,cAAU,4BAGpB;",
|
|
6
6
|
"names": ["import_gql"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { initGraphQLTada } from 'gql.tada';
|
|
2
|
+
import type { introspection } from '../../generated/latest/tada-env.js';
|
|
3
|
+
import type { CustomScalars } from '../../types.js';
|
|
4
|
+
export * from '../../types.js';
|
|
5
|
+
export type { FragmentOf, ResultOf, VariablesOf, TadaDocumentNode } from 'gql.tada';
|
|
6
|
+
export { readFragment, maskFragments } from 'gql.tada';
|
|
7
|
+
export declare const graphql: initGraphQLTada<{
|
|
8
|
+
introspection: typeof introspection;
|
|
9
|
+
scalars: CustomScalars;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var latest_exports = {};
|
|
21
|
+
__export(latest_exports, {
|
|
22
|
+
graphql: () => graphql,
|
|
23
|
+
maskFragments: () => import_gql2.maskFragments,
|
|
24
|
+
readFragment: () => import_gql2.readFragment
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(latest_exports);
|
|
27
|
+
var import_gql = require("gql.tada");
|
|
28
|
+
__reExport(latest_exports, require("../../types.js"), module.exports);
|
|
29
|
+
var import_gql2 = require("gql.tada");
|
|
30
|
+
const graphql = (0, import_gql.initGraphQLTada)();
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/graphql/schemas/latest/index.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { initGraphQLTada } from 'gql.tada';\n\nimport type { introspection } from '../../generated/latest/tada-env.js';\nimport type { CustomScalars } from '../../types.js';\n\nexport * from '../../types.js';\n\nexport type { FragmentOf, ResultOf, VariablesOf, TadaDocumentNode } from 'gql.tada';\nexport { readFragment, maskFragments } from 'gql.tada';\n\nexport const graphql = initGraphQLTada<{\n\tintrospection: typeof introspection;\n\tscalars: CustomScalars;\n}>();\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAgC;AAKhC,2BAAc,2BARd;AAWA,IAAAA,cAA4C;AAErC,MAAM,cAAU,4BAGpB;",
|
|
6
|
+
"names": ["import_gql"]
|
|
7
|
+
}
|
|
@@ -4,10 +4,5 @@ type Keys = {
|
|
|
4
4
|
key: Uint8Array;
|
|
5
5
|
chainCode: Uint8Array;
|
|
6
6
|
};
|
|
7
|
-
export declare const pathRegex: RegExp;
|
|
8
|
-
export declare const replaceDerive: (val: string) => string;
|
|
9
|
-
export declare const getMasterKeyFromSeed: (seed: Hex) => Keys;
|
|
10
|
-
export declare const getPublicKey: (privateKey: Uint8Array, withZeroByte?: boolean) => Uint8Array;
|
|
11
|
-
export declare const isValidPath: (path: string) => boolean;
|
|
12
7
|
export declare const derivePath: (path: Path, seed: Hex, offset?: number) => Keys;
|
|
13
8
|
export {};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,29 +15,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var ed25519_hd_key_exports = {};
|
|
30
20
|
__export(ed25519_hd_key_exports, {
|
|
31
|
-
derivePath: () => derivePath
|
|
32
|
-
getMasterKeyFromSeed: () => getMasterKeyFromSeed,
|
|
33
|
-
getPublicKey: () => getPublicKey,
|
|
34
|
-
isValidPath: () => isValidPath,
|
|
35
|
-
pathRegex: () => pathRegex,
|
|
36
|
-
replaceDerive: () => replaceDerive
|
|
21
|
+
derivePath: () => derivePath
|
|
37
22
|
});
|
|
38
23
|
module.exports = __toCommonJS(ed25519_hd_key_exports);
|
|
39
24
|
var import_bcs = require("@mysten/bcs");
|
|
40
25
|
var import_hmac = require("@noble/hashes/hmac");
|
|
41
26
|
var import_sha512 = require("@noble/hashes/sha512");
|
|
42
|
-
var import_tweetnacl = __toESM(require("tweetnacl"));
|
|
43
27
|
const ED25519_CURVE = "ed25519 seed";
|
|
44
28
|
const HARDENED_OFFSET = 2147483648;
|
|
45
29
|
const pathRegex = new RegExp("^m(\\/[0-9]+')+$");
|
|
@@ -70,14 +54,6 @@ const CKDPriv = ({ key, chainCode }, index) => {
|
|
|
70
54
|
chainCode: IR
|
|
71
55
|
};
|
|
72
56
|
};
|
|
73
|
-
const getPublicKey = (privateKey, withZeroByte = true) => {
|
|
74
|
-
const keyPair = import_tweetnacl.default.sign.keyPair.fromSeed(privateKey);
|
|
75
|
-
const signPk = keyPair.secretKey.subarray(32);
|
|
76
|
-
const newArr = new Uint8Array(signPk.length + 1);
|
|
77
|
-
newArr.set([0]);
|
|
78
|
-
newArr.set(signPk, 1);
|
|
79
|
-
return withZeroByte ? newArr : signPk;
|
|
80
|
-
};
|
|
81
57
|
const isValidPath = (path) => {
|
|
82
58
|
if (!pathRegex.test(path)) {
|
|
83
59
|
return false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/keypairs/ed25519/ed25519-hd-key.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This is adapted from https://github.com/alepop/ed25519-hd-key replacing create-hmac\n// with @noble/hashes to be browser compatible.\n\nimport { fromHex } from '@mysten/bcs';\nimport { hmac } from '@noble/hashes/hmac';\nimport { sha512 } from '@noble/hashes/sha512';\
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This is adapted from https://github.com/alepop/ed25519-hd-key replacing create-hmac\n// with @noble/hashes to be browser compatible.\n\nimport { fromHex } from '@mysten/bcs';\nimport { hmac } from '@noble/hashes/hmac';\nimport { sha512 } from '@noble/hashes/sha512';\n\ntype Hex = string;\ntype Path = string;\n\ntype Keys = {\n\tkey: Uint8Array;\n\tchainCode: Uint8Array;\n};\n\nconst ED25519_CURVE = 'ed25519 seed';\nconst HARDENED_OFFSET = 0x80000000;\n\nconst pathRegex = new RegExp(\"^m(\\\\/[0-9]+')+$\");\n\nconst replaceDerive = (val: string): string => val.replace(\"'\", '');\n\nconst getMasterKeyFromSeed = (seed: Hex): Keys => {\n\tconst h = hmac.create(sha512, ED25519_CURVE);\n\tconst I = h.update(fromHex(seed)).digest();\n\tconst IL = I.slice(0, 32);\n\tconst IR = I.slice(32);\n\treturn {\n\t\tkey: IL,\n\t\tchainCode: IR,\n\t};\n};\n\nconst CKDPriv = ({ key, chainCode }: Keys, index: number): Keys => {\n\tconst indexBuffer = new ArrayBuffer(4);\n\tconst cv = new DataView(indexBuffer);\n\tcv.setUint32(0, index);\n\n\tconst data = new Uint8Array(1 + key.length + indexBuffer.byteLength);\n\tdata.set(new Uint8Array(1).fill(0));\n\tdata.set(key, 1);\n\tdata.set(new Uint8Array(indexBuffer, 0, indexBuffer.byteLength), key.length + 1);\n\n\tconst I = hmac.create(sha512, chainCode).update(data).digest();\n\tconst IL = I.slice(0, 32);\n\tconst IR = I.slice(32);\n\treturn {\n\t\tkey: IL,\n\t\tchainCode: IR,\n\t};\n};\n\nconst isValidPath = (path: string): boolean => {\n\tif (!pathRegex.test(path)) {\n\t\treturn false;\n\t}\n\treturn !path\n\t\t.split('/')\n\t\t.slice(1)\n\t\t.map(replaceDerive)\n\t\t.some(isNaN as any /* ts T_T*/);\n};\n\nexport const derivePath = (path: Path, seed: Hex, offset = HARDENED_OFFSET): Keys => {\n\tif (!isValidPath(path)) {\n\t\tthrow new Error('Invalid derivation path');\n\t}\n\n\tconst { key, chainCode } = getMasterKeyFromSeed(seed);\n\tconst segments = path\n\t\t.split('/')\n\t\t.slice(1)\n\t\t.map(replaceDerive)\n\t\t.map((el) => parseInt(el, 10));\n\n\treturn segments.reduce((parentKeys, segment) => CKDPriv(parentKeys, segment + offset), {\n\t\tkey,\n\t\tchainCode,\n\t});\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iBAAwB;AACxB,kBAAqB;AACrB,oBAAuB;AAUvB,MAAM,gBAAgB;AACtB,MAAM,kBAAkB;AAExB,MAAM,YAAY,IAAI,OAAO,kBAAkB;AAE/C,MAAM,gBAAgB,CAAC,QAAwB,IAAI,QAAQ,KAAK,EAAE;AAElE,MAAM,uBAAuB,CAAC,SAAoB;AACjD,QAAM,IAAI,iBAAK,OAAO,sBAAQ,aAAa;AAC3C,QAAM,IAAI,EAAE,WAAO,oBAAQ,IAAI,CAAC,EAAE,OAAO;AACzC,QAAM,KAAK,EAAE,MAAM,GAAG,EAAE;AACxB,QAAM,KAAK,EAAE,MAAM,EAAE;AACrB,SAAO;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,EACZ;AACD;AAEA,MAAM,UAAU,CAAC,EAAE,KAAK,UAAU,GAAS,UAAwB;AAClE,QAAM,cAAc,IAAI,YAAY,CAAC;AACrC,QAAM,KAAK,IAAI,SAAS,WAAW;AACnC,KAAG,UAAU,GAAG,KAAK;AAErB,QAAM,OAAO,IAAI,WAAW,IAAI,IAAI,SAAS,YAAY,UAAU;AACnE,OAAK,IAAI,IAAI,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,OAAK,IAAI,KAAK,CAAC;AACf,OAAK,IAAI,IAAI,WAAW,aAAa,GAAG,YAAY,UAAU,GAAG,IAAI,SAAS,CAAC;AAE/E,QAAM,IAAI,iBAAK,OAAO,sBAAQ,SAAS,EAAE,OAAO,IAAI,EAAE,OAAO;AAC7D,QAAM,KAAK,EAAE,MAAM,GAAG,EAAE;AACxB,QAAM,KAAK,EAAE,MAAM,EAAE;AACrB,SAAO;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,EACZ;AACD;AAEA,MAAM,cAAc,CAAC,SAA0B;AAC9C,MAAI,CAAC,UAAU,KAAK,IAAI,GAAG;AAC1B,WAAO;AAAA,EACR;AACA,SAAO,CAAC,KACN,MAAM,GAAG,EACT,MAAM,CAAC,EACP,IAAI,aAAa,EACjB;AAAA,IAAK;AAAA;AAAA,EAAwB;AAChC;AAEO,MAAM,aAAa,CAAC,MAAY,MAAW,SAAS,oBAA0B;AACpF,MAAI,CAAC,YAAY,IAAI,GAAG;AACvB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAEA,QAAM,EAAE,KAAK,UAAU,IAAI,qBAAqB,IAAI;AACpD,QAAM,WAAW,KACf,MAAM,GAAG,EACT,MAAM,CAAC,EACP,IAAI,aAAa,EACjB,IAAI,CAAC,OAAO,SAAS,IAAI,EAAE,CAAC;AAE9B,SAAO,SAAS,OAAO,CAAC,YAAY,YAAY,QAAQ,YAAY,UAAU,MAAM,GAAG;AAAA,IACtF;AAAA,IACA;AAAA,EACD,CAAC;AACF;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -55,7 +55,7 @@ export declare class Ed25519Keypair extends Keypair {
|
|
|
55
55
|
/**
|
|
56
56
|
* Return the signature for the provided data using Ed25519.
|
|
57
57
|
*/
|
|
58
|
-
sign(data: Uint8Array): Promise<Uint8Array
|
|
58
|
+
sign(data: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
59
59
|
/**
|
|
60
60
|
* Derive Ed25519 keypair from mnemonics and path. The mnemonics must be normalized
|
|
61
61
|
* and validated against the english wordlist.
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var keypair_exports = {};
|
|
30
20
|
__export(keypair_exports, {
|
|
@@ -32,7 +22,7 @@ __export(keypair_exports, {
|
|
|
32
22
|
Ed25519Keypair: () => Ed25519Keypair
|
|
33
23
|
});
|
|
34
24
|
module.exports = __toCommonJS(keypair_exports);
|
|
35
|
-
var
|
|
25
|
+
var import_ed25519 = require("@noble/curves/ed25519");
|
|
36
26
|
var import_keypair = require("../../cryptography/keypair.js");
|
|
37
27
|
var import_mnemonics = require("../../cryptography/mnemonics.js");
|
|
38
28
|
var import_ed25519_hd_key = require("./ed25519-hd-key.js");
|
|
@@ -48,9 +38,16 @@ class Ed25519Keypair extends import_keypair.Keypair {
|
|
|
48
38
|
constructor(keypair) {
|
|
49
39
|
super();
|
|
50
40
|
if (keypair) {
|
|
51
|
-
this.keypair =
|
|
41
|
+
this.keypair = {
|
|
42
|
+
publicKey: keypair.publicKey,
|
|
43
|
+
secretKey: keypair.secretKey.slice(0, 32)
|
|
44
|
+
};
|
|
52
45
|
} else {
|
|
53
|
-
|
|
46
|
+
const privateKey = import_ed25519.ed25519.utils.randomPrivateKey();
|
|
47
|
+
this.keypair = {
|
|
48
|
+
publicKey: import_ed25519.ed25519.getPublicKey(privateKey),
|
|
49
|
+
secretKey: privateKey
|
|
50
|
+
};
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
/**
|
|
@@ -63,7 +60,11 @@ class Ed25519Keypair extends import_keypair.Keypair {
|
|
|
63
60
|
* Generate a new random Ed25519 keypair
|
|
64
61
|
*/
|
|
65
62
|
static generate() {
|
|
66
|
-
|
|
63
|
+
const secretKey = import_ed25519.ed25519.utils.randomPrivateKey();
|
|
64
|
+
return new Ed25519Keypair({
|
|
65
|
+
publicKey: import_ed25519.ed25519.getPublicKey(secretKey),
|
|
66
|
+
secretKey
|
|
67
|
+
});
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
69
70
|
* Create a Ed25519 keypair from a raw secret key byte array, also known as seed.
|
|
@@ -89,12 +90,15 @@ class Ed25519Keypair extends import_keypair.Keypair {
|
|
|
89
90
|
`Wrong secretKey size. Expected ${import_keypair.PRIVATE_KEY_SIZE} bytes, got ${secretKeyLength}.`
|
|
90
91
|
);
|
|
91
92
|
}
|
|
92
|
-
const keypair =
|
|
93
|
+
const keypair = {
|
|
94
|
+
publicKey: import_ed25519.ed25519.getPublicKey(secretKey),
|
|
95
|
+
secretKey
|
|
96
|
+
};
|
|
93
97
|
if (!options || !options.skipValidation) {
|
|
94
98
|
const encoder = new TextEncoder();
|
|
95
99
|
const signData = encoder.encode("sui validation");
|
|
96
|
-
const signature =
|
|
97
|
-
if (!
|
|
100
|
+
const signature = import_ed25519.ed25519.sign(signData, secretKey);
|
|
101
|
+
if (!import_ed25519.ed25519.verify(signature, signData, keypair.publicKey)) {
|
|
98
102
|
throw new Error("provided secretKey is invalid");
|
|
99
103
|
}
|
|
100
104
|
}
|
|
@@ -119,7 +123,7 @@ class Ed25519Keypair extends import_keypair.Keypair {
|
|
|
119
123
|
* Return the signature for the provided data using Ed25519.
|
|
120
124
|
*/
|
|
121
125
|
async sign(data) {
|
|
122
|
-
return
|
|
126
|
+
return import_ed25519.ed25519.sign(data, this.keypair.secretKey);
|
|
123
127
|
}
|
|
124
128
|
/**
|
|
125
129
|
* Derive Ed25519 keypair from mnemonics and path. The mnemonics must be normalized
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/keypairs/ed25519/keypair.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ed25519 } from '@noble/curves/ed25519';\n\nimport {\n\tdecodeSuiPrivateKey,\n\tencodeSuiPrivateKey,\n\tKeypair,\n\tPRIVATE_KEY_SIZE,\n} from '../../cryptography/keypair.js';\nimport { isValidHardenedPath, mnemonicToSeedHex } from '../../cryptography/mnemonics.js';\nimport type { SignatureScheme } from '../../cryptography/signature-scheme.js';\nimport { derivePath } from './ed25519-hd-key.js';\nimport { Ed25519PublicKey } from './publickey.js';\n\nexport const DEFAULT_ED25519_DERIVATION_PATH = \"m/44'/784'/0'/0'/0'\";\n\n/**\n * Ed25519 Keypair data. The publickey is the 32-byte public key and\n * the secretkey is 64-byte, where the first 32 bytes is the secret\n * key and the last 32 bytes is the public key.\n */\nexport interface Ed25519KeypairData {\n\tpublicKey: Uint8Array;\n\tsecretKey: Uint8Array;\n}\n\n/**\n * An Ed25519 Keypair used for signing transactions.\n */\nexport class Ed25519Keypair extends Keypair {\n\tprivate keypair: Ed25519KeypairData;\n\n\t/**\n\t * Create a new Ed25519 keypair instance.\n\t * Generate random keypair if no {@link Ed25519Keypair} is provided.\n\t *\n\t * @param keypair Ed25519 keypair\n\t */\n\tconstructor(keypair?: Ed25519KeypairData) {\n\t\tsuper();\n\t\tif (keypair) {\n\t\t\tthis.keypair = {\n\t\t\t\tpublicKey: keypair.publicKey,\n\t\t\t\tsecretKey: keypair.secretKey.slice(0, 32),\n\t\t\t};\n\t\t} else {\n\t\t\tconst privateKey = ed25519.utils.randomPrivateKey();\n\t\t\tthis.keypair = {\n\t\t\t\tpublicKey: ed25519.getPublicKey(privateKey),\n\t\t\t\tsecretKey: privateKey,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Get the key scheme of the keypair ED25519\n\t */\n\tgetKeyScheme(): SignatureScheme {\n\t\treturn 'ED25519';\n\t}\n\n\t/**\n\t * Generate a new random Ed25519 keypair\n\t */\n\tstatic generate(): Ed25519Keypair {\n\t\tconst secretKey = ed25519.utils.randomPrivateKey();\n\t\treturn new Ed25519Keypair({\n\t\t\tpublicKey: ed25519.getPublicKey(secretKey),\n\t\t\tsecretKey,\n\t\t});\n\t}\n\n\t/**\n\t * Create a Ed25519 keypair from a raw secret key byte array, also known as seed.\n\t * This is NOT the private scalar which is result of hashing and bit clamping of\n\t * the raw secret key.\n\t *\n\t * @throws error if the provided secret key is invalid and validation is not skipped.\n\t *\n\t * @param secretKey secret key as a byte array or Bech32 secret key string\n\t * @param options: skip secret key validation\n\t */\n\tstatic fromSecretKey(\n\t\tsecretKey: Uint8Array | string,\n\t\toptions?: { skipValidation?: boolean },\n\t): Ed25519Keypair {\n\t\tif (typeof secretKey === 'string') {\n\t\t\tconst decoded = decodeSuiPrivateKey(secretKey);\n\n\t\t\tif (decoded.schema !== 'ED25519') {\n\t\t\t\tthrow new Error(`Expected a ED25519 keypair, got ${decoded.schema}`);\n\t\t\t}\n\n\t\t\treturn this.fromSecretKey(decoded.secretKey, options);\n\t\t}\n\n\t\tconst secretKeyLength = secretKey.length;\n\t\tif (secretKeyLength !== PRIVATE_KEY_SIZE) {\n\t\t\tthrow new Error(\n\t\t\t\t`Wrong secretKey size. Expected ${PRIVATE_KEY_SIZE} bytes, got ${secretKeyLength}.`,\n\t\t\t);\n\t\t}\n\t\tconst keypair = {\n\t\t\tpublicKey: ed25519.getPublicKey(secretKey),\n\t\t\tsecretKey,\n\t\t};\n\n\t\tif (!options || !options.skipValidation) {\n\t\t\tconst encoder = new TextEncoder();\n\t\t\tconst signData = encoder.encode('sui validation');\n\t\t\tconst signature = ed25519.sign(signData, secretKey);\n\t\t\tif (!ed25519.verify(signature, signData, keypair.publicKey)) {\n\t\t\t\tthrow new Error('provided secretKey is invalid');\n\t\t\t}\n\t\t}\n\t\treturn new Ed25519Keypair(keypair);\n\t}\n\n\t/**\n\t * The public key for this Ed25519 keypair\n\t */\n\tgetPublicKey(): Ed25519PublicKey {\n\t\treturn new Ed25519PublicKey(this.keypair.publicKey);\n\t}\n\n\t/**\n\t * The Bech32 secret key string for this Ed25519 keypair\n\t */\n\tgetSecretKey(): string {\n\t\treturn encodeSuiPrivateKey(\n\t\t\tthis.keypair.secretKey.slice(0, PRIVATE_KEY_SIZE),\n\t\t\tthis.getKeyScheme(),\n\t\t);\n\t}\n\n\t/**\n\t * Return the signature for the provided data using Ed25519.\n\t */\n\tasync sign(data: Uint8Array) {\n\t\treturn ed25519.sign(data, this.keypair.secretKey);\n\t}\n\n\t/**\n\t * Derive Ed25519 keypair from mnemonics and path. The mnemonics must be normalized\n\t * and validated against the english wordlist.\n\t *\n\t * If path is none, it will default to m/44'/784'/0'/0'/0', otherwise the path must\n\t * be compliant to SLIP-0010 in form m/44'/784'/{account_index}'/{change_index}'/{address_index}'.\n\t */\n\tstatic deriveKeypair(mnemonics: string, path?: string): Ed25519Keypair {\n\t\tif (path == null) {\n\t\t\tpath = DEFAULT_ED25519_DERIVATION_PATH;\n\t\t}\n\t\tif (!isValidHardenedPath(path)) {\n\t\t\tthrow new Error('Invalid derivation path');\n\t\t}\n\t\tconst { key } = derivePath(path, mnemonicToSeedHex(mnemonics));\n\n\t\treturn Ed25519Keypair.fromSecretKey(key);\n\t}\n\n\t/**\n\t * Derive Ed25519 keypair from mnemonicSeed and path.\n\t *\n\t * If path is none, it will default to m/44'/784'/0'/0'/0', otherwise the path must\n\t * be compliant to SLIP-0010 in form m/44'/784'/{account_index}'/{change_index}'/{address_index}'.\n\t */\n\tstatic deriveKeypairFromSeed(seedHex: string, path?: string): Ed25519Keypair {\n\t\tif (path == null) {\n\t\t\tpath = DEFAULT_ED25519_DERIVATION_PATH;\n\t\t}\n\t\tif (!isValidHardenedPath(path)) {\n\t\t\tthrow new Error('Invalid derivation path');\n\t\t}\n\t\tconst { key } = derivePath(path, seedHex);\n\n\t\treturn Ed25519Keypair.fromSecretKey(key);\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var publickey_exports = {};
|
|
30
20
|
__export(publickey_exports, {
|
|
@@ -32,7 +22,7 @@ __export(publickey_exports, {
|
|
|
32
22
|
});
|
|
33
23
|
module.exports = __toCommonJS(publickey_exports);
|
|
34
24
|
var import_bcs = require("@mysten/bcs");
|
|
35
|
-
var
|
|
25
|
+
var import_ed25519 = require("@noble/curves/ed25519");
|
|
36
26
|
var import_publickey = require("../../cryptography/publickey.js");
|
|
37
27
|
var import_signature_scheme = require("../../cryptography/signature-scheme.js");
|
|
38
28
|
var import_signature = require("../../cryptography/signature.js");
|
|
@@ -92,7 +82,7 @@ class Ed25519PublicKey extends import_publickey.PublicKey {
|
|
|
92
82
|
} else {
|
|
93
83
|
bytes = signature;
|
|
94
84
|
}
|
|
95
|
-
return
|
|
85
|
+
return import_ed25519.ed25519.verify(bytes, message, this.toRawBytes());
|
|
96
86
|
}
|
|
97
87
|
}
|
|
98
88
|
Ed25519PublicKey.SIZE = PUBLIC_KEY_SIZE;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/keypairs/ed25519/publickey.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\nimport
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\nimport { ed25519 } from '@noble/curves/ed25519';\n\nimport type { PublicKeyInitData } from '../../cryptography/publickey.js';\nimport { bytesEqual, PublicKey } from '../../cryptography/publickey.js';\nimport { SIGNATURE_SCHEME_TO_FLAG } from '../../cryptography/signature-scheme.js';\nimport { parseSerializedSignature } from '../../cryptography/signature.js';\n\nconst PUBLIC_KEY_SIZE = 32;\n\n/**\n * An Ed25519 public key\n */\nexport class Ed25519PublicKey extends PublicKey {\n\tstatic SIZE = PUBLIC_KEY_SIZE;\n\tprivate data: Uint8Array;\n\n\t/**\n\t * Create a new Ed25519PublicKey object\n\t * @param value ed25519 public key as buffer or base-64 encoded string\n\t */\n\tconstructor(value: PublicKeyInitData) {\n\t\tsuper();\n\n\t\tif (typeof value === 'string') {\n\t\t\tthis.data = fromBase64(value);\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\tthis.data = value;\n\t\t} else {\n\t\t\tthis.data = Uint8Array.from(value);\n\t\t}\n\n\t\tif (this.data.length !== PUBLIC_KEY_SIZE) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid public key input. Expected ${PUBLIC_KEY_SIZE} bytes, got ${this.data.length}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if two Ed25519 public keys are equal\n\t */\n\toverride equals(publicKey: Ed25519PublicKey): boolean {\n\t\treturn super.equals(publicKey);\n\t}\n\n\t/**\n\t * Return the byte array representation of the Ed25519 public key\n\t */\n\ttoRawBytes(): Uint8Array {\n\t\treturn this.data;\n\t}\n\n\t/**\n\t * Return the Sui address associated with this Ed25519 public key\n\t */\n\tflag(): number {\n\t\treturn SIGNATURE_SCHEME_TO_FLAG['ED25519'];\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tasync verify(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\tlet bytes;\n\t\tif (typeof signature === 'string') {\n\t\t\tconst parsed = parseSerializedSignature(signature);\n\t\t\tif (parsed.signatureScheme !== 'ED25519') {\n\t\t\t\tthrow new Error('Invalid signature scheme');\n\t\t\t}\n\n\t\t\tif (!bytesEqual(this.toRawBytes(), parsed.publicKey)) {\n\t\t\t\tthrow new Error('Signature does not match public key');\n\t\t\t}\n\n\t\t\tbytes = parsed.signature;\n\t\t} else {\n\t\t\tbytes = signature;\n\t\t}\n\n\t\treturn ed25519.verify(bytes, message, this.toRawBytes());\n\t}\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAA2B;AAC3B,qBAAwB;AAGxB,uBAAsC;AACtC,8BAAyC;AACzC,uBAAyC;AAEzC,MAAM,kBAAkB;AAKjB,MAAM,yBAAyB,2BAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/C,YAAY,OAA0B;AACrC,UAAM;AAEN,QAAI,OAAO,UAAU,UAAU;AAC9B,WAAK,WAAO,uBAAW,KAAK;AAAA,IAC7B,WAAW,iBAAiB,YAAY;AACvC,WAAK,OAAO;AAAA,IACb,OAAO;AACN,WAAK,OAAO,WAAW,KAAK,KAAK;AAAA,IAClC;AAEA,QAAI,KAAK,KAAK,WAAW,iBAAiB;AACzC,YAAM,IAAI;AAAA,QACT,sCAAsC,eAAe,eAAe,KAAK,KAAK,MAAM;AAAA,MACrF;AAAA,IACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKS,OAAO,WAAsC;AACrD,WAAO,MAAM,OAAO,SAAS;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAyB;AACxB,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe;AACd,WAAO,iDAAyB,SAAS;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,SAAqB,WAAkD;AACnF,QAAI;AACJ,QAAI,OAAO,cAAc,UAAU;AAClC,YAAM,aAAS,2CAAyB,SAAS;AACjD,UAAI,OAAO,oBAAoB,WAAW;AACzC,cAAM,IAAI,MAAM,0BAA0B;AAAA,MAC3C;AAEA,UAAI,KAAC,6BAAW,KAAK,WAAW,GAAG,OAAO,SAAS,GAAG;AACrD,cAAM,IAAI,MAAM,qCAAqC;AAAA,MACtD;AAEA,cAAQ,OAAO;AAAA,IAChB,OAAO;AACN,cAAQ;AAAA,IACT;AAEA,WAAO,uBAAQ,OAAO,OAAO,SAAS,KAAK,WAAW,CAAC;AAAA,EACxD;AACD;AArEa,iBACL,OAAO;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -49,7 +49,7 @@ export declare class PasskeyKeypair extends Signer {
|
|
|
49
49
|
* Return the signature for the provided data (i.e. blake2b(intent_message)).
|
|
50
50
|
* This is sent to passkey as the challenge field.
|
|
51
51
|
*/
|
|
52
|
-
sign(data: Uint8Array): Promise<Uint8Array
|
|
52
|
+
sign(data: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
53
53
|
/**
|
|
54
54
|
* This overrides the base class implementation that accepts the raw bytes and signs its
|
|
55
55
|
* digest of the intent message, then serialize it with the passkey flag.
|
|
@@ -21,7 +21,7 @@ DER structure for P-256 SPKI:
|
|
|
21
21
|
===== above bytes are considered header =====
|
|
22
22
|
04 || x || y -- uncompressed point (65 bytes: 0x04 || 32-byte x || 32-byte y)
|
|
23
23
|
*/
|
|
24
|
-
export declare const SECP256R1_SPKI_HEADER: Uint8Array
|
|
24
|
+
export declare const SECP256R1_SPKI_HEADER: Uint8Array<ArrayBuffer>;
|
|
25
25
|
/**
|
|
26
26
|
* A passkey public key
|
|
27
27
|
*/
|
|
@@ -64,9 +64,9 @@ export declare function parseDerSPKI(derBytes: Uint8Array): Uint8Array;
|
|
|
64
64
|
export declare function parseSerializedPasskeySignature(signature: Uint8Array | string): {
|
|
65
65
|
signatureScheme: "Passkey";
|
|
66
66
|
serializedSignature: string;
|
|
67
|
-
signature: Uint8Array
|
|
67
|
+
signature: Uint8Array<ArrayBufferLike>;
|
|
68
68
|
authenticatorData: number[];
|
|
69
69
|
clientDataJson: string;
|
|
70
|
-
userSignature: Uint8Array
|
|
71
|
-
publicKey: Uint8Array
|
|
70
|
+
userSignature: Uint8Array<ArrayBuffer>;
|
|
71
|
+
publicKey: Uint8Array<ArrayBuffer>;
|
|
72
72
|
};
|
|
@@ -61,7 +61,7 @@ export declare class Secp256k1Keypair extends Keypair {
|
|
|
61
61
|
/**
|
|
62
62
|
* Return the signature for the provided data.
|
|
63
63
|
*/
|
|
64
|
-
sign(data: Uint8Array): Promise<Uint8Array
|
|
64
|
+
sign(data: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
65
65
|
/**
|
|
66
66
|
* Derive Secp256k1 keypair from mnemonics and path. The mnemonics must be normalized
|
|
67
67
|
* and validated against the english wordlist.
|
|
@@ -61,7 +61,7 @@ export declare class Secp256r1Keypair extends Keypair {
|
|
|
61
61
|
/**
|
|
62
62
|
* Return the signature for the provided data.
|
|
63
63
|
*/
|
|
64
|
-
sign(data: Uint8Array): Promise<Uint8Array
|
|
64
|
+
sign(data: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
65
65
|
/**
|
|
66
66
|
* Derive Secp256r1 keypair from mnemonics and path. The mnemonics must be normalized
|
|
67
67
|
* and validated against the english wordlist.
|