diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-02-10 02:41:51 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2017-02-10 21:24:56 +0800 |
commit | 702ee20a0179afe607383554ee89b0f863e14f63 (patch) | |
tree | 8c17629066ed981e04fd0027bc769dbd95bf7da3 /test | |
parent | 4cf44f1b41fe021653a6f45c72c19253dd352459 (diff) | |
download | dexon-solidity-702ee20a0179afe607383554ee89b0f863e14f63.tar.gz dexon-solidity-702ee20a0179afe607383554ee89b0f863e14f63.tar.zst dexon-solidity-702ee20a0179afe607383554ee89b0f863e14f63.zip |
Create getBlockByNumber RPC method
Diffstat (limited to 'test')
-rw-r--r-- | test/ExecutionFramework.cpp | 4 | ||||
-rw-r--r-- | test/RPCSession.cpp | 10 | ||||
-rw-r--r-- | test/RPCSession.h | 1 |
3 files changed, 11 insertions, 4 deletions
diff --git a/test/ExecutionFramework.cpp b/test/ExecutionFramework.cpp index 70139642..f4e5fcef 100644 --- a/test/ExecutionFramework.cpp +++ b/test/ExecutionFramework.cpp @@ -127,13 +127,13 @@ void ExecutionFramework::sendEther(Address const& _to, u256 const& _value) size_t ExecutionFramework::currentTimestamp() { - auto latestBlock = m_rpc.rpcCall("eth_getBlockByNumber", {"\"latest\"", "false"}); + auto latestBlock = m_rpc.eth_getBlockByNumber("latest", false); return size_t(u256(latestBlock.get("timestamp", "invalid").asString())); } size_t ExecutionFramework::blockTimestamp(u256 _number) { - auto latestBlock = m_rpc.rpcCall("eth_getBlockByNumber", {toString(_number), "false"}); + auto latestBlock = m_rpc.eth_getBlockByNumber(toString(_number), false); return size_t(u256(latestBlock.get("timestamp", "invalid").asString())); } diff --git a/test/RPCSession.cpp b/test/RPCSession.cpp index a58355d0..c27e73d4 100644 --- a/test/RPCSession.cpp +++ b/test/RPCSession.cpp @@ -131,6 +131,12 @@ string RPCSession::eth_getCode(string const& _address, string const& _blockNumbe return rpcCall("eth_getCode", { quote(_address), quote(_blockNumber) }).asString(); } +Json::Value RPCSession::eth_getBlockByNumber(string const& _blockNumber, bool _fullObjects) +{ + // NOTE: to_string() converts bool to 0 or 1 + return rpcCall("eth_getBlockByNumber", { quote(_blockNumber), _fullObjects ? "true" : "false" }); +} + RPCSession::TransactionReceipt RPCSession::eth_getTransactionReceipt(string const& _transactionHash) { TransactionReceipt receipt; @@ -290,9 +296,9 @@ Json::Value RPCSession::rpcCall(string const& _methodName, vector<string> const& request += "],\"id\":" + to_string(m_rpcSequence) + "}"; ++m_rpcSequence; - //cout << "Request: " << request << endl; + // cout << "Request: " << request << endl; string reply = m_ipcSocket.sendRequest(request); - //cout << "Reply: " << reply << endl; + // cout << "Reply: " << reply << endl; Json::Value result; BOOST_REQUIRE(Json::Reader().parse(reply, result, false)); diff --git a/test/RPCSession.h b/test/RPCSession.h index b2e8a309..105ba378 100644 --- a/test/RPCSession.h +++ b/test/RPCSession.h @@ -98,6 +98,7 @@ public: static RPCSession& instance(std::string const& _path); std::string eth_getCode(std::string const& _address, std::string const& _blockNumber); + Json::Value eth_getBlockByNumber(std::string const& _blockNumber, bool _fullObjects); std::string eth_call(TransactionData const& _td, std::string const& _blockNumber); TransactionReceipt eth_getTransactionReceipt(std::string const& _transactionHash); std::string eth_sendTransaction(TransactionData const& _transactionData); |