ecash-lib 4.10.0 → 4.12.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.
Files changed (43) hide show
  1. package/README.md +2 -0
  2. package/dist/consts.d.ts +11 -0
  3. package/dist/consts.d.ts.map +1 -1
  4. package/dist/consts.js +12 -1
  5. package/dist/consts.js.map +1 -1
  6. package/dist/ffi/ecash_lib_wasm_bg_browser.js +20489 -20489
  7. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  8. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/psbt.d.ts +115 -0
  14. package/dist/psbt.d.ts.map +1 -0
  15. package/dist/psbt.js +743 -0
  16. package/dist/psbt.js.map +1 -0
  17. package/dist/script.d.ts +11 -1
  18. package/dist/script.d.ts.map +1 -1
  19. package/dist/script.js +24 -0
  20. package/dist/script.js.map +1 -1
  21. package/dist/signatories.d.ts +44 -0
  22. package/dist/signatories.d.ts.map +1 -0
  23. package/dist/signatories.js +206 -0
  24. package/dist/signatories.js.map +1 -0
  25. package/dist/tx.d.ts +60 -0
  26. package/dist/tx.d.ts.map +1 -1
  27. package/dist/tx.js +274 -0
  28. package/dist/tx.js.map +1 -1
  29. package/dist/txBuilder.d.ts +2 -30
  30. package/dist/txBuilder.d.ts.map +1 -1
  31. package/dist/txBuilder.js +1 -45
  32. package/dist/txBuilder.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/consts.ts +13 -0
  35. package/src/ffi/ecash_lib_wasm_bg_browser.js +20489 -20489
  36. package/src/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  37. package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  38. package/src/index.ts +2 -0
  39. package/src/psbt.ts +908 -0
  40. package/src/script.ts +25 -1
  41. package/src/signatories.ts +296 -0
  42. package/src/tx.ts +330 -0
  43. package/src/txBuilder.ts +2 -74
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export * from './hdwallet.js';
10
10
  export * from './address/address.js';
11
11
  export * from './sigHashType.js';
12
12
  export * from './tx.js';
13
+ export * from './psbt.js';
14
+ export * from './signatories.js';
13
15
  export * from './txBuilder.js';
14
16
  export * from './unsignedTx.js';
15
17
  export * from './io/bytes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -52,6 +52,8 @@ __exportStar(require("./hdwallet.js"), exports);
52
52
  __exportStar(require("./address/address.js"), exports);
53
53
  __exportStar(require("./sigHashType.js"), exports);
54
54
  __exportStar(require("./tx.js"), exports);
55
+ __exportStar(require("./psbt.js"), exports);
56
+ __exportStar(require("./signatories.js"), exports);
55
57
  __exportStar(require("./txBuilder.js"), exports);
56
58
  __exportStar(require("./unsignedTx.js"), exports);
57
59
  __exportStar(require("./io/bytes.js"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,0CAAwB;AACxB,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,0CAAwB;AACxB,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAqC"}
package/dist/psbt.d.ts ADDED
@@ -0,0 +1,115 @@
1
+ import { Ecc } from './ecc.js';
2
+ import { Script } from './script.js';
3
+ import { type SigHashType } from './sigHashType.js';
4
+ import { SignData, Tx } from './tx.js';
5
+ /**
6
+ * BIP 174 **magic bytes** for PSBT version 0: ASCII `psbt` + `0xff`.
7
+ * Defined in BIP 174 “Specification > Version 0” (must be first bytes of a `.psbt`).
8
+ * - https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#specification
9
+ * - https://bips.dev/174/#specification
10
+ */
11
+ export declare const PSBT_MAGIC: Uint8Array<ArrayBuffer>;
12
+ /**
13
+ * Bitcoin ABC `PSBT_IN_UTXO` (BIP 174 input type `0x00`): value is either the full
14
+ * previous transaction (BIP “non-witness UTXO”) or a serialized `CTxOut` (amount +
15
+ * scriptPubKey). This is the **only** key we use for spent-output data; BIP type
16
+ * `0x01` is not handled like the node (see module TSDoc). Resolved in
17
+ * {@link resolveWitnessFromKey00}.
18
+ */
19
+ export declare const PSBT_IN_UTXO = 0;
20
+ /** Strip input scripts for PSBT global unsigned transaction (BIP 174). */
21
+ export declare function txToUnsigned(tx: Tx): Tx;
22
+ export interface PsbtInputMaps {
23
+ witnessUtxo: {
24
+ sats: bigint;
25
+ scriptPubKey: Uint8Array;
26
+ };
27
+ redeemScript?: Script;
28
+ partialSigs: Map<string, Uint8Array>;
29
+ }
30
+ /** One PSBT key-value pair (BIP 174). */
31
+ export type PsbtKeyValue = {
32
+ key: Uint8Array;
33
+ value: Uint8Array;
34
+ };
35
+ /**
36
+ * BIP 174 PSBT for eCash multisig and ABC-aligned decode/encode.
37
+ * See https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#serialization
38
+ *
39
+ * Typical flow: {@link Psbt.fromTx} from a partially signed {@link Tx} plus
40
+ * {@link SignData} per input → {@link Psbt.toBytes} → share → {@link Psbt.fromBytes}.
41
+ * Unknown key-value pairs are preserved (BIP 174).
42
+ */
43
+ export declare class Psbt {
44
+ /** Unsigned transaction (empty scriptSigs). */
45
+ readonly unsignedTx: Tx;
46
+ /** Per-input signing data (amount, scripts, partial sig maps). */
47
+ readonly signDataPerInput: SignData[];
48
+ /** Per-input partial signatures: hex(pubkey) → signature incl. sighash byte. */
49
+ readonly inputPartialSigs: Map<string, Uint8Array>[];
50
+ /**
51
+ * Unknown global key-value pairs (BIP 174: implementations must preserve
52
+ * unknown keys on round-trip).
53
+ */
54
+ readonly unknownGlobalPairs: PsbtKeyValue[];
55
+ /** Unknown per-input pairs (excluding consumed `PSBT_IN_UTXO` / `0x00` entries). */
56
+ readonly unknownInputPairs: PsbtKeyValue[][];
57
+ /** Unknown per-output pairs. */
58
+ readonly unknownOutputPairs: PsbtKeyValue[][];
59
+ /**
60
+ * When true, this input had no `PSBT_IN_UTXO` (`0x00`) field in the PSBT (e.g.
61
+ * creator-only PSBT or finalized script fields only). {@link toBytes} will
62
+ * not emit that entry for the input.
63
+ */
64
+ readonly inputWitnessIncomplete: boolean[];
65
+ constructor(params: {
66
+ unsignedTx: Tx;
67
+ signDataPerInput: SignData[];
68
+ inputPartialSigs: Map<string, Uint8Array>[];
69
+ unknownGlobalPairs?: PsbtKeyValue[];
70
+ unknownInputPairs?: PsbtKeyValue[][];
71
+ unknownOutputPairs?: PsbtKeyValue[][];
72
+ inputWitnessIncomplete?: boolean[];
73
+ });
74
+ /**
75
+ * Build a PSBT from a transaction that may already include partial scriptSigs.
76
+ * Populates `PSBT_IN_UTXO` (`0x00`) + redeem script + partial signatures.
77
+ */
78
+ static fromTx(tx: Tx, signDataPerInput: SignData[], ecc: Ecc): Psbt;
79
+ /** Deserialize PSBT bytes (BIP 174). */
80
+ static fromBytes(data: Uint8Array): Psbt;
81
+ /** Serialize to BIP 174 bytes. */
82
+ toBytes(): Uint8Array;
83
+ /**
84
+ * Current transaction with scriptSigs built from partial signatures.
85
+ * Attach each input's `signData` for signing and validation helpers.
86
+ */
87
+ toTx(): Tx;
88
+ /**
89
+ * Add or merge a multisig signature on an input (same semantics as
90
+ * {@link Tx.addMultisigSignature}).
91
+ */
92
+ addMultisigSignature(params: {
93
+ inputIdx: number;
94
+ signature: Uint8Array;
95
+ signData: SignData;
96
+ ecc?: Ecc;
97
+ }): Psbt;
98
+ /**
99
+ * Like {@link addMultisigSignature}, but signs with a secret key (see
100
+ * {@link Tx.addMultisigSignatureFromKey}).
101
+ */
102
+ addMultisigSignatureFromKey(params: {
103
+ inputIdx: number;
104
+ sk: Uint8Array;
105
+ signData: SignData;
106
+ sigHashType?: SigHashType;
107
+ ecc?: Ecc;
108
+ }): Psbt;
109
+ /**
110
+ * Same as {@link Tx.isFullySignedMultisig} on {@link toTx} (including
111
+ * vacuous `true` when there are no multisig inputs).
112
+ */
113
+ isFullySignedMultisig(): boolean;
114
+ }
115
+ //# sourceMappingURL=psbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAIH,QAAQ,EACR,EAAE,EAEL,MAAM,SAAS,CAAC;AAGjB;;;;;GAKG;AACH,eAAO,MAAM,UAAU,yBAAiD,CAAC;AAGzE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,IAAO,CAAC;AAmKjC,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAWvC;AAiPD,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,UAAU,CAAA;KAAE,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACxC;AAED,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAgFlE;;;;;;;GAOG;AACH,qBAAa,IAAI;IACb,+CAA+C;IAC/C,SAAgB,UAAU,EAAE,EAAE,CAAC;IAC/B,kEAAkE;IAClE,SAAgB,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7C,gFAAgF;IAChF,SAAgB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;IAC5D;;;OAGG;IACH,SAAgB,kBAAkB,EAAE,YAAY,EAAE,CAAC;IACnD,oFAAoF;IACpF,SAAgB,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC;IACpD,gCAAgC;IAChC,SAAgB,kBAAkB,EAAE,YAAY,EAAE,EAAE,CAAC;IACrD;;;;OAIG;IACH,SAAgB,sBAAsB,EAAE,OAAO,EAAE,CAAC;gBAE/B,MAAM,EAAE;QACvB,UAAU,EAAE,EAAE,CAAC;QACf,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAC7B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5C,kBAAkB,CAAC,EAAE,YAAY,EAAE,CAAC;QACpC,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QACrC,kBAAkB,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QACtC,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC;KACtC;IAoCD;;;OAGG;WACW,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAyB1E,wCAAwC;WAC1B,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAiG/C,kCAAkC;IAC3B,OAAO,IAAI,UAAU;IAuD5B;;;OAGG;IACI,IAAI,IAAI,EAAE;IAoBjB;;;OAGG;IACI,oBAAoB,CAAC,MAAM,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,UAAU,CAAC;QACtB,QAAQ,EAAE,QAAQ,CAAC;QACnB,GAAG,CAAC,EAAE,GAAG,CAAC;KACb,GAAG,IAAI;IAmBR;;;OAGG;IACI,2BAA2B,CAAC,MAAM,EAAE;QACvC,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,UAAU,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;QACnB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,GAAG,CAAC,EAAE,GAAG,CAAC;KACb,GAAG,IAAI;IAmBR;;;OAGG;IACI,qBAAqB,IAAI,OAAO;CAG1C"}