utxo-lib 1.0.8 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. package/README.md +19 -16
  2. package/dist/src/address.d.ts.map +1 -1
  3. package/dist/src/address.js +11 -1
  4. package/dist/src/addressFormat.d.ts +1 -1
  5. package/dist/src/addressFormat.d.ts.map +1 -1
  6. package/dist/src/addressFormat.js +1 -1
  7. package/dist/src/base_crypto.d.ts +14 -0
  8. package/dist/src/base_crypto.d.ts.map +1 -0
  9. package/dist/src/base_crypto.js +215 -0
  10. package/dist/src/bitgo/Musig2.d.ts +115 -17
  11. package/dist/src/bitgo/Musig2.d.ts.map +1 -1
  12. package/dist/src/bitgo/Musig2.js +283 -101
  13. package/dist/src/bitgo/PsbtUtil.d.ts +59 -0
  14. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -0
  15. package/dist/src/bitgo/PsbtUtil.js +91 -0
  16. package/dist/src/bitgo/UtxoPsbt.d.ts +180 -47
  17. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  18. package/dist/src/bitgo/UtxoPsbt.js +657 -121
  19. package/dist/src/bitgo/UtxoTransaction.js +2 -2
  20. package/dist/src/bitgo/bitcoincash/address.js +2 -2
  21. package/dist/src/bitgo/index.d.ts +11 -0
  22. package/dist/src/bitgo/index.d.ts.map +1 -1
  23. package/dist/src/bitgo/index.js +6 -2
  24. package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
  25. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  26. package/dist/src/bitgo/legacysafe/index.js +61 -0
  27. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +10 -0
  28. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -0
  29. package/dist/src/bitgo/litecoin/LitecoinPsbt.js +17 -0
  30. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +16 -0
  31. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -0
  32. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +46 -0
  33. package/dist/src/bitgo/litecoin/LitecoinTransactionBuilder.d.ts +10 -0
  34. package/dist/src/bitgo/litecoin/LitecoinTransactionBuilder.d.ts.map +1 -0
  35. package/dist/src/bitgo/litecoin/LitecoinTransactionBuilder.js +15 -0
  36. package/dist/src/bitgo/litecoin/index.d.ts +4 -0
  37. package/dist/src/bitgo/litecoin/index.d.ts.map +1 -0
  38. package/dist/src/bitgo/litecoin/index.js +16 -0
  39. package/dist/src/bitgo/outputScripts.d.ts +3 -1
  40. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  41. package/dist/src/bitgo/outputScripts.js +20 -12
  42. package/dist/src/bitgo/parseInput.d.ts +49 -20
  43. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  44. package/dist/src/bitgo/parseInput.js +110 -26
  45. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
  46. package/dist/src/bitgo/psbt/fromHalfSigned.js +9 -6
  47. package/dist/src/bitgo/psbt/scriptTypes.js +3 -3
  48. package/dist/src/bitgo/signature.d.ts +3 -3
  49. package/dist/src/bitgo/signature.d.ts.map +1 -1
  50. package/dist/src/bitgo/signature.js +48 -16
  51. package/dist/src/bitgo/transaction.d.ts +18 -3
  52. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  53. package/dist/src/bitgo/transaction.js +28 -15
  54. package/dist/src/bitgo/types.d.ts +2 -0
  55. package/dist/src/bitgo/types.d.ts.map +1 -1
  56. package/dist/src/bitgo/types.js +1 -1
  57. package/dist/src/bitgo/wallet/Psbt.d.ts +104 -12
  58. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  59. package/dist/src/bitgo/wallet/Psbt.js +285 -70
  60. package/dist/src/bitgo/wallet/Unspent.d.ts +28 -0
  61. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  62. package/dist/src/bitgo/wallet/Unspent.js +172 -68
  63. package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
  64. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  65. package/dist/src/bitgo/wallet/WalletOutput.js +64 -23
  66. package/dist/src/bitgo/wallet/chains.d.ts +2 -2
  67. package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
  68. package/dist/src/bitgo/wallet/chains.js +1 -1
  69. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -1
  70. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  71. package/dist/src/bitgo/zcash/ZcashPsbt.js +7 -16
  72. package/dist/src/bitgo/zcash/ZcashTransaction.js +2 -2
  73. package/dist/src/musig.d.ts +390 -0
  74. package/dist/src/musig.d.ts.map +1 -0
  75. package/dist/src/musig.js +447 -0
  76. package/dist/src/networks.d.ts +1 -2
  77. package/dist/src/networks.d.ts.map +1 -1
  78. package/dist/src/networks.js +22 -29
  79. package/dist/src/noble_ecc.d.ts +1 -1
  80. package/dist/src/noble_ecc.d.ts.map +1 -1
  81. package/dist/src/noble_ecc.js +11 -7
  82. package/dist/src/payments/p2tr.d.ts.map +1 -1
  83. package/dist/src/payments/p2tr.js +21 -19
  84. package/dist/src/payments/p2tr_ns.js +2 -3
  85. package/dist/src/taproot.d.ts +16 -0
  86. package/dist/src/taproot.d.ts.map +1 -1
  87. package/dist/src/taproot.js +45 -4
  88. package/dist/src/testutil/index.d.ts +2 -0
  89. package/dist/src/testutil/index.d.ts.map +1 -1
  90. package/dist/src/testutil/index.js +3 -1
  91. package/dist/src/testutil/keys.d.ts +3 -0
  92. package/dist/src/testutil/keys.d.ts.map +1 -1
  93. package/dist/src/testutil/keys.js +17 -2
  94. package/dist/src/testutil/mock.d.ts +1 -1
  95. package/dist/src/testutil/mock.d.ts.map +1 -1
  96. package/dist/src/testutil/mock.js +12 -4
  97. package/dist/src/testutil/psbt.d.ts +89 -0
  98. package/dist/src/testutil/psbt.d.ts.map +1 -0
  99. package/dist/src/testutil/psbt.js +150 -0
  100. package/dist/src/testutil/transaction.d.ts +70 -0
  101. package/dist/src/testutil/transaction.d.ts.map +1 -0
  102. package/dist/src/testutil/transaction.js +107 -0
  103. package/dist/src/transaction_builder.js +2 -2
  104. package/package.json +6 -7
@@ -1,21 +1,57 @@
1
1
  /// <reference types="node" />
2
+ import { PsbtInput } from 'bip174/src/lib/interfaces';
3
+ import { BIP32Interface } from 'bip32';
2
4
  import { UtxoPsbt } from '../UtxoPsbt';
3
5
  import { UtxoTransaction } from '../UtxoTransaction';
4
6
  import { RootWalletKeys } from './WalletKeys';
5
- import { BIP32Interface } from 'bip32';
6
7
  import { WalletUnspent } from './Unspent';
7
- import { ParsedPubScript2Of3, ParsedPubScriptTaprootScriptPath } from '../parseInput';
8
- declare type Signatures = [Buffer] | [Buffer, Buffer] | undefined;
9
- export interface ParsedPsbt2Of3 extends ParsedPubScript2Of3 {
10
- signatures: Signatures;
11
- }
12
- export interface ParsedPsbtP2TR extends ParsedPubScriptTaprootScriptPath {
13
- signatures: Signatures;
8
+ import { ParsedPubScriptP2ms, ParsedPubScriptTaprootScriptPath, ParsedPubScriptTaprootKeyPath, ParsedPubScriptP2shP2pk, ParsedScriptType } from '../parseInput';
9
+ import { Triple } from '../types';
10
+ import { TxInput } from 'bitcoinjs-lib';
11
+ declare type BaseSignatureContainer<T> = {
12
+ signatures: T;
13
+ };
14
+ declare type UnsignedSignatureContainer = BaseSignatureContainer<undefined>;
15
+ declare type HalfSignedSignatureContainer = BaseSignatureContainer<[Buffer]>;
16
+ declare type FullSignedSignatureContainer = BaseSignatureContainer<[Buffer, Buffer]>;
17
+ declare type SignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer | FullSignedSignatureContainer;
18
+ /**
19
+ * Contents of a pre-finalized PSBT Input for p2trMusig2 key path in the non-finalized state.
20
+ * T is [Buffer] for first signature, [Buffer, Buffer] for both signatures and `undefined` for no signatures.
21
+ */
22
+ declare type BaseTaprootKeyPathSignatureContainer<T> = {
23
+ signatures: T;
24
+ /** Only contains participants that have added a signature */
25
+ participantPublicKeys: T;
26
+ };
27
+ declare type UnsignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<undefined>;
28
+ declare type HalfSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer]>;
29
+ declare type FullSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer, Buffer]>;
30
+ declare type TaprootKeyPathSignatureContainer = UnsignedTaprootKeyPathSignatureContainer | HalfSignedTaprootKeyPathSignatureContainer | FullSignedTaprootKeyPathSignatureContainer;
31
+ /**
32
+ * To hold parsed psbt data for p2ms based script types - p2sh, p2wsh, and p2shP2wsh
33
+ */
34
+ export declare type ParsedPsbtP2ms = ParsedPubScriptP2ms & SignatureContainer;
35
+ /**
36
+ * To hold parsed psbt data for TaprootKeyPathSpend script type.
37
+ */
38
+ export declare type ParsedPsbtTaprootKeyPath = ParsedPubScriptTaprootKeyPath & TaprootKeyPathSignatureContainer;
39
+ /**
40
+ * To hold parsed psbt data for TaprootScriptPathSpend script path script type.
41
+ */
42
+ export declare type ParsedPsbtTaprootScriptPath = ParsedPubScriptTaprootScriptPath & SignatureContainer & {
14
43
  controlBlock: Buffer;
15
44
  leafVersion: number;
16
45
  /** Indicates the level inside the taptree. */
17
46
  scriptPathLevel: number;
18
- }
47
+ };
48
+ export declare type ParsedPsbtTaproot = ParsedPsbtTaprootKeyPath | ParsedPsbtTaprootScriptPath;
49
+ declare type P2shP2pkSignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer;
50
+ export declare type ParsedPsbtP2shP2pk = ParsedPubScriptP2shP2pk & P2shP2pkSignatureContainer;
51
+ /**
52
+ * psbt input index and its user, backup, bitgo signatures status
53
+ */
54
+ export declare type SignatureValidation = [index: number, sigTriple: Triple<boolean>];
19
55
  /**
20
56
  * @return PSBT filled with metatdata as per input params tx, unspents and rootWalletKeys.
21
57
  * Unsigned PSBT for taproot input with witnessUtxo
@@ -32,16 +68,72 @@ export declare function toWalletPsbt(tx: UtxoTransaction<bigint>, unspents: Wall
32
68
  * @return signed PSBT with signer's key for unspent
33
69
  */
34
70
  export declare function signWalletPsbt(psbt: UtxoPsbt, inputIndex: number, signer: BIP32Interface, unspent: WalletUnspent<bigint>): void;
71
+ /**
72
+ * @returns script type of the input
73
+ */
74
+ export declare function getPsbtInputScriptType(input: PsbtInput): ParsedScriptType;
35
75
  /**
36
76
  * @return psbt metadata are parsed as per below conditions.
37
77
  * redeemScript/witnessScript/tapLeafScript matches BitGo.
38
78
  * signature and public key count matches BitGo.
79
+ * P2SH-P2PK => scriptType, redeemScript, public key, signature.
39
80
  * P2SH => scriptType, redeemScript, public keys, signatures.
40
81
  * PW2SH => scriptType, witnessScript, public keys, signatures.
41
82
  * P2SH-PW2SH => scriptType, redeemScript, witnessScript, public keys, signatures.
42
- * P2TR => scriptType, pubScript (witnessScript), controlBlock, scriptPathLevel, leafVersion, public keys, signatures.
43
- * Any unsigned PSBT and without required metadata is returned with undefined.
83
+ * P2TR and P2TR MUSIG2 script path => scriptType (taprootScriptPathSpend), pubScript (leaf script), controlBlock,
84
+ * scriptPathLevel, leafVersion, public keys, signatures.
85
+ * P2TR MUSIG2 kep path => scriptType (taprootKeyPathSpend), pubScript (scriptPubKey), participant pub keys (signer),
86
+ * public key (tapOutputkey), signatures (partial signer sigs).
87
+ */
88
+ export declare function parsePsbtInput(input: PsbtInput): ParsedPsbtP2ms | ParsedPsbtTaproot | ParsedPsbtP2shP2pk;
89
+ /**
90
+ * @returns strictly parse the input and get signature count.
91
+ * unsigned(0), half-signed(1) or fully-signed(2)
92
+ */
93
+ export declare function getStrictSignatureCount(input: TxInput | PsbtInput): 0 | 1 | 2;
94
+ /**
95
+ * @returns strictly parse input and get signature count for all inputs.
96
+ * 0=unsigned, 1=half-signed or 2=fully-signed
97
+ */
98
+ export declare function getStrictSignatureCounts(tx: UtxoPsbt | UtxoTransaction<number | bigint> | PsbtInput[] | TxInput[]): (0 | 1 | 2)[];
99
+ /**
100
+ * @return true iff inputs array is of PsbtInputType type
101
+ * */
102
+ export declare function isPsbtInputArray(inputs: PsbtInput[] | TxInput[]): inputs is PsbtInput[];
103
+ /**
104
+ * @return true iff inputs array is of TxInput type
105
+ * */
106
+ export declare function isTxInputArray(inputs: PsbtInput[] | TxInput[]): inputs is TxInput[];
107
+ /**
108
+ * @returns true iff given psbt/transaction/tx-input-array/psbt-input-array contains at least one taproot key path spend input
109
+ */
110
+ export declare function isTransactionWithKeyPathSpendInput(data: UtxoPsbt | UtxoTransaction<bigint | number> | PsbtInput[] | TxInput[]): boolean;
111
+ /**
112
+ * Set the RootWalletKeys as the globalXpubs on the psbt
113
+ *
114
+ * We do all the matching of the (tap)bip32Derivations masterFingerprint to the fingerprint of the
115
+ * extendedPubkey.
116
+ */
117
+ export declare function addXpubsToPsbt(psbt: UtxoPsbt, rootWalletKeys: RootWalletKeys): void;
118
+ /**
119
+ * validates signatures for each 2 of 3 input against user, backup, bitgo keys derived from rootWalletKeys.
120
+ * @returns array of input index and its [is valid user sig exist, is valid backup sig exist, is valid user bitgo exist]
121
+ * For p2shP2pk input, [false, false, false] is returned since it is not a 2 of 3 sig input.
122
+ */
123
+ export declare function getSignatureValidationArrayPsbt(psbt: UtxoPsbt, rootWalletKeys: RootWalletKeys): SignatureValidation[];
124
+ /**
125
+ * Extracts the half signed transaction from the psbt for p2ms based script types - p2sh, p2wsh, and p2shP2wsh.
126
+ * The purpose is to provide backward compatibility to keyternal (KRS) that only supports network transaction and p2ms script types.
127
+ */
128
+ export declare function extractP2msOnlyHalfSignedTx(psbt: UtxoPsbt): UtxoTransaction<bigint>;
129
+ /**
130
+ * Clones the psbt without nonWitnessUtxo for non-segwit inputs and witnessUtxo is added instead.
131
+ * It is not BIP-174 compliant, so use it carefully.
132
+ */
133
+ export declare function clonePsbtWithoutNonWitnessUtxo(psbt: UtxoPsbt): UtxoPsbt;
134
+ /**
135
+ * Deletes witnessUtxo for non-segwit inputs to make the PSBT BIP-174 compliant.
44
136
  */
45
- export declare function parsePsbtInput(psbt: UtxoPsbt, inputIndex: number): ParsedPsbt2Of3 | ParsedPsbtP2TR | undefined;
137
+ export declare function deleteWitnessUtxoForNonSegwitInputs(psbt: UtxoPsbt): void;
46
138
  export {};
47
139
  //# sourceMappingURL=Psbt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,OAAO,EAAqB,cAAc,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAIL,mBAAmB,EACnB,gCAAgC,EAEjC,MAAM,eAAe,CAAC;AAEvB,aAAK,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,gCAAgC;IACtE,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;CACzB;AAkFD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAC3B,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EACjC,cAAc,EAAE,cAAc,GAC7B,QAAQ,CASV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAC7B,IAAI,CAMN;AA6GD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAa9G"}
1
+ {"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":"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"}