@vbyte/btc-dev 1.1.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +94 -0
- package/README.md +260 -3
- package/dist/const.d.ts +3 -0
- package/dist/const.js +23 -22
- package/dist/index.d.ts +11 -11
- package/dist/index.js +10 -10
- package/dist/lib/address/api.d.ts +2 -2
- package/dist/lib/address/api.js +12 -12
- package/dist/lib/address/encode.d.ts +1 -1
- package/dist/lib/address/encode.js +24 -24
- package/dist/lib/address/index.d.ts +6 -6
- package/dist/lib/address/index.js +6 -6
- package/dist/lib/address/p2pkh.d.ts +2 -2
- package/dist/lib/address/p2pkh.js +14 -14
- package/dist/lib/address/p2sh.d.ts +2 -2
- package/dist/lib/address/p2sh.js +13 -13
- package/dist/lib/address/p2tr.d.ts +2 -2
- package/dist/lib/address/p2tr.js +13 -13
- package/dist/lib/address/p2wpkh.d.ts +2 -2
- package/dist/lib/address/p2wpkh.js +14 -14
- package/dist/lib/address/p2wsh.d.ts +2 -2
- package/dist/lib/address/p2wsh.js +13 -13
- package/dist/lib/address/script.d.ts +1 -1
- package/dist/lib/address/script.js +16 -16
- package/dist/lib/address/util.d.ts +1 -1
- package/dist/lib/address/util.js +22 -22
- package/dist/lib/meta/index.d.ts +4 -4
- package/dist/lib/meta/index.js +4 -4
- package/dist/lib/meta/locktime.d.ts +1 -1
- package/dist/lib/meta/locktime.js +12 -12
- package/dist/lib/meta/ref.js +9 -6
- package/dist/lib/meta/scribe.d.ts +2 -2
- package/dist/lib/meta/scribe.js +48 -53
- package/dist/lib/meta/sequence.d.ts +1 -1
- package/dist/lib/meta/sequence.js +16 -15
- package/dist/lib/script/decode.d.ts +2 -2
- package/dist/lib/script/decode.js +50 -15
- package/dist/lib/script/encode.d.ts +1 -1
- package/dist/lib/script/encode.js +20 -16
- package/dist/lib/script/index.d.ts +5 -13
- package/dist/lib/script/index.js +5 -14
- package/dist/lib/script/lock.d.ts +2 -2
- package/dist/lib/script/lock.js +15 -12
- package/dist/lib/script/util.js +4 -4
- package/dist/lib/script/words.js +129 -129
- package/dist/lib/sighash/index.d.ts +3 -3
- package/dist/lib/sighash/index.js +3 -3
- package/dist/lib/sighash/segwit.d.ts +2 -2
- package/dist/lib/sighash/segwit.js +15 -14
- package/dist/lib/sighash/taproot.d.ts +2 -2
- package/dist/lib/sighash/taproot.js +24 -23
- package/dist/lib/sighash/util.d.ts +2 -2
- package/dist/lib/sighash/util.js +7 -7
- package/dist/lib/signer/index.d.ts +2 -2
- package/dist/lib/signer/index.js +2 -2
- package/dist/lib/signer/sign.d.ts +1 -1
- package/dist/lib/signer/sign.js +42 -7
- package/dist/lib/signer/verify.d.ts +17 -3
- package/dist/lib/signer/verify.js +233 -3
- package/dist/lib/taproot/cblock.d.ts +1 -1
- package/dist/lib/taproot/cblock.js +14 -16
- package/dist/lib/taproot/encode.d.ts +1 -1
- package/dist/lib/taproot/encode.js +7 -7
- package/dist/lib/taproot/index.d.ts +4 -4
- package/dist/lib/taproot/index.js +4 -4
- package/dist/lib/taproot/parse.d.ts +1 -1
- package/dist/lib/taproot/parse.js +12 -14
- package/dist/lib/taproot/tree.d.ts +2 -2
- package/dist/lib/taproot/tree.js +11 -7
- package/dist/lib/tx/create.d.ts +1 -1
- package/dist/lib/tx/create.js +28 -12
- package/dist/lib/tx/decode.d.ts +2 -2
- package/dist/lib/tx/decode.js +50 -17
- package/dist/lib/tx/encode.d.ts +2 -2
- package/dist/lib/tx/encode.js +13 -16
- package/dist/lib/tx/index.d.ts +7 -7
- package/dist/lib/tx/index.js +7 -7
- package/dist/lib/tx/parse.d.ts +1 -1
- package/dist/lib/tx/parse.js +9 -9
- package/dist/lib/tx/size.d.ts +2 -2
- package/dist/lib/tx/size.js +9 -9
- package/dist/lib/tx/util.d.ts +2 -2
- package/dist/lib/tx/util.js +23 -22
- package/dist/lib/tx/validate.d.ts +1 -1
- package/dist/lib/tx/validate.js +3 -3
- package/dist/lib/witness/index.d.ts +2 -2
- package/dist/lib/witness/index.js +2 -2
- package/dist/lib/witness/parse.d.ts +2 -2
- package/dist/lib/witness/parse.js +24 -23
- package/dist/lib/witness/util.d.ts +2 -2
- package/dist/lib/witness/util.js +5 -5
- package/dist/main.cjs +2308 -1007
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +2308 -1007
- package/dist/module.mjs.map +1 -1
- package/dist/package.json +20 -17
- package/dist/schema/base.d.ts +1 -1
- package/dist/schema/base.js +17 -13
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.js +2 -2
- package/dist/schema/taproot.d.ts +1 -1
- package/dist/schema/taproot.js +2 -2
- package/dist/schema/tx.d.ts +1 -1
- package/dist/schema/tx.js +4 -4
- package/dist/script.js +8 -8
- package/dist/script.js.map +1 -1
- package/dist/types/address.d.ts +4 -4
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.js +8 -8
- package/dist/types/meta.d.ts +4 -4
- package/dist/types/psbt.d.ts +2 -2
- package/dist/types/script.d.ts +2 -2
- package/dist/types/sighash.d.ts +2 -2
- package/dist/types/witness.d.ts +5 -5
- package/package.json +20 -17
- package/src/const.ts +0 -61
- package/src/index.ts +0 -13
- package/src/lib/address/api.ts +0 -50
- package/src/lib/address/encode.ts +0 -183
- package/src/lib/address/index.ts +0 -7
- package/src/lib/address/p2pkh.ts +0 -94
- package/src/lib/address/p2sh.ts +0 -96
- package/src/lib/address/p2tr.ts +0 -91
- package/src/lib/address/p2wpkh.ts +0 -94
- package/src/lib/address/p2wsh.ts +0 -92
- package/src/lib/address/script.ts +0 -63
- package/src/lib/address/util.ts +0 -87
- package/src/lib/meta/index.ts +0 -4
- package/src/lib/meta/locktime.ts +0 -57
- package/src/lib/meta/ref.ts +0 -107
- package/src/lib/meta/scribe.ts +0 -256
- package/src/lib/meta/sequence.ts +0 -146
- package/src/lib/script/decode.ts +0 -85
- package/src/lib/script/encode.ts +0 -129
- package/src/lib/script/index.ts +0 -20
- package/src/lib/script/lock.ts +0 -73
- package/src/lib/script/util.ts +0 -78
- package/src/lib/script/words.ts +0 -182
- package/src/lib/sighash/index.ts +0 -3
- package/src/lib/sighash/segwit.ts +0 -152
- package/src/lib/sighash/taproot.ts +0 -206
- package/src/lib/sighash/util.ts +0 -51
- package/src/lib/signer/index.ts +0 -2
- package/src/lib/signer/sign.ts +0 -39
- package/src/lib/signer/verify.ts +0 -88
- package/src/lib/taproot/cblock.ts +0 -96
- package/src/lib/taproot/encode.ts +0 -49
- package/src/lib/taproot/index.ts +0 -4
- package/src/lib/taproot/parse.ts +0 -65
- package/src/lib/taproot/tree.ts +0 -94
- package/src/lib/tx/create.ts +0 -90
- package/src/lib/tx/decode.ts +0 -123
- package/src/lib/tx/encode.ts +0 -155
- package/src/lib/tx/index.ts +0 -7
- package/src/lib/tx/parse.ts +0 -69
- package/src/lib/tx/size.ts +0 -68
- package/src/lib/tx/util.ts +0 -113
- package/src/lib/tx/validate.ts +0 -49
- package/src/lib/witness/index.ts +0 -2
- package/src/lib/witness/parse.ts +0 -127
- package/src/lib/witness/util.ts +0 -18
- package/src/schema/base.ts +0 -57
- package/src/schema/index.ts +0 -2
- package/src/schema/taproot.ts +0 -12
- package/src/schema/tx.ts +0 -48
- package/src/types/address.ts +0 -35
- package/src/types/index.ts +0 -8
- package/src/types/meta.ts +0 -48
- package/src/types/psbt.ts +0 -15
- package/src/types/script.ts +0 -18
- package/src/types/sighash.ts +0 -16
- package/src/types/taproot.ts +0 -41
- package/src/types/txdata.ts +0 -85
- package/src/types/witness.ts +0 -42
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vbyte/btc-dev",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Batteries-included toolset for plebian bitcoin development",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"files": [
|
|
25
25
|
"README.md",
|
|
26
26
|
"LICENSE",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
27
|
+
"CHANGELOG.md",
|
|
28
|
+
"dist"
|
|
29
29
|
],
|
|
30
30
|
"main": "./main.cjs",
|
|
31
31
|
"module": "./index.js",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"types": "./types/index.d.ts",
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
|
36
|
+
"types": "./types/index.d.ts",
|
|
36
37
|
"import": "./index.js",
|
|
37
|
-
"default": "./index.js"
|
|
38
|
-
"types": "./index.d.ts"
|
|
38
|
+
"default": "./index.js"
|
|
39
39
|
},
|
|
40
40
|
"./address": {
|
|
41
41
|
"types": "./lib/address/index.d.ts",
|
|
@@ -72,6 +72,8 @@
|
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
74
|
"build": "./scripts/build.sh",
|
|
75
|
+
"check": "npx tsc --project tsconfig.json --noEmit",
|
|
76
|
+
"lint": "biome check src/",
|
|
75
77
|
"package": "npm test | faucet && npm run build",
|
|
76
78
|
"release": "./scripts/release.sh",
|
|
77
79
|
"scratch": "npm run script test/scratch.ts",
|
|
@@ -79,27 +81,28 @@
|
|
|
79
81
|
"test": "npm run script test/src/tape.ts"
|
|
80
82
|
},
|
|
81
83
|
"dependencies": {
|
|
82
|
-
"@noble/curves": "
|
|
83
|
-
"@noble/hashes": "
|
|
84
|
-
"@scure/btc-signer": "
|
|
85
|
-
"@vbyte/buff": "^1.0.
|
|
84
|
+
"@noble/curves": "2.0.1",
|
|
85
|
+
"@noble/hashes": "2.0.1",
|
|
86
|
+
"@scure/btc-signer": "2.0.1",
|
|
87
|
+
"@vbyte/buff": "^1.0.4",
|
|
86
88
|
"@vbyte/micro-lib": "^1.1.2",
|
|
87
|
-
"zod": "^4.
|
|
89
|
+
"zod": "^4.3.5"
|
|
88
90
|
},
|
|
89
91
|
"devDependencies": {
|
|
92
|
+
"@biomejs/biome": "2.3.12",
|
|
90
93
|
"@cmdcode/core-cmd": "^1.6.5",
|
|
91
|
-
"@rollup/plugin-commonjs": "^
|
|
94
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
92
95
|
"@rollup/plugin-json": "^6.1.0",
|
|
93
|
-
"@rollup/plugin-node-resolve": "^16.0.
|
|
96
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
94
97
|
"@rollup/plugin-terser": "^0.4.4",
|
|
95
|
-
"@rollup/plugin-typescript": "^12.
|
|
96
|
-
"@types/node": "^
|
|
98
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
99
|
+
"@types/node": "^25.0.10",
|
|
97
100
|
"@types/tape": "^5.8.1",
|
|
98
101
|
"faucet": "^0.0.4",
|
|
99
|
-
"rollup": "^4.
|
|
102
|
+
"rollup": "^4.55.3",
|
|
100
103
|
"tape": "^5.9.0",
|
|
101
104
|
"tslib": "^2.8.1",
|
|
102
|
-
"tsx": "^4.
|
|
103
|
-
"typescript": "^5.9.
|
|
105
|
+
"tsx": "^4.21.0",
|
|
106
|
+
"typescript": "^5.9.3"
|
|
104
107
|
}
|
|
105
108
|
}
|
package/dist/schema/base.d.ts
CHANGED
package/dist/schema/base.js
CHANGED
|
@@ -1,28 +1,30 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
export const big = z.bigint();
|
|
3
3
|
export const bool = z.boolean();
|
|
4
4
|
export const date = z.date();
|
|
5
|
-
export const num = z
|
|
5
|
+
export const num = z
|
|
6
|
+
.number()
|
|
7
|
+
.min(Number.MIN_SAFE_INTEGER)
|
|
8
|
+
.max(Number.MAX_SAFE_INTEGER);
|
|
6
9
|
export const int = num.int();
|
|
7
10
|
export const u8a = z.instanceof(Uint8Array);
|
|
8
11
|
export const str = z.string();
|
|
9
12
|
export const stamp = int.min(500_000_000);
|
|
10
13
|
export const any = z.any();
|
|
11
14
|
export const zod = z;
|
|
12
|
-
export const char = int.min(0).max(
|
|
13
|
-
export const short = int.min(0).max(
|
|
14
|
-
export const uint = int.min(0).max(
|
|
15
|
-
export const float = z.number().refine((e) => String(e).includes(
|
|
15
|
+
export const char = int.min(0).max(0xff);
|
|
16
|
+
export const short = int.min(0).max(0xffff);
|
|
17
|
+
export const uint = int.min(0).max(0xffffffff);
|
|
18
|
+
export const float = z.number().refine((e) => String(e).includes("."));
|
|
16
19
|
export const float2 = float.refine((e) => {
|
|
17
|
-
const parts = String(e).split(
|
|
20
|
+
const parts = String(e).split(".").at(1);
|
|
18
21
|
return parts !== undefined && parts.length <= 2;
|
|
19
22
|
});
|
|
20
|
-
export const hex = z
|
|
23
|
+
export const hex = z
|
|
24
|
+
.string()
|
|
21
25
|
.regex(/^[0-9a-fA-F]*$/)
|
|
22
|
-
.refine(e => e.length % 2 === 0);
|
|
23
|
-
export const literal = z.union([
|
|
24
|
-
z.string(), z.number(), z.boolean(), z.null()
|
|
25
|
-
]);
|
|
26
|
+
.refine((e) => e.length % 2 === 0);
|
|
27
|
+
export const literal = z.union([z.string(), z.number(), z.boolean(), z.null()]);
|
|
26
28
|
export const json = z.lazy(() => z.union([literal, z.array(json), z.record(str, json)]));
|
|
27
29
|
export const u8a20 = u8a.refine((e) => e.length === 20);
|
|
28
30
|
export const u8a32 = u8a.refine((e) => e.length === 32);
|
|
@@ -39,4 +41,6 @@ export const byte64 = z.union([hex64, u8a64]);
|
|
|
39
41
|
export const base58 = z.string().regex(/^[1-9A-HJ-NP-Za-km-z]+$/);
|
|
40
42
|
export const base64 = z.string().regex(/^[a-zA-Z0-9+/]+={0,2}$/);
|
|
41
43
|
export const base64url = z.string().regex(/^[a-zA-Z0-9\-_]+={0,2}$/);
|
|
42
|
-
export const bech32 = z
|
|
44
|
+
export const bech32 = z
|
|
45
|
+
.string()
|
|
46
|
+
.regex(/^[a-z]+1[023456789acdefghjklmnpqrstuvwxyz]+$/);
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * as taproot from
|
|
2
|
-
export * as tx from
|
|
1
|
+
export * as taproot from "./taproot.js";
|
|
2
|
+
export * as tx from "./tx.js";
|
package/dist/schema/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * as taproot from
|
|
2
|
-
export * as tx from
|
|
1
|
+
export * as taproot from "./taproot.js";
|
|
2
|
+
export * as tx from "./tx.js";
|
package/dist/schema/taproot.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
export declare const taptree: z.ZodUnion<readonly [z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>]>;
|
|
3
3
|
export declare const config: z.ZodObject<{
|
|
4
4
|
pubkey: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>;
|
package/dist/schema/taproot.js
CHANGED
package/dist/schema/tx.d.ts
CHANGED
package/dist/schema/tx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { hex, hex32, uint } from
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { hex, hex32, uint } from "./base.js";
|
|
3
3
|
const sats = z.bigint().min(0n).max(2100000000000000n);
|
|
4
4
|
export const tx_output = z.object({
|
|
5
5
|
value: sats,
|
|
@@ -12,7 +12,7 @@ export const tx_input = z.object({
|
|
|
12
12
|
prevout: tx_output.nullable(),
|
|
13
13
|
script_sig: hex.nullable(),
|
|
14
14
|
sequence: uint,
|
|
15
|
-
witness: z.array(hex)
|
|
15
|
+
witness: z.array(hex),
|
|
16
16
|
});
|
|
17
17
|
export const tx_data = z.object({
|
|
18
18
|
version: uint,
|
|
@@ -21,7 +21,7 @@ export const tx_data = z.object({
|
|
|
21
21
|
locktime: uint,
|
|
22
22
|
});
|
|
23
23
|
export const vout_template = tx_output.extend({
|
|
24
|
-
value: z.union([uint, sats])
|
|
24
|
+
value: z.union([uint, sats]),
|
|
25
25
|
});
|
|
26
26
|
export const vin_template = tx_input.extend({
|
|
27
27
|
coinbase: hex.nullable().optional(),
|