@talismn/crypto 1.0.1 → 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/dist/index.d.mts +64 -59
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +64 -59
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.d.mts
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
import { ed25519 } from "@noble/curves/ed25519.js";
|
|
2
2
|
import { base58, base64, base64urlnopad, hex, utf8 } from "@scure/base";
|
|
3
3
|
//#region src/types/index.d.ts
|
|
4
|
-
type KeypairCurve = "ecdsa" | "ed25519" | "sr25519" | "ethereum" | "bitcoin-ed25519" | "bitcoin-ecdsa" | "solana";
|
|
5
|
-
type AddressEncoding = "ss58" | "ethereum" | "bech32m" | "bech32" | "base58check" | "base58solana";
|
|
6
|
-
type Keypair = {
|
|
4
|
+
export type KeypairCurve = "ecdsa" | "ed25519" | "sr25519" | "ethereum" | "bitcoin-ed25519" | "bitcoin-ecdsa" | "solana";
|
|
5
|
+
export type AddressEncoding = "ss58" | "ethereum" | "bech32m" | "bech32" | "base58check" | "base58solana";
|
|
6
|
+
export type Keypair = {
|
|
7
7
|
type: KeypairCurve;
|
|
8
8
|
secretKey: Uint8Array;
|
|
9
9
|
publicKey: Uint8Array;
|
|
10
10
|
address: string;
|
|
11
11
|
};
|
|
12
|
-
type AccountPlatform = "ethereum" | "polkadot" | "bitcoin" | "solana";
|
|
12
|
+
export type AccountPlatform = "ethereum" | "polkadot" | "bitcoin" | "solana";
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region src/address/addressFromPublicKey.d.ts
|
|
15
|
-
type EncodeAddressOptions = {
|
|
15
|
+
export type EncodeAddressOptions = {
|
|
16
16
|
ss58Prefix?: number;
|
|
17
17
|
};
|
|
18
|
-
declare const addressFromPublicKey: (publicKey: Uint8Array, encoding: AddressEncoding, options?: EncodeAddressOptions) => string;
|
|
18
|
+
export declare const addressFromPublicKey: (publicKey: Uint8Array, encoding: AddressEncoding, options?: EncodeAddressOptions) => string;
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region src/address/encodeAnyAddress.d.ts
|
|
21
21
|
type EncodeAddressOptions$1 = {
|
|
22
22
|
ss58Format?: number | undefined;
|
|
23
23
|
};
|
|
24
|
-
declare const encodeAnyAddress: (address: string, options?: EncodeAddressOptions$1) => string;
|
|
24
|
+
export declare const encodeAnyAddress: (address: string, options?: EncodeAddressOptions$1) => string;
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region src/address/encoding/addressEncodingFromCurve.d.ts
|
|
27
27
|
/** NOTE: Try not to use this too much, it will need to change */
|
|
28
|
-
declare const addressEncodingFromCurve: (curve: KeypairCurve) => AddressEncoding;
|
|
28
|
+
export declare const addressEncodingFromCurve: (curve: KeypairCurve) => AddressEncoding;
|
|
29
29
|
//#endregion
|
|
30
30
|
//#region src/address/encoding/bitcoin.d.ts
|
|
31
|
-
declare const isBitcoinAddress: (address: string) => boolean;
|
|
32
|
-
declare function isBech32mAddress(address: string): boolean;
|
|
33
|
-
declare function isBech32Address(address: string): boolean;
|
|
34
|
-
declare function isBase58CheckAddress(address: string): boolean;
|
|
31
|
+
export declare const isBitcoinAddress: (address: string) => boolean;
|
|
32
|
+
export declare function isBech32mAddress(address: string): boolean;
|
|
33
|
+
export declare function isBech32Address(address: string): boolean;
|
|
34
|
+
export declare function isBase58CheckAddress(address: string): boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Converts a Bech32m encoded address to its corresponding data representation.
|
|
37
37
|
* @param address - The Bech32m encoded address.
|
|
38
38
|
* @returns An object containing the version, prefix, and data of the address.
|
|
39
39
|
* @throws {TypeError} If the address uses the wrong encoding.
|
|
40
40
|
*/
|
|
41
|
-
declare function fromBech32m(address: string): {
|
|
41
|
+
export declare function fromBech32m(address: string): {
|
|
42
42
|
version: number;
|
|
43
43
|
prefix: string;
|
|
44
44
|
data: Uint8Array<ArrayBuffer>;
|
|
@@ -49,7 +49,7 @@ declare function fromBech32m(address: string): {
|
|
|
49
49
|
* @returns An object containing the version, prefix, and data of the address.
|
|
50
50
|
* @throws {TypeError} If the address uses the wrong encoding.
|
|
51
51
|
*/
|
|
52
|
-
declare function fromBech32(address: string): {
|
|
52
|
+
export declare function fromBech32(address: string): {
|
|
53
53
|
version: number;
|
|
54
54
|
prefix: string;
|
|
55
55
|
data: Uint8Array<ArrayBuffer>;
|
|
@@ -61,13 +61,13 @@ declare function fromBech32(address: string): {
|
|
|
61
61
|
* @returns An object containing the version and hash of the decoded address.
|
|
62
62
|
* @throws {TypeError} If the address is too short or too long.
|
|
63
63
|
*/
|
|
64
|
-
declare function fromBase58Check(address: string): {
|
|
64
|
+
export declare function fromBase58Check(address: string): {
|
|
65
65
|
version: number;
|
|
66
66
|
hash: Uint8Array<ArrayBuffer>;
|
|
67
67
|
};
|
|
68
68
|
//#endregion
|
|
69
69
|
//#region src/address/encoding/detectAddressEncoding.d.ts
|
|
70
|
-
declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
70
|
+
export declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
71
71
|
//#endregion
|
|
72
72
|
//#region src/address/encoding/ethereum.d.ts
|
|
73
73
|
/**
|
|
@@ -75,45 +75,50 @@ declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
|
75
75
|
* Accepts both uncompressed (65 bytes) and compressed (33 bytes) public keys -
|
|
76
76
|
* polkadot-js keystores store the compressed form as the account address.
|
|
77
77
|
*/
|
|
78
|
-
declare const encodeAddressEthereum: (publicKey: Uint8Array) => `0x${string}`;
|
|
79
|
-
declare const checksumEthereumAddress: (address: string) => `0x${string}`;
|
|
80
|
-
declare function isEthereumAddress(address: string): address is `0x${string}`;
|
|
78
|
+
export declare const encodeAddressEthereum: (publicKey: Uint8Array) => `0x${string}`;
|
|
79
|
+
export declare const checksumEthereumAddress: (address: string) => `0x${string}`;
|
|
80
|
+
export declare function isEthereumAddress(address: string): address is `0x${string}`;
|
|
81
81
|
//#endregion
|
|
82
82
|
//#region src/address/encoding/solana.d.ts
|
|
83
|
-
declare const encodeAddressSolana: (publicKey: Uint8Array) => string;
|
|
84
|
-
declare function isSolanaAddress(address: string): boolean;
|
|
83
|
+
export declare const encodeAddressSolana: (publicKey: Uint8Array) => string;
|
|
84
|
+
export declare function isSolanaAddress(address: string): boolean;
|
|
85
85
|
/**
|
|
86
86
|
* Whether the address is a valid ed25519 public key (on-curve).
|
|
87
87
|
*
|
|
88
88
|
* Program-derived addresses (PDAs) are off-curve by construction: no private key can exist
|
|
89
89
|
* for them, so a regular wallet cannot recover tokens sent to an account they own.
|
|
90
90
|
*/
|
|
91
|
-
declare function isOnCurveSolanaAddress(address: string): boolean;
|
|
91
|
+
export declare function isOnCurveSolanaAddress(address: string): boolean;
|
|
92
92
|
//#endregion
|
|
93
93
|
//#region src/address/encoding/ss58.d.ts
|
|
94
|
-
declare const decodeSs58Address: (addressStr: string, ignoreChecksum?: boolean) => [publicKey: Uint8Array, prefix: number];
|
|
95
|
-
declare const encodeAddressSs58: (publicKey: Uint8Array | string, prefix?: number) => string;
|
|
96
|
-
declare function isSs58Address(address: string): boolean;
|
|
94
|
+
export declare const decodeSs58Address: (addressStr: string, ignoreChecksum?: boolean) => [publicKey: Uint8Array, prefix: number];
|
|
95
|
+
export declare const encodeAddressSs58: (publicKey: Uint8Array | string, prefix?: number) => string;
|
|
96
|
+
export declare function isSs58Address(address: string): boolean;
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/address/frontierEvmMirror.d.ts
|
|
99
|
+
export declare const frontierH160ToAccountId32: (h160: string) => Uint8Array;
|
|
100
|
+
export declare const frontierH160ToSs58Mirror: (h160: string, ss58Prefix?: number) => string;
|
|
101
|
+
export declare const frontierSs58ToPublicKeyHex: (address: string) => `0x${string}`;
|
|
97
102
|
//#endregion
|
|
98
103
|
//#region src/address/isAddressEqual.d.ts
|
|
99
|
-
declare const isAddressEqual: (address1: string, address2: string) => boolean;
|
|
104
|
+
export declare const isAddressEqual: (address1: string, address2: string) => boolean;
|
|
100
105
|
//#endregion
|
|
101
106
|
//#region src/address/isAddressValid.d.ts
|
|
102
|
-
declare const isAddressValid: (address: string) => boolean;
|
|
107
|
+
export declare const isAddressValid: (address: string) => boolean;
|
|
103
108
|
//#endregion
|
|
104
109
|
//#region src/address/normalizeAddress.d.ts
|
|
105
|
-
declare const normalizeAddress: (address: string) => string;
|
|
110
|
+
export declare const normalizeAddress: (address: string) => string;
|
|
106
111
|
//#endregion
|
|
107
112
|
//#region src/derivation/deriveSolana.d.ts
|
|
108
|
-
declare const getPublicKeySolana: (secretKey: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
113
|
+
export declare const getPublicKeySolana: (secretKey: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
109
114
|
//#endregion
|
|
110
115
|
//#region src/derivation/utils.d.ts
|
|
111
|
-
declare const deriveKeypair: (seed: Uint8Array, derivationPath: string, curve: KeypairCurve) => Keypair;
|
|
112
|
-
declare const getPublicKeyFromSecret: (secretKey: Uint8Array, curve: KeypairCurve) => Uint8Array;
|
|
113
|
-
declare const addressFromMnemonic: (mnemonic: string, derivationPath: string, curve: KeypairCurve) => Promise<string>;
|
|
114
|
-
declare const removeHexPrefix: (secretKey: string) => string;
|
|
115
|
-
declare const parseSecretKey: (secretKey: string, platform: AccountPlatform) => Uint8Array<ArrayBufferLike>;
|
|
116
|
-
declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurve) => Promise<boolean>;
|
|
116
|
+
export declare const deriveKeypair: (seed: Uint8Array, derivationPath: string, curve: KeypairCurve) => Keypair;
|
|
117
|
+
export declare const getPublicKeyFromSecret: (secretKey: Uint8Array, curve: KeypairCurve) => Uint8Array;
|
|
118
|
+
export declare const addressFromMnemonic: (mnemonic: string, derivationPath: string, curve: KeypairCurve) => Promise<string>;
|
|
119
|
+
export declare const removeHexPrefix: (secretKey: string) => string;
|
|
120
|
+
export declare const parseSecretKey: (secretKey: string, platform: AccountPlatform) => Uint8Array<ArrayBufferLike>;
|
|
121
|
+
export declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurve) => Promise<boolean>;
|
|
117
122
|
//#endregion
|
|
118
123
|
//#region src/encryption/encryptKemAead.d.ts
|
|
119
124
|
/**
|
|
@@ -126,10 +131,10 @@ declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurv
|
|
|
126
131
|
* @param publicKey ML-KEM-768 encapsulation key bytes
|
|
127
132
|
* @param plaintext Data to encrypt (typically a signed extrinsic)
|
|
128
133
|
*/
|
|
129
|
-
declare const encryptKemAead: (keyHash: Uint8Array, publicKey: Uint8Array, plaintext: Uint8Array) => Promise<Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>>;
|
|
134
|
+
export declare const encryptKemAead: (keyHash: Uint8Array, publicKey: Uint8Array, plaintext: Uint8Array) => Promise<Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>>;
|
|
130
135
|
//#endregion
|
|
131
136
|
//#region src/hashing/index.d.ts
|
|
132
|
-
declare const blake3: {
|
|
137
|
+
export declare const blake3: {
|
|
133
138
|
outputLen: number;
|
|
134
139
|
blockLen: number;
|
|
135
140
|
canXOF: boolean;
|
|
@@ -143,39 +148,39 @@ declare const blake3: {
|
|
|
143
148
|
canXOF: boolean;
|
|
144
149
|
create: (opts?: import("@noble/hashes/blake3.js").Blake3Opts | undefined) => import("@noble/hashes/blake3.js")._BLAKE3;
|
|
145
150
|
};
|
|
146
|
-
declare const blake2b256: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
147
|
-
declare const blake2b512: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
148
|
-
declare const getSafeHash: (bytes: Uint8Array) => string;
|
|
151
|
+
export declare const blake2b256: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
152
|
+
export declare const blake2b512: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
153
|
+
export declare const getSafeHash: (bytes: Uint8Array) => string;
|
|
149
154
|
//#endregion
|
|
150
155
|
//#region src/keystore/index.d.ts
|
|
151
|
-
type PjsKeystoreEncoding = {
|
|
156
|
+
export type PjsKeystoreEncoding = {
|
|
152
157
|
content: string[];
|
|
153
158
|
type: string[];
|
|
154
159
|
version: string;
|
|
155
160
|
};
|
|
156
|
-
type PjsKeystore = {
|
|
161
|
+
export type PjsKeystore = {
|
|
157
162
|
encoded: string;
|
|
158
163
|
encoding: PjsKeystoreEncoding;
|
|
159
164
|
};
|
|
160
165
|
/** Decrypts a polkadot-js encrypted keystore (`jsonDecrypt` equivalent) */
|
|
161
|
-
declare const decryptPjsKeystore: ({ encoded, encoding }: PjsKeystore, password: string) => Uint8Array;
|
|
166
|
+
export declare const decryptPjsKeystore: ({ encoded, encoding }: PjsKeystore, password: string) => Uint8Array;
|
|
162
167
|
/** Encrypts data as a polkadot-js keystore (`jsonEncrypt` equivalent, always scrypt + v3) */
|
|
163
|
-
declare const encryptPjsKeystore: (data: Uint8Array, contentType: string[], password: string) => PjsKeystore;
|
|
168
|
+
export declare const encryptPjsKeystore: (data: Uint8Array, contentType: string[], password: string) => PjsKeystore;
|
|
164
169
|
//#endregion
|
|
165
170
|
//#region src/mnemonic/index.d.ts
|
|
166
|
-
declare const mnemonicToEntropy: (mnemonic: string) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
167
|
-
declare const entropyToMnemonic: (entropy: Uint8Array) => string;
|
|
168
|
-
declare const entropyToSeed: (entropy: Uint8Array, curve: KeypairCurve, password?: string) => Promise<Uint8Array<ArrayBuffer>>;
|
|
169
|
-
declare const isValidMnemonic: (mnemonic: string) => boolean;
|
|
170
|
-
declare const generateMnemonic: (words: 12 | 24) => string;
|
|
171
|
-
declare const DEV_MNEMONIC_POLKADOT = "bottom drive obey lake curtain smoke basket hold race lonely fit walk";
|
|
172
|
-
declare const DEV_MNEMONIC_ETHEREUM = "test test test test test test test test test test test junk";
|
|
173
|
-
declare const getDevSeed: (curve: KeypairCurve) => Promise<Uint8Array<ArrayBufferLike>>;
|
|
171
|
+
export declare const mnemonicToEntropy: (mnemonic: string) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
172
|
+
export declare const entropyToMnemonic: (entropy: Uint8Array) => string;
|
|
173
|
+
export declare const entropyToSeed: (entropy: Uint8Array, curve: KeypairCurve, password?: string) => Promise<Uint8Array<ArrayBuffer>>;
|
|
174
|
+
export declare const isValidMnemonic: (mnemonic: string) => boolean;
|
|
175
|
+
export declare const generateMnemonic: (words: 12 | 24) => string;
|
|
176
|
+
export declare const DEV_MNEMONIC_POLKADOT = "bottom drive obey lake curtain smoke basket hold race lonely fit walk";
|
|
177
|
+
export declare const DEV_MNEMONIC_ETHEREUM = "test test test test test test test test test test test junk";
|
|
178
|
+
export declare const getDevSeed: (curve: KeypairCurve) => Promise<Uint8Array<ArrayBufferLike>>;
|
|
174
179
|
//#endregion
|
|
175
180
|
//#region src/platform/index.d.ts
|
|
176
|
-
declare const getAccountPlatformFromCurve: (curve: KeypairCurve) => AccountPlatform;
|
|
177
|
-
declare const getAccountPlatformFromEncoding: (encoding: AddressEncoding) => AccountPlatform;
|
|
178
|
-
declare const getAccountPlatformFromAddress: (address: string) => AccountPlatform;
|
|
181
|
+
export declare const getAccountPlatformFromCurve: (curve: KeypairCurve) => AccountPlatform;
|
|
182
|
+
export declare const getAccountPlatformFromEncoding: (encoding: AddressEncoding) => AccountPlatform;
|
|
183
|
+
export declare const getAccountPlatformFromAddress: (address: string) => AccountPlatform;
|
|
179
184
|
//#endregion
|
|
180
185
|
//#region src/signing/index.d.ts
|
|
181
186
|
/**
|
|
@@ -189,12 +194,12 @@ declare const getAccountPlatformFromAddress: (address: string) => AccountPlatfor
|
|
|
189
194
|
* Note: callers are responsible for the substrate >256-byte rule (hash the payload
|
|
190
195
|
* with blake2b-256 before signing) — this matches where polkadot-js applies it.
|
|
191
196
|
*/
|
|
192
|
-
declare const signSubstrate: (curve: KeypairCurve, secretKey: Uint8Array, message: Uint8Array) => Uint8Array;
|
|
197
|
+
export declare const signSubstrate: (curve: KeypairCurve, secretKey: Uint8Array, message: Uint8Array) => Uint8Array;
|
|
193
198
|
/** MultiSignature enum variant index per signature scheme, used to type-prefix signatures */
|
|
194
|
-
declare const SIGNATURE_TYPE_PREFIX: Partial<Record<KeypairCurve, number>>;
|
|
199
|
+
export declare const SIGNATURE_TYPE_PREFIX: Partial<Record<KeypairCurve, number>>;
|
|
195
200
|
//#endregion
|
|
196
201
|
//#region src/utils/pbkdf2.d.ts
|
|
197
|
-
declare const pbkdf2: (hash: "SHA-256" | "SHA-512", entropy: Uint8Array, salt: Uint8Array, iterations: number, outputLenBytes: number) => Promise<Uint8Array<ArrayBuffer>>;
|
|
202
|
+
export declare const pbkdf2: (hash: "SHA-256" | "SHA-512", entropy: Uint8Array, salt: Uint8Array, iterations: number, outputLenBytes: number) => Promise<Uint8Array<ArrayBuffer>>;
|
|
198
203
|
//#endregion
|
|
199
|
-
export {
|
|
204
|
+
export { base58, base64, base64urlnopad, ed25519, hex, utf8 };
|
|
200
205
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/address/addressFromPublicKey.ts","../src/address/encodeAnyAddress.ts","../src/address/encoding/addressEncodingFromCurve.ts","../src/address/encoding/bitcoin.ts","../src/address/encoding/detectAddressEncoding.ts","../src/address/encoding/ethereum.ts","../src/address/encoding/solana.ts","../src/address/encoding/ss58.ts","../src/address/isAddressEqual.ts","../src/address/isAddressValid.ts","../src/address/normalizeAddress.ts","../src/derivation/deriveSolana.ts","../src/derivation/utils.ts","../src/encryption/encryptKemAead.ts","../src/hashing/index.ts","../src/keystore/index.ts","../src/mnemonic/index.ts","../src/platform/index.ts","../src/signing/index.ts","../src/utils/pbkdf2.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/address/addressFromPublicKey.ts","../src/address/encodeAnyAddress.ts","../src/address/encoding/addressEncodingFromCurve.ts","../src/address/encoding/bitcoin.ts","../src/address/encoding/detectAddressEncoding.ts","../src/address/encoding/ethereum.ts","../src/address/encoding/solana.ts","../src/address/encoding/ss58.ts","../src/address/frontierEvmMirror.ts","../src/address/isAddressEqual.ts","../src/address/isAddressValid.ts","../src/address/normalizeAddress.ts","../src/derivation/deriveSolana.ts","../src/derivation/utils.ts","../src/encryption/encryptKemAead.ts","../src/hashing/index.ts","../src/keystore/index.ts","../src/mnemonic/index.ts","../src/platform/index.ts","../src/signing/index.ts","../src/utils/pbkdf2.ts"],"mappings":";;;YAeY;YAcA;YAQA;EACV,MAAM;EACN,WAAW;EACX,WAAW;EACX;;YAGU;;;YCzCA;EACV;;qBAGW,uBAAoB,WACpB,YAAU,UACX,iBAAe,UACf;;;KCPP;EACH;;qBAGW,mBAAgB,iBAAmB,UAAY;;;;qBCJ/C,2BAAwB,OAAW,iBAAe;;;qBCAlD,mBAAgB;wBAGb,iBAAiB;wBASjB,gBAAgB;wBAShB,qBAAqB;;;;;;;wBAerB,YAAY;;;QAAZ,WAAA;;;;;;;;wBAkBA,WAAW;;;QAAX,WAAA;;;;;;;;;wBAmBA,gBAAgB;;QAAhB,WAAA;;;;qBC1DH,wBAAqB,oBAAsB;;;;;;;;qBCT3C,wBAAqB,WAAe;qBAoBpC,0BAAuB;wBAapB,kBAAkB,kBAAkB;;;qBCvCvC,sBAAmB,WAAe;wBAK/B,gBAAgB;;;;;;;wBAehB,uBAAuB;;;qBCY1B,oBAAiB,oBACV,8BAGhB,WAAW,YAAY;qBAoBd,oBAAiB,WAAe,qBAAmB;wBAKhD,cAAc;;;qBCrDjB,4BAAyB,iBAAmB;qBAU5C,2BAAwB,cAAgB;qBAGxC,6BAA0B;;;qBCtB1B,iBAAc,kBAAoB;;;qBCAlC,iBAAc;;;qBCQd,mBAAgB;;;qBC6ChB,qBAAkB,WAAe,eAAU,WAAA,mBAAA,WAAA;;;qBC7C3C,gBAAa,MAAU,YAAU,wBAAwB,OAAS,iBAAA;qBAkBlE,yBAAsB,WAAe,YAAU,OAAS,iBAAe;qBAkBvE,sBAAmB,kBACd,wBACM,OACf,iBAAY;qBAQR,kBAAe;qBAKf,iBAAc,mBAAqB,UAAY,oBAAe,WAAA;qBA+B9D,wBAAqB,wBAAgC,OAAS,iBAAY;;;;;;;;;;;;;qBC/E1E,iBAAc,SAChB,YAAU,WACR,YAAU,WACV,eAAU,QAAA,WAAA,mBAAA,WAAA;;;qBCbV;;;;;;;;;;;;;;qBAEA,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;qBAC7B,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;qBAE7B,cAAW,OAAW;;;YCuBvB;EACV;EACA;EACA;;YAGU;EACV;EACA,UAAU;;;qBAoBC,uBAAkB,SAAA,YACN,aAAW,qBAEjC;;qBAqCU,qBAAkB,MACvB,YAAU,uBACK,qBAEpB;;;qBC7FU,oBAAiB,qBAAoB,WAAA,mBAAA,WAAA;qBAIrC,oBAAiB,SAAa;qBA+C9B,gBAAa,SACf,YAAU,OACZ,cAAY,sBACF,QAAA,WAAA;qBAYN,kBAAe;qBAIf,mBAAgB;qBAUhB;qBAIA;qBAKA,aAAU,OAAiB,iBAAY,QAAA,WAAA;;;qBCjGvC,8BAA2B,OAAW,iBAAe;qBAgBrD,iCAA8B,UAAc,oBAAkB;qBAe9D,gCAA6B,oBAAsB;;;;;;;;;;;;;;qBCPnD,gBAAa,OACjB,cAAY,WACR,YAAU,SACZ,eACR;;qBAsBU,uBAAuB,QAAQ,OAAO;;;qBCrDtC,SAAM,6BACU,SAClB,YAAU,MACb,YAAU,oBACE,2BACI,QAAA,WAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
import { ed25519 } from "@noble/curves/ed25519.js";
|
|
2
2
|
import { base58, base64, base64urlnopad, hex, utf8 } from "@scure/base";
|
|
3
3
|
//#region src/types/index.d.ts
|
|
4
|
-
type KeypairCurve = "ecdsa" | "ed25519" | "sr25519" | "ethereum" | "bitcoin-ed25519" | "bitcoin-ecdsa" | "solana";
|
|
5
|
-
type AddressEncoding = "ss58" | "ethereum" | "bech32m" | "bech32" | "base58check" | "base58solana";
|
|
6
|
-
type Keypair = {
|
|
4
|
+
export type KeypairCurve = "ecdsa" | "ed25519" | "sr25519" | "ethereum" | "bitcoin-ed25519" | "bitcoin-ecdsa" | "solana";
|
|
5
|
+
export type AddressEncoding = "ss58" | "ethereum" | "bech32m" | "bech32" | "base58check" | "base58solana";
|
|
6
|
+
export type Keypair = {
|
|
7
7
|
type: KeypairCurve;
|
|
8
8
|
secretKey: Uint8Array;
|
|
9
9
|
publicKey: Uint8Array;
|
|
10
10
|
address: string;
|
|
11
11
|
};
|
|
12
|
-
type AccountPlatform = "ethereum" | "polkadot" | "bitcoin" | "solana";
|
|
12
|
+
export type AccountPlatform = "ethereum" | "polkadot" | "bitcoin" | "solana";
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region src/address/addressFromPublicKey.d.ts
|
|
15
|
-
type EncodeAddressOptions = {
|
|
15
|
+
export type EncodeAddressOptions = {
|
|
16
16
|
ss58Prefix?: number;
|
|
17
17
|
};
|
|
18
|
-
declare const addressFromPublicKey: (publicKey: Uint8Array, encoding: AddressEncoding, options?: EncodeAddressOptions) => string;
|
|
18
|
+
export declare const addressFromPublicKey: (publicKey: Uint8Array, encoding: AddressEncoding, options?: EncodeAddressOptions) => string;
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region src/address/encodeAnyAddress.d.ts
|
|
21
21
|
type EncodeAddressOptions$1 = {
|
|
22
22
|
ss58Format?: number | undefined;
|
|
23
23
|
};
|
|
24
|
-
declare const encodeAnyAddress: (address: string, options?: EncodeAddressOptions$1) => string;
|
|
24
|
+
export declare const encodeAnyAddress: (address: string, options?: EncodeAddressOptions$1) => string;
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region src/address/encoding/addressEncodingFromCurve.d.ts
|
|
27
27
|
/** NOTE: Try not to use this too much, it will need to change */
|
|
28
|
-
declare const addressEncodingFromCurve: (curve: KeypairCurve) => AddressEncoding;
|
|
28
|
+
export declare const addressEncodingFromCurve: (curve: KeypairCurve) => AddressEncoding;
|
|
29
29
|
//#endregion
|
|
30
30
|
//#region src/address/encoding/bitcoin.d.ts
|
|
31
|
-
declare const isBitcoinAddress: (address: string) => boolean;
|
|
32
|
-
declare function isBech32mAddress(address: string): boolean;
|
|
33
|
-
declare function isBech32Address(address: string): boolean;
|
|
34
|
-
declare function isBase58CheckAddress(address: string): boolean;
|
|
31
|
+
export declare const isBitcoinAddress: (address: string) => boolean;
|
|
32
|
+
export declare function isBech32mAddress(address: string): boolean;
|
|
33
|
+
export declare function isBech32Address(address: string): boolean;
|
|
34
|
+
export declare function isBase58CheckAddress(address: string): boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Converts a Bech32m encoded address to its corresponding data representation.
|
|
37
37
|
* @param address - The Bech32m encoded address.
|
|
38
38
|
* @returns An object containing the version, prefix, and data of the address.
|
|
39
39
|
* @throws {TypeError} If the address uses the wrong encoding.
|
|
40
40
|
*/
|
|
41
|
-
declare function fromBech32m(address: string): {
|
|
41
|
+
export declare function fromBech32m(address: string): {
|
|
42
42
|
version: number;
|
|
43
43
|
prefix: string;
|
|
44
44
|
data: Uint8Array<ArrayBuffer>;
|
|
@@ -49,7 +49,7 @@ declare function fromBech32m(address: string): {
|
|
|
49
49
|
* @returns An object containing the version, prefix, and data of the address.
|
|
50
50
|
* @throws {TypeError} If the address uses the wrong encoding.
|
|
51
51
|
*/
|
|
52
|
-
declare function fromBech32(address: string): {
|
|
52
|
+
export declare function fromBech32(address: string): {
|
|
53
53
|
version: number;
|
|
54
54
|
prefix: string;
|
|
55
55
|
data: Uint8Array<ArrayBuffer>;
|
|
@@ -61,13 +61,13 @@ declare function fromBech32(address: string): {
|
|
|
61
61
|
* @returns An object containing the version and hash of the decoded address.
|
|
62
62
|
* @throws {TypeError} If the address is too short or too long.
|
|
63
63
|
*/
|
|
64
|
-
declare function fromBase58Check(address: string): {
|
|
64
|
+
export declare function fromBase58Check(address: string): {
|
|
65
65
|
version: number;
|
|
66
66
|
hash: Uint8Array<ArrayBuffer>;
|
|
67
67
|
};
|
|
68
68
|
//#endregion
|
|
69
69
|
//#region src/address/encoding/detectAddressEncoding.d.ts
|
|
70
|
-
declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
70
|
+
export declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
71
71
|
//#endregion
|
|
72
72
|
//#region src/address/encoding/ethereum.d.ts
|
|
73
73
|
/**
|
|
@@ -75,45 +75,50 @@ declare const detectAddressEncoding: (address: string) => AddressEncoding;
|
|
|
75
75
|
* Accepts both uncompressed (65 bytes) and compressed (33 bytes) public keys -
|
|
76
76
|
* polkadot-js keystores store the compressed form as the account address.
|
|
77
77
|
*/
|
|
78
|
-
declare const encodeAddressEthereum: (publicKey: Uint8Array) => `0x${string}`;
|
|
79
|
-
declare const checksumEthereumAddress: (address: string) => `0x${string}`;
|
|
80
|
-
declare function isEthereumAddress(address: string): address is `0x${string}`;
|
|
78
|
+
export declare const encodeAddressEthereum: (publicKey: Uint8Array) => `0x${string}`;
|
|
79
|
+
export declare const checksumEthereumAddress: (address: string) => `0x${string}`;
|
|
80
|
+
export declare function isEthereumAddress(address: string): address is `0x${string}`;
|
|
81
81
|
//#endregion
|
|
82
82
|
//#region src/address/encoding/solana.d.ts
|
|
83
|
-
declare const encodeAddressSolana: (publicKey: Uint8Array) => string;
|
|
84
|
-
declare function isSolanaAddress(address: string): boolean;
|
|
83
|
+
export declare const encodeAddressSolana: (publicKey: Uint8Array) => string;
|
|
84
|
+
export declare function isSolanaAddress(address: string): boolean;
|
|
85
85
|
/**
|
|
86
86
|
* Whether the address is a valid ed25519 public key (on-curve).
|
|
87
87
|
*
|
|
88
88
|
* Program-derived addresses (PDAs) are off-curve by construction: no private key can exist
|
|
89
89
|
* for them, so a regular wallet cannot recover tokens sent to an account they own.
|
|
90
90
|
*/
|
|
91
|
-
declare function isOnCurveSolanaAddress(address: string): boolean;
|
|
91
|
+
export declare function isOnCurveSolanaAddress(address: string): boolean;
|
|
92
92
|
//#endregion
|
|
93
93
|
//#region src/address/encoding/ss58.d.ts
|
|
94
|
-
declare const decodeSs58Address: (addressStr: string, ignoreChecksum?: boolean) => [publicKey: Uint8Array, prefix: number];
|
|
95
|
-
declare const encodeAddressSs58: (publicKey: Uint8Array | string, prefix?: number) => string;
|
|
96
|
-
declare function isSs58Address(address: string): boolean;
|
|
94
|
+
export declare const decodeSs58Address: (addressStr: string, ignoreChecksum?: boolean) => [publicKey: Uint8Array, prefix: number];
|
|
95
|
+
export declare const encodeAddressSs58: (publicKey: Uint8Array | string, prefix?: number) => string;
|
|
96
|
+
export declare function isSs58Address(address: string): boolean;
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/address/frontierEvmMirror.d.ts
|
|
99
|
+
export declare const frontierH160ToAccountId32: (h160: string) => Uint8Array;
|
|
100
|
+
export declare const frontierH160ToSs58Mirror: (h160: string, ss58Prefix?: number) => string;
|
|
101
|
+
export declare const frontierSs58ToPublicKeyHex: (address: string) => `0x${string}`;
|
|
97
102
|
//#endregion
|
|
98
103
|
//#region src/address/isAddressEqual.d.ts
|
|
99
|
-
declare const isAddressEqual: (address1: string, address2: string) => boolean;
|
|
104
|
+
export declare const isAddressEqual: (address1: string, address2: string) => boolean;
|
|
100
105
|
//#endregion
|
|
101
106
|
//#region src/address/isAddressValid.d.ts
|
|
102
|
-
declare const isAddressValid: (address: string) => boolean;
|
|
107
|
+
export declare const isAddressValid: (address: string) => boolean;
|
|
103
108
|
//#endregion
|
|
104
109
|
//#region src/address/normalizeAddress.d.ts
|
|
105
|
-
declare const normalizeAddress: (address: string) => string;
|
|
110
|
+
export declare const normalizeAddress: (address: string) => string;
|
|
106
111
|
//#endregion
|
|
107
112
|
//#region src/derivation/deriveSolana.d.ts
|
|
108
|
-
declare const getPublicKeySolana: (secretKey: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
113
|
+
export declare const getPublicKeySolana: (secretKey: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
109
114
|
//#endregion
|
|
110
115
|
//#region src/derivation/utils.d.ts
|
|
111
|
-
declare const deriveKeypair: (seed: Uint8Array, derivationPath: string, curve: KeypairCurve) => Keypair;
|
|
112
|
-
declare const getPublicKeyFromSecret: (secretKey: Uint8Array, curve: KeypairCurve) => Uint8Array;
|
|
113
|
-
declare const addressFromMnemonic: (mnemonic: string, derivationPath: string, curve: KeypairCurve) => Promise<string>;
|
|
114
|
-
declare const removeHexPrefix: (secretKey: string) => string;
|
|
115
|
-
declare const parseSecretKey: (secretKey: string, platform: AccountPlatform) => Uint8Array<ArrayBufferLike>;
|
|
116
|
-
declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurve) => Promise<boolean>;
|
|
116
|
+
export declare const deriveKeypair: (seed: Uint8Array, derivationPath: string, curve: KeypairCurve) => Keypair;
|
|
117
|
+
export declare const getPublicKeyFromSecret: (secretKey: Uint8Array, curve: KeypairCurve) => Uint8Array;
|
|
118
|
+
export declare const addressFromMnemonic: (mnemonic: string, derivationPath: string, curve: KeypairCurve) => Promise<string>;
|
|
119
|
+
export declare const removeHexPrefix: (secretKey: string) => string;
|
|
120
|
+
export declare const parseSecretKey: (secretKey: string, platform: AccountPlatform) => Uint8Array<ArrayBufferLike>;
|
|
121
|
+
export declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurve) => Promise<boolean>;
|
|
117
122
|
//#endregion
|
|
118
123
|
//#region src/encryption/encryptKemAead.d.ts
|
|
119
124
|
/**
|
|
@@ -126,10 +131,10 @@ declare const isValidDerivationPath: (derivationPath: string, curve: KeypairCurv
|
|
|
126
131
|
* @param publicKey ML-KEM-768 encapsulation key bytes
|
|
127
132
|
* @param plaintext Data to encrypt (typically a signed extrinsic)
|
|
128
133
|
*/
|
|
129
|
-
declare const encryptKemAead: (keyHash: Uint8Array, publicKey: Uint8Array, plaintext: Uint8Array) => Promise<Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>>;
|
|
134
|
+
export declare const encryptKemAead: (keyHash: Uint8Array, publicKey: Uint8Array, plaintext: Uint8Array) => Promise<Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>>;
|
|
130
135
|
//#endregion
|
|
131
136
|
//#region src/hashing/index.d.ts
|
|
132
|
-
declare const blake3: {
|
|
137
|
+
export declare const blake3: {
|
|
133
138
|
outputLen: number;
|
|
134
139
|
blockLen: number;
|
|
135
140
|
canXOF: boolean;
|
|
@@ -143,39 +148,39 @@ declare const blake3: {
|
|
|
143
148
|
canXOF: boolean;
|
|
144
149
|
create: (opts?: import("@noble/hashes/blake3.js").Blake3Opts | undefined) => import("@noble/hashes/blake3.js")._BLAKE3;
|
|
145
150
|
};
|
|
146
|
-
declare const blake2b256: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
147
|
-
declare const blake2b512: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
148
|
-
declare const getSafeHash: (bytes: Uint8Array) => string;
|
|
151
|
+
export declare const blake2b256: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
152
|
+
export declare const blake2b512: (msg: Uint8Array) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
153
|
+
export declare const getSafeHash: (bytes: Uint8Array) => string;
|
|
149
154
|
//#endregion
|
|
150
155
|
//#region src/keystore/index.d.ts
|
|
151
|
-
type PjsKeystoreEncoding = {
|
|
156
|
+
export type PjsKeystoreEncoding = {
|
|
152
157
|
content: string[];
|
|
153
158
|
type: string[];
|
|
154
159
|
version: string;
|
|
155
160
|
};
|
|
156
|
-
type PjsKeystore = {
|
|
161
|
+
export type PjsKeystore = {
|
|
157
162
|
encoded: string;
|
|
158
163
|
encoding: PjsKeystoreEncoding;
|
|
159
164
|
};
|
|
160
165
|
/** Decrypts a polkadot-js encrypted keystore (`jsonDecrypt` equivalent) */
|
|
161
|
-
declare const decryptPjsKeystore: ({ encoded, encoding }: PjsKeystore, password: string) => Uint8Array;
|
|
166
|
+
export declare const decryptPjsKeystore: ({ encoded, encoding }: PjsKeystore, password: string) => Uint8Array;
|
|
162
167
|
/** Encrypts data as a polkadot-js keystore (`jsonEncrypt` equivalent, always scrypt + v3) */
|
|
163
|
-
declare const encryptPjsKeystore: (data: Uint8Array, contentType: string[], password: string) => PjsKeystore;
|
|
168
|
+
export declare const encryptPjsKeystore: (data: Uint8Array, contentType: string[], password: string) => PjsKeystore;
|
|
164
169
|
//#endregion
|
|
165
170
|
//#region src/mnemonic/index.d.ts
|
|
166
|
-
declare const mnemonicToEntropy: (mnemonic: string) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
167
|
-
declare const entropyToMnemonic: (entropy: Uint8Array) => string;
|
|
168
|
-
declare const entropyToSeed: (entropy: Uint8Array, curve: KeypairCurve, password?: string) => Promise<Uint8Array<ArrayBuffer>>;
|
|
169
|
-
declare const isValidMnemonic: (mnemonic: string) => boolean;
|
|
170
|
-
declare const generateMnemonic: (words: 12 | 24) => string;
|
|
171
|
-
declare const DEV_MNEMONIC_POLKADOT = "bottom drive obey lake curtain smoke basket hold race lonely fit walk";
|
|
172
|
-
declare const DEV_MNEMONIC_ETHEREUM = "test test test test test test test test test test test junk";
|
|
173
|
-
declare const getDevSeed: (curve: KeypairCurve) => Promise<Uint8Array<ArrayBufferLike>>;
|
|
171
|
+
export declare const mnemonicToEntropy: (mnemonic: string) => Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
|
|
172
|
+
export declare const entropyToMnemonic: (entropy: Uint8Array) => string;
|
|
173
|
+
export declare const entropyToSeed: (entropy: Uint8Array, curve: KeypairCurve, password?: string) => Promise<Uint8Array<ArrayBuffer>>;
|
|
174
|
+
export declare const isValidMnemonic: (mnemonic: string) => boolean;
|
|
175
|
+
export declare const generateMnemonic: (words: 12 | 24) => string;
|
|
176
|
+
export declare const DEV_MNEMONIC_POLKADOT = "bottom drive obey lake curtain smoke basket hold race lonely fit walk";
|
|
177
|
+
export declare const DEV_MNEMONIC_ETHEREUM = "test test test test test test test test test test test junk";
|
|
178
|
+
export declare const getDevSeed: (curve: KeypairCurve) => Promise<Uint8Array<ArrayBufferLike>>;
|
|
174
179
|
//#endregion
|
|
175
180
|
//#region src/platform/index.d.ts
|
|
176
|
-
declare const getAccountPlatformFromCurve: (curve: KeypairCurve) => AccountPlatform;
|
|
177
|
-
declare const getAccountPlatformFromEncoding: (encoding: AddressEncoding) => AccountPlatform;
|
|
178
|
-
declare const getAccountPlatformFromAddress: (address: string) => AccountPlatform;
|
|
181
|
+
export declare const getAccountPlatformFromCurve: (curve: KeypairCurve) => AccountPlatform;
|
|
182
|
+
export declare const getAccountPlatformFromEncoding: (encoding: AddressEncoding) => AccountPlatform;
|
|
183
|
+
export declare const getAccountPlatformFromAddress: (address: string) => AccountPlatform;
|
|
179
184
|
//#endregion
|
|
180
185
|
//#region src/signing/index.d.ts
|
|
181
186
|
/**
|
|
@@ -189,12 +194,12 @@ declare const getAccountPlatformFromAddress: (address: string) => AccountPlatfor
|
|
|
189
194
|
* Note: callers are responsible for the substrate >256-byte rule (hash the payload
|
|
190
195
|
* with blake2b-256 before signing) — this matches where polkadot-js applies it.
|
|
191
196
|
*/
|
|
192
|
-
declare const signSubstrate: (curve: KeypairCurve, secretKey: Uint8Array, message: Uint8Array) => Uint8Array;
|
|
197
|
+
export declare const signSubstrate: (curve: KeypairCurve, secretKey: Uint8Array, message: Uint8Array) => Uint8Array;
|
|
193
198
|
/** MultiSignature enum variant index per signature scheme, used to type-prefix signatures */
|
|
194
|
-
declare const SIGNATURE_TYPE_PREFIX: Partial<Record<KeypairCurve, number>>;
|
|
199
|
+
export declare const SIGNATURE_TYPE_PREFIX: Partial<Record<KeypairCurve, number>>;
|
|
195
200
|
//#endregion
|
|
196
201
|
//#region src/utils/pbkdf2.d.ts
|
|
197
|
-
declare const pbkdf2: (hash: "SHA-256" | "SHA-512", entropy: Uint8Array, salt: Uint8Array, iterations: number, outputLenBytes: number) => Promise<Uint8Array<ArrayBuffer>>;
|
|
202
|
+
export declare const pbkdf2: (hash: "SHA-256" | "SHA-512", entropy: Uint8Array, salt: Uint8Array, iterations: number, outputLenBytes: number) => Promise<Uint8Array<ArrayBuffer>>;
|
|
198
203
|
//#endregion
|
|
199
|
-
export {
|
|
204
|
+
export { base58, base64, base64urlnopad, ed25519, hex, utf8 };
|
|
200
205
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/index.ts","../src/address/addressFromPublicKey.ts","../src/address/encodeAnyAddress.ts","../src/address/encoding/addressEncodingFromCurve.ts","../src/address/encoding/bitcoin.ts","../src/address/encoding/detectAddressEncoding.ts","../src/address/encoding/ethereum.ts","../src/address/encoding/solana.ts","../src/address/encoding/ss58.ts","../src/address/isAddressEqual.ts","../src/address/isAddressValid.ts","../src/address/normalizeAddress.ts","../src/derivation/deriveSolana.ts","../src/derivation/utils.ts","../src/encryption/encryptKemAead.ts","../src/hashing/index.ts","../src/keystore/index.ts","../src/mnemonic/index.ts","../src/platform/index.ts","../src/signing/index.ts","../src/utils/pbkdf2.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/index.ts","../src/address/addressFromPublicKey.ts","../src/address/encodeAnyAddress.ts","../src/address/encoding/addressEncodingFromCurve.ts","../src/address/encoding/bitcoin.ts","../src/address/encoding/detectAddressEncoding.ts","../src/address/encoding/ethereum.ts","../src/address/encoding/solana.ts","../src/address/encoding/ss58.ts","../src/address/frontierEvmMirror.ts","../src/address/isAddressEqual.ts","../src/address/isAddressValid.ts","../src/address/normalizeAddress.ts","../src/derivation/deriveSolana.ts","../src/derivation/utils.ts","../src/encryption/encryptKemAead.ts","../src/hashing/index.ts","../src/keystore/index.ts","../src/mnemonic/index.ts","../src/platform/index.ts","../src/signing/index.ts","../src/utils/pbkdf2.ts"],"mappings":";;;YAeY;YAcA;YAQA;EACV,MAAM;EACN,WAAW;EACX,WAAW;EACX;;YAGU;;;YCzCA;EACV;;qBAGW,uBAAoB,WACpB,YAAU,UACX,iBAAe,UACf;;;KCPP;EACH;;qBAGW,mBAAgB,iBAAmB,UAAY;;;;qBCJ/C,2BAAwB,OAAW,iBAAe;;;qBCAlD,mBAAgB;wBAGb,iBAAiB;wBASjB,gBAAgB;wBAShB,qBAAqB;;;;;;;wBAerB,YAAY;;;QAAZ,WAAA;;;;;;;;wBAkBA,WAAW;;;QAAX,WAAA;;;;;;;;;wBAmBA,gBAAgB;;QAAhB,WAAA;;;;qBC1DH,wBAAqB,oBAAsB;;;;;;;;qBCT3C,wBAAqB,WAAe;qBAoBpC,0BAAuB;wBAapB,kBAAkB,kBAAkB;;;qBCvCvC,sBAAmB,WAAe;wBAK/B,gBAAgB;;;;;;;wBAehB,uBAAuB;;;qBCY1B,oBAAiB,oBACV,8BAGhB,WAAW,YAAY;qBAoBd,oBAAiB,WAAe,qBAAmB;wBAKhD,cAAc;;;qBCrDjB,4BAAyB,iBAAmB;qBAU5C,2BAAwB,cAAgB;qBAGxC,6BAA0B;;;qBCtB1B,iBAAc,kBAAoB;;;qBCAlC,iBAAc;;;qBCQd,mBAAgB;;;qBC6ChB,qBAAkB,WAAe,eAAU,WAAA,mBAAA,WAAA;;;qBC7C3C,gBAAa,MAAU,YAAU,wBAAwB,OAAS,iBAAA;qBAkBlE,yBAAsB,WAAe,YAAU,OAAS,iBAAe;qBAkBvE,sBAAmB,kBACd,wBACM,OACf,iBAAY;qBAQR,kBAAe;qBAKf,iBAAc,mBAAqB,UAAY,oBAAe,WAAA;qBA+B9D,wBAAqB,wBAAgC,OAAS,iBAAY;;;;;;;;;;;;;qBC/E1E,iBAAc,SAChB,YAAU,WACR,YAAU,WACV,eAAU,QAAA,WAAA,mBAAA,WAAA;;;qBCbV;;;;;;;;;;;;;;qBAEA,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;qBAC7B,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;qBAE7B,cAAW,OAAW;;;YCuBvB;EACV;EACA;EACA;;YAGU;EACV;EACA,UAAU;;;qBAoBC,uBAAkB,SAAA,YACN,aAAW,qBAEjC;;qBAqCU,qBAAkB,MACvB,YAAU,uBACK,qBAEpB;;;qBC7FU,oBAAiB,qBAAoB,WAAA,mBAAA,WAAA;qBAIrC,oBAAiB,SAAa;qBA+C9B,gBAAa,SACf,YAAU,OACZ,cAAY,sBACF,QAAA,WAAA;qBAYN,kBAAe;qBAIf,mBAAgB;qBAUhB;qBAIA;qBAKA,aAAU,OAAiB,iBAAY,QAAA,WAAA;;;qBCjGvC,8BAA2B,OAAW,iBAAe;qBAgBrD,iCAA8B,UAAc,oBAAkB;qBAe9D,gCAA6B,oBAAsB;;;;;;;;;;;;;;qBCPnD,gBAAa,OACjB,cAAY,WACR,YAAU,SACZ,eACR;;qBAsBU,uBAAuB,QAAQ,OAAO;;;qBCrDtC,SAAM,6BACU,SAClB,YAAU,MACb,YAAU,oBACE,2BACI,QAAA,WAAA"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
}
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
20
20
|
value: mod,
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
@@ -147,12 +147,14 @@ function fromBase58Check(address) {
|
|
|
147
147
|
const encodeAddressEthereum = (publicKey) => {
|
|
148
148
|
if (publicKey.length === 33 && (publicKey[0] === 2 || publicKey[0] === 3)) publicKey = _noble_curves_secp256k1_js.secp256k1.Point.fromBytes(publicKey).toBytes(false);
|
|
149
149
|
if (publicKey[0] !== 4) throw new Error("Invalid public key format");
|
|
150
|
-
const
|
|
150
|
+
const publicKeyWithoutPrefix = publicKey.slice(1);
|
|
151
|
+
const address = (0, _noble_hashes_sha3_js.keccak_256)(publicKeyWithoutPrefix).slice(-20);
|
|
151
152
|
return checksumEthereumAddress(`0x${(0, _noble_hashes_utils_js.bytesToHex)(address)}`);
|
|
152
153
|
};
|
|
153
154
|
const checksumEthereumAddress = (address) => {
|
|
154
155
|
const addr = address.toLowerCase().replace(/^0x/, "");
|
|
155
|
-
const
|
|
156
|
+
const hash = (0, _noble_hashes_sha3_js.keccak_256)(new TextEncoder().encode(addr));
|
|
157
|
+
const hashHex = (0, _noble_hashes_utils_js.bytesToHex)(hash);
|
|
156
158
|
return `0x${addr.split("").map((char, i) => parseInt(hashHex[i], 16) >= 8 ? char.toUpperCase() : char).join("")}`;
|
|
157
159
|
};
|
|
158
160
|
function isEthereumAddress(address) {
|
|
@@ -298,6 +300,22 @@ const encodeAnyAddress = (address, options) => {
|
|
|
298
300
|
return normalizeAddress(address);
|
|
299
301
|
};
|
|
300
302
|
//#endregion
|
|
303
|
+
//#region src/address/frontierEvmMirror.ts
|
|
304
|
+
const EVM_PREFIX = /* @__PURE__ */ new TextEncoder().encode("evm:");
|
|
305
|
+
const frontierH160ToAccountId32 = (h160) => {
|
|
306
|
+
if (!isEthereumAddress(h160)) throw new Error("Invalid H160 address");
|
|
307
|
+
const data = new Uint8Array(EVM_PREFIX.length + 20);
|
|
308
|
+
data.set(EVM_PREFIX, 0);
|
|
309
|
+
data.set((0, _noble_hashes_utils_js.hexToBytes)(h160.slice(2).toLowerCase()), EVM_PREFIX.length);
|
|
310
|
+
return blake2b256(data);
|
|
311
|
+
};
|
|
312
|
+
const frontierH160ToSs58Mirror = (h160, ss58Prefix = 42) => encodeAddressSs58(frontierH160ToAccountId32(h160), ss58Prefix);
|
|
313
|
+
const frontierSs58ToPublicKeyHex = (address) => {
|
|
314
|
+
const [publicKey] = decodeSs58Address(address);
|
|
315
|
+
if (publicKey.length !== 32) throw new Error("Expected a 32-byte public key");
|
|
316
|
+
return `0x${(0, _noble_hashes_utils_js.bytesToHex)(publicKey)}`;
|
|
317
|
+
};
|
|
318
|
+
//#endregion
|
|
301
319
|
//#region src/address/isAddressEqual.ts
|
|
302
320
|
const isAddressEqual = (address1, address2) => {
|
|
303
321
|
try {
|
|
@@ -551,7 +569,8 @@ const getPublicKeyFromSecret = (secretKey, curve) => {
|
|
|
551
569
|
}
|
|
552
570
|
};
|
|
553
571
|
const addressFromMnemonic = async (mnemonic, derivationPath, curve) => {
|
|
554
|
-
const
|
|
572
|
+
const entropy = mnemonicToEntropy(mnemonic);
|
|
573
|
+
const seed = await entropyToSeed(entropy, curve);
|
|
555
574
|
const { address } = deriveKeypair(seed, derivationPath, curve);
|
|
556
575
|
return address;
|
|
557
576
|
};
|
|
@@ -701,11 +720,12 @@ const decryptPjsKeystore = ({ encoded, encoding }, password) => {
|
|
|
701
720
|
const encryptPjsKeystore = (data, contentType, password) => {
|
|
702
721
|
const salt = crypto.getRandomValues(new Uint8Array(SALT_LENGTH));
|
|
703
722
|
const nonce = crypto.getRandomValues(new Uint8Array(NONCE_LENGTH));
|
|
704
|
-
const
|
|
723
|
+
const key = deriveKey(password, salt, {
|
|
705
724
|
N: SCRYPT_N,
|
|
706
725
|
p: SCRYPT_P,
|
|
707
726
|
r: SCRYPT_R
|
|
708
|
-
})
|
|
727
|
+
});
|
|
728
|
+
const ciphertext = (0, _noble_ciphers_salsa_js.xsalsa20poly1305)(key, nonce).encrypt(data);
|
|
709
729
|
const encoded = new Uint8Array(68 + ciphertext.length);
|
|
710
730
|
encoded.set(salt, 0);
|
|
711
731
|
encoded.set(writeU32LE(SCRYPT_N), SALT_LENGTH);
|
|
@@ -841,6 +861,9 @@ exports.entropyToSeed = entropyToSeed;
|
|
|
841
861
|
exports.fromBase58Check = fromBase58Check;
|
|
842
862
|
exports.fromBech32 = fromBech32;
|
|
843
863
|
exports.fromBech32m = fromBech32m;
|
|
864
|
+
exports.frontierH160ToAccountId32 = frontierH160ToAccountId32;
|
|
865
|
+
exports.frontierH160ToSs58Mirror = frontierH160ToSs58Mirror;
|
|
866
|
+
exports.frontierSs58ToPublicKeyHex = frontierSs58ToPublicKeyHex;
|
|
844
867
|
exports.generateMnemonic = generateMnemonic;
|
|
845
868
|
exports.getAccountPlatformFromAddress = getAccountPlatformFromAddress;
|
|
846
869
|
exports.getAccountPlatformFromCurve = getAccountPlatformFromCurve;
|