Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function ledgerInput(ledgerbtc, input) {
const addressType = multisigAddressType(input.multisig);
const tx = ledgerbtc.splitTransaction(input.transactionHex, true)
if (addressType == MULTISIG_ADDRESS_TYPES.P2SH) {
return [tx, input.index, scriptToHex(multisigRedeemScript(input.multisig))];
} else {
return [tx, input.index, scriptToHex(multisigWitnessScript(input.multisig))];
}
}
inputsAreSupported() {
if (this.inputs && this.inputs.length) {
for (let i=0; i < this.inputs.length; i++) {
const input = this.inputs[i];
const inputAddressType = multisigAddressType(input.multisig);
if (inputAddressType !== MULTISIG_ADDRESS_TYPES.P2SH) {
this.inputAddressType = inputAddressType
return false;
}
}
}
return true
}
}
/**
* Retrieve Trezor format for network constant
* @param {string} network - bitcoin network
* @private
* @returns {string} Trezor format of bitcoin network
*/
function coin(network) {
return (network === NETWORKS.MAINNET ? "Bitcoin" : "Testnet");
}
const addressScriptTypes = {
[MULTISIG_ADDRESS_TYPES.P2WSH]: 'SPENDWITNESS',
[MULTISIG_ADDRESS_TYPES.P2SH]: 'SPENDMULTISIG',
[MULTISIG_ADDRESS_TYPES.P2SH_P2WSH]: 'SPENDP2SHWITNESS',
}
function trezorInput(input, bip32Path) {
const requiredSigners = multisigRequiredSigners(input.multisig);
const addressType = multisigAddressType(input.multisig)
const spendType = addressScriptTypes[addressType]
return {
script_type: spendType,
multisig: {
m: requiredSigners,
pubkeys: multisigPublicKeys(input.multisig).map((publicKey) => trezorPublicKey(publicKey)),
signatures: Array(requiredSigners).fill(''),
},
prev_hash: input.txid,
prev_index: input.index,
address_n: bip32PathToSequence(bip32Path),