Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const generateTx = ({ utxos, fromAddress, toAddress, privateKey, amount }) => {
const tx = Transaction();
tx.from(utxos);
tx.to(toAddress, toSatoshi(amount));
tx.change(fromAddress);
try {
tx.sign(privateKey);
tx.serialize();
} catch (err) {
throw new Error(`Could not sign & serialize transaction: ${err}`);
}
return tx;
};
export const fetchFee = async ({ to, from, privateKey, amount }) => {
const fromAddress = Address.fromString(from);
const toAddress = Address.fromString(to);
const utxos = await getUnspentUtxos(fromAddress);
const tx = generateTx({
utxos,
fromAddress,
toAddress,
privateKey,
amount,
});
const { inputs, outputs } = tx.toObject();
const totalInputs = inputs.reduce((p, c) => p + c.output.satoshis, 0);
const totalOutputs = outputs.reduce((p, c) => p + c.satoshis, 0);
const fee = totalInputs - totalOutputs;
return toBTC(fee);
};
export const broadcast = async ({ to, from, privateKey, amount }) => {
const fromAddress = Address.fromString(from);
const toAddress = Address.fromString(to);
const utxos = await getUnspentUtxos(fromAddress);
const tx = generateTx({
utxos,
fromAddress,
toAddress,
privateKey,
amount,
});
return await broadcastTx(tx);
};
body: JSON.stringify({ rawtx: tx.toString() }),
});
const { txid } = await raw.json();
resolve(txid);
} catch (err) {
reject(`Could not broadcast tx: ${err}`);
}
});
export const NAME = 'Dashcoin';
export const SYMBOL = 'dash';
export const URL_TX = URL + '/insight/tx/'
export const validateAddress = Address.isValid;
export const fetchFee = async ({ to, from, privateKey, amount }) => {
const fromAddress = Address.fromString(from);
const toAddress = Address.fromString(to);
const utxos = await getUnspentUtxos(fromAddress);
const tx = generateTx({
utxos,
fromAddress,
toAddress,
privateKey,
amount,
});
const { inputs, outputs } = tx.toObject();
const totalInputs = inputs.reduce((p, c) => p + c.output.satoshis, 0);
const totalOutputs = outputs.reduce((p, c) => p + c.satoshis, 0);
const fee = totalInputs - totalOutputs;
export const toPublicAddress = privateKey => {
const pk = new PrivateKey(privateKey);
return pk.toAddress(NETWORK).toString('hex');
}