mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
replace BalanceAt
add addressHasCode remove m_state and sealengine
This commit is contained in:
parent
ce2258b71e
commit
763faf7b0e
@ -234,9 +234,9 @@ BOOST_AUTO_TEST_CASE(disown)
|
|||||||
BOOST_CHECK(callContractFunction("setAddr(string,address)", u256(0x40), u256(124), u256(name.length()), name) == encodeArgs());
|
BOOST_CHECK(callContractFunction("setAddr(string,address)", u256(0x40), u256(124), u256(name.length()), name) == encodeArgs());
|
||||||
BOOST_CHECK(callContractFunction("setSubRegistrar(string,address)", u256(0x40), u256(125), u256(name.length()), name) == encodeArgs());
|
BOOST_CHECK(callContractFunction("setSubRegistrar(string,address)", u256(0x40), u256(125), u256(name.length()), name) == encodeArgs());
|
||||||
|
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x124)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x124)), 0);
|
||||||
BOOST_CHECK(callContractFunction("disown(string,address)", u256(0x40), u256(0x124), name.size(), name) == encodeArgs());
|
BOOST_CHECK(callContractFunction("disown(string,address)", u256(0x40), u256(0x124), name.size(), name) == encodeArgs());
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x124)), m_fee);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x124)), m_fee);
|
||||||
|
|
||||||
BOOST_CHECK(callContractFunction("owner(string)", encodeDyn(name)) == encodeArgs(u256(0)));
|
BOOST_CHECK(callContractFunction("owner(string)", encodeDyn(name)) == encodeArgs(u256(0)));
|
||||||
BOOST_CHECK(callContractFunction("content(string)", encodeDyn(name)) == encodeArgs(u256(0)));
|
BOOST_CHECK(callContractFunction("content(string)", encodeDyn(name)) == encodeArgs(u256(0)));
|
||||||
|
@ -555,17 +555,17 @@ BOOST_AUTO_TEST_CASE(multisig_value_transfer)
|
|||||||
BOOST_REQUIRE(callContractFunction("changeRequirement(uint256)", u256(3)) == encodeArgs());
|
BOOST_REQUIRE(callContractFunction("changeRequirement(uint256)", u256(3)) == encodeArgs());
|
||||||
// check that balance is and stays zero at destination address
|
// check that balance is and stays zero at destination address
|
||||||
h256 opHash("6244b4fa93f73e09db0ae52750095ca0364a76b72bc01723c97011fcb876cc9e");
|
h256 opHash("6244b4fa93f73e09db0ae52750095ca0364a76b72bc01723c97011fcb876cc9e");
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x12);
|
m_sender = Address(0x12);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x13);
|
m_sender = Address(0x13);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x14);
|
m_sender = Address(0x14);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
// now it should go through
|
// now it should go through
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 100);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(revoke_addOwner)
|
BOOST_AUTO_TEST_CASE(revoke_addOwner)
|
||||||
@ -606,22 +606,22 @@ BOOST_AUTO_TEST_CASE(revoke_transaction)
|
|||||||
// create a transaction
|
// create a transaction
|
||||||
Address deployer = m_sender;
|
Address deployer = m_sender;
|
||||||
h256 opHash("6244b4fa93f73e09db0ae52750095ca0364a76b72bc01723c97011fcb876cc9e");
|
h256 opHash("6244b4fa93f73e09db0ae52750095ca0364a76b72bc01723c97011fcb876cc9e");
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x12);
|
m_sender = Address(0x12);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x13);
|
m_sender = Address(0x13);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x12);
|
m_sender = Address(0x12);
|
||||||
BOOST_REQUIRE(callContractFunction("revoke(bytes32)", opHash) == encodeArgs());
|
BOOST_REQUIRE(callContractFunction("revoke(bytes32)", opHash) == encodeArgs());
|
||||||
m_sender = deployer;
|
m_sender = deployer;
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x14);
|
m_sender = Address(0x14);
|
||||||
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
BOOST_REQUIRE(callContractFunction("execute(address,uint256,bytes)", h256(0x05), 100, 0x60, 0x00) == encodeArgs(opHash));
|
||||||
// now it should go through
|
// now it should go through
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 100);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(daylimit)
|
BOOST_AUTO_TEST_CASE(daylimit)
|
||||||
@ -637,27 +637,27 @@ BOOST_AUTO_TEST_CASE(daylimit)
|
|||||||
BOOST_REQUIRE(callContractFunction("changeRequirement(uint256)", u256(3)) == encodeArgs());
|
BOOST_REQUIRE(callContractFunction("changeRequirement(uint256)", u256(3)) == encodeArgs());
|
||||||
|
|
||||||
// try to send tx over daylimit
|
// try to send tx over daylimit
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
m_sender = Address(0x12);
|
m_sender = Address(0x12);
|
||||||
BOOST_REQUIRE(
|
BOOST_REQUIRE(
|
||||||
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 150, 0x60, 0x00) !=
|
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 150, 0x60, 0x00) !=
|
||||||
encodeArgs(u256(0))
|
encodeArgs(u256(0))
|
||||||
);
|
);
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
// try to send tx under daylimit by stranger
|
// try to send tx under daylimit by stranger
|
||||||
m_sender = Address(0x77);
|
m_sender = Address(0x77);
|
||||||
BOOST_REQUIRE(
|
BOOST_REQUIRE(
|
||||||
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 90, 0x60, 0x00) ==
|
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 90, 0x60, 0x00) ==
|
||||||
encodeArgs(u256(0))
|
encodeArgs(u256(0))
|
||||||
);
|
);
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 0);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 0);
|
||||||
// now send below limit by owner
|
// now send below limit by owner
|
||||||
m_sender = Address(0x12);
|
m_sender = Address(0x12);
|
||||||
BOOST_REQUIRE(
|
BOOST_REQUIRE(
|
||||||
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 90, 0x60, 0x00) ==
|
callContractFunction("execute(address,uint256,bytes)", h256(0x05), 90, 0x60, 0x00) ==
|
||||||
encodeArgs(u256(0))
|
encodeArgs(u256(0))
|
||||||
);
|
);
|
||||||
BOOST_CHECK_EQUAL(m_state.balance(Address(0x05)), 90);
|
BOOST_CHECK_EQUAL(balanceAt(Address(0x05)), 90);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(daylimit_constructor)
|
BOOST_AUTO_TEST_CASE(daylimit_constructor)
|
||||||
|
@ -1653,7 +1653,7 @@ BOOST_AUTO_TEST_CASE(suicide)
|
|||||||
compileAndRun(sourceCode, amount);
|
compileAndRun(sourceCode, amount);
|
||||||
u160 address(23);
|
u160 address(23);
|
||||||
BOOST_CHECK(callContractFunction("a(address)", address) == bytes());
|
BOOST_CHECK(callContractFunction("a(address)", address) == bytes());
|
||||||
BOOST_CHECK(!m_state.addressHasCode(m_contractAddress));
|
BOOST_CHECK(!addressHasCode(m_contractAddress));
|
||||||
BOOST_CHECK_EQUAL(balanceAt(address), amount);
|
BOOST_CHECK_EQUAL(balanceAt(address), amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1669,7 +1669,7 @@ BOOST_AUTO_TEST_CASE(selfdestruct)
|
|||||||
compileAndRun(sourceCode, amount);
|
compileAndRun(sourceCode, amount);
|
||||||
u160 address(23);
|
u160 address(23);
|
||||||
BOOST_CHECK(callContractFunction("a(address)", address) == bytes());
|
BOOST_CHECK(callContractFunction("a(address)", address) == bytes());
|
||||||
BOOST_CHECK(!m_state.addressHasCode(m_contractAddress));
|
BOOST_CHECK(!addressHasCode(m_contractAddress));
|
||||||
BOOST_CHECK_EQUAL(balanceAt(address), amount);
|
BOOST_CHECK_EQUAL(balanceAt(address), amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2467,7 +2467,7 @@ BOOST_AUTO_TEST_CASE(use_std_lib)
|
|||||||
compileAndRun(sourceCode, amount, "Icarus");
|
compileAndRun(sourceCode, amount, "Icarus");
|
||||||
u256 balanceBefore = balanceAt(m_sender);
|
u256 balanceBefore = balanceAt(m_sender);
|
||||||
BOOST_CHECK(callContractFunction("kill()") == bytes());
|
BOOST_CHECK(callContractFunction("kill()") == bytes());
|
||||||
BOOST_CHECK(!m_state.addressHasCode(m_contractAddress));
|
BOOST_CHECK(!addressHasCode(m_contractAddress));
|
||||||
BOOST_CHECK(balanceAt(m_sender) > balanceBefore);
|
BOOST_CHECK(balanceAt(m_sender) > balanceBefore);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,12 +30,10 @@ using namespace dev::solidity::test;
|
|||||||
|
|
||||||
|
|
||||||
ExecutionFramework::ExecutionFramework():
|
ExecutionFramework::ExecutionFramework():
|
||||||
m_rpc(RPCSession::instance("/tmp/test/geth.ipc")),
|
m_rpc(RPCSession::instance("/home/wins/Ethereum/testnet/ethnode1/geth.ipc")),
|
||||||
m_sender(m_rpc.account(0)),
|
m_sender(m_rpc.account(0))
|
||||||
m_state(0)
|
|
||||||
{
|
{
|
||||||
eth::NoProof::init();
|
eth::NoProof::init();
|
||||||
m_sealEngine.reset(eth::ChainParams().createSealEngine());
|
|
||||||
if (g_logVerbosity != -1)
|
if (g_logVerbosity != -1)
|
||||||
g_logVerbosity = 0;
|
g_logVerbosity = 0;
|
||||||
|
|
||||||
@ -84,6 +82,12 @@ void ExecutionFramework::sendMessage(bytes const& _data, bool _isCreation, u256
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ExecutionFramework::addressHasCode(Address const& _addr)
|
||||||
|
{
|
||||||
|
string code = m_rpc.eth_getCode(toString(_addr), "latest");
|
||||||
|
return !code.empty() && code != "0x";
|
||||||
|
}
|
||||||
|
|
||||||
u256 ExecutionFramework::balanceAt(Address const& _addr)
|
u256 ExecutionFramework::balanceAt(Address const& _addr)
|
||||||
{
|
{
|
||||||
return u256(m_rpc.eth_getBalance(toString(_addr), "latest"));
|
return u256(m_rpc.eth_getBalance(toString(_addr), "latest"));
|
||||||
|
@ -253,6 +253,7 @@ protected:
|
|||||||
|
|
||||||
u256 balanceAt(Address const& _addr);
|
u256 balanceAt(Address const& _addr);
|
||||||
bool storageEmpty(Address const& _addr);
|
bool storageEmpty(Address const& _addr);
|
||||||
|
bool addressHasCode(Address const& _addr);
|
||||||
|
|
||||||
RPCSession& m_rpc;
|
RPCSession& m_rpc;
|
||||||
|
|
||||||
@ -263,7 +264,6 @@ protected:
|
|||||||
bytes data;
|
bytes data;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unique_ptr<eth::SealEngineFace> m_sealEngine;
|
|
||||||
size_t m_optimizeRuns = 200;
|
size_t m_optimizeRuns = 200;
|
||||||
bool m_optimize = false;
|
bool m_optimize = false;
|
||||||
bool m_addStandardSources = false;
|
bool m_addStandardSources = false;
|
||||||
@ -271,7 +271,6 @@ protected:
|
|||||||
Address m_sender;
|
Address m_sender;
|
||||||
Address m_contractAddress;
|
Address m_contractAddress;
|
||||||
eth::EnvInfo m_envInfo;
|
eth::EnvInfo m_envInfo;
|
||||||
eth::State m_state;
|
|
||||||
u256 const m_gasPrice = 100 * eth::szabo;
|
u256 const m_gasPrice = 100 * eth::szabo;
|
||||||
u256 const m_gas = 100000000;
|
u256 const m_gas = 100000000;
|
||||||
bytes m_output;
|
bytes m_output;
|
||||||
|
Loading…
Reference in New Issue
Block a user