TLA Line data Source code
1 : // evmone: Fast Ethereum Virtual Machine implementation
2 : // Copyright 2023 The evmone Authors.
3 : // SPDX-License-Identifier: Apache-2.0
4 :
5 : #include "statetest.hpp"
6 :
7 : namespace evmone::test
8 : {
9 CBC 53 : json::json to_json(const std::unordered_map<address, state::Account>& accounts)
10 : {
11 53 : json::json j;
12 265 : for (const auto& [addr, acc] : accounts)
13 : {
14 212 : auto& j_acc = j[hex0x(addr)];
15 212 : j_acc["nonce"] = hex0x(acc.nonce);
16 212 : j_acc["balance"] = hex0x(acc.balance);
17 212 : j_acc["code"] = hex0x(bytes_view(acc.code.data(), acc.code.size()));
18 :
19 212 : auto& j_storage = j_acc["storage"] = json::json::object();
20 499 : for (const auto& [key, val] : acc.storage)
21 : {
22 287 : if (!is_zero(val.current))
23 226 : j_storage[hex0x(key)] = hex0x(val.current);
24 : }
25 : }
26 53 : return j;
27 UBC 0 : }
28 : } // namespace evmone::test
|