OSDN Git Service

add the peer information page.
[bytom/bytom-electron.git] / src / sdk / client.js
1 const Connection = require('./connection')
2 const authorizationGrantsAPI = require('./api/authorizationGrants')
3 const accessTokensAPI = require('./api/accessTokens')
4 const accountsAPI = require('./api/accounts')
5 const assetsAPI = require('./api/assets')
6 const backUpAPI = require('./api/backUp')
7 const balancesAPI = require('./api/balances')
8 const bytomCLI = require('./api/bytomCLI')
9 const configAPI = require('./api/config')
10 const hsmSigner = require('./api/hsmSigner')
11 const mockHsmKeysAPI = require('./api/mockHsmKeys')
12 const transactionsAPI = require('./api/transactions')
13 const transactionFeedsAPI = require('./api/transactionFeeds')
14 const unspentOutputsAPI = require('./api/unspentOutputs')
15 const peersAPI = require('./api/peer')
16
17 class Client {
18   constructor(opts = {}) {
19     // If the first argument is a string,
20     // support the deprecated constructor params.
21     if (typeof opts === 'string') {
22       opts = {
23         url: arguments[0],
24         accessToken: arguments[1] || ''
25       }
26     }
27     opts.url = opts.url || 'http://localhost:9888'
28     this.connection = new Connection(opts.url, opts.accessToken, opts.agent)
29     this.signer = new hsmSigner()
30
31     this.accessTokens = accessTokensAPI(this)
32
33     this.authorizationGrants = authorizationGrantsAPI(this)
34
35     this.accounts = accountsAPI(this)
36
37     this.assets = assetsAPI(this)
38
39     this.backUp = backUpAPI(this)
40
41     this.balances = balancesAPI(this)
42
43     this.bytomCli = bytomCLI(this)
44
45     this.config = configAPI(this)
46
47     this.mockHsm = {
48       keys: mockHsmKeysAPI(this),
49       signerConnection: new Connection(`${opts.url}/mockhsm`, opts.accessToken, opts.agent)
50     }
51
52     this.peers = peersAPI(this)
53
54     this.transactions = transactionsAPI(this)
55
56     this.transactionFeeds = transactionFeedsAPI(this)
57
58     this.unspentOutputs = unspentOutputsAPI(this)
59   }
60
61
62   request(path, body = {}, skipSnakeize = false) {
63     return this.connection.request(path, body, skipSnakeize)
64   }
65 }
66
67 module.exports = Client