OSDN Git Service

refactor: update code
[bytom/Byone.git] / src / models / account.js
1 import bytom from './bytom'
2
3 let account = {
4   setupNet: bytom.setupNet
5 }
6
7 account.create = function(accountAlias, keyAlias, passwd, success, error) {
8   let retPromise = new Promise((resolve, reject) => {
9     bytom.keys
10       .create(keyAlias, passwd)
11       .then(res => {
12         bytom.accounts
13           .createAccountUseServer(res.xpub, accountAlias)
14           .then(ret => {
15             resolve(ret)
16           })
17           .catch(error => {
18             reject(error)
19           })
20       })
21       .catch(error => {
22         reject(error)
23       })
24   })
25   return retPromise
26 }
27
28 const ASSET_BTM =
29   'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
30
31 account.balance = function(guid, dstAsset) {
32   if (dstAsset == undefined) {
33     dstAsset = ASSET_BTM
34   }
35
36   let retPromise = new Promise((resolve, reject) => {
37     bytom.accounts
38       .listAddressUseServer(guid)
39       .then(addresses => {
40         let balance = 0
41         addresses.forEach(item => {
42           if (item.balances != null) {
43             item.balances.forEach(asset => {
44               if (asset.asset == dstAsset) {
45                 balance += asset.balance
46               }
47             })
48           }
49         })
50         resolve(balance / 100000000)
51       })
52       .catch(error => {
53         reject(error)
54       })
55   })
56   return retPromise
57 }
58
59 account.list = function() {
60   let retPromise = new Promise((resolve, reject) => {
61     bytom.accounts
62       .listAccountUseServer()
63       .then(accounts => {
64         accounts.forEach(account => {
65           this.balance(account.guid).then(balance => {
66             account.balance = balance
67           })
68         })
69         resolve(accounts)
70       })
71       .catch(error => {
72         reject(error)
73       })
74   })
75
76   return retPromise
77 }
78
79 account.backup = function() {
80   return bytom.wallet.backup()
81 }
82
83 account.restore = function(walletImage) {
84   return bytom.wallet.restore(walletImage)
85 }
86
87 export default account