Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const signMessage = (message, encodedPrivateKey) => {
const keyPair = bitcoincash.ECPair.fromWIF(encodedPrivateKey, bch.network)
const privateKey = keyPair.d.toBuffer(32)
const signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed)
return signature.toString('base64')
}
const signMessage = (message, encodedPrivateKey) => {
const keyPair = bitcoin.ECPair.fromWIF(encodedPrivateKey, [bitcoin.networks.bitcoin, bitcoin.networks.testnet])
const privateKey = keyPair.d.toBuffer(32)
const signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed)
return signature.toString('base64')
}
signMessageWithPrivKey(privateKeyWIF, message) {
let network = privateKeyWIF.charAt(0) === 'c' ? 'testnet' : 'bitcoincash';
let bitcoincash;
if(network === 'bitcoincash') {
bitcoincash = coininfo.bitcoincash.main;
} else {
bitcoincash = coininfo.bitcoincash.test;
}
let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS();
let keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib)
let privateKey = keyPair.d.toBuffer(32)
return bitcoinMessage.sign(message, privateKey, keyPair.compressed).toString('base64');
}
const signMessage = (message, encodedPrivateKey) => {
const keyPair = bitcoin.ECPair.fromWIF(encodedPrivateKey, [bitcoin.networks.bitcoin, bitcoin.networks.testnet])
const privateKey = keyPair.d.toBuffer(32)
const signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed)
return signature.toString('base64')
}
async signMessage (message, from) {
const address = await this.getWalletAddress(from)
const keyPair = await this.keyPair(address.derivationPath)
const signature = bitcoinMessage.sign(message, keyPair.privateKey, keyPair.compressed)
return signature.toString('hex')
}
if (typeof compressed !== 'boolean') {
throw new Error('Second argument must be a boolean');
}
if (!(Buffer.isBuffer(iv) && iv.length === 16)) {
throw new Error('Argument "iv" must be a 16 bytes buffer');
}
let decrypted = null;
try {
decrypted = this._decrypt(key, iv);
} catch (err) {
throw new Error('Failed to decrypt key');
}
return message.sign(msg, decrypted, compressed).toString('base64');
}
if (bip39PassphraseResult.error === false && bip39PassphraseResult.data.password) bip39Passphrase = bip39PassphraseResult.data.password;
} catch (e) {}
const mnemonic = keychainResult.data.password;
const seed = await bip39.mnemonicToSeed(mnemonic, bip39Passphrase);
const root = bip32.fromSeed(seed, network);
const keyPair = root.derivePath(path);
const privateKey = keyPair.privateKey;
let sigOptions = { extraEntropy: randomBytes(32) };
if (addressType === "bech32") sigOptions["segwitType"] = "p2wpkh" ;
if (addressType === "segwit") sigOptions["segwitType"] = "p2sh(p2wpkh)" ;
let signature = "";
if (addressType === "legacy") {
signature = bitcoinMessage.sign(message, privateKey, keyPair);
} else {
signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed, messagePrefix, sigOptions);
}
signature = signature.toString("base64");
const address = await getAddress(keyPair, network, addressType);
const isVerified = verifyMessage({ message, address, signature, selectedCrypto });
if (isVerified === true) return { error: false, data: { address, message, signature } };
return { error: true, data: "Unable to verify signature." };
} catch (e) {
return { error: true, data: e };
}
};
const signMessage = (message, encodedPrivateKey) => {
const keyPair = bitcoin.ECPair.fromWIF(encodedPrivateKey, [bitcoin.networks.bitcoin, bitcoin.networks.testnet])
const privateKey = keyPair.d.toBuffer(32)
const signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed)
return signature.toString('base64')
}