OSDN Git Service

44aebcd701dc5f54b89cb43d953fe73278a4fc5f
[bytom/Byone.git] / src / utils / Keychain.js
1 export default class Keychain {
2
3   constructor(){
4     this.pairs = {
5     };
6   }
7
8   static placeholder(){ return new Keychain(); }
9   static fromJson(json){
10     let p = Object.assign(this.placeholder(), json);
11     if(json.hasOwnProperty('pairs')) p.pairs = json.pairs;
12     return p;
13   }
14
15   findIdentity(publicKey, net){ return Object.values(this.pairs[net]).find(id => id.xpub === publicKey); }
16   findByGuid(guid, net){ return Object.values(this.pairs[net]).find(id => id.guid === guid); }
17   findByAddress(address, net){ return Object.values(this.pairs[net]).find(id => id.address === address || id.vpAddress=== address || id.bytom1.address === address); }
18
19   removeByAlias(alias, net){
20     if(this.pairs[net][alias]){
21       delete(this.pairs[net][alias])
22     }
23   }
24   removeUnverifyIdentity(net){
25     const pairObject = Object.values(this.pairs[net]).filter(id => !id.vMnemonic );
26     for(let o of pairObject){
27       delete this.pairs[net][o.alias];
28     }
29   }
30 }