@vbyte/btc-dev 1.0.10 → 1.0.12

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.
Files changed (67) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/lib/sighash/segwit.d.ts +4 -1
  4. package/dist/lib/sighash/segwit.js +6 -6
  5. package/dist/lib/sighash/taproot.d.ts +7 -6
  6. package/dist/lib/sighash/taproot.js +24 -53
  7. package/dist/lib/sighash/util.d.ts +4 -2
  8. package/dist/lib/sighash/util.js +16 -2
  9. package/dist/lib/signer/sign.js +8 -5
  10. package/dist/lib/signer/verify.d.ts +1 -2
  11. package/dist/lib/signer/verify.js +1 -5
  12. package/dist/lib/tx/create.d.ts +7 -6
  13. package/dist/lib/tx/create.js +25 -27
  14. package/dist/lib/tx/decode.d.ts +4 -9
  15. package/dist/lib/tx/decode.js +16 -28
  16. package/dist/lib/tx/encode.d.ts +1 -1
  17. package/dist/lib/tx/encode.js +6 -6
  18. package/dist/lib/tx/parse.d.ts +3 -2
  19. package/dist/lib/tx/parse.js +38 -5
  20. package/dist/lib/tx/util.d.ts +8 -4
  21. package/dist/lib/tx/util.js +39 -15
  22. package/dist/lib/tx/validate.d.ts +4 -2
  23. package/dist/lib/tx/validate.js +9 -2
  24. package/dist/main.cjs +4049 -4269
  25. package/dist/main.cjs.map +1 -1
  26. package/dist/module.mjs +4040 -4255
  27. package/dist/module.mjs.map +1 -1
  28. package/dist/package.json +2 -2
  29. package/dist/schema/taproot.d.ts +2 -2
  30. package/dist/schema/tx.d.ts +53 -40
  31. package/dist/schema/tx.js +9 -6
  32. package/dist/script.js +8 -8
  33. package/dist/script.js.map +1 -1
  34. package/dist/types/txdata.d.ts +28 -5
  35. package/package.json +2 -2
  36. package/src/index.ts +0 -2
  37. package/src/lib/sighash/segwit.ts +6 -6
  38. package/src/lib/sighash/taproot.ts +40 -70
  39. package/src/lib/sighash/util.ts +25 -3
  40. package/src/lib/signer/sign.ts +9 -5
  41. package/src/lib/signer/verify.ts +1 -18
  42. package/src/lib/tx/create.ts +44 -36
  43. package/src/lib/tx/decode.ts +23 -45
  44. package/src/lib/tx/encode.ts +10 -9
  45. package/src/lib/tx/parse.ts +61 -8
  46. package/src/lib/tx/util.ts +57 -20
  47. package/src/lib/tx/validate.ts +15 -2
  48. package/src/schema/tx.ts +10 -6
  49. package/src/types/txdata.ts +32 -5
  50. package/dist/class/index.d.ts +0 -5
  51. package/dist/class/index.js +0 -5
  52. package/dist/class/signer.d.ts +0 -18
  53. package/dist/class/signer.js +0 -34
  54. package/dist/class/tx.d.ts +0 -51
  55. package/dist/class/tx.js +0 -122
  56. package/dist/class/txin.d.ts +0 -27
  57. package/dist/class/txin.js +0 -59
  58. package/dist/class/txout.d.ts +0 -16
  59. package/dist/class/txout.js +0 -31
  60. package/dist/class/witness.d.ts +0 -23
  61. package/dist/class/witness.js +0 -68
  62. package/src/class/index.ts +0 -5
  63. package/src/class/signer.ts +0 -49
  64. package/src/class/tx.ts +0 -175
  65. package/src/class/txin.ts +0 -81
  66. package/src/class/txout.ts +0 -50
  67. package/src/class/witness.ts +0 -99
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vbyte/btc-dev",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "Batteries-included toolset for plebian bitcoin development",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -87,7 +87,7 @@
87
87
  "@noble/hashes": "^1.8.0",
88
88
  "@scure/btc-signer": "^1.8.1",
89
89
  "@vbyte/buff": "^1.0.2",
90
- "@vbyte/micro-lib": "^1.0.11",
90
+ "@vbyte/micro-lib": "^1.0.14",
91
91
  "zod": "^3.25.69"
92
92
  },
93
93
  "devDependencies": {
@@ -7,12 +7,12 @@ export declare const config: z.ZodObject<{
7
7
  version: z.ZodOptional<z.ZodNumber>;
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  pubkey: string | Uint8Array<ArrayBuffer>;
10
+ version?: number | undefined;
10
11
  leaves?: (string | Uint8Array<ArrayBuffer> | (string | Uint8Array<ArrayBuffer>)[])[] | undefined;
11
12
  target?: string | Uint8Array<ArrayBuffer> | undefined;
12
- version?: number | undefined;
13
13
  }, {
14
14
  pubkey: string | Uint8Array<ArrayBuffer>;
15
+ version?: number | undefined;
15
16
  leaves?: (string | Uint8Array<ArrayBuffer> | (string | Uint8Array<ArrayBuffer>)[])[] | undefined;
16
17
  target?: string | Uint8Array<ArrayBuffer> | undefined;
17
- version?: number | undefined;
18
18
  }>;
@@ -1,5 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const sats: z.ZodBigInt;
3
2
  export declare const tx_output: z.ZodObject<{
4
3
  value: z.ZodBigInt;
5
4
  script_pk: z.ZodEffects<z.ZodString, string, string>;
@@ -28,26 +27,26 @@ export declare const tx_input: z.ZodObject<{
28
27
  sequence: z.ZodNumber;
29
28
  witness: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
30
29
  }, "strip", z.ZodTypeAny, {
31
- coinbase: string | null;
32
30
  txid: string;
33
31
  vout: number;
32
+ sequence: number;
33
+ coinbase: string | null;
34
34
  prevout: {
35
35
  value: bigint;
36
36
  script_pk: string;
37
37
  } | null;
38
38
  script_sig: string | null;
39
- sequence: number;
40
39
  witness: string[];
41
40
  }, {
42
- coinbase: string | null;
43
41
  txid: string;
44
42
  vout: number;
43
+ sequence: number;
44
+ coinbase: string | null;
45
45
  prevout: {
46
46
  value: bigint;
47
47
  script_pk: string;
48
48
  } | null;
49
49
  script_sig: string | null;
50
- sequence: number;
51
50
  witness: string[];
52
51
  }>;
53
52
  export declare const tx_data: z.ZodObject<{
@@ -70,26 +69,26 @@ export declare const tx_data: z.ZodObject<{
70
69
  sequence: z.ZodNumber;
71
70
  witness: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
72
71
  }, "strip", z.ZodTypeAny, {
73
- coinbase: string | null;
74
72
  txid: string;
75
73
  vout: number;
74
+ sequence: number;
75
+ coinbase: string | null;
76
76
  prevout: {
77
77
  value: bigint;
78
78
  script_pk: string;
79
79
  } | null;
80
80
  script_sig: string | null;
81
- sequence: number;
82
81
  witness: string[];
83
82
  }, {
84
- coinbase: string | null;
85
83
  txid: string;
86
84
  vout: number;
85
+ sequence: number;
86
+ coinbase: string | null;
87
87
  prevout: {
88
88
  value: bigint;
89
89
  script_pk: string;
90
90
  } | null;
91
91
  script_sig: string | null;
92
- sequence: number;
93
92
  witness: string[];
94
93
  }>, "many">;
95
94
  vout: z.ZodArray<z.ZodObject<{
@@ -110,15 +109,15 @@ export declare const tx_data: z.ZodObject<{
110
109
  script_pk: string;
111
110
  }[];
112
111
  vin: {
113
- coinbase: string | null;
114
112
  txid: string;
115
113
  vout: number;
114
+ sequence: number;
115
+ coinbase: string | null;
116
116
  prevout: {
117
117
  value: bigint;
118
118
  script_pk: string;
119
119
  } | null;
120
120
  script_sig: string | null;
121
- sequence: number;
122
121
  witness: string[];
123
122
  }[];
124
123
  locktime: number;
@@ -129,149 +128,163 @@ export declare const tx_data: z.ZodObject<{
129
128
  script_pk: string;
130
129
  }[];
131
130
  vin: {
132
- coinbase: string | null;
133
131
  txid: string;
134
132
  vout: number;
133
+ sequence: number;
134
+ coinbase: string | null;
135
135
  prevout: {
136
136
  value: bigint;
137
137
  script_pk: string;
138
138
  } | null;
139
139
  script_sig: string | null;
140
- sequence: number;
141
140
  witness: string[];
142
141
  }[];
143
142
  locktime: number;
144
143
  }>;
144
+ export declare const vout_template: z.ZodObject<{
145
+ script_pk: z.ZodEffects<z.ZodString, string, string>;
146
+ } & {
147
+ value: z.ZodUnion<[z.ZodNumber, z.ZodBigInt]>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ value: number | bigint;
150
+ script_pk: string;
151
+ }, {
152
+ value: number | bigint;
153
+ script_pk: string;
154
+ }>;
145
155
  export declare const vin_template: z.ZodObject<{
146
156
  txid: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
147
157
  vout: z.ZodNumber;
148
158
  } & {
149
159
  coinbase: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
150
160
  prevout: z.ZodOptional<z.ZodNullable<z.ZodObject<{
151
- value: z.ZodBigInt;
152
161
  script_pk: z.ZodEffects<z.ZodString, string, string>;
162
+ } & {
163
+ value: z.ZodUnion<[z.ZodNumber, z.ZodBigInt]>;
153
164
  }, "strip", z.ZodTypeAny, {
154
- value: bigint;
165
+ value: number | bigint;
155
166
  script_pk: string;
156
167
  }, {
157
- value: bigint;
168
+ value: number | bigint;
158
169
  script_pk: string;
159
170
  }>>>;
160
171
  script_sig: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
161
- sequence: z.ZodOptional<z.ZodNumber>;
172
+ sequence: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodNumber]>>;
162
173
  witness: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
163
174
  }, "strip", z.ZodTypeAny, {
164
175
  txid: string;
165
176
  vout: number;
177
+ sequence?: string | number | undefined;
166
178
  coinbase?: string | null | undefined;
167
179
  prevout?: {
168
- value: bigint;
180
+ value: number | bigint;
169
181
  script_pk: string;
170
182
  } | null | undefined;
171
183
  script_sig?: string | null | undefined;
172
- sequence?: number | undefined;
173
184
  witness?: string[] | undefined;
174
185
  }, {
175
186
  txid: string;
176
187
  vout: number;
188
+ sequence?: string | number | undefined;
177
189
  coinbase?: string | null | undefined;
178
190
  prevout?: {
179
- value: bigint;
191
+ value: number | bigint;
180
192
  script_pk: string;
181
193
  } | null | undefined;
182
194
  script_sig?: string | null | undefined;
183
- sequence?: number | undefined;
184
195
  witness?: string[] | undefined;
185
196
  }>;
186
197
  export declare const tx_template: z.ZodObject<{
187
- version: z.ZodOptional<z.ZodNumber>;
198
+ version: z.ZodDefault<z.ZodNumber>;
188
199
  vin: z.ZodDefault<z.ZodArray<z.ZodObject<{
189
200
  txid: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
190
201
  vout: z.ZodNumber;
191
202
  } & {
192
203
  coinbase: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
193
204
  prevout: z.ZodOptional<z.ZodNullable<z.ZodObject<{
194
- value: z.ZodBigInt;
195
205
  script_pk: z.ZodEffects<z.ZodString, string, string>;
206
+ } & {
207
+ value: z.ZodUnion<[z.ZodNumber, z.ZodBigInt]>;
196
208
  }, "strip", z.ZodTypeAny, {
197
- value: bigint;
209
+ value: number | bigint;
198
210
  script_pk: string;
199
211
  }, {
200
- value: bigint;
212
+ value: number | bigint;
201
213
  script_pk: string;
202
214
  }>>>;
203
215
  script_sig: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodString, string, string>>>;
204
- sequence: z.ZodOptional<z.ZodNumber>;
216
+ sequence: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodNumber]>>;
205
217
  witness: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
206
218
  }, "strip", z.ZodTypeAny, {
207
219
  txid: string;
208
220
  vout: number;
221
+ sequence?: string | number | undefined;
209
222
  coinbase?: string | null | undefined;
210
223
  prevout?: {
211
- value: bigint;
224
+ value: number | bigint;
212
225
  script_pk: string;
213
226
  } | null | undefined;
214
227
  script_sig?: string | null | undefined;
215
- sequence?: number | undefined;
216
228
  witness?: string[] | undefined;
217
229
  }, {
218
230
  txid: string;
219
231
  vout: number;
232
+ sequence?: string | number | undefined;
220
233
  coinbase?: string | null | undefined;
221
234
  prevout?: {
222
- value: bigint;
235
+ value: number | bigint;
223
236
  script_pk: string;
224
237
  } | null | undefined;
225
238
  script_sig?: string | null | undefined;
226
- sequence?: number | undefined;
227
239
  witness?: string[] | undefined;
228
240
  }>, "many">>;
229
241
  vout: z.ZodDefault<z.ZodArray<z.ZodObject<{
230
- value: z.ZodBigInt;
231
242
  script_pk: z.ZodEffects<z.ZodString, string, string>;
243
+ } & {
244
+ value: z.ZodUnion<[z.ZodNumber, z.ZodBigInt]>;
232
245
  }, "strip", z.ZodTypeAny, {
233
- value: bigint;
246
+ value: number | bigint;
234
247
  script_pk: string;
235
248
  }, {
236
- value: bigint;
249
+ value: number | bigint;
237
250
  script_pk: string;
238
251
  }>, "many">>;
239
252
  locktime: z.ZodOptional<z.ZodNumber>;
240
253
  }, "strip", z.ZodTypeAny, {
254
+ version: number;
241
255
  vout: {
242
- value: bigint;
256
+ value: number | bigint;
243
257
  script_pk: string;
244
258
  }[];
245
259
  vin: {
246
260
  txid: string;
247
261
  vout: number;
262
+ sequence?: string | number | undefined;
248
263
  coinbase?: string | null | undefined;
249
264
  prevout?: {
250
- value: bigint;
265
+ value: number | bigint;
251
266
  script_pk: string;
252
267
  } | null | undefined;
253
268
  script_sig?: string | null | undefined;
254
- sequence?: number | undefined;
255
269
  witness?: string[] | undefined;
256
270
  }[];
257
- version?: number | undefined;
258
271
  locktime?: number | undefined;
259
272
  }, {
260
273
  version?: number | undefined;
261
274
  vout?: {
262
- value: bigint;
275
+ value: number | bigint;
263
276
  script_pk: string;
264
277
  }[] | undefined;
265
278
  vin?: {
266
279
  txid: string;
267
280
  vout: number;
281
+ sequence?: string | number | undefined;
268
282
  coinbase?: string | null | undefined;
269
283
  prevout?: {
270
- value: bigint;
284
+ value: number | bigint;
271
285
  script_pk: string;
272
286
  } | null | undefined;
273
287
  script_sig?: string | null | undefined;
274
- sequence?: number | undefined;
275
288
  witness?: string[] | undefined;
276
289
  }[] | undefined;
277
290
  locktime?: number | undefined;
package/dist/schema/tx.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { big, hex, hex32, uint } from '@vbyte/micro-lib/schema';
3
- export const sats = big.max(2100000000000000n);
2
+ import { hex, hex32, uint } from '@vbyte/micro-lib/schema';
3
+ const sats = z.bigint().positive().max(2100000000000000n);
4
4
  export const tx_output = z.object({
5
5
  value: sats,
6
6
  script_pk: hex,
@@ -20,16 +20,19 @@ export const tx_data = z.object({
20
20
  vout: z.array(tx_output),
21
21
  locktime: uint,
22
22
  });
23
+ export const vout_template = tx_output.extend({
24
+ value: z.union([uint, sats])
25
+ });
23
26
  export const vin_template = tx_input.extend({
24
27
  coinbase: hex.nullable().optional(),
25
- prevout: tx_output.nullable().optional(),
28
+ prevout: vout_template.nullable().optional(),
26
29
  script_sig: hex.nullable().optional(),
27
- sequence: uint.optional(),
30
+ sequence: z.union([hex, uint]).optional(),
28
31
  witness: z.array(hex).optional(),
29
32
  });
30
33
  export const tx_template = z.object({
31
- version: uint.optional(),
34
+ version: uint.default(1),
32
35
  vin: z.array(vin_template).default([]),
33
- vout: z.array(tx_output).default([]),
36
+ vout: z.array(vout_template).default([]),
34
37
  locktime: uint.optional(),
35
38
  });