keystore_wdc
Version:
``` npm i keystore_wdc; const KeyStore = require('keystore_wdc'); const ks = new KeyStore(); ``` #### 生成keystore ``` async function create(){ const keystore = await ks.Create("your password"); } ``` * 返回keystore,密码格式不正确返回-1。
86 lines (77 loc) • 2.86 kB
JavaScript
;
const sqlite3 = require('sqlite3').verbose();
const fs = require('fs');
const path = __dirname + "/../../../keystore";
const fileName = path + "/wallet.dat";
const AccountHandle = require('./account-handle');
class SqliteHandle {
constructor() {}
init() {
if(!fs.existsSync(path)) fs.mkdirSync(path);
if(!fs.existsSync(fileName)) {
var db = new sqlite3.Database(fileName,function(err) {
db.run("create table account_data (" +
"private_key varchar(600) PRIMARY KEY NOT NULL," +
"address varchar(100) NOT NULL," +
"name varchar(50) NOT NULL)",function(){
for(let i=1; i<=10; i++) {
let account = new AccountHandle().createAccount();
new SqliteHandle().add(account.secretKey, account.addr, 'Account' + i);
}
db.close();
});
});
}
}
add(private_key, address, name) {
let db = new sqlite3.Database(fileName, function(err){
db.run("insert into account_data(" +
"private_key, address, name) " +
"values($key,$address,$name)",
{
$key:private_key,
$address:address,
$name:name
}, function(err){
db.close();
});
});
}
getOne(addr, callback) {
let db = new sqlite3.Database(fileName, function(err){
db.get("select * from account_data " +
"where address=$addr",
{
$addr: addr
},
function(err,row){
db.close();
if(callback != undefined) callback(row);
});
});
}
getAll(callback) {
let db = new sqlite3.Database(fileName, function(err) {
db.all("select * from account_data",
function(err, rows) {
db.close();
if(callback != undefined) callback(rows);
});
});
}
modifyName(private_key, name) {
let db = new sqlite3.Database(fileName, function(err){
db.run("update account_data " +
"set name=$name " +
"where private_key = $key",
{
$key: private_key,
$name: name
}),
function(err){
db.close();
}
});
}
}
module.exports = SqliteHandle;