@1sat/utils 0.0.4 → 0.0.6
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.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -15
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +6 -0
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +24 -1
- package/dist/keys.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,18 +7,20 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { CollectionItemSubTypeData, CollectionSubTypeData, IconInscription, MAP, PreMAP } from '@1sat/types';
|
|
9
9
|
/**
|
|
10
|
-
* Parse an outpoint string
|
|
10
|
+
* Parse an outpoint string into its components.
|
|
11
|
+
* Accepts both period (txid.vout) and underscore (txid_vout) delimiters.
|
|
11
12
|
*/
|
|
12
13
|
export declare function parseOutpoint(outpoint: string): {
|
|
13
14
|
txid: string;
|
|
14
15
|
vout: number;
|
|
15
16
|
};
|
|
16
17
|
/**
|
|
17
|
-
* Format txid and vout into an outpoint string
|
|
18
|
+
* Format txid and vout into an outpoint string (period-delimited)
|
|
18
19
|
*/
|
|
19
20
|
export declare function formatOutpoint(txid: string, vout: number): string;
|
|
20
21
|
/**
|
|
21
|
-
* Validate that a string is a valid outpoint format
|
|
22
|
+
* Validate that a string is a valid outpoint format.
|
|
23
|
+
* Accepts both period (txid.vout) and underscore (txid_vout) delimiters.
|
|
22
24
|
*/
|
|
23
25
|
export declare function isValidOutpoint(outpoint: string): boolean;
|
|
24
26
|
/**
|
|
@@ -44,5 +46,5 @@ export declare function validIconFormat(icon: string): boolean;
|
|
|
44
46
|
* Returns Error if validation fails, undefined if valid
|
|
45
47
|
*/
|
|
46
48
|
export declare function validateSubTypeData(subType: 'collection' | 'collectionItem', subTypeData: CollectionItemSubTypeData | CollectionSubTypeData): Error | undefined;
|
|
47
|
-
export { type WalletKeys, type KeyDerivationPaths, YOURS_WALLET_PATH, YOURS_ID_PATH, YOURS_ORD_PATH, RELAYX_ORD_PATH, RELAYX_ID_PATH, RELAYX_WALLET_PATH, RELAYX_SWEEP_PATH, TWETCH_WALLET_PATH, TWETCH_ORD_PATH, AYM_WALLET_PATH, AYM_ORD_PATH, wifToHex, wifToAddress, wifToPublicKey, deriveKeyFromMnemonic, getKeysFromMnemonicAndPaths, findKeysWithVanityOrdinal, generateMnemonic, isValidMnemonic, } from './keys';
|
|
49
|
+
export { type WalletKeys, type KeyDerivationPaths, YOURS_WALLET_PATH, YOURS_ID_PATH, YOURS_ORD_PATH, RELAYX_ORD_PATH, RELAYX_ID_PATH, RELAYX_WALLET_PATH, RELAYX_SWEEP_PATH, TWETCH_WALLET_PATH, TWETCH_ORD_PATH, AYM_WALLET_PATH, AYM_ORD_PATH, wifToHex, wifToAddress, wifToPublicKey, deriveKeyFromMnemonic, getKeysFromMnemonicAndPaths, findKeysWithVanityOrdinal, generateMnemonic, isValidMnemonic, deriveIdentityKey, } from './keys';
|
|
48
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EAEf,GAAG,EACH,MAAM,EACN,MAAM,aAAa,CAAA;AAUpB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EAEf,GAAG,EACH,MAAM,EACN,MAAM,aAAa,CAAA;AAUpB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ,CAgBA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAuBzD;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAqBpE;AAMD,eAAO,MAAM,kBAAkB,OAE9B,CAAA;AACD,eAAO,MAAM,oBAAoB,OAA4C,CAAA;AAC7E,eAAO,MAAM,oBAAoB,OAAsC,CAAA;AACvE,eAAO,MAAM,6BAA6B,OAEzC,CAAA;AA2CD;;;GAGG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,eAAe,GACnB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA6BvB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,YAAY,GAAG,gBAAgB,EACxC,WAAW,EAAE,yBAAyB,GAAG,qBAAqB,GAC5D,KAAK,GAAG,SAAS,CAgFnB;AAMD,OAAO,EAEN,KAAK,UAAU,EACf,KAAK,kBAAkB,EAEvB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,EAEZ,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GACjB,MAAM,QAAQ,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,44 +12,49 @@ const { toArray, toUTF8 } = Utils;
|
|
|
12
12
|
// Outpoint Utilities
|
|
13
13
|
// ============================================================================
|
|
14
14
|
/**
|
|
15
|
-
* Parse an outpoint string
|
|
15
|
+
* Parse an outpoint string into its components.
|
|
16
|
+
* Accepts both period (txid.vout) and underscore (txid_vout) delimiters.
|
|
16
17
|
*/
|
|
17
18
|
export function parseOutpoint(outpoint) {
|
|
18
|
-
|
|
19
|
-
if (parts.length !== 2) {
|
|
19
|
+
if (outpoint.length < 66) {
|
|
20
20
|
throw new Error(`Invalid outpoint format: ${outpoint}`);
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
const
|
|
22
|
+
const txid = outpoint.substring(0, 64);
|
|
23
|
+
const separator = outpoint[64];
|
|
24
|
+
if (separator !== '.' && separator !== '_') {
|
|
25
|
+
throw new Error(`Invalid outpoint separator: expected '.' or '_', got '${separator}'`);
|
|
26
|
+
}
|
|
27
|
+
const vout = Number.parseInt(outpoint.substring(65), 10);
|
|
24
28
|
if (Number.isNaN(vout)) {
|
|
25
29
|
throw new Error(`Invalid vout in outpoint: ${outpoint}`);
|
|
26
30
|
}
|
|
27
31
|
return { txid, vout };
|
|
28
32
|
}
|
|
29
33
|
/**
|
|
30
|
-
* Format txid and vout into an outpoint string
|
|
34
|
+
* Format txid and vout into an outpoint string (period-delimited)
|
|
31
35
|
*/
|
|
32
36
|
export function formatOutpoint(txid, vout) {
|
|
33
|
-
return `${txid}
|
|
37
|
+
return `${txid}.${vout}`;
|
|
34
38
|
}
|
|
35
39
|
/**
|
|
36
|
-
* Validate that a string is a valid outpoint format
|
|
40
|
+
* Validate that a string is a valid outpoint format.
|
|
41
|
+
* Accepts both period (txid.vout) and underscore (txid_vout) delimiters.
|
|
37
42
|
*/
|
|
38
43
|
export function isValidOutpoint(outpoint) {
|
|
39
|
-
if (
|
|
44
|
+
if (outpoint.length < 66) {
|
|
40
45
|
return false;
|
|
41
46
|
}
|
|
42
|
-
const
|
|
43
|
-
if (
|
|
47
|
+
const separator = outpoint[64];
|
|
48
|
+
if (separator !== '.' && separator !== '_') {
|
|
44
49
|
return false;
|
|
45
50
|
}
|
|
46
|
-
const
|
|
51
|
+
const txid = outpoint.substring(0, 64);
|
|
52
|
+
const voutStr = outpoint.substring(65);
|
|
47
53
|
const vout = Number.parseInt(voutStr, 10);
|
|
48
54
|
if (Number.isNaN(vout) || vout < 0) {
|
|
49
55
|
return false;
|
|
50
56
|
}
|
|
51
|
-
|
|
52
|
-
if (!outpoint.startsWith('_') && txid.length !== 64) {
|
|
57
|
+
if (!/^[0-9a-fA-F]{64}$/.test(txid)) {
|
|
53
58
|
return false;
|
|
54
59
|
}
|
|
55
60
|
return true;
|
|
@@ -241,5 +246,5 @@ YOURS_WALLET_PATH, YOURS_ID_PATH, YOURS_ORD_PATH, RELAYX_ORD_PATH, RELAYX_ID_PAT
|
|
|
241
246
|
// Conversion utilities
|
|
242
247
|
wifToHex, wifToAddress, wifToPublicKey,
|
|
243
248
|
// Key derivation functions
|
|
244
|
-
deriveKeyFromMnemonic, getKeysFromMnemonicAndPaths, findKeysWithVanityOrdinal, generateMnemonic, isValidMnemonic, } from './keys';
|
|
249
|
+
deriveKeyFromMnemonic, getKeysFromMnemonicAndPaths, findKeysWithVanityOrdinal, generateMnemonic, isValidMnemonic, deriveIdentityKey, } from './keys';
|
|
245
250
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;AAEjC,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -118,4 +118,10 @@ export declare function generateMnemonic(strength?: 128 | 256): string;
|
|
|
118
118
|
* @returns true if valid, false otherwise
|
|
119
119
|
*/
|
|
120
120
|
export declare function isValidMnemonic(mnemonic: string): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Derive an identity key from payment and ordinal private keys.
|
|
123
|
+
* Uses SHA-256 of concatenated raw key bytes.
|
|
124
|
+
* Compatible with yours-wallet identity derivation.
|
|
125
|
+
*/
|
|
126
|
+
export declare function deriveIdentityKey(payWif: string, ordWif: string): PrivateKey;
|
|
121
127
|
//# sourceMappingURL=keys.d.ts.map
|
package/dist/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAiC,UAAU,EAAE,MAAM,UAAU,CAAA;AAMpE;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnC,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAA;IACtB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAMD,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,4CAA4C;AAC5C,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,2CAA2C;AAC3C,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,qCAAqC;AACrC,eAAO,MAAM,eAAe,sBAAsB,CAAA;AAElD,2CAA2C;AAC3C,eAAO,MAAM,cAAc,qBAAgB,CAAA;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,sBAAoB,CAAA;AAEnD,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,UAAU,CAAA;AAEzC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,sBAAiB,CAAA;AAE7C,kCAAkC;AAClC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,YAAY,MAAM,CAAA;AAM/B;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACV,UAAU,CAKZ;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACvB,UAAU,CA6CZ;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAS,GAChB,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,GAAE,GAAG,GAAG,GAAS,GAAG,MAAM,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD;AAYD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAY5E"}
|
package/dist/keys.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* })
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
14
|
-
import { HD, Mnemonic, PrivateKey } from '@bsv/sdk';
|
|
14
|
+
import { BigNumber, HD, Hash, Mnemonic, PrivateKey } from '@bsv/sdk';
|
|
15
15
|
// ============================================================================
|
|
16
16
|
// Standard Derivation Paths
|
|
17
17
|
// ============================================================================
|
|
@@ -189,4 +189,27 @@ export function isValidMnemonic(mnemonic) {
|
|
|
189
189
|
return false;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
+
// ============================================================================
|
|
193
|
+
// Identity Key Derivation
|
|
194
|
+
// ============================================================================
|
|
195
|
+
/** secp256k1 curve order */
|
|
196
|
+
const SECP256K1_ORDER = new BigNumber('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 16);
|
|
197
|
+
/**
|
|
198
|
+
* Derive an identity key from payment and ordinal private keys.
|
|
199
|
+
* Uses SHA-256 of concatenated raw key bytes.
|
|
200
|
+
* Compatible with yours-wallet identity derivation.
|
|
201
|
+
*/
|
|
202
|
+
export function deriveIdentityKey(payWif, ordWif) {
|
|
203
|
+
const payKey = PrivateKey.fromWif(payWif);
|
|
204
|
+
const ordKey = PrivateKey.fromWif(ordWif);
|
|
205
|
+
const privBuf = payKey.toArray().concat(ordKey.toArray());
|
|
206
|
+
let identityPrivKey;
|
|
207
|
+
while (!identityPrivKey) {
|
|
208
|
+
const bn = new BigNumber(Hash.sha256(privBuf));
|
|
209
|
+
if (bn.lt(SECP256K1_ORDER)) {
|
|
210
|
+
identityPrivKey = PrivateKey.fromString(bn.toHex(), 'hex');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return identityPrivKey;
|
|
214
|
+
}
|
|
192
215
|
//# sourceMappingURL=keys.js.map
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
|