UNPKG

@vechain/connex.driver-nodejs

Version:

Connex framework driver implementation in NodeJS

52 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const secp256k1_1 = require("thor-devkit/dist/cry/secp256k1"); const address_1 = require("thor-devkit/dist/cry/address"); /** class simply implements Wallet interface */ class SimpleWallet { constructor() { this.keys = []; } get list() { return this.keys.map(k => { return { address: k.address, sign(msgHash) { return Promise.resolve(secp256k1_1.secp256k1.sign(msgHash, k.privateKey)); } }; }); } /** * import private key * @param privateKey hex string presented private key * @returns address derived from the private key */ import(privateKey) { if (privateKey.startsWith('0x')) { privateKey = privateKey.slice(2); } if (!/^[0-9a-f]{64}$/i.test(privateKey)) { throw new Error('invalid private key'); } const buf = Buffer.from(privateKey, 'hex'); const addr = '0x' + address_1.publicKeyToAddress(secp256k1_1.secp256k1.derivePublicKey(buf)).toString('hex'); this.keys.push({ address: addr, privateKey: buf }); return addr; } /** * remove corresponding key by given address * @param addr address * @returns true if found and removed, false otherwise */ remove(addr) { const i = this.keys.findIndex(k => k.address === addr.toLowerCase()); if (i >= 0) { this.keys.splice(i, 1); return true; } return false; } } exports.SimpleWallet = SimpleWallet; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXdhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zaW1wbGUtd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsOERBQTBEO0FBQzFELDBEQUFpRTtBQUVqRSwrQ0FBK0M7QUFDL0MsTUFBYSxZQUFZO0lBQXpCO1FBQ3FCLFNBQUksR0FBRyxFQUFpQixDQUFBO0lBNEM3QyxDQUFDO0lBMUNHLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckIsT0FBTztnQkFDSCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87Z0JBQ2xCLElBQUksQ0FBQyxPQUFlO29CQUNoQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO2dCQUNqRSxDQUFDO2FBQ0osQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBa0I7UUFDNUIsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdCLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7U0FDekM7UUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsNEJBQWtCLENBQUMscUJBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO1FBQ2xELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsSUFBWTtRQUN0QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3RCLE9BQU8sSUFBSSxDQUFBO1NBQ2Q7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0NBQ0o7QUE3Q0Qsb0NBNkNDIn0=