@meterio/flex-framework
Version:
A library implements Meter Flex interface
53 lines • 3.57 kB
JavaScript
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==
;