UNPKG

@meterio/flex-framework

Version:

A library implements Meter Flex interface

53 lines 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SimpleWallet = void 0; const secp256k1_1 = require("@meterio/devkit/dist/cry/secp256k1"); const address_1 = require("@meterio/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXdhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kcml2ZXIvc2ltcGxlLXdhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrRUFBOEQ7QUFDOUQsOERBQXFFO0FBRXJFLCtDQUErQztBQUMvQyxNQUFhLFlBQVk7SUFBekI7UUFDcUIsU0FBSSxHQUFHLEVBQWlCLENBQUE7SUE0QzdDLENBQUM7SUExQ0csSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQixPQUFPO2dCQUNILE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztnQkFDbEIsSUFBSSxDQUFDLE9BQWU7b0JBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7Z0JBQ2pFLENBQUM7YUFDSixDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFrQjtRQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDbkM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtTQUN6QztRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyw0QkFBa0IsQ0FBQyxxQkFBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDbEQsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxJQUFZO1FBQ3RCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDdEIsT0FBTyxJQUFJLENBQUE7U0FDZDtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7Q0FDSjtBQTdDRCxvQ0E2Q0MifQ==