Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop to beta #1650

Merged
merged 31 commits into from
Sep 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
949fc27
1560 slow catchup
kladkogex Aug 29, 2023
2475147
1560
kladkogex Aug 29, 2023
c1efbfb
SKALE 1560 slow catchup
kladkogex Aug 29, 2023
0537220
Merge pull request #1630 from skalenetwork/1560_slow_catchup
DmytroNazarenko Aug 31, 2023
2d3a7eb
IS-256 HACK do_register() in stats::element only in stop(), to avoid …
dimalit Sep 4, 2023
82659fe
Don't use setup-docker in functional-tests
dimalit Sep 5, 2023
d8ada22
1637 use 21k for gasEstimateStep if gas used is less
olehnikolaiev Sep 7, 2023
a832517
1638 fix cmake build and disable tests id deps
olehnikolaiev Sep 7, 2023
794dd78
remove tests from deps
olehnikolaiev Sep 7, 2023
d01b21b
1637 add unittest
olehnikolaiev Sep 7, 2023
b232296
1637 add unittest
olehnikolaiev Sep 7, 2023
26bcca1
IS-715 Adapt TQ tests for re-sorting inside TQ. TODO remove it
dimalit Sep 8, 2023
e9bc7ed
IS-715 Disable logs_range test
dimalit Sep 8, 2023
83f5e45
IS-715 Comment out logs_range
dimalit Sep 11, 2023
79dfc4a
IS-715 Adapt TQ unit tests for re-sorting inside TQ. TODO remove it
dimalit Sep 11, 2023
862bf01
Merge branch 'develop' into bug/1637-gasEstimateStep-21k
olehnikolaiev Sep 11, 2023
116a5ff
Merge branch 'develop' into bug/remove-docker
dimalit Sep 11, 2023
c7911bf
Merge branch 'develop' into bug/1638-fix-cmake-build
olehnikolaiev Sep 11, 2023
f2023d7
Don't use setup-docker in functional-tests
dimalit Sep 11, 2023
8070526
Merge branch 'develop' into bug/1637-gasEstimateStep-21k
olehnikolaiev Sep 11, 2023
1d6c662
Merge branch 'develop' into bug/1638-fix-cmake-build
olehnikolaiev Sep 11, 2023
3e6698c
Merge pull request #1639 from skalenetwork/bug/1637-gasEstimateStep-21k
olehnikolaiev Sep 12, 2023
54ad4d4
Merge branch 'develop' into bug/1638-fix-cmake-build
olehnikolaiev Sep 12, 2023
98f342d
Merge pull request #1643 from skalenetwork/bug/1638-fix-cmake-build
olehnikolaiev Sep 12, 2023
268cd9f
Update README.md (#1648)
kladkogex Sep 13, 2023
ff4781e
Merge branch 'develop' into bug/IS-256-sigsegv-in-queue
dimalit Sep 14, 2023
6273ea4
SA-976 Exit 0 if internal exit reason
dimalit Sep 14, 2023
17cacb4
Merge pull request #1635 from skalenetwork/bug/IS-256-sigsegv-in-queue
DmytroNazarenko Sep 15, 2023
238cb82
Merge branch 'develop' into bug/SA-976-exit-1
DmytroNazarenko Sep 15, 2023
8564160
Merge pull request #1649 from skalenetwork/bug/SA-976-exit-1
DmytroNazarenko Sep 15, 2023
73c8f38
Merge branch 'beta' into develop
DmytroNazarenko Sep 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/functional-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@
sudo npm install -g yarn
sudo chown -R runner:runner ~/.config # HACK

- uses: docker-practice/actions-setup-docker@v1

- name: Prepare SGX keys/certs
run: |
echo "${{ secrets.sgx_key }}" > sgx_certs/sgx.key
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ If you have already cloned the repo and forgot to pass `--recurse-submodules`, e
```
sudo apt update
sudo apt install autoconf build-essential cmake libprocps-dev libtool texinfo wget yasm flex bison btrfs-progs
sudo apt install make build-essential cmake pkg-config libgnutls28-dev libssl-dev unzip zlib1g-dev libgcrypt20-dev docker.io gcc-9 g++-9 gperf clang-format-11
sudo apt install make build-essential cmake pkg-config libgnutls28-dev libssl-dev unzip zlib1g-dev libgcrypt20-dev docker.io gcc-9 g++-9 gperf clang-format-11 gnutls-dev
```

NB cmake needs to be of version >=3.31, git of version >=2.18
Expand Down
60 changes: 30 additions & 30 deletions deps/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ if [ "$WITH_UNWIND" = "yes" ];
#eval autoheader
#eval automake --add-missing
eval autoreconf -i
eval ./configure --disable-shared --prefix="$INSTALL_ROOT"
eval ./configure --disable-shared --disable-tests --prefix="$INSTALL_ROOT"
cd ..
fi
echo -e "${COLOR_INFO}building it${COLOR_DOTS}...${COLOR_RESET}"
Expand Down Expand Up @@ -1113,7 +1113,7 @@ then
# ..
#cd ../..
eval ./autogen.sh
eval ./configure "${CONF_CROSSCOMPILING_OPTS_GENERIC}" --enable-static --disable-shared --prefix="$INSTALL_ROOT" "${CONF_DEBUG_OPTIONS}"
eval ./configure "${CONF_CROSSCOMPILING_OPTS_GENERIC}" --enable-static --disable-shared --disable-samples --prefix="$INSTALL_ROOT" "${CONF_DEBUG_OPTIONS}"
cd ..
fi
#cd libevent/build
Expand Down Expand Up @@ -1142,7 +1142,7 @@ then
if [ ! -f "libuv-from-git.tar.gz" ];
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/libuv/libuv.git
eval git clone https://github.com/libuv/libuv.git
cd libuv
eval git checkout v1.x
eval git pull
Expand Down Expand Up @@ -1191,11 +1191,11 @@ then
if [ ! -f "libwebsockets-from-git.tar.gz" ];
then
echo -e "${COLOR_INFO}downloading it${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/warmcat/libwebsockets.git
eval git clone https://github.com/warmcat/libwebsockets.git
eval cd libwebsockets
# eval git checkout v4.1-stable
eval git checkout v4.3-stable
eval git pull
# eval git checkout v4.1-stable
eval git checkout v4.3-stable
eval git pull
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf libwebsockets-from-git.tar.gz ./libwebsockets
Expand Down Expand Up @@ -1391,7 +1391,7 @@ then
eval "$WGET" https://boostorg.jfrog.io/artifactory/main/release/1.68.0/source/boost_1_68_0.tar.bz2
fi
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -xf boost_1_68_0.tar.bz2
eval tar -xf boost_1_68_0.tar.bz2
fi
cd boost_1_68_0
echo -e "${COLOR_INFO}configuring and building it${COLOR_DOTS}...${COLOR_RESET}"
Expand Down Expand Up @@ -1996,10 +1996,10 @@ then
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/google/glog.git --recursive
cd glog
eval git checkout ee6faf13b20de9536f456bd84584f4ab4db1ceb4
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
cd glog
eval git checkout ee6faf13b20de9536f456bd84584f4ab4db1ceb4
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf glog-from-git.tar.gz ./glog
else
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
Expand All @@ -2010,7 +2010,7 @@ then
eval mkdir -p build
cd build
eval "$CMAKE" "${CMAKE_CROSSCOMPILING_OPTS}" -DCMAKE_INSTALL_PREFIX="$INSTALL_ROOT" -DCMAKE_BUILD_TYPE="$TOP_CMAKE_BUILD_TYPE" \
-DBUILD_SHARED_LIBS=OFF -DWITH_UNWIND=OFF \
-DBUILD_SHARED_LIBS=OFF -DWITH_UNWIND=OFF -DWITH_GTEST=OFF \
..
cd ..
else
Expand Down Expand Up @@ -2077,11 +2077,11 @@ then
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/facebook/folly.git --recursive
cd folly
eval git checkout 5c8fc1b622422a1c73f46d6fb51ac1164d8efb0f
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf folly-from-git.tar.gz ./folly
cd folly
eval git checkout 5c8fc1b622422a1c73f46d6fb51ac1164d8efb0f
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf folly-from-git.tar.gz ./folly
else
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -xzf folly-from-git.tar.gz
Expand Down Expand Up @@ -2165,10 +2165,10 @@ then
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/google/googletest.git --recursive
cd googletest
eval git checkout 4c5650f68866e3c2e60361d5c4c95c6f335fb64b
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
cd googletest
eval git checkout 4c5650f68866e3c2e60361d5c4c95c6f335fb64b
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf gtest-from-git.tar.gz ./googletest
else
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
Expand Down Expand Up @@ -2208,10 +2208,10 @@ then
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/facebookincubator/fizz.git --recursive
cd fizz
eval git checkout 93003f4161f7cebe1c121b3232215db8314c2ce7
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
cd fizz
eval git checkout 93003f4161f7cebe1c121b3232215db8314c2ce7
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf fizz-from-git.tar.gz ./fizz
else
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
Expand Down Expand Up @@ -2253,10 +2253,10 @@ then
then
echo -e "${COLOR_INFO}getting it from git${COLOR_DOTS}...${COLOR_RESET}"
eval git clone https://github.com/facebook/wangle.git --recursive
cd wangle
eval git checkout 7249d3f8d18bcd4bc13649d13654ccb2a771f7b3
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
cd wangle
eval git checkout 7249d3f8d18bcd4bc13649d13654ccb2a771f7b3
cd ..
echo -e "${COLOR_INFO}archiving it${COLOR_DOTS}...${COLOR_RESET}"
eval tar -czf wangle-from-git.tar.gz ./wangle
else
echo -e "${COLOR_INFO}unpacking it${COLOR_DOTS}...${COLOR_RESET}"
Expand Down
4 changes: 2 additions & 2 deletions libdevcore/Common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,8 @@ void ExitHandler::exitHandler( int nSignalNo, ExitHandler::exit_code_t ec ) {
s_ec = ec;
}

// indicate failure if signal is not INT or TERM!
if ( s_ec == ec_success && nSignalNo != SIGINT && nSignalNo != SIGTERM )
// indicate failure if signal is not INT or TERM or internal (-1)
if ( s_ec == ec_success && nSignalNo > 0 && nSignalNo != SIGINT && nSignalNo != SIGTERM )
s_ec = ExitHandler::ec_failure;

s_bStop = true;
Expand Down
2 changes: 1 addition & 1 deletion libethereum/ClientBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ std::pair< u256, ExecutionResult > ClientBase::estimateGas( Address const& _from
estimateGasStep( upperBound, bk, _from, _dest, _value, gasPrice, _data );
if ( estimatedStep.first ) {
auto executionResult = estimatedStep.second;
auto gasUsed = executionResult.gasUsed.convert_to< int64_t >();
auto gasUsed = std::max( executionResult.gasUsed.convert_to< int64_t >(), lowerBound );

estimatedStep = estimateGasStep( gasUsed, bk, _from, _dest, _value, gasPrice, _data );
if ( estimatedStep.first ) {
Expand Down
2 changes: 1 addition & 1 deletion libskutils/include/skutils/stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ class element : public skutils::ref_retain_release {
element( const char* strSubSystem, const char* strProtocol, const char* strMethod,
int /*nServerIndex*/, int /*ipVer*/ );
virtual ~element();
void stop() const;
void stop();
void setMethod( const char* strMethod ) const;
void setError() const;
double getDurationInSeconds() const;
Expand Down
4 changes: 2 additions & 2 deletions libskutils/src/stats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,6 @@ element::element( const char* strSubSystem, const char* strProtocol, const char*
strProtocol_ = "N/A";
if ( strMethod_.empty() )
strMethod_ = g_strMethodNameUnknown;
do_register();
}
element::~element() {
stop();
Expand All @@ -420,12 +419,13 @@ void element::do_unregister() {
queue::getQueueForSubsystem( strSubSystem_.c_str() ).do_unregister( rttElement );
}

void element::stop() const {
void element::stop() {
lock_type lock( mtx() );
if ( isStopped_ )
return;
isStopped_ = true;
tpEnd_ = skutils::stats::clock::now();
do_register();
}

void element::setMethod( const char* strMethod ) const {
Expand Down
2 changes: 1 addition & 1 deletion skaled/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ target_link_libraries(
devcore
Boost::program_options
skutils
"${DEPS_INSTALL_ROOT}/lib/liblzma.a"
"${DEPS_INSTALL_ROOT}/lib/libunwind.a"
"${DEPS_INSTALL_ROOT}/lib/liblzma.a"
pthread
idn2
batched-io
Expand Down
2 changes: 1 addition & 1 deletion storage_benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ target_link_libraries(
historic
skutils
devcore
"${DEPS_INSTALL_ROOT}/lib/liblzma.a"
"${DEPS_INSTALL_ROOT}/lib/libunwind.a"
"${DEPS_INSTALL_ROOT}/lib/liblzma.a"
)

#target_include_directories(evm_benchmark PRIVATE ../utils)
Expand Down
16 changes: 10 additions & 6 deletions test/unittests/libethereum/TransactionQueue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,20 +111,22 @@ BOOST_AUTO_TEST_CASE( tqPriority ) {
BOOST_CHECK( ( Transactions{tx2, tx0, tx1, tx3, tx5, tx4} ) == txq.topTransactions( 256 ) );

txq.drop( tx0.sha3() );
BOOST_CHECK( ( Transactions{tx2, tx1, tx3, tx5, tx4} ) == txq.topTransactions( 256 ) );
// prev BOOST_CHECK( ( Transactions{tx2, tx1, tx3, tx5, tx4} ) == txq.topTransactions( 256 ) );
// now tx4 has nonce increase 1, and goes lower then tx5 and tx3
BOOST_CHECK( ( Transactions{tx2, tx1, tx4, tx3, tx5} ) == txq.topTransactions( 256 ) );
txq.drop( tx1.sha3() );
BOOST_CHECK( ( Transactions{tx2, tx3, tx5, tx4} ) == txq.topTransactions( 256 ) );
BOOST_CHECK( ( Transactions{tx2, tx4, tx3, tx5} ) == txq.topTransactions( 256 ) );
txq.drop( tx5.sha3() );
BOOST_CHECK( ( Transactions{tx2, tx3, tx4} ) == txq.topTransactions( 256 ) );
BOOST_CHECK( ( Transactions{tx2, tx4, tx3} ) == txq.topTransactions( 256 ) );

Transaction tx6( 0, gasCostMed, gas, dest, bytes(), 20, sender1 );
txq.import( tx6 );
BOOST_CHECK( ( Transactions{tx2, tx3, tx4, tx6} ) == txq.topTransactions( 256 ) );
BOOST_CHECK( ( Transactions{tx2, tx4, tx3, tx6} ) == txq.topTransactions( 256 ) );

Transaction tx7( 0, gasCostHigh, gas, dest, bytes(), 2, sender2 );
txq.import( tx7 );
// deterministic signature: hash of tx5 and tx7 will be same
BOOST_CHECK( ( Transactions{tx2, tx3, tx4, tx6} ) == txq.topTransactions( 256 ) );
BOOST_CHECK( ( Transactions{tx2, tx4, tx3, tx6} ) == txq.topTransactions( 256 ) );
}

BOOST_AUTO_TEST_CASE( tqNonceChange ) {
Expand Down Expand Up @@ -167,7 +169,9 @@ BOOST_AUTO_TEST_CASE( tqNonceChange ) {
std::cout << tx.from() << " " << tx.nonce() << std::endl;
}
// expected BAD result [tx10], [tx11, tx23], [tx12, tx22], [tx13] !!!
BOOST_REQUIRE( ( Transactions{tx10, tx11, tx22, tx23, tx12, tx13 } ) == top6 );
// prev without sort BOOST_REQUIRE( ( Transactions{tx10, tx11, tx22, tx23, tx12, tx13 } ) == top6 );
// with sort:
BOOST_REQUIRE( ( Transactions{tx10, tx22, tx11, tx23, tx12, tx13 } ) == top6 );
}

BOOST_AUTO_TEST_CASE( tqFuture ) {
Expand Down
79 changes: 70 additions & 9 deletions test/unittests/libweb3jsonrpc/jsonrpc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -795,22 +795,23 @@ BOOST_AUTO_TEST_CASE( simple_contract ) {
result, "0x0000000000000000000000000000000000000000000000000000000000000007" );
}

/*
// As block rotation is not exact now - let's use approximate comparisons
#define REQUIRE_APPROX_EQUAL(a, b) BOOST_REQUIRE(4*(a) > 3*(b) && 4*(a) < 5*(b))

BOOST_AUTO_TEST_CASE( logs_range ) {
BOOST_AUTO_TEST_CASE( logs_range, *boost::unit_test::disabled() ) {
JsonRpcFixture fixture;
dev::eth::simulateMining( *( fixture.client ), 1 );

/*
pragma solidity >=0.4.10 <0.7.0;

contract Logger{
fallback() external payable {
log2(bytes32(block.number+1), bytes32(block.number), "dimalit");
}
}
*/
//pragma solidity >=0.4.10 <0.7.0;

//contract Logger{
// fallback() external payable {
// log2(bytes32(block.number+1), bytes32(block.number), "dimalit");
// }
//}

string bytecode =
"6080604052348015600f57600080fd5b50607d80601d6000396000f3fe60806040527f64696d616c69740000000000000000000000000000000000000000000000000043600102600143016001026040518082815260200191505060405180910390a200fea2646970667358221220ecafb98cd573366a37976cb7a4489abe5389d1b5989cd7b7136c8eb0c5ba0b5664736f6c63430006000033";

Expand Down Expand Up @@ -965,6 +966,7 @@ contract Logger{
BOOST_REQUIRE_EQUAL(res["blockNumber"], "0x200");
BOOST_REQUIRE_EQUAL(res["to"], contractAddress);
}
*/

BOOST_AUTO_TEST_CASE( deploy_contract_from_owner ) {
JsonRpcFixture fixture( c_genesisConfigString );
Expand Down Expand Up @@ -1804,6 +1806,65 @@ contract Logger{
BOOST_REQUIRE_EQUAL(logs.size(), 24);
}

BOOST_AUTO_TEST_CASE( estimate_gas_low_gas_txn ) {
JsonRpcFixture fixture;
dev::eth::simulateMining( *( fixture.client ), 10 );

auto senderAddress = fixture.coinbase.address();

/*
// SPDX-License-Identifier: None
pragma solidity ^0.6.0;

contract TestEstimateGas {
uint256[256] number;
uint256 counter = 0;

function store(uint256 x) public {
number[counter] = x;
counter += 1;
}

function clear(uint256 pos) public {
number[pos] = 0;
}
}
*/

string bytecode = "608060405260006101005534801561001657600080fd5b50610104806100266000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80636057361d146037578063c0fe1af8146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050608d565b005b608b60048036036020811015607657600080fd5b810190808035906020019092919050505060b8565b005b806000610100546101008110609e57fe5b018190555060016101006000828254019250508190555050565b60008082610100811060c657fe5b01819055505056fea26469706673582212206c8da972693a5b8c9bf59c197c4a0c554e9f51abd20047572c9c19125b533d2964736f6c634300060c0033";

Json::Value create;
create["code"] = bytecode;
create["gas"] = "180000"; // TODO or change global default of 90000?

string deployHash = fixture.rpcClient->eth_sendTransaction( create );
dev::eth::mineTransaction( *( fixture.client ), 1 );

Json::Value deployReceipt = fixture.rpcClient->eth_getTransactionReceipt( deployHash );
string contractAddress = deployReceipt["contractAddress"].asString();

Json::Value txStore1; // call store(1)
txStore1["to"] = contractAddress;
txStore1["data"] = "0x6057361d0000000000000000000000000000000000000000000000000000000000000001";
txStore1["from"] = toJS( senderAddress );
txStore1["gasPrice"] = fixture.rpcClient->eth_gasPrice();
string txHash = fixture.rpcClient->eth_call( txStore1, "latest" );

Json::Value estimateGasCall; // call clear(0)
estimateGasCall["to"] = contractAddress;
estimateGasCall["data"] = "0xc0fe1af80000000000000000000000000000000000000000000000000000000000000000";
estimateGasCall["from"] = toJS( senderAddress );
estimateGasCall["gasPrice"] = fixture.rpcClient->eth_gasPrice();
string estimatedGas = fixture.rpcClient->eth_estimateGas( estimateGasCall );

dev::bytes data = dev::jsToBytes( estimateGasCall["data"].asString() );

BOOST_REQUIRE( dev::jsToU256( estimatedGas ) > dev::eth::TransactionBase::baseGasRequired(
false, &data, fixture.client->chainParams().scheduleForBlockNumber(
fixture.client->number() ) ) );
BOOST_REQUIRE( dev::jsToU256( estimatedGas ) == 21871 );
}

BOOST_AUTO_TEST_CASE( storage_limit_contract ) {
JsonRpcFixture fixture;
dev::eth::simulateMining( *( fixture.client ), 10 );
Expand Down