@bitgo-beta/utxo-lib 8.0.3-beta.9 → 8.0.3-beta.91
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 +19 -16
- package/dist/src/bitgo/Musig2.d.ts +5 -10
- package/dist/src/bitgo/Musig2.d.ts.map +1 -1
- package/dist/src/bitgo/Musig2.js +26 -51
- package/dist/src/bitgo/PsbtUtil.d.ts +54 -0
- package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -0
- package/dist/src/bitgo/PsbtUtil.js +79 -0
- package/dist/src/bitgo/UtxoPsbt.d.ts +21 -37
- package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoPsbt.js +138 -125
- package/dist/src/bitgo/index.d.ts +8 -0
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +2 -1
- package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
- package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
- package/dist/src/bitgo/legacysafe/index.js +57 -0
- package/dist/src/bitgo/parseInput.js +2 -2
- package/dist/src/bitgo/signature.d.ts +2 -2
- package/dist/src/bitgo/signature.d.ts.map +1 -1
- package/dist/src/bitgo/signature.js +8 -2
- package/dist/src/bitgo/transaction.d.ts +18 -3
- package/dist/src/bitgo/transaction.d.ts.map +1 -1
- package/dist/src/bitgo/transaction.js +9 -7
- package/dist/src/bitgo/wallet/Psbt.d.ts +49 -10
- package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Psbt.js +159 -83
- package/dist/src/bitgo/wallet/Unspent.d.ts +26 -0
- package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Unspent.js +149 -60
- package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
- package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletOutput.js +64 -23
- package/dist/src/bitgo/wallet/chains.d.ts +1 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.js +4 -3
- package/dist/src/testutil/index.d.ts +1 -0
- package/dist/src/testutil/index.d.ts.map +1 -1
- package/dist/src/testutil/index.js +2 -1
- package/dist/src/testutil/mock.d.ts +1 -1
- package/dist/src/testutil/mock.d.ts.map +1 -1
- package/dist/src/testutil/mock.js +12 -4
- package/dist/src/testutil/psbt.d.ts +13 -4
- package/dist/src/testutil/psbt.d.ts.map +1 -1
- package/dist/src/testutil/psbt.js +10 -9
- package/dist/src/testutil/transaction.d.ts +17 -6
- package/dist/src/testutil/transaction.d.ts.map +1 -1
- package/dist/src/testutil/transaction.js +17 -10
- package/package.json +6 -6
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Psbt as PsbtBase } from 'bip174';
|
|
3
|
-
import { Bip32Derivation } from 'bip174/src/lib/interfaces';
|
|
3
|
+
import { Bip32Derivation, PsbtInput } from 'bip174/src/lib/interfaces';
|
|
4
4
|
import { BIP32Interface } from 'bip32';
|
|
5
|
-
import { ProprietaryKey } from 'bip174/src/lib/proprietaryKeyVal';
|
|
6
5
|
import { HDSigner, Psbt, TxOutput, Network } from '..';
|
|
7
6
|
import { UtxoTransaction } from './UtxoTransaction';
|
|
8
7
|
import { Triple } from './types';
|
|
9
|
-
|
|
10
|
-
export declare enum ProprietaryKeySubtype {
|
|
11
|
-
ZEC_CONSENSUS_BRANCH_ID = 0,
|
|
12
|
-
MUSIG2_PARTICIPANT_PUB_KEYS = 1,
|
|
13
|
-
MUSIG2_PUB_NONCE = 2,
|
|
14
|
-
MUSIG2_PARTIAL_SIG = 3
|
|
15
|
-
}
|
|
8
|
+
import { ProprietaryKeySearch, ProprietaryKeyValue } from './PsbtUtil';
|
|
16
9
|
declare type SignatureParams = {
|
|
17
10
|
/** When true, and add the second (last) nonce and signature for a taproot key
|
|
18
11
|
* path spend deterministically. Throws an error if done for the first nonce/signature
|
|
@@ -65,25 +58,6 @@ export interface PsbtOpts {
|
|
|
65
58
|
maximumFeeRate?: number;
|
|
66
59
|
bip32PathsAbsolute?: boolean;
|
|
67
60
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Psbt proprietary keydata object.
|
|
70
|
-
* <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
|
|
71
|
-
* => <bytes valuedata>
|
|
72
|
-
*/
|
|
73
|
-
export interface ProprietaryKeyValue {
|
|
74
|
-
key: ProprietaryKey;
|
|
75
|
-
value: Buffer;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Psbt proprietary keydata object search fields.
|
|
79
|
-
* <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
|
|
80
|
-
*/
|
|
81
|
-
export interface ProprietaryKeySearch {
|
|
82
|
-
identifier: string;
|
|
83
|
-
subtype?: number;
|
|
84
|
-
keydata?: Buffer;
|
|
85
|
-
identifierEncoding?: BufferEncoding;
|
|
86
|
-
}
|
|
87
61
|
export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransaction<bigint>> extends Psbt {
|
|
88
62
|
private nonceStore;
|
|
89
63
|
protected static transactionFromBuffer(buffer: Buffer, network: Network): UtxoTransaction<bigint>;
|
|
@@ -93,20 +67,24 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
|
|
|
93
67
|
/**
|
|
94
68
|
* @param parent - Parent key. Matched with `bip32Derivations` using `fingerprint` property.
|
|
95
69
|
* @param bip32Derivations - possible derivations for input or output
|
|
70
|
+
* @param ignoreY - when true, ignore the y coordinate when matching public keys
|
|
96
71
|
* @return derived bip32 node if matching derivation is found, undefined if none is found
|
|
97
72
|
* @throws Error if more than one match is found
|
|
98
73
|
*/
|
|
99
|
-
static deriveKeyPair(parent: BIP32Interface, bip32Derivations: Bip32Derivation[]
|
|
74
|
+
static deriveKeyPair(parent: BIP32Interface, bip32Derivations: Bip32Derivation[], { ignoreY }: {
|
|
75
|
+
ignoreY: boolean;
|
|
76
|
+
}): BIP32Interface | undefined;
|
|
77
|
+
static deriveKeyPairForInput(bip32: BIP32Interface, input: PsbtInput): Buffer | undefined;
|
|
100
78
|
get network(): Network;
|
|
101
79
|
toHex(): string;
|
|
102
80
|
/**
|
|
103
|
-
*
|
|
81
|
+
* It is expensive to attempt to compute every output address using psbt.txOutputs[outputIndex]
|
|
82
|
+
* to then just get the script. Here, we are doing the same thing as what txOutputs() does in
|
|
83
|
+
* bitcoinjs-lib, but without iterating over each output.
|
|
84
|
+
* @param outputIndex
|
|
85
|
+
* @returns output script at the given index
|
|
104
86
|
*/
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* @return partialSig/tapScriptSig count iff input is not finalized
|
|
108
|
-
*/
|
|
109
|
-
getSignatureCount(inputIndex: number): number;
|
|
87
|
+
getOutputScript(outputIndex: number): Buffer;
|
|
110
88
|
getNonWitnessPreviousTxids(): string[];
|
|
111
89
|
addNonWitnessUtxos(txBufs: Record<string, Buffer>): this;
|
|
112
90
|
static fromTransaction(transaction: UtxoTransaction<bigint>, prevOutputs: TxOutput<bigint>[]): UtxoPsbt;
|
|
@@ -128,6 +106,7 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
|
|
|
128
106
|
* @returns true if the input at inputIndex is a taproot
|
|
129
107
|
*/
|
|
130
108
|
isTaprootInput(inputIndex: number): boolean;
|
|
109
|
+
private isMultisigTaprootScript;
|
|
131
110
|
/**
|
|
132
111
|
* Mostly copied from bitcoinjs-lib/ts_src/psbt.ts
|
|
133
112
|
*/
|
|
@@ -158,7 +137,7 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
|
|
|
158
137
|
private getMusig2SessionKey;
|
|
159
138
|
/**
|
|
160
139
|
* @returns true for following cases.
|
|
161
|
-
* If valid musig2 partial signatures exists for both 2 keys, it will also
|
|
140
|
+
* If valid musig2 partial signatures exists for both 2 keys, it will also verify aggregated sig
|
|
162
141
|
* for aggregated tweaked key (output key), otherwise only verifies partial sig.
|
|
163
142
|
* If pubkey is passed in input, it will check sig only for that pubkey,
|
|
164
143
|
* if no sig exits for such key, throws error.
|
|
@@ -167,10 +146,14 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
|
|
|
167
146
|
validateTaprootMusig2SignaturesOfInput(inputIndex: number, pubkey?: Buffer): boolean;
|
|
168
147
|
validateTaprootSignaturesOfInput(inputIndex: number, pubkey?: Buffer): boolean;
|
|
169
148
|
/**
|
|
149
|
+
* @param inputIndex
|
|
150
|
+
* @param rootNodes optional input root bip32 nodes to verify with. If it is not provided, globalXpub will be used.
|
|
170
151
|
* @return array of boolean values. True when corresponding index in `publicKeys` has signed the transaction.
|
|
171
152
|
* If no signature in the tx or no public key matching signature, the validation is considered as false.
|
|
172
153
|
*/
|
|
173
|
-
getSignatureValidationArray(inputIndex: number
|
|
154
|
+
getSignatureValidationArray(inputIndex: number, { rootNodes }?: {
|
|
155
|
+
rootNodes?: Triple<BIP32Interface>;
|
|
156
|
+
}): Triple<boolean>;
|
|
174
157
|
/**
|
|
175
158
|
* Mostly copied from bitcoinjs-lib/ts_src/psbt.ts
|
|
176
159
|
*/
|
|
@@ -276,6 +259,7 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
|
|
|
276
259
|
deterministic?: boolean;
|
|
277
260
|
}): this;
|
|
278
261
|
clone(): this;
|
|
262
|
+
extractTransaction(disableFeeCheck?: boolean): UtxoTransaction<bigint>;
|
|
279
263
|
}
|
|
280
264
|
export {};
|
|
281
265
|
//# sourceMappingURL=UtxoPsbt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtxoPsbt.d.ts","sourceRoot":"","sources":["../../../src/bitgo/UtxoPsbt.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"UtxoPsbt.d.ts","sourceRoot":"","sources":["../../../src/bitgo/UtxoPsbt.ts"],"names":[],"mappings":"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"}
|