sets up the initial state and runs the callback when complete
function setup (cb) {
  // the address we are sending from
  var publicKeyBuf = Buffer.from(keyPair.publicKey, 'hex')
  var address = utils.pubToAddress(publicKeyBuf, true)

  // create a new account
  var account = new Account()

  // give the account some wei.
  //    Note: this needs to be a `Buffer` or a string. All
  //      strings need to be in hex.
  account.balance = '0xf00000000000000001'

  // store in the trie
  stateTrie.put(address, account.serialize(), cb)
}