ox 1.0.5 → 1.1.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 +50 -0
- package/dist/core/Base64.d.ts +10 -21
- package/dist/core/Base64.d.ts.map +1 -1
- package/dist/core/Base64.js +8 -127
- package/dist/core/Base64.js.map +1 -1
- package/dist/core/BinaryStateTree.d.ts.map +1 -1
- package/dist/core/BinaryStateTree.js +2 -2
- package/dist/core/BinaryStateTree.js.map +1 -1
- package/dist/core/Bls.d.ts.map +1 -1
- package/dist/core/Bls.js +19 -44
- package/dist/core/Bls.js.map +1 -1
- package/dist/core/Ed25519.d.ts.map +1 -1
- package/dist/core/Ed25519.js +7 -6
- package/dist/core/Ed25519.js.map +1 -1
- package/dist/core/Engine.d.ts +124 -0
- package/dist/core/Engine.d.ts.map +1 -0
- package/dist/core/Engine.js +180 -0
- package/dist/core/Engine.js.map +1 -0
- package/dist/core/Hash.d.ts +4 -4
- package/dist/core/Hash.d.ts.map +1 -1
- package/dist/core/Hash.js +9 -12
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/Keystore.d.ts.map +1 -1
- package/dist/core/Keystore.js +15 -10
- package/dist/core/Keystore.js.map +1 -1
- package/dist/core/Mnemonic.d.ts.map +1 -1
- package/dist/core/Mnemonic.js +3 -2
- package/dist/core/Mnemonic.js.map +1 -1
- package/dist/core/P256.d.ts.map +1 -1
- package/dist/core/P256.js +8 -9
- package/dist/core/P256.js.map +1 -1
- package/dist/core/Secp256k1.d.ts.map +1 -1
- package/dist/core/Secp256k1.js +8 -9
- package/dist/core/Secp256k1.js.map +1 -1
- package/dist/core/WebCryptoP256.d.ts.map +1 -1
- package/dist/core/WebCryptoP256.js +2 -2
- package/dist/core/WebCryptoP256.js.map +1 -1
- package/dist/core/X25519.d.ts.map +1 -1
- package/dist/core/X25519.js +4 -3
- package/dist/core/X25519.js.map +1 -1
- package/dist/core/internal/bls.d.ts +12 -0
- package/dist/core/internal/bls.d.ts.map +1 -0
- package/dist/core/internal/bls.js +79 -0
- package/dist/core/internal/bls.js.map +1 -0
- package/dist/core/internal/codec/base64.d.ts +84 -0
- package/dist/core/internal/codec/base64.d.ts.map +1 -0
- package/dist/core/internal/codec/base64.js +177 -0
- package/dist/core/internal/codec/base64.js.map +1 -0
- package/dist/core/internal/codec/hex.d.ts +49 -4
- package/dist/core/internal/codec/hex.d.ts.map +1 -1
- package/dist/core/internal/codec/hex.js +109 -35
- package/dist/core/internal/codec/hex.js.map +1 -1
- package/dist/core/internal/curves.d.ts +17 -0
- package/dist/core/internal/curves.d.ts.map +1 -0
- package/dist/core/internal/curves.js +17 -0
- package/dist/core/internal/curves.js.map +1 -0
- package/dist/core/internal/ed25519.d.ts +14 -0
- package/dist/core/internal/ed25519.d.ts.map +1 -0
- package/dist/core/internal/ed25519.js +29 -0
- package/dist/core/internal/ed25519.js.map +1 -0
- package/dist/core/internal/engine.d.ts +278 -0
- package/dist/core/internal/engine.d.ts.map +1 -0
- package/dist/core/internal/engine.js +131 -0
- package/dist/core/internal/engine.js.map +1 -0
- package/dist/core/internal/hash.d.ts +12 -0
- package/dist/core/internal/hash.d.ts.map +1 -0
- package/dist/core/internal/hash.js +30 -0
- package/dist/core/internal/hash.js.map +1 -0
- package/dist/core/internal/keystore.d.ts +14 -0
- package/dist/core/internal/keystore.d.ts.map +1 -0
- package/dist/core/internal/keystore.js +32 -0
- package/dist/core/internal/keystore.js.map +1 -0
- package/dist/core/internal/mnemonic.d.ts +4 -0
- package/dist/core/internal/mnemonic.d.ts.map +1 -0
- package/dist/core/internal/mnemonic.js +14 -0
- package/dist/core/internal/mnemonic.js.map +1 -0
- package/dist/core/internal/p256.d.ts +14 -0
- package/dist/core/internal/p256.d.ts.map +1 -0
- package/dist/core/internal/p256.js +36 -0
- package/dist/core/internal/p256.js.map +1 -0
- package/dist/core/internal/secp256k1.d.ts +14 -0
- package/dist/core/internal/secp256k1.d.ts.map +1 -0
- package/dist/core/internal/secp256k1.js +36 -0
- package/dist/core/internal/secp256k1.js.map +1 -0
- package/dist/core/internal/x25519.d.ts +8 -0
- package/dist/core/internal/x25519.d.ts.map +1 -0
- package/dist/core/internal/x25519.js +20 -0
- package/dist/core/internal/x25519.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.docs.d.ts +2 -0
- package/dist/index.docs.d.ts.map +1 -1
- package/dist/index.docs.js +2 -0
- package/dist/index.docs.js.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/node/Engine.d.ts +55 -0
- package/dist/node/Engine.d.ts.map +1 -0
- package/dist/node/Engine.js +51 -0
- package/dist/node/Engine.js.map +1 -0
- package/dist/node/Hash.d.ts +39 -0
- package/dist/node/Hash.d.ts.map +1 -0
- package/dist/node/Hash.js +37 -0
- package/dist/node/Hash.js.map +1 -0
- package/dist/node/index.d.ts +39 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +39 -0
- package/dist/node/index.js.map +1 -0
- package/dist/tempo/VirtualMaster.d.ts +2 -0
- package/dist/tempo/VirtualMaster.d.ts.map +1 -1
- package/dist/tempo/VirtualMaster.js +19 -5
- package/dist/tempo/VirtualMaster.js.map +1 -1
- package/dist/tempo/internal/mine.wasm.d.ts +2 -4
- package/dist/tempo/internal/mine.wasm.d.ts.map +1 -1
- package/dist/tempo/internal/mine.wasm.js +7 -12
- package/dist/tempo/internal/mine.wasm.js.map +1 -1
- package/dist/tempo/internal/virtualMasterPool.js +4 -1
- package/dist/tempo/internal/virtualMasterPool.js.map +1 -1
- package/dist/wasm/Engine.d.ts +62 -0
- package/dist/wasm/Engine.d.ts.map +1 -0
- package/dist/wasm/Engine.js +57 -0
- package/dist/wasm/Engine.js.map +1 -0
- package/dist/wasm/Hash.d.ts +49 -0
- package/dist/wasm/Hash.d.ts.map +1 -0
- package/dist/wasm/Hash.js +70 -0
- package/dist/wasm/Hash.js.map +1 -0
- package/dist/wasm/index.d.ts +46 -0
- package/dist/wasm/index.d.ts.map +1 -0
- package/dist/wasm/index.js +46 -0
- package/dist/wasm/index.js.map +1 -0
- package/dist/wasm/internal/hash.d.ts +9 -0
- package/dist/wasm/internal/hash.d.ts.map +1 -0
- package/dist/wasm/internal/hash.js +26 -0
- package/dist/wasm/internal/hash.js.map +1 -0
- package/dist/wasm/internal/hashes.wasm.d.ts +5 -0
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/hashes.wasm.js +12 -0
- package/dist/wasm/internal/hashes.wasm.js.map +1 -0
- package/dist/wasm/internal/instantiate.d.ts +56 -0
- package/dist/wasm/internal/instantiate.d.ts.map +1 -0
- package/dist/wasm/internal/instantiate.js +92 -0
- package/dist/wasm/internal/instantiate.js.map +1 -0
- package/dist/zod/TypedData.d.ts +12 -12
- package/package.json +36 -1
- package/src/core/Base64.ts +19 -166
- package/src/core/BinaryStateTree.ts +2 -3
- package/src/core/Bls.ts +27 -77
- package/src/core/Ed25519.ts +7 -7
- package/src/core/Engine.ts +235 -0
- package/src/core/Hash.ts +9 -12
- package/src/core/Keystore.ts +17 -17
- package/src/core/Mnemonic.ts +3 -6
- package/src/core/P256.ts +15 -24
- package/src/core/Rlp_tx.bench.ts +2 -4
- package/src/core/Secp256k1.ts +9 -14
- package/src/core/TxEnvelopeEip1559.bench.ts +0 -5
- package/src/core/WebCryptoP256.ts +2 -2
- package/src/core/X25519.ts +4 -3
- package/src/core/_test/AbiParameters.adversarial.fuzz.ts +1 -2
- package/src/core/_test/AbiParameters.fuzz.ts +1 -2
- package/src/core/_test/Base.fuzz.ts +1 -2
- package/src/core/_test/Cbor.fuzz.ts +1 -2
- package/src/core/_test/Engine.fuzz.ts +293 -0
- package/src/core/_test/Engine.test-d.ts +84 -0
- package/src/core/_test/Engine.test.ts +523 -0
- package/src/core/_test/Hash.vectors.test.ts +56 -0
- package/src/core/_test/Hex.fuzz.ts +1 -2
- package/src/core/_test/Rlp.fuzz.ts +1 -2
- package/src/core/_test/Signature.fuzz.ts +1 -2
- package/src/core/_test/curves.test.ts +7 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/bls.ts +121 -0
- package/src/core/internal/codec/_test/base64.conformance.ts +156 -0
- package/src/core/internal/codec/_test/hex.conformance.ts +204 -0
- package/src/core/internal/codec/_test/hex.fuzz.ts +234 -0
- package/src/core/internal/codec/_test/hex.test.ts +124 -0
- package/src/core/internal/codec/base64.ts +222 -0
- package/src/core/internal/codec/hex.ts +115 -34
- package/src/core/internal/curves.ts +18 -0
- package/src/core/internal/ed25519.ts +64 -0
- package/src/core/internal/engine.ts +410 -0
- package/src/core/internal/hash.ts +48 -0
- package/src/core/internal/keystore.ts +107 -0
- package/src/core/internal/mnemonic.ts +18 -0
- package/src/core/internal/p256.ts +91 -0
- package/src/core/internal/secp256k1.ts +91 -0
- package/src/core/internal/x25519.ts +40 -0
- package/src/index.docs.ts +2 -0
- package/src/index.ts +36 -0
- package/src/node/Engine.ts +69 -0
- package/src/node/Hash.ts +56 -0
- package/src/node/_test/Engine.test.ts +62 -0
- package/src/node/_test/Hash.test-d.ts +26 -0
- package/src/node/_test/Hash.test.ts +102 -0
- package/src/node/index.ts +40 -0
- package/src/tempo/VirtualMaster.test.ts +75 -0
- package/src/tempo/VirtualMaster.ts +28 -6
- package/src/tempo/internal/mine.wasm.ts +7 -13
- package/src/tempo/internal/virtualMasterPool.ts +4 -1
- package/src/tsconfig.json +2 -1
- package/src/version.ts +1 -1
- package/src/wasm/Engine.ts +76 -0
- package/src/wasm/Hash.bench.ts +60 -0
- package/src/wasm/Hash.ts +109 -0
- package/src/wasm/_test/Engine.test.ts +62 -0
- package/src/wasm/_test/Hash.browser.test.ts +50 -0
- package/src/wasm/_test/Hash.fuzz.ts +188 -0
- package/src/wasm/_test/Hash.test-d.ts +28 -0
- package/src/wasm/_test/Hash.test.ts +211 -0
- package/src/wasm/_test/Hash.vectors.test.ts +117 -0
- package/src/wasm/_test/Runtime.test.ts +21 -0
- package/src/wasm/_test/runtime.wasm.ts +11 -0
- package/src/wasm/index.ts +47 -0
- package/src/wasm/internal/hash.ts +50 -0
- package/src/wasm/internal/hashes.wasm.ts +14 -0
- package/src/wasm/internal/instantiate.ts +135 -0
- package/src/tempo/internal/mine.c +0 -182
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import * as Errors from './Errors.js';
|
|
2
|
+
import * as engine from './internal/engine.js';
|
|
3
|
+
export type { Bls, Ecdh, Ecdsa, Eddsa, Engine, Hash, Keystore, Mnemonic, } from './internal/engine.js';
|
|
4
|
+
/**
|
|
5
|
+
* Installs crypto implementations, replacing the `@noble/*` implementations ox
|
|
6
|
+
* uses by default.
|
|
7
|
+
*
|
|
8
|
+
* Slots and their functions are optional. Omissions preserve earlier
|
|
9
|
+
* overrides, or use Ox's default when none exists. Calls merge, so a later
|
|
10
|
+
* engine can override one primitive.
|
|
11
|
+
*
|
|
12
|
+
* Call this once, during application startup, before any crypto call. ox
|
|
13
|
+
* resolves the engine at call time, so values computed beforehand used whatever
|
|
14
|
+
* implementation was installed then.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts twoslash
|
|
18
|
+
* // @noErrors
|
|
19
|
+
* import { Engine } from 'ox/wasm'
|
|
20
|
+
*
|
|
21
|
+
* await Engine.load()
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ### Overriding a Single Primitive
|
|
26
|
+
*
|
|
27
|
+
* ```ts twoslash
|
|
28
|
+
* import { Engine, Hash } from 'ox'
|
|
29
|
+
*
|
|
30
|
+
* Engine.set({
|
|
31
|
+
* Hash: { keccak256: () => new Uint8Array(32) }
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* Hash.keccak256('0xdeadbeef')
|
|
35
|
+
* // @log: '0x0000000000000000000000000000000000000000000000000000000000000000'
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @param value - Engine to install.
|
|
39
|
+
*/
|
|
40
|
+
export declare function set(value: engine.Engine): void;
|
|
41
|
+
export declare namespace set {
|
|
42
|
+
type ErrorType = UnknownSlotError | UnknownPrimitiveError | Errors.GlobalErrorType;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the installed engine.
|
|
46
|
+
*
|
|
47
|
+
* Only overrides are returned -- slots left on ox's defaults are absent, so an
|
|
48
|
+
* empty object means ox is entirely on its default implementations.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts twoslash
|
|
52
|
+
* import { Engine } from 'ox'
|
|
53
|
+
*
|
|
54
|
+
* Engine.get()
|
|
55
|
+
* // @log: {}
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @returns The installed engine.
|
|
59
|
+
*/
|
|
60
|
+
export declare function get(): engine.Engine;
|
|
61
|
+
export declare namespace get {
|
|
62
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Restores ox's default implementations.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts twoslash
|
|
69
|
+
* import { Engine } from 'ox'
|
|
70
|
+
*
|
|
71
|
+
* Engine.reset('Hash')
|
|
72
|
+
* Engine.reset()
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @param slot - Slot to reset. Resets every slot when omitted.
|
|
76
|
+
*/
|
|
77
|
+
export declare function reset(slot?: keyof engine.Engine): void;
|
|
78
|
+
export declare namespace reset {
|
|
79
|
+
type ErrorType = UnknownSlotError | Errors.GlobalErrorType;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Runs a function with an engine installed, then restores the previous engine.
|
|
83
|
+
*
|
|
84
|
+
* Only safe for synchronous functions: the engine is process-wide for the
|
|
85
|
+
* duration of the call, so concurrent asynchronous work would observe it too.
|
|
86
|
+
* Passing a function that returns a promise throws
|
|
87
|
+
* {@link ox#Engine.AsyncScopeError}.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts twoslash
|
|
91
|
+
* import { Engine, Hash } from 'ox'
|
|
92
|
+
*
|
|
93
|
+
* const hash = Engine.with(
|
|
94
|
+
* { Hash: { keccak256: () => new Uint8Array(32) } },
|
|
95
|
+
* () => Hash.keccak256('0xdeadbeef')
|
|
96
|
+
* )
|
|
97
|
+
* // @log: '0x0000000000000000000000000000000000000000000000000000000000000000'
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @param value - Engine to install for the duration of the call.
|
|
101
|
+
* @param fn - Synchronous function to run.
|
|
102
|
+
* @returns The return value of `fn`.
|
|
103
|
+
*/
|
|
104
|
+
declare function with_<returnType>(value: engine.Engine, fn: () => returnType): returnType;
|
|
105
|
+
export { with_ as with };
|
|
106
|
+
declare namespace with_ {
|
|
107
|
+
type ErrorType = AsyncScopeError | set.ErrorType | get.ErrorType | Errors.GlobalErrorType;
|
|
108
|
+
}
|
|
109
|
+
/** Thrown when an unrecognized engine slot is supplied. */
|
|
110
|
+
export declare class UnknownSlotError extends Errors.BaseError {
|
|
111
|
+
readonly name = "Engine.UnknownSlotError";
|
|
112
|
+
constructor(slot: string);
|
|
113
|
+
}
|
|
114
|
+
/** Thrown when a slot is given an unrecognized primitive name. */
|
|
115
|
+
export declare class UnknownPrimitiveError extends Errors.BaseError {
|
|
116
|
+
readonly name = "Engine.UnknownPrimitiveError";
|
|
117
|
+
constructor(slot: string, primitive: string);
|
|
118
|
+
}
|
|
119
|
+
/** Thrown when {@link ox#Engine.with} is given an asynchronous function. */
|
|
120
|
+
export declare class AsyncScopeError extends Errors.BaseError {
|
|
121
|
+
readonly name = "Engine.AsyncScopeError";
|
|
122
|
+
constructor();
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=Engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAE9C,YAAY,EACV,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAY9C;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,SAAS,GACV,gBAAgB,GAChB,qBAAqB,GACrB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAAC,MAAM,CASnC;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAQtD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,iBAAS,KAAK,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EACpB,EAAE,EAAE,MAAM,UAAU,GACnB,UAAU,CAwBZ;AAED,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;AAExB,OAAO,WAAW,KAAK,CAAC;IACtB,KAAK,SAAS,GACV,eAAe,GACf,GAAG,CAAC,SAAS,GACb,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED,2DAA2D;AAC3D,qBAAa,gBAAiB,SAAQ,MAAM,CAAC,SAAS;IACpD,SAAkB,IAAI,6BAA4B;gBAEtC,IAAI,EAAE,MAAM;CAKzB;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS;IACzD,SAAkB,IAAI,kCAAiC;gBAE3C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAU5C;AAED,4EAA4E;AAC5E,qBAAa,eAAgB,SAAQ,MAAM,CAAC,SAAS;IACnD,SAAkB,IAAI,4BAA2B;;CAUlD"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import * as Caches from './Caches.js';
|
|
2
|
+
import * as Errors from './Errors.js';
|
|
3
|
+
import * as engine from './internal/engine.js';
|
|
4
|
+
/**
|
|
5
|
+
* Installs crypto implementations, replacing the `@noble/*` implementations ox
|
|
6
|
+
* uses by default.
|
|
7
|
+
*
|
|
8
|
+
* Slots and their functions are optional. Omissions preserve earlier
|
|
9
|
+
* overrides, or use Ox's default when none exists. Calls merge, so a later
|
|
10
|
+
* engine can override one primitive.
|
|
11
|
+
*
|
|
12
|
+
* Call this once, during application startup, before any crypto call. ox
|
|
13
|
+
* resolves the engine at call time, so values computed beforehand used whatever
|
|
14
|
+
* implementation was installed then.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts twoslash
|
|
18
|
+
* // @noErrors
|
|
19
|
+
* import { Engine } from 'ox/wasm'
|
|
20
|
+
*
|
|
21
|
+
* await Engine.load()
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ### Overriding a Single Primitive
|
|
26
|
+
*
|
|
27
|
+
* ```ts twoslash
|
|
28
|
+
* import { Engine, Hash } from 'ox'
|
|
29
|
+
*
|
|
30
|
+
* Engine.set({
|
|
31
|
+
* Hash: { keccak256: () => new Uint8Array(32) }
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* Hash.keccak256('0xdeadbeef')
|
|
35
|
+
* // @log: '0x0000000000000000000000000000000000000000000000000000000000000000'
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @param value - Engine to install.
|
|
39
|
+
*/
|
|
40
|
+
export function set(value) {
|
|
41
|
+
for (const [slot, primitives] of Object.entries(value)) {
|
|
42
|
+
if (!engine.slots.includes(slot))
|
|
43
|
+
throw new UnknownSlotError(slot);
|
|
44
|
+
const known = engine.primitives[slot];
|
|
45
|
+
// `primitives` is undefined where the caller is clearing the slot.
|
|
46
|
+
for (const primitive of Object.keys(primitives ?? {}))
|
|
47
|
+
if (!known.includes(primitive))
|
|
48
|
+
throw new UnknownPrimitiveError(slot, primitive);
|
|
49
|
+
}
|
|
50
|
+
engine.merge(value);
|
|
51
|
+
Caches.clear();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns the installed engine.
|
|
55
|
+
*
|
|
56
|
+
* Only overrides are returned -- slots left on ox's defaults are absent, so an
|
|
57
|
+
* empty object means ox is entirely on its default implementations.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts twoslash
|
|
61
|
+
* import { Engine } from 'ox'
|
|
62
|
+
*
|
|
63
|
+
* Engine.get()
|
|
64
|
+
* // @log: {}
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @returns The installed engine.
|
|
68
|
+
*/
|
|
69
|
+
export function get() {
|
|
70
|
+
// Slots are copied too, not just the root: a shared slot lets a caller write
|
|
71
|
+
// `get().Hash!.keccak256 = …` straight into the live registry, changing what
|
|
72
|
+
// ox calls without going through `set` and so without clearing the caches
|
|
73
|
+
// derived from it.
|
|
74
|
+
const copy = {};
|
|
75
|
+
for (const [name, slot] of Object.entries(engine.overrides))
|
|
76
|
+
copy[name] = { ...slot };
|
|
77
|
+
return copy;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Restores ox's default implementations.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts twoslash
|
|
84
|
+
* import { Engine } from 'ox'
|
|
85
|
+
*
|
|
86
|
+
* Engine.reset('Hash')
|
|
87
|
+
* Engine.reset()
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* @param slot - Slot to reset. Resets every slot when omitted.
|
|
91
|
+
*/
|
|
92
|
+
export function reset(slot) {
|
|
93
|
+
// Deleting an unknown key succeeds silently, so without this a misspelled
|
|
94
|
+
// slot reports nothing and leaves the override it was meant to remove
|
|
95
|
+
// installed.
|
|
96
|
+
if (slot !== undefined && !engine.slots.includes(slot))
|
|
97
|
+
throw new UnknownSlotError(slot);
|
|
98
|
+
engine.reset(slot);
|
|
99
|
+
Caches.clear();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Runs a function with an engine installed, then restores the previous engine.
|
|
103
|
+
*
|
|
104
|
+
* Only safe for synchronous functions: the engine is process-wide for the
|
|
105
|
+
* duration of the call, so concurrent asynchronous work would observe it too.
|
|
106
|
+
* Passing a function that returns a promise throws
|
|
107
|
+
* {@link ox#Engine.AsyncScopeError}.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts twoslash
|
|
111
|
+
* import { Engine, Hash } from 'ox'
|
|
112
|
+
*
|
|
113
|
+
* const hash = Engine.with(
|
|
114
|
+
* { Hash: { keccak256: () => new Uint8Array(32) } },
|
|
115
|
+
* () => Hash.keccak256('0xdeadbeef')
|
|
116
|
+
* )
|
|
117
|
+
* // @log: '0x0000000000000000000000000000000000000000000000000000000000000000'
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* @param value - Engine to install for the duration of the call.
|
|
121
|
+
* @param fn - Synchronous function to run.
|
|
122
|
+
* @returns The return value of `fn`.
|
|
123
|
+
*/
|
|
124
|
+
// Declared unexported and surfaced only through the alias below: exporting the
|
|
125
|
+
// backing name too would put an undocumented `Engine.with_` in the public
|
|
126
|
+
// surface, which is then breaking to take away.
|
|
127
|
+
function with_(value, fn) {
|
|
128
|
+
const previous = get();
|
|
129
|
+
try {
|
|
130
|
+
set(value);
|
|
131
|
+
const result = fn();
|
|
132
|
+
const thenable = result;
|
|
133
|
+
if (typeof thenable?.then === 'function') {
|
|
134
|
+
// Settle the promise we are about to discard. Otherwise its rejection is
|
|
135
|
+
// never observed, and Node can take the process down over it after the
|
|
136
|
+
// caller has already handled the `AsyncScopeError` thrown here.
|
|
137
|
+
thenable.then(() => { }, () => { });
|
|
138
|
+
throw new AsyncScopeError();
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
engine.reset();
|
|
144
|
+
engine.merge(previous);
|
|
145
|
+
Caches.clear();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
export { with_ as with };
|
|
149
|
+
/** Thrown when an unrecognized engine slot is supplied. */
|
|
150
|
+
export class UnknownSlotError extends Errors.BaseError {
|
|
151
|
+
name = 'Engine.UnknownSlotError';
|
|
152
|
+
constructor(slot) {
|
|
153
|
+
super(`\`${slot}\` is not a valid engine slot.`, {
|
|
154
|
+
metaMessages: [`Valid slots: ${engine.slots.join(', ')}`],
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/** Thrown when a slot is given an unrecognized primitive name. */
|
|
159
|
+
export class UnknownPrimitiveError extends Errors.BaseError {
|
|
160
|
+
name = 'Engine.UnknownPrimitiveError';
|
|
161
|
+
constructor(slot, primitive) {
|
|
162
|
+
// The class is public, so `slot` is not necessarily one the table knows;
|
|
163
|
+
// an error that throws while being constructed hides the real failure.
|
|
164
|
+
const known = engine.primitives[slot];
|
|
165
|
+
super(`\`${primitive}\` is not a valid primitive for the \`${slot}\` slot.`, known ? { metaMessages: [`Valid primitives: ${known.join(', ')}`] } : {});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** Thrown when {@link ox#Engine.with} is given an asynchronous function. */
|
|
169
|
+
export class AsyncScopeError extends Errors.BaseError {
|
|
170
|
+
name = 'Engine.AsyncScopeError';
|
|
171
|
+
constructor() {
|
|
172
|
+
super('`Engine.with` cannot be used with an asynchronous function.', {
|
|
173
|
+
metaMessages: [
|
|
174
|
+
'The engine is process-wide, so a scoped override cannot be held across an `await`.',
|
|
175
|
+
'Use `Engine.set` instead.',
|
|
176
|
+
],
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=Engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Hash.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as Hex from './Hex.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Backed by `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```ts twoslash
|
|
@@ -50,7 +50,7 @@ export declare namespace keccak256 {
|
|
|
50
50
|
/**
|
|
51
51
|
* Calculates the [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
53
|
+
* Backed by `hmac` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
54
54
|
*
|
|
55
55
|
* @example
|
|
56
56
|
* ```ts twoslash
|
|
@@ -89,7 +89,7 @@ export declare namespace hmac256 {
|
|
|
89
89
|
/**
|
|
90
90
|
* Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
91
91
|
*
|
|
92
|
-
*
|
|
92
|
+
* Backed by `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
93
93
|
*
|
|
94
94
|
* @example
|
|
95
95
|
* ```ts twoslash
|
|
@@ -115,7 +115,7 @@ export declare namespace ripemd160 {
|
|
|
115
115
|
/**
|
|
116
116
|
* Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
117
117
|
*
|
|
118
|
-
*
|
|
118
|
+
* Backed by `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
119
119
|
*
|
|
120
120
|
* @example
|
|
121
121
|
* ```ts twoslash
|
package/dist/core/Hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Hash.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { hmac } from '@noble/hashes/hmac.js';
|
|
2
|
-
import { ripemd160 as noble_ripemd160 } from '@noble/hashes/legacy.js';
|
|
3
|
-
import { sha256 as noble_sha256 } from '@noble/hashes/sha2.js';
|
|
4
|
-
import { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3.js';
|
|
5
1
|
import * as Bytes from './Bytes.js';
|
|
6
2
|
import * as Hex from './Hex.js';
|
|
3
|
+
import * as engine from './internal/hash.js';
|
|
7
4
|
/**
|
|
8
5
|
* Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
9
6
|
*
|
|
10
|
-
*
|
|
7
|
+
* Backed by `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
11
8
|
*
|
|
12
9
|
* @example
|
|
13
10
|
* ```ts twoslash
|
|
@@ -44,7 +41,7 @@ import * as Hex from './Hex.js';
|
|
|
44
41
|
export function keccak256(value, options = {}) {
|
|
45
42
|
const isBytes = value instanceof Uint8Array;
|
|
46
43
|
const { as = isBytes ? 'Bytes' : 'Hex' } = options;
|
|
47
|
-
const bytes =
|
|
44
|
+
const bytes = engine.keccak256(isBytes ? value : Bytes.from(value));
|
|
48
45
|
if (as === 'Bytes')
|
|
49
46
|
return bytes;
|
|
50
47
|
return Hex.fromBytes(bytes);
|
|
@@ -52,7 +49,7 @@ export function keccak256(value, options = {}) {
|
|
|
52
49
|
/**
|
|
53
50
|
* Calculates the [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
54
51
|
*
|
|
55
|
-
*
|
|
52
|
+
* Backed by `hmac` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
56
53
|
*
|
|
57
54
|
* @example
|
|
58
55
|
* ```ts twoslash
|
|
@@ -84,7 +81,7 @@ export function hmac256(key, value, options = {}) {
|
|
|
84
81
|
const { as = isBytes ? 'Bytes' : 'Hex' } = options;
|
|
85
82
|
const keyBytes = key instanceof Uint8Array ? key : Bytes.from(key);
|
|
86
83
|
const valueBytes = isBytes ? value : Bytes.from(value);
|
|
87
|
-
const bytes =
|
|
84
|
+
const bytes = engine.hmacSha256(keyBytes, valueBytes);
|
|
88
85
|
if (as === 'Bytes')
|
|
89
86
|
return bytes;
|
|
90
87
|
return Hex.fromBytes(bytes);
|
|
@@ -92,7 +89,7 @@ export function hmac256(key, value, options = {}) {
|
|
|
92
89
|
/**
|
|
93
90
|
* Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
94
91
|
*
|
|
95
|
-
*
|
|
92
|
+
* Backed by `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
96
93
|
*
|
|
97
94
|
* @example
|
|
98
95
|
* ```ts twoslash
|
|
@@ -109,7 +106,7 @@ export function hmac256(key, value, options = {}) {
|
|
|
109
106
|
export function ripemd160(value, options = {}) {
|
|
110
107
|
const isBytes = value instanceof Uint8Array;
|
|
111
108
|
const { as = isBytes ? 'Bytes' : 'Hex' } = options;
|
|
112
|
-
const bytes =
|
|
109
|
+
const bytes = engine.ripemd160(isBytes ? value : Bytes.from(value));
|
|
113
110
|
if (as === 'Bytes')
|
|
114
111
|
return bytes;
|
|
115
112
|
return Hex.fromBytes(bytes);
|
|
@@ -117,7 +114,7 @@ export function ripemd160(value, options = {}) {
|
|
|
117
114
|
/**
|
|
118
115
|
* Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
119
116
|
*
|
|
120
|
-
*
|
|
117
|
+
* Backed by `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
|
|
121
118
|
*
|
|
122
119
|
* @example
|
|
123
120
|
* ```ts twoslash
|
|
@@ -134,7 +131,7 @@ export function ripemd160(value, options = {}) {
|
|
|
134
131
|
export function sha256(value, options = {}) {
|
|
135
132
|
const isBytes = value instanceof Uint8Array;
|
|
136
133
|
const { as = isBytes ? 'Bytes' : 'Hex' } = options;
|
|
137
|
-
const bytes =
|
|
134
|
+
const bytes = engine.sha256(isBytes ? value : Bytes.from(value));
|
|
138
135
|
if (as === 'Bytes')
|
|
139
136
|
return bytes;
|
|
140
137
|
return Hex.fromBytes(bytes);
|
package/dist/core/Hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Keystore.d.ts","sourceRoot":"","sources":["../../src/core/Keystore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Keystore.d.ts","sourceRoot":"","sources":["../../src/core/Keystore.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Keystore.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { ctr } from '@noble/ciphers/aes.js';
|
|
2
|
-
import { pbkdf2 as pbkdf2_noble, pbkdf2Async as pbkdf2Async_noble, } from '@noble/hashes/pbkdf2.js';
|
|
3
|
-
import { scrypt as scrypt_noble, scryptAsync as scryptAsync_noble, } from '@noble/hashes/scrypt.js';
|
|
4
|
-
import { sha256 } from '@noble/hashes/sha2.js';
|
|
5
1
|
import * as Bytes from './Bytes.js';
|
|
2
|
+
import * as engine from './internal/keystore.js';
|
|
6
3
|
import * as Hash from './Hash.js';
|
|
7
4
|
/**
|
|
8
5
|
* Decrypts a [JSON keystore](https://ethereum.org/en/developers/docs/data-structures-and-encoding/web3-secret-storage/)
|
|
@@ -42,7 +39,7 @@ export function decrypt(keystore, key, options = {}) {
|
|
|
42
39
|
const mac = Hash.keccak256(Bytes.concat(macKey, ciphertext));
|
|
43
40
|
if (!Bytes.isEqual(mac, Bytes.from(`0x${keystore.crypto.mac}`)))
|
|
44
41
|
throw new Error('corrupt keystore');
|
|
45
|
-
const data =
|
|
42
|
+
const data = engine.aesCtrDecrypt(encKey, Bytes.from(`0x${keystore.crypto.cipherparams.iv}`), ciphertext);
|
|
46
43
|
if (as === 'Hex')
|
|
47
44
|
return Bytes.toHex(data);
|
|
48
45
|
return data;
|
|
@@ -101,7 +98,7 @@ export function encrypt(privateKey, key, options) {
|
|
|
101
98
|
const value_ = Bytes.from(privateKey);
|
|
102
99
|
const encKey = Bytes.slice(key_, 0, 16);
|
|
103
100
|
const macKey = Bytes.slice(key_, 16, 32);
|
|
104
|
-
const ciphertext =
|
|
101
|
+
const ciphertext = engine.aesCtrEncrypt(encKey, iv, value_);
|
|
105
102
|
const mac = Hash.keccak256(Bytes.concat(macKey, ciphertext));
|
|
106
103
|
return {
|
|
107
104
|
crypto: {
|
|
@@ -135,7 +132,10 @@ export function pbkdf2(options) {
|
|
|
135
132
|
const { iv, iterations = 262_144, password } = options;
|
|
136
133
|
assertPbkdf2Iterations(iterations);
|
|
137
134
|
const salt = options.salt ? Bytes.from(options.salt) : Bytes.random(32);
|
|
138
|
-
const key = Bytes.toHex(
|
|
135
|
+
const key = Bytes.toHex(engine.pbkdf2Sha256(Bytes.fromString(password), salt, {
|
|
136
|
+
c: iterations,
|
|
137
|
+
dkLen: 32,
|
|
138
|
+
}));
|
|
139
139
|
return defineKey(() => key, {
|
|
140
140
|
iv,
|
|
141
141
|
kdfparams: {
|
|
@@ -166,7 +166,7 @@ export async function pbkdf2Async(options) {
|
|
|
166
166
|
const { iv, iterations = 262_144, password } = options;
|
|
167
167
|
assertPbkdf2Iterations(iterations);
|
|
168
168
|
const salt = options.salt ? Bytes.from(options.salt) : Bytes.random(32);
|
|
169
|
-
const key = Bytes.toHex(await
|
|
169
|
+
const key = Bytes.toHex(await engine.pbkdf2Sha256Async(Bytes.fromString(password), salt, {
|
|
170
170
|
c: iterations,
|
|
171
171
|
dkLen: 32,
|
|
172
172
|
}));
|
|
@@ -200,7 +200,7 @@ export function scrypt(options) {
|
|
|
200
200
|
const { iv, n = 262_144, password, p = 8, r = 1 } = options;
|
|
201
201
|
assertScryptParams(n, r, p);
|
|
202
202
|
const salt = options.salt ? Bytes.from(options.salt) : Bytes.random(32);
|
|
203
|
-
const key = Bytes.toHex(
|
|
203
|
+
const key = Bytes.toHex(engine.scrypt(Bytes.fromString(password), salt, { N: n, dkLen: 32, p, r }));
|
|
204
204
|
return defineKey(() => key, {
|
|
205
205
|
iv,
|
|
206
206
|
kdfparams: {
|
|
@@ -232,7 +232,12 @@ export async function scryptAsync(options) {
|
|
|
232
232
|
const { iv, n = 262_144, password, p = 8, r = 1 } = options;
|
|
233
233
|
assertScryptParams(n, r, p);
|
|
234
234
|
const salt = options.salt ? Bytes.from(options.salt) : Bytes.random(32);
|
|
235
|
-
const key = Bytes.toHex(await
|
|
235
|
+
const key = Bytes.toHex(await engine.scryptAsync(Bytes.fromString(password), salt, {
|
|
236
|
+
N: n,
|
|
237
|
+
dkLen: 32,
|
|
238
|
+
p,
|
|
239
|
+
r,
|
|
240
|
+
}));
|
|
236
241
|
return defineKey(() => key, {
|
|
237
242
|
iv,
|
|
238
243
|
kdfparams: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Keystore.js","sourceRoot":"","sources":["../../src/core/Keystore.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Keystore.js","sourceRoot":"","sources":["../../src/core/Keystore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mnemonic.d.ts","sourceRoot":"","sources":["../../src/core/Mnemonic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Mnemonic.d.ts","sourceRoot":"","sources":["../../src/core/Mnemonic.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Mnemonic.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { generateMnemonic,
|
|
1
|
+
import { generateMnemonic, validateMnemonic } from '@scure/bip39';
|
|
2
2
|
import * as Bytes from './Bytes.js';
|
|
3
3
|
import * as HdKey from './HdKey.js';
|
|
4
|
+
import * as engine from './internal/mnemonic.js';
|
|
4
5
|
export { path } from './HdKey.js';
|
|
5
6
|
export { czech, english, french, italian, japanese, korean, portuguese, simplifiedChinese, spanish, traditionalChinese, } from './internal/mnemonic/wordlists.js';
|
|
6
7
|
/**
|
|
@@ -112,7 +113,7 @@ export function toPrivateKey(mnemonic, options = {}) {
|
|
|
112
113
|
*/
|
|
113
114
|
export function toSeed(mnemonic, options = {}) {
|
|
114
115
|
const { passphrase } = options;
|
|
115
|
-
const seed =
|
|
116
|
+
const seed = engine.toSeed(mnemonic, passphrase);
|
|
116
117
|
if (options.as === 'Hex')
|
|
117
118
|
return Bytes.toHex(seed);
|
|
118
119
|
return seed;
|