@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 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 { AccountPlatform, AddressEncoding, DEV_MNEMONIC_ETHEREUM, DEV_MNEMONIC_POLKADOT, EncodeAddressOptions, Keypair, KeypairCurve, PjsKeystore, PjsKeystoreEncoding, SIGNATURE_TYPE_PREFIX, addressEncodingFromCurve, addressFromMnemonic, addressFromPublicKey, base58, base64, base64urlnopad, blake2b256, blake2b512, blake3, checksumEthereumAddress, decodeSs58Address, decryptPjsKeystore, deriveKeypair, detectAddressEncoding, ed25519, encodeAddressEthereum, encodeAddressSolana, encodeAddressSs58, encodeAnyAddress, encryptKemAead, encryptPjsKeystore, entropyToMnemonic, entropyToSeed, fromBase58Check, fromBech32, fromBech32m, generateMnemonic, getAccountPlatformFromAddress, getAccountPlatformFromCurve, getAccountPlatformFromEncoding, getDevSeed, getPublicKeyFromSecret, getPublicKeySolana, getSafeHash, hex, isAddressEqual, isAddressValid, isBase58CheckAddress, isBech32Address, isBech32mAddress, isBitcoinAddress, isEthereumAddress, isOnCurveSolanaAddress, isSolanaAddress, isSs58Address, isValidDerivationPath, isValidMnemonic, mnemonicToEntropy, normalizeAddress, parseSecretKey, pbkdf2, removeHexPrefix, signSubstrate, utf8 };
204
+ export { base58, base64, base64urlnopad, ed25519, hex, utf8 };
200
205
  //# sourceMappingURL=index.d.mts.map
@@ -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":";;;KAeY;KAcA;KAQA;EACV,MAAM;EACN,WAAW;EACX,WAAW;EACX;;KAGU;;;KCzCA;EACV;;cAGW,uBAAoB,WACpB,YAAU,UACX,iBAAe,UACf;;;KCPP;EACH;;cAGW,mBAAgB,iBAAmB,UAAY;;;;cCJ/C,2BAAwB,OAAW,iBAAe;;;cCAlD,mBAAgB;iBAGb,iBAAiB;iBASjB,gBAAgB;iBAShB,qBAAqB;;;;;;;iBAerB,YAAY;;;QAAZ,WAAA;;;;;;;;iBAkBA,WAAW;;;QAAX,WAAA;;;;;;;;;iBAmBA,gBAAgB;;QAAhB,WAAA;;;;cC1DH,wBAAqB,oBAAsB;;;;;;;;cCT3C,wBAAqB,WAAe;cAoBpC,0BAAuB;iBAapB,kBAAkB,kBAAkB;;;cCvCvC,sBAAmB,WAAe;iBAK/B,gBAAgB;;;;;;;iBAehB,uBAAuB;;;cCY1B,oBAAiB,oBACV,8BAGhB,WAAW,YAAY;cAoBd,oBAAiB,WAAe,qBAAmB;iBAKhD,cAAc;;;cC9DjB,iBAAc,kBAAoB;;;cCAlC,iBAAc;;;cCQd,mBAAgB;;;cC6ChB,qBAAkB,WAAe,eAAU,WAAA,mBAAA,WAAA;;;cC7C3C,gBAAa,MAAU,YAAU,wBAAwB,OAAS,iBAAA;cAkBlE,yBAAsB,WAAe,YAAU,OAAS,iBAAe;cAkBvE,sBAAmB,kBACd,wBACM,OACf,iBAAY;cAQR,kBAAe;cAKf,iBAAc,mBAAqB,UAAY,oBAAe,WAAA;cA+B9D,wBAAqB,wBAAgC,OAAS,iBAAY;;;;;;;;;;;;;cC/E1E,iBAAc,SAChB,YAAU,WACR,YAAU,WACV,eAAU,QAAA,WAAA,mBAAA,WAAA;;;cCbV;;;;;;;;;;;;;;cAEA,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;cAC7B,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;cAE7B,cAAW,OAAW;;;KCuBvB;EACV;EACA;EACA;;KAGU;EACV;EACA,UAAU;;;cAoBC,uBAAkB,SAAA,YACN,aAAW,qBAEjC;;cAqCU,qBAAkB,MACvB,YAAU,uBACK,qBAEpB;;;cC7FU,oBAAiB,qBAAoB,WAAA,mBAAA,WAAA;cAIrC,oBAAiB,SAAa;cA+C9B,gBAAa,SACf,YAAU,OACZ,cAAY,sBACF,QAAA,WAAA;cAYN,kBAAe;cAIf,mBAAgB;cAUhB;cAIA;cAKA,aAAU,OAAiB,iBAAY,QAAA,WAAA;;;cCjGvC,8BAA2B,OAAW,iBAAe;cAgBrD,iCAA8B,UAAc,oBAAkB;cAe9D,gCAA6B,oBAAsB;;;;;;;;;;;;;;cCPnD,gBAAa,OACjB,cAAY,WACR,YAAU,SACZ,eACR;;cAsBU,uBAAuB,QAAQ,OAAO;;;cCrDtC,SAAM,6BACU,SAClB,YAAU,MACb,YAAU,oBACE,2BACI,QAAA,WAAA"}
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 { AccountPlatform, AddressEncoding, DEV_MNEMONIC_ETHEREUM, DEV_MNEMONIC_POLKADOT, EncodeAddressOptions, Keypair, KeypairCurve, PjsKeystore, PjsKeystoreEncoding, SIGNATURE_TYPE_PREFIX, addressEncodingFromCurve, addressFromMnemonic, addressFromPublicKey, base58, base64, base64urlnopad, blake2b256, blake2b512, blake3, checksumEthereumAddress, decodeSs58Address, decryptPjsKeystore, deriveKeypair, detectAddressEncoding, ed25519, encodeAddressEthereum, encodeAddressSolana, encodeAddressSs58, encodeAnyAddress, encryptKemAead, encryptPjsKeystore, entropyToMnemonic, entropyToSeed, fromBase58Check, fromBech32, fromBech32m, generateMnemonic, getAccountPlatformFromAddress, getAccountPlatformFromCurve, getAccountPlatformFromEncoding, getDevSeed, getPublicKeyFromSecret, getPublicKeySolana, getSafeHash, hex, isAddressEqual, isAddressValid, isBase58CheckAddress, isBech32Address, isBech32mAddress, isBitcoinAddress, isEthereumAddress, isOnCurveSolanaAddress, isSolanaAddress, isSs58Address, isValidDerivationPath, isValidMnemonic, mnemonicToEntropy, normalizeAddress, parseSecretKey, pbkdf2, removeHexPrefix, signSubstrate, utf8 };
204
+ export { base58, base64, base64urlnopad, ed25519, hex, utf8 };
200
205
  //# sourceMappingURL=index.d.ts.map
@@ -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":";;;KAeY;KAcA;KAQA;EACV,MAAM;EACN,WAAW;EACX,WAAW;EACX;;KAGU;;;KCzCA;EACV;;cAGW,uBAAoB,WACpB,YAAU,UACX,iBAAe,UACf;;;KCPP;EACH;;cAGW,mBAAgB,iBAAmB,UAAY;;;;cCJ/C,2BAAwB,OAAW,iBAAe;;;cCAlD,mBAAgB;iBAGb,iBAAiB;iBASjB,gBAAgB;iBAShB,qBAAqB;;;;;;;iBAerB,YAAY;;;QAAZ,WAAA;;;;;;;;iBAkBA,WAAW;;;QAAX,WAAA;;;;;;;;;iBAmBA,gBAAgB;;QAAhB,WAAA;;;;cC1DH,wBAAqB,oBAAsB;;;;;;;;cCT3C,wBAAqB,WAAe;cAoBpC,0BAAuB;iBAapB,kBAAkB,kBAAkB;;;cCvCvC,sBAAmB,WAAe;iBAK/B,gBAAgB;;;;;;;iBAehB,uBAAuB;;;cCY1B,oBAAiB,oBACV,8BAGhB,WAAW,YAAY;cAoBd,oBAAiB,WAAe,qBAAmB;iBAKhD,cAAc;;;cC9DjB,iBAAc,kBAAoB;;;cCAlC,iBAAc;;;cCQd,mBAAgB;;;cC6ChB,qBAAkB,WAAe,eAAU,WAAA,mBAAA,WAAA;;;cC7C3C,gBAAa,MAAU,YAAU,wBAAwB,OAAS,iBAAA;cAkBlE,yBAAsB,WAAe,YAAU,OAAS,iBAAe;cAkBvE,sBAAmB,kBACd,wBACM,OACf,iBAAY;cAQR,kBAAe;cAKf,iBAAc,mBAAqB,UAAY,oBAAe,WAAA;cA+B9D,wBAAqB,wBAAgC,OAAS,iBAAY;;;;;;;;;;;;;cC/E1E,iBAAc,SAChB,YAAU,WACR,YAAU,WACV,eAAU,QAAA,WAAA,mBAAA,WAAA;;;cCbV;;;;;;;;;;;;;;cAEA,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;cAC7B,aAAU,KAAS,eAAU,WAAA,mBAAA,WAAA;cAE7B,cAAW,OAAW;;;KCuBvB;EACV;EACA;EACA;;KAGU;EACV;EACA,UAAU;;;cAoBC,uBAAkB,SAAA,YACN,aAAW,qBAEjC;;cAqCU,qBAAkB,MACvB,YAAU,uBACK,qBAEpB;;;cC7FU,oBAAiB,qBAAoB,WAAA,mBAAA,WAAA;cAIrC,oBAAiB,SAAa;cA+C9B,gBAAa,SACf,YAAU,OACZ,cAAY,sBACF,QAAA,WAAA;cAYN,kBAAe;cAIf,mBAAgB;cAUhB;cAIA;cAKA,aAAU,OAAiB,iBAAY,QAAA,WAAA;;;cCjGvC,8BAA2B,OAAW,iBAAe;cAgBrD,iCAA8B,UAAc,oBAAkB;cAe9D,gCAA6B,oBAAsB;;;;;;;;;;;;;;cCPnD,gBAAa,OACjB,cAAY,WACR,YAAU,SACZ,eACR;;cAsBU,uBAAuB,QAAQ,OAAO;;;cCrDtC,SAAM,6BACU,SAClB,YAAU,MACb,YAAU,oBACE,2BACI,QAAA,WAAA"}
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 address = (0, _noble_hashes_sha3_js.keccak_256)(publicKey.slice(1)).slice(-20);
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 hashHex = (0, _noble_hashes_utils_js.bytesToHex)((0, _noble_hashes_sha3_js.keccak_256)(new TextEncoder().encode(addr)));
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 seed = await entropyToSeed(mnemonicToEntropy(mnemonic), curve);
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 ciphertext = (0, _noble_ciphers_salsa_js.xsalsa20poly1305)(deriveKey(password, salt, {
723
+ const key = deriveKey(password, salt, {
705
724
  N: SCRYPT_N,
706
725
  p: SCRYPT_P,
707
726
  r: SCRYPT_R
708
- }), nonce).encrypt(data);
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;