Pre-release version bumps; test fixes for latest mesh/ganache versions (#2363)
* Use pre-release ver's for tests against deployment * Pre-release version number bumps * pin sra_client dev deps to prereleases for testing against deployed package * middlewares: incl doctest in tests of deployment * Unpin mesh, use new snapshot, & pay protocol fees * .gitignore gen'd wrappers for new contracts * test build_tx() & support for empty TxParams.from_ * fix doc: fill TAKERAssetAmount, not maker...
This commit is contained in:
@@ -4,6 +4,8 @@ import random
|
||||
|
||||
import pytest
|
||||
from eth_utils import remove_0x_prefix
|
||||
from web3 import Web3
|
||||
from web3.gas_strategies.rpc import rpc_gas_price_strategy
|
||||
|
||||
from zero_ex.contract_addresses import chain_to_addresses, ChainId
|
||||
from zero_ex.contract_wrappers import TxParams
|
||||
@@ -85,23 +87,39 @@ def test_exchange_wrapper__fill_order(
|
||||
)
|
||||
order_signature = sign_hash(ganache_provider, maker, order_hash)
|
||||
|
||||
web3 = Web3(ganache_provider)
|
||||
web3.eth.setGasPriceStrategy( # pylint: disable=no-member
|
||||
rpc_gas_price_strategy
|
||||
)
|
||||
|
||||
fill_results = exchange_wrapper.fill_order.call(
|
||||
order=order,
|
||||
taker_asset_fill_amount=order["takerAssetAmount"],
|
||||
signature=order_signature,
|
||||
tx_params=TxParams(from_=taker),
|
||||
tx_params=TxParams(
|
||||
from_=taker,
|
||||
value=web3.eth.generateGasPrice() # pylint: disable=no-member
|
||||
* 150000,
|
||||
),
|
||||
)
|
||||
assert fill_results["makerAssetFilledAmount"] == 1
|
||||
assert fill_results["takerAssetFilledAmount"] == 1
|
||||
assert fill_results["makerFeePaid"] == 0
|
||||
assert fill_results["takerFeePaid"] == 0
|
||||
assert fill_results["protocolFeePaid"] == 0
|
||||
assert (
|
||||
fill_results["protocolFeePaid"]
|
||||
== web3.eth.generateGasPrice() * 150000 # pylint: disable=no-member
|
||||
)
|
||||
|
||||
tx_hash = exchange_wrapper.fill_order.send_transaction(
|
||||
order=order,
|
||||
taker_asset_fill_amount=order["takerAssetAmount"],
|
||||
signature=order_signature,
|
||||
tx_params=TxParams(from_=taker),
|
||||
tx_params=TxParams(
|
||||
from_=taker,
|
||||
value=web3.eth.generateGasPrice() # pylint: disable=no-member
|
||||
* 150000,
|
||||
),
|
||||
)
|
||||
assert_valid(tx_hash.hex(), "/hexSchema")
|
||||
|
||||
@@ -109,6 +127,88 @@ def test_exchange_wrapper__fill_order(
|
||||
assert_fill_log(fill_event[0].args, maker, taker, order, order_hash)
|
||||
|
||||
|
||||
def test_exchange_wrapper__fill_order__build_then_send(
|
||||
accounts,
|
||||
exchange_wrapper, # pylint: disable=redefined-outer-name
|
||||
ganache_provider,
|
||||
weth_asset_data,
|
||||
zrx_asset_data,
|
||||
):
|
||||
"""Test filling an order."""
|
||||
taker = accounts[0]
|
||||
maker = accounts[1]
|
||||
exchange_address = exchange_wrapper.contract_address
|
||||
order = create_test_order(maker, 1, weth_asset_data, 1, zrx_asset_data)
|
||||
order_hash = generate_order_hash_hex(
|
||||
order=order, exchange_address=exchange_address, chain_id=1337
|
||||
)
|
||||
order_signature = sign_hash(ganache_provider, maker, order_hash)
|
||||
|
||||
web3 = Web3(ganache_provider)
|
||||
web3.eth.setGasPriceStrategy( # pylint: disable=no-member
|
||||
rpc_gas_price_strategy
|
||||
)
|
||||
|
||||
tx_hash = Web3(ganache_provider).eth.sendTransaction(
|
||||
exchange_wrapper.fill_order.build_transaction(
|
||||
order=order,
|
||||
taker_asset_fill_amount=order["takerAssetAmount"],
|
||||
signature=order_signature,
|
||||
tx_params=TxParams(
|
||||
from_=taker,
|
||||
value=web3.eth.generateGasPrice() # pylint: disable=no-member
|
||||
* 150000,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
assert_valid(tx_hash.hex(), "/hexSchema")
|
||||
|
||||
fill_event = exchange_wrapper.get_fill_event(tx_hash)
|
||||
assert_fill_log(fill_event[0].args, maker, taker, order, order_hash)
|
||||
|
||||
|
||||
def test_exchange_wrapper__fill_order__without_from_tx_param(
|
||||
accounts,
|
||||
exchange_wrapper, # pylint: disable=redefined-outer-name
|
||||
ganache_provider,
|
||||
weth_asset_data,
|
||||
zrx_asset_data,
|
||||
):
|
||||
"""Test filling an order."""
|
||||
maker = accounts[1]
|
||||
exchange_address = exchange_wrapper.contract_address
|
||||
order = create_test_order(maker, 1, weth_asset_data, 1, zrx_asset_data)
|
||||
order_hash = generate_order_hash_hex(
|
||||
order=order, exchange_address=exchange_address, chain_id=1337
|
||||
)
|
||||
order_signature = sign_hash(ganache_provider, maker, order_hash)
|
||||
|
||||
web3 = Web3(ganache_provider)
|
||||
web3.eth.setGasPriceStrategy( # pylint: disable=no-member
|
||||
rpc_gas_price_strategy
|
||||
)
|
||||
|
||||
exchange_wrapper._web3_eth.defaultAccount = ( # pylint: disable=protected-access
|
||||
None
|
||||
)
|
||||
exchange_wrapper._web3_eth.accounts.clear() # pylint: disable=protected-access
|
||||
|
||||
built_tx = exchange_wrapper.fill_order.build_transaction(
|
||||
order=order,
|
||||
taker_asset_fill_amount=order["takerAssetAmount"],
|
||||
signature=order_signature,
|
||||
tx_params=TxParams(
|
||||
value=web3.eth.generateGasPrice() # pylint: disable=no-member
|
||||
* 150000,
|
||||
),
|
||||
)
|
||||
assert (
|
||||
built_tx["data"][:824]
|
||||
== "0x9b44d5560000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003a00000000000000000000000006ecbe1db9ef729cbe972c83fb886247691fb6beb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005af3107a40000000000000000000000000000000000000000000000000"
|
||||
)
|
||||
|
||||
|
||||
# pylint: disable=too-many-locals
|
||||
def test_exchange_wrapper__batch_fill_orders(
|
||||
accounts,
|
||||
@@ -136,11 +236,22 @@ def test_exchange_wrapper__batch_fill_orders(
|
||||
for order_hash in order_hashes
|
||||
]
|
||||
taker_amounts = [order["takerAssetAmount"] for order in orders]
|
||||
|
||||
web3 = Web3(ganache_provider)
|
||||
web3.eth.setGasPriceStrategy( # pylint: disable=no-member
|
||||
rpc_gas_price_strategy
|
||||
)
|
||||
|
||||
tx_hash = exchange_wrapper.batch_fill_orders.send_transaction(
|
||||
orders=orders,
|
||||
taker_asset_fill_amounts=taker_amounts,
|
||||
signatures=order_signatures,
|
||||
tx_params=TxParams(from_=taker),
|
||||
tx_params=TxParams(
|
||||
from_=taker,
|
||||
value=2
|
||||
* web3.eth.generateGasPrice() # pylint: disable=no-member
|
||||
* 150000,
|
||||
),
|
||||
)
|
||||
assert_valid(tx_hash.hex(), "/hexSchema")
|
||||
|
||||
|
Reference in New Issue
Block a user