diff --git a/lib/signing.js b/lib/signing.js index 06e6c36e..72646456 100644 --- a/lib/signing.js +++ b/lib/signing.js @@ -1,5 +1,7 @@ const { Transaction } = require("ethereumjs-tx"); const util = require("ethereumjs-util"); +const { Message, PrivateKey } = require("bitcore-lib"); +const Mnemonic = require("bitcore-mnemonic"); const signTx = (keystore, pwDerivedKey, rawTx, signingAddress) => { if (!keystore.isDerivedKeyCorrect(pwDerivedKey)) { @@ -59,10 +61,18 @@ const concatSig = signature => { return util.addHexPrefix(r.concat(s, v).toString("hex")); }; +const signTxWithSeed = (mnemonic, msg) => { + const mnemoniciInstance = new Mnemonic(mnemonic); + const privateKeyInstance = new PrivateKey(mnemoniciInstance.toHDPrivateKey()); + const messageInstance = new Message(msg); + return messageInstance.sign(privateKeyInstance); +}; + module.exports = { concatSig, recoverAddress, signMsgHash, signMsg, - signTx + signTx, + signTxWithSeed };