Пример #1
0
def test_mine_block(db):
    k, v, k2, v2 = accounts()
    chain = Chain({v: {"balance": utils.denoms.ether * 1}}, difficulty=1)
    genesis_hash = chain.state.prev_headers[0].hash
    blk2 = mine_next_block(chain, coinbase=v)
    blk3 = mine_next_block(chain, coinbase=v)
    blk4 = mine_next_block(chain, coinbase=v)
    blk5 = mine_next_block(chain, coinbase=v)
    assert chain.state.get_balance(
        v) == chain.env.config['BLOCK_REWARD'] + chain.mk_poststate_of_blockhash(blk4.hash).get_balance(v)
    assert chain.state.get_balance(
        v) == chain.env.config['BLOCK_REWARD'] * 2 + chain.mk_poststate_of_blockhash(blk3.hash).get_balance(v)
    assert chain.state.get_balance(
        v) == chain.env.config['BLOCK_REWARD'] * 3 + chain.mk_poststate_of_blockhash(blk2.hash).get_balance(v)
    assert chain.state.get_balance(
        v) == chain.env.config['BLOCK_REWARD'] * 4 + chain.mk_poststate_of_blockhash(genesis_hash).get_balance(v)
    assert blk2.prevhash == genesis_hash
Пример #2
0
def test_mine_block_with_transaction2(db):
    k, v, k2, v2 = accounts()
    chain = Chain({v: {"balance": utils.denoms.ether * 1}}, difficulty=1)
    genesis_hash = chain.state.prev_headers[0].hash
    tx = get_transaction()
    blk2 = mine_next_block(chain, coinbase=v, transactions=[tx])
    assert tx in blk2.transactions
    assert tx in blk2.transactions
    assert chain.get_block(blk2.hash) == blk2
    assert tx.gasprice == 0
    assert chain.state.get_balance(
        v) == chain.env.config['BLOCK_REWARD'] + chain.mk_poststate_of_blockhash(genesis_hash).get_balance(v) - tx.value