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 balancesAPI = require('./api/balances')
7 const bytomCLI = require('./api/bytomCLI')
8 const configAPI = require('./api/config')
9 const hsmSigner = require('./api/hsmSigner')
10 const mockHsmKeysAPI = require('./api/mockHsmKeys')
11 const transactionsAPI = require('./api/transactions')
12 const transactionFeedsAPI = require('./api/transactionFeeds')
13 const unspentOutputsAPI = require('./api/unspentOutputs')
16 constructor(opts = {}) {
17 // If the first argument is a string,
18 // support the deprecated constructor params.
19 if (typeof opts === 'string') {
22 accessToken: arguments[1] || ''
25 opts.url = opts.url || 'http://localhost:9888'
26 this.connection = new Connection(opts.url, opts.accessToken, opts.agent)
27 this.signer = new hsmSigner()
29 this.accessTokens = accessTokensAPI(this)
31 this.authorizationGrants = authorizationGrantsAPI(this)
33 this.accounts = accountsAPI(this)
35 this.assets = assetsAPI(this)
37 this.balances = balancesAPI(this)
39 this.bytomCli = bytomCLI(this)
41 this.config = configAPI(this)
44 keys: mockHsmKeysAPI(this),
45 signerConnection: new Connection(`${opts.url}/mockhsm`, opts.accessToken, opts.agent)
48 this.transactions = transactionsAPI(this)
50 this.transactionFeeds = transactionFeedsAPI(this)
52 this.unspentOutputs = unspentOutputsAPI(this)
56 request(path, body = {}, skipSnakeize = false) {
57 return this.connection.request(path, body, skipSnakeize)
61 module.exports = Client