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.
- package/README.md +2 -0
- package/dist/consts.d.ts +11 -0
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +12 -1
- package/dist/consts.js.map +1 -1
- package/dist/ffi/ecash_lib_wasm_bg_browser.js +20489 -20489
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/psbt.d.ts +115 -0
- package/dist/psbt.d.ts.map +1 -0
- package/dist/psbt.js +743 -0
- package/dist/psbt.js.map +1 -0
- package/dist/script.d.ts +11 -1
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +24 -0
- package/dist/script.js.map +1 -1
- package/dist/signatories.d.ts +44 -0
- package/dist/signatories.d.ts.map +1 -0
- package/dist/signatories.js +206 -0
- package/dist/signatories.js.map +1 -0
- package/dist/tx.d.ts +60 -0
- package/dist/tx.d.ts.map +1 -1
- package/dist/tx.js +274 -0
- package/dist/tx.js.map +1 -1
- package/dist/txBuilder.d.ts +2 -30
- package/dist/txBuilder.d.ts.map +1 -1
- package/dist/txBuilder.js +1 -45
- package/dist/txBuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +13 -0
- package/src/ffi/ecash_lib_wasm_bg_browser.js +20489 -20489
- package/src/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/src/index.ts +2 -0
- package/src/psbt.ts +908 -0
- package/src/script.ts +25 -1
- package/src/signatories.ts +296 -0
- package/src/tx.ts +330 -0
- package/src/txBuilder.ts +2 -74
|
Binary file
|
|
Binary file
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|