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')
18 constructor(opts = {}) {
19 // If the first argument is a string,
20 // support the deprecated constructor params.
21 if (typeof opts === 'string') {
24 accessToken: arguments[1] || ''
27 opts.url = opts.url || 'http://localhost:9888'
28 this.connection = new Connection(opts.url, opts.accessToken, opts.agent)
29 this.signer = new hsmSigner()
31 this.accessTokens = accessTokensAPI(this)
33 this.authorizationGrants = authorizationGrantsAPI(this)
35 this.accounts = accountsAPI(this)
37 this.assets = assetsAPI(this)
39 this.backUp = backUpAPI(this)
41 this.balances = balancesAPI(this)
43 this.bytomCli = bytomCLI(this)
45 this.config = configAPI(this)
48 keys: mockHsmKeysAPI(this),
49 signerConnection: new Connection(`${opts.url}/mockhsm`, opts.accessToken, opts.agent)
52 this.peers = peersAPI(this)
54 this.transactions = transactionsAPI(this)
56 this.transactionFeeds = transactionFeedsAPI(this)
58 this.unspentOutputs = unspentOutputsAPI(this)
62 request(path, body = {}, skipSnakeize = false) {
63 return this.connection.request(path, body, skipSnakeize)
67 module.exports = Client