Remove @ts-ignore
This commit is contained in:
parent
d814c21466
commit
1cc7205e9c
2 changed files with 36 additions and 36 deletions
|
@ -155,7 +155,10 @@ class TransactionBuilder {
|
||||||
) {
|
) {
|
||||||
trySign(
|
trySign(
|
||||||
getSigningData(
|
getSigningData(
|
||||||
this,
|
this.network,
|
||||||
|
this.__INPUTS,
|
||||||
|
this.__needsOutputs.bind(this),
|
||||||
|
this.__TX,
|
||||||
signParams,
|
signParams,
|
||||||
keyPair,
|
keyPair,
|
||||||
redeemScript,
|
redeemScript,
|
||||||
|
@ -725,7 +728,7 @@ function canSign(input) {
|
||||||
function signatureHashType(buffer) {
|
function signatureHashType(buffer) {
|
||||||
return buffer.readUInt8(buffer.length - 1);
|
return buffer.readUInt8(buffer.length - 1);
|
||||||
}
|
}
|
||||||
function checkSignArgs(txb, signParams) {
|
function checkSignArgs(inputs, signParams) {
|
||||||
if (!PREVOUT_TYPES.has(signParams.prevOutScriptType)) {
|
if (!PREVOUT_TYPES.has(signParams.prevOutScriptType)) {
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
`Unknown prevOutScriptType "${signParams.prevOutScriptType}"`,
|
`Unknown prevOutScriptType "${signParams.prevOutScriptType}"`,
|
||||||
|
@ -739,8 +742,7 @@ function checkSignArgs(txb, signParams) {
|
||||||
),
|
),
|
||||||
[signParams.vin, signParams.hashType, signParams.keyPair],
|
[signParams.vin, signParams.hashType, signParams.keyPair],
|
||||||
);
|
);
|
||||||
// @ts-ignore
|
const prevOutType = (inputs[signParams.vin] || []).prevOutType;
|
||||||
const prevOutType = (txb.__INPUTS[signParams.vin] || []).prevOutType;
|
|
||||||
const posType = signParams.prevOutScriptType;
|
const posType = signParams.prevOutScriptType;
|
||||||
switch (posType) {
|
switch (posType) {
|
||||||
case 'p2pkh':
|
case 'p2pkh':
|
||||||
|
@ -953,7 +955,10 @@ function trySign({
|
||||||
if (!signed) throw new Error('Key pair cannot sign for this input');
|
if (!signed) throw new Error('Key pair cannot sign for this input');
|
||||||
}
|
}
|
||||||
function getSigningData(
|
function getSigningData(
|
||||||
txb,
|
network,
|
||||||
|
inputs,
|
||||||
|
needsOutputs,
|
||||||
|
tx,
|
||||||
signParams,
|
signParams,
|
||||||
keyPair,
|
keyPair,
|
||||||
redeemScript,
|
redeemScript,
|
||||||
|
@ -970,7 +975,7 @@ function getSigningData(
|
||||||
);
|
);
|
||||||
vin = signParams;
|
vin = signParams;
|
||||||
} else if (typeof signParams === 'object') {
|
} else if (typeof signParams === 'object') {
|
||||||
checkSignArgs(txb, signParams);
|
checkSignArgs(inputs, signParams);
|
||||||
({
|
({
|
||||||
vin,
|
vin,
|
||||||
keyPair,
|
keyPair,
|
||||||
|
@ -988,16 +993,12 @@ function getSigningData(
|
||||||
throw new Error('sign requires keypair');
|
throw new Error('sign requires keypair');
|
||||||
}
|
}
|
||||||
// TODO: remove keyPair.network matching in 4.0.0
|
// TODO: remove keyPair.network matching in 4.0.0
|
||||||
if (keyPair.network && keyPair.network !== txb.network)
|
if (keyPair.network && keyPair.network !== network)
|
||||||
throw new TypeError('Inconsistent network');
|
throw new TypeError('Inconsistent network');
|
||||||
// @ts-ignore
|
if (!inputs[vin]) throw new Error('No input at index: ' + vin);
|
||||||
if (!txb.__INPUTS[vin]) throw new Error('No input at index: ' + vin);
|
|
||||||
hashType = hashType || transaction_1.Transaction.SIGHASH_ALL;
|
hashType = hashType || transaction_1.Transaction.SIGHASH_ALL;
|
||||||
// @ts-ignore
|
if (needsOutputs(hashType)) throw new Error('Transaction needs outputs');
|
||||||
if (txb.__needsOutputs(hashType))
|
const input = inputs[vin];
|
||||||
throw new Error('Transaction needs outputs');
|
|
||||||
// @ts-ignore
|
|
||||||
const input = txb.__INPUTS[vin];
|
|
||||||
// if redeemScript was previously provided, enforce consistency
|
// if redeemScript was previously provided, enforce consistency
|
||||||
if (
|
if (
|
||||||
input.redeemScript !== undefined &&
|
input.redeemScript !== undefined &&
|
||||||
|
@ -1029,16 +1030,14 @@ function getSigningData(
|
||||||
// ready to sign
|
// ready to sign
|
||||||
let signatureHash;
|
let signatureHash;
|
||||||
if (input.hasWitness) {
|
if (input.hasWitness) {
|
||||||
// @ts-ignore
|
signatureHash = tx.hashForWitnessV0(
|
||||||
signatureHash = txb.__TX.hashForWitnessV0(
|
|
||||||
vin,
|
vin,
|
||||||
input.signScript,
|
input.signScript,
|
||||||
input.value,
|
input.value,
|
||||||
hashType,
|
hashType,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// @ts-ignore
|
signatureHash = tx.hashForSignature(vin, input.signScript, hashType);
|
||||||
signatureHash = txb.__TX.hashForSignature(vin, input.signScript, hashType);
|
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
input,
|
input,
|
||||||
|
|
|
@ -245,7 +245,10 @@ export class TransactionBuilder {
|
||||||
): void {
|
): void {
|
||||||
trySign(
|
trySign(
|
||||||
getSigningData(
|
getSigningData(
|
||||||
this,
|
this.network,
|
||||||
|
this.__INPUTS,
|
||||||
|
this.__needsOutputs.bind(this),
|
||||||
|
this.__TX,
|
||||||
signParams,
|
signParams,
|
||||||
keyPair,
|
keyPair,
|
||||||
redeemScript,
|
redeemScript,
|
||||||
|
@ -949,7 +952,7 @@ function signatureHashType(buffer: Buffer): number {
|
||||||
return buffer.readUInt8(buffer.length - 1);
|
return buffer.readUInt8(buffer.length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkSignArgs(txb: TransactionBuilder, signParams: TxbSignArg): void {
|
function checkSignArgs(inputs: TxbInput[], signParams: TxbSignArg): void {
|
||||||
if (!PREVOUT_TYPES.has(signParams.prevOutScriptType)) {
|
if (!PREVOUT_TYPES.has(signParams.prevOutScriptType)) {
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
`Unknown prevOutScriptType "${signParams.prevOutScriptType}"`,
|
`Unknown prevOutScriptType "${signParams.prevOutScriptType}"`,
|
||||||
|
@ -963,8 +966,7 @@ function checkSignArgs(txb: TransactionBuilder, signParams: TxbSignArg): void {
|
||||||
),
|
),
|
||||||
[signParams.vin, signParams.hashType, signParams.keyPair],
|
[signParams.vin, signParams.hashType, signParams.keyPair],
|
||||||
);
|
);
|
||||||
// @ts-ignore
|
const prevOutType = (inputs[signParams.vin] || []).prevOutType;
|
||||||
const prevOutType = (txb.__INPUTS[signParams.vin] || []).prevOutType;
|
|
||||||
const posType = signParams.prevOutScriptType;
|
const posType = signParams.prevOutScriptType;
|
||||||
switch (posType) {
|
switch (posType) {
|
||||||
case 'p2pkh':
|
case 'p2pkh':
|
||||||
|
@ -1190,8 +1192,13 @@ interface SigningData {
|
||||||
useLowR: boolean;
|
useLowR: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HashTypeCheck = (hashType: number) => boolean;
|
||||||
|
|
||||||
function getSigningData(
|
function getSigningData(
|
||||||
txb: TransactionBuilder,
|
network: Network,
|
||||||
|
inputs: TxbInput[],
|
||||||
|
needsOutputs: HashTypeCheck,
|
||||||
|
tx: Transaction,
|
||||||
signParams: number | TxbSignArg,
|
signParams: number | TxbSignArg,
|
||||||
keyPair?: ECPairInterface,
|
keyPair?: ECPairInterface,
|
||||||
redeemScript?: Buffer,
|
redeemScript?: Buffer,
|
||||||
|
@ -1208,7 +1215,7 @@ function getSigningData(
|
||||||
);
|
);
|
||||||
vin = signParams;
|
vin = signParams;
|
||||||
} else if (typeof signParams === 'object') {
|
} else if (typeof signParams === 'object') {
|
||||||
checkSignArgs(txb, signParams);
|
checkSignArgs(inputs, signParams);
|
||||||
({
|
({
|
||||||
vin,
|
vin,
|
||||||
keyPair,
|
keyPair,
|
||||||
|
@ -1226,18 +1233,14 @@ function getSigningData(
|
||||||
throw new Error('sign requires keypair');
|
throw new Error('sign requires keypair');
|
||||||
}
|
}
|
||||||
// TODO: remove keyPair.network matching in 4.0.0
|
// TODO: remove keyPair.network matching in 4.0.0
|
||||||
if (keyPair.network && keyPair.network !== txb.network)
|
if (keyPair.network && keyPair.network !== network)
|
||||||
throw new TypeError('Inconsistent network');
|
throw new TypeError('Inconsistent network');
|
||||||
// @ts-ignore
|
if (!inputs[vin]) throw new Error('No input at index: ' + vin);
|
||||||
if (!txb.__INPUTS[vin]) throw new Error('No input at index: ' + vin);
|
|
||||||
|
|
||||||
hashType = hashType || Transaction.SIGHASH_ALL;
|
hashType = hashType || Transaction.SIGHASH_ALL;
|
||||||
// @ts-ignore
|
if (needsOutputs(hashType)) throw new Error('Transaction needs outputs');
|
||||||
if (txb.__needsOutputs(hashType))
|
|
||||||
throw new Error('Transaction needs outputs');
|
|
||||||
|
|
||||||
// @ts-ignore
|
const input = inputs[vin];
|
||||||
const input = txb.__INPUTS[vin];
|
|
||||||
|
|
||||||
// if redeemScript was previously provided, enforce consistency
|
// if redeemScript was previously provided, enforce consistency
|
||||||
if (
|
if (
|
||||||
|
@ -1275,16 +1278,14 @@ function getSigningData(
|
||||||
// ready to sign
|
// ready to sign
|
||||||
let signatureHash: Buffer;
|
let signatureHash: Buffer;
|
||||||
if (input.hasWitness) {
|
if (input.hasWitness) {
|
||||||
// @ts-ignore
|
signatureHash = tx.hashForWitnessV0(
|
||||||
signatureHash = txb.__TX.hashForWitnessV0(
|
|
||||||
vin,
|
vin,
|
||||||
input.signScript as Buffer,
|
input.signScript as Buffer,
|
||||||
input.value as number,
|
input.value as number,
|
||||||
hashType,
|
hashType,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// @ts-ignore
|
signatureHash = tx.hashForSignature(
|
||||||
signatureHash = txb.__TX.hashForSignature(
|
|
||||||
vin,
|
vin,
|
||||||
input.signScript as Buffer,
|
input.signScript as Buffer,
|
||||||
hashType,
|
hashType,
|
||||||
|
|
Loading…
Add table
Reference in a new issue