aboutsummaryrefslogtreecommitdiffstats
path: root/test/lib/mock-tx-gen.js
blob: 7aea09c59cb1ca3f933a6c291830ead3e9c1b9c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const extend = require('xtend')
const BN = require('ethereumjs-util').BN
const template = {
  'status': 'submitted',
  'txParams': {
    'from': '0x7d3517b0d011698406d6e0aed8453f0be2697926',
    'gas': '0x30d40',
    'value': '0x0',
    'nonce': '0x3',
  },
}

class TxGenerator {

  constructor () {
    this.txs = []
  }

  generate (tx = {}, opts = {}) {
    let { count, fromNonce } = opts
    let nonce = fromNonce || this.txs.length
    let txs = []
    for (let i = 0; i < count; i++) {
      txs.push(extend(template, {
        txParams: {
          nonce: hexify(nonce++),
        }
      }, tx))
    }
    this.txs = this.txs.concat(txs)
    return txs
  }

}

function hexify (number) {
  return '0x' + (new BN(number)).toString(16)
}

module.exports = TxGenerator