|
COOPENOMICS
v1
Кооперативная Экономика
|
#include <boost/test/unit_test.hpp>#include <eosio/testing/tester.hpp>#include <eosio/chain/abi_serializer.hpp>#include <eosio/chain/global_property_object.hpp>#include <eosio/chain/wast_to_wasm.hpp>#include <fc/variant_object.hpp>#include "contracts.hpp"#include "test_symbol.hpp"Классы | |
| class | eosio_msig_tester |
Определения типов | |
| using | mvo = fc::mutable_variant_object |
Функции | |
| BOOST_FIXTURE_TEST_CASE (propose_approve_execute, eosio_msig_tester) | |
| FC_LOG_AND_RETHROW () BOOST_FIXTURE_TEST_CASE(propose_approve_unapprove | |
| push_action ("alice"_n, "propose"_n, mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", vector< permission_level >{{ "alice"_n, config::active_name }})) | |
| push_action ("alice"_n, "approve"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name })) | |
| push_action ("alice"_n, "unapprove"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name })) | |
| alice ("proposal_name", "first")("executer" | |
| eosio_assert_message_is ("transaction authorization failed")) | |
| push_action ("alice"_n, "propose"_n, mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", vector< permission_level >{ { "alice"_n, config::active_name }, { "bob"_n, config::active_name } })) | |
| push_action ("bob"_n, "approve"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "bob"_n, config::active_name })) | |
| check_traces (trace, { {{"receiver", "eosio.msig"_n}, {"act_name", "exec"_n}}, {{"receiver", config::system_account_name}, {"act_name", "reqauth"_n}} }) | |
| alice ("proposal_name", "third")("trx" | |
| trx ("requested", vector< permission_level >{ { "alice"_n, config::active_name } })) | |
| produce_blocks () | |
| push_action ("alice"_n, "propose"_n, mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", perm)) | |
| check_traces (trace, { {{"receiver", "eosio.msig"_n}, {"act_name", "exec"_n}}, {{"receiver", config::system_account_name}, {"act_name", "setcode"_n}} }) | |
| set_producers ({"alice"_n,"bob"_n,"carol"_n}) | |
| produce_blocks (50) | |
| create_accounts ({ "eosio.token"_n, "eosio.rex"_n }) | |
| set_code ("eosio.token"_n, contracts::token_wasm()) | |
| set_abi ("eosio.token"_n, contracts::token_abi().data()) | |
| create_currency ("eosio.token"_n, config::system_account_name, core_sym::from_string("10000000000.0000")) | |
| issue (config::system_account_name, core_sym::from_string("1000000000.0000")) | |
| BOOST_REQUIRE_EQUAL (core_sym::from_string("1000000000.0000"), get_balance(config::system_account_name)+get_balance("eosio.ramfee"_n)+get_balance("eosio.stake"_n)+get_balance("eosio.ram"_n)) | |
| set_code (config::system_account_name, contracts::system_wasm()) | |
| set_abi (config::system_account_name, contracts::system_abi().data()) | |
| create_account_with_resources ("alice1111111"_n, "eosio"_n, core_sym::from_string("1.0000"), false) | |
| create_account_with_resources ("bob111111111"_n, "eosio"_n, core_sym::from_string("0.4500"), false) | |
| create_account_with_resources ("carol1111111"_n, "eosio"_n, core_sym::from_string("1.0000"), false) | |
| push_action ("carol"_n, "approve"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "carol"_n, config::active_name })) | |
| BOOST_REQUIRE_EXCEPTION (create_account_with_resources("alice1111112"_n, "eosio"_n, core_sym::from_string("1.0000"), false), eosio_assert_message_exception, eosio_assert_message_is("rejecting all actions")) | |
| create_accounts ({ "apple"_n }) | |
| set_producers ({"alice"_n,"bob"_n,"carol"_n, "apple"_n}) | |
| BOOST_REQUIRE_EQUAL (core_sym::from_string("1000000000.0000"), get_balance(config::system_account_name)) | |
| BOOST_REQUIRE_EXCEPTION (push_action("alice"_n, "exec"_n, mvo()("proposer", "alice")("proposal_name", "first")("executer", "alice")), eosio_assert_message_exception, eosio_assert_message_is("transaction authorization failed")) | |
| push_action ("apple"_n, "approve"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "apple"_n, config::active_name })) | |
| push_action ("alice"_n, "invalidate"_n, mvo()("account", "alice")) | |
| set_abi ("eosio.msig"_n, contracts::util::msig_abi_old().data()) | |
| set_code ("eosio.msig"_n, contracts::msig_wasm()) | |
| set_abi ("eosio.msig"_n, contracts::msig_abi().data()) | |
| push_action ("alice"_n, "approve"_n, mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name })("proposal_hash", trx_hash)) | |
| push_action ("alice"_n, "propose"_n, mvo()("proposer", "alice")("proposal_name", "first")("trx", trx1)("requested", vector< permission_level >{{ "alice"_n, config::active_name }})) | |
| push_action ("alice"_n, "cancel"_n, mvo()("proposer", "alice")("proposal_name", "first")("canceler", "alice")) | |
| push_action ("alice"_n, "propose"_n, mvo()("proposer", "alice")("proposal_name", "first")("trx", trx2)("requested", vector< permission_level >{ { "alice"_n, config::active_name }, { "alice"_n, config::owner_name } })) | |
| set_code ("sendinline"_n, system_contracts::testing::test_contracts::sendinline_wasm()) | |
| set_abi ("sendinline"_n, system_contracts::testing::test_contracts::sendinline_abi().data()) | |
| create_accounts ({"wrongcon"_n}) | |
| set_code ("wrongcon"_n, system_contracts::testing::test_contracts::sendinline_wasm()) | |
| set_abi ("wrongcon"_n, system_contracts::testing::test_contracts::sendinline_abi().data()) | |
| eosio ("action_name", "reqauth")("auths" | |
| check_traces (trace, { {{"receiver", "sendinline"_n}, {"act_name", "send"_n}}, {{"receiver", config::system_account_name}, {"act_name", "reqauth"_n}} }) | |
Переменные | |
| eosio_msig_tester | try |
| proposer | |
| alice | |
| eosio_assert_message_exception | |
| transaction_trace_ptr | trace |
| params | max_inline_action_size = 512 * 1024 |
| vector< permission_level > | perm = { { "alice"_n, config::active_name }, { "bob"_n, config::active_name } } |
| auto | wasm = contracts::util::exchange_wasm() |
| fc::variant | pretty_trx |
| transaction | trx = reqauth( "alice"_n, {permission_level{"alice"_n, config::active_name}}, abi_serializer_max_time ) |
| vector< permission_level > | action_perm = {{"eosio"_n, config::active_name}} |
| auto | trx_hash = fc::sha256::hash( trx ) |
| auto | not_trx_hash = fc::sha256::hash( trx_hash ) |
| permission_level | |
| auto | trx1_hash = fc::sha256::hash( trx1 ) |
| auto | trx2 |
| action | act = get_action( config::system_account_name, "reqauth"_n, {}, mvo()("from", "alice")) |
| contract | |
| action | approve_act |
| using mvo = fc::mutable_variant_object |
| alice | ( | "proposal_name" | , |
| "first" | |||
| ) |
| alice | ( | "proposal_name" | , |
| "third" | |||
| ) |
| BOOST_FIXTURE_TEST_CASE | ( | propose_approve_execute | , |
| eosio_msig_tester | |||
| ) |
| BOOST_REQUIRE_EQUAL | ( | core_sym::from_string("1000000000.0000") | , |
| get_balance(config::system_account_name) | |||
| ) |
| BOOST_REQUIRE_EQUAL | ( | core_sym::from_string("1000000000.0000") | , |
| get_balance(config::system_account_name)+get_balance("eosio.ramfee"_n)+get_balance("eosio.stake"_n)+get_balance("eosio.ram"_n) | |||
| ) |
| BOOST_REQUIRE_EXCEPTION | ( | create_account_with_resources("alice1111112"_n, "eosio"_n, core_sym::from_string("1.0000"), false) | , |
| eosio_assert_message_exception | , | ||
| eosio_assert_message_is("rejecting all actions") | |||
| ) |
| BOOST_REQUIRE_EXCEPTION | ( | push_action("alice"_n, "exec"_n, mvo()("proposer", "alice")("proposal_name", "first")("executer", "alice")) | , |
| eosio_assert_message_exception | , | ||
| eosio_assert_message_is("transaction authorization failed") | |||
| ) |
| check_traces | ( | trace | , |
| { {{"receiver", "eosio.msig"_n}, {"act_name", "exec"_n}}, {{"receiver", config::system_account_name}, {"act_name", "reqauth"_n}} } | |||
| ) |
| check_traces | ( | trace | , |
| { {{"receiver", "eosio.msig"_n}, {"act_name", "exec"_n}}, {{"receiver", config::system_account_name}, {"act_name", "setcode"_n}} } | |||
| ) |
| check_traces | ( | trace | , |
| { {{"receiver", "sendinline"_n}, {"act_name", "send"_n}}, {{"receiver", config::system_account_name}, {"act_name", "reqauth"_n}} } | |||
| ) |
| create_account_with_resources | ( | "alice1111111" | _n, |
| "eosio" | _n, | ||
| core_sym::from_string("1.0000") | , | ||
| false | |||
| ) |
| create_account_with_resources | ( | "bob111111111" | _n, |
| "eosio" | _n, | ||
| core_sym::from_string("0.4500") | , | ||
| false | |||
| ) |
| create_account_with_resources | ( | "carol1111111" | _n, |
| "eosio" | _n, | ||
| core_sym::from_string("1.0000") | , | ||
| false | |||
| ) |
| create_accounts | ( | { "apple"_n } | ) |
| create_accounts | ( | { "eosio.token"_n, "eosio.rex"_n } | ) |
| create_accounts | ( | {"wrongcon"_n} | ) |
| create_currency | ( | "eosio.token" | _n, |
| config::system_account_name | , | ||
| core_sym::from_string("10000000000.0000") | |||
| ) |
| eosio | ( | "action_name" | , |
| "reqauth" | |||
| ) |
| eosio_assert_message_is | ( | "transaction authorization failed" | ) |
| FC_LOG_AND_RETHROW | ( | ) |
| issue | ( | config::system_account_name | , |
| core_sym::from_string("1000000000.0000") | |||
| ) |
| produce_blocks | ( | ) |
| produce_blocks | ( | 50 | ) |
| push_action | ( | "alice" | _n, |
| "approve" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name })("proposal_hash", trx_hash) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "approve" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name }) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "cancel" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("canceler", "alice") | |||
| ) |
| push_action | ( | "alice" | _n, |
| "propose" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", perm) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "propose" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", vector< permission_level >{ { "alice"_n, config::active_name }, { "bob"_n, config::active_name } }) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "propose" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("trx", trx)("requested", vector< permission_level >{{ "alice"_n, config::active_name }}) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "propose" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("trx", trx1)("requested", vector< permission_level >{{ "alice"_n, config::active_name }}) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "propose" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("trx", trx2)("requested", vector< permission_level >{ { "alice"_n, config::active_name }, { "alice"_n, config::owner_name } }) | |||
| ) |
| push_action | ( | "alice" | _n, |
| "unapprove" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "alice"_n, config::active_name }) | |||
| ) |
| push_action | ( | "apple" | _n, |
| "approve" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "apple"_n, config::active_name }) | |||
| ) |
| push_action | ( | "bob" | _n, |
| "approve" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "bob"_n, config::active_name }) | |||
| ) |
| push_action | ( | "carol" | _n, |
| "approve" | _n, | ||
| mvo()("proposer", "alice")("proposal_name", "first")("level", permission_level{ "carol"_n, config::active_name }) | |||
| ) |
| set_abi | ( | "eosio.msig" | _n, |
| contracts::msig_abi().data() | |||
| ) |
| set_abi | ( | "eosio.msig" | _n, |
| contracts::util::msig_abi_old().data() | |||
| ) |
| set_abi | ( | "eosio.token" | _n, |
| contracts::token_abi().data() | |||
| ) |
| set_abi | ( | "sendinline" | _n, |
| system_contracts::testing::test_contracts::sendinline_abi().data() | |||
| ) |
| set_abi | ( | "wrongcon" | _n, |
| system_contracts::testing::test_contracts::sendinline_abi().data() | |||
| ) |
| set_abi | ( | config::system_account_name | , |
| contracts::system_abi().data() | |||
| ) |
| set_code | ( | "eosio.msig" | _n, |
| contracts::msig_wasm() | |||
| ) |
| set_code | ( | "eosio.token" | _n, |
| contracts::token_wasm() | |||
| ) |
| set_code | ( | "sendinline" | _n, |
| system_contracts::testing::test_contracts::sendinline_wasm() | |||
| ) |
| set_code | ( | "wrongcon" | _n, |
| system_contracts::testing::test_contracts::sendinline_wasm() | |||
| ) |
| set_code | ( | config::system_account_name | , |
| contracts::system_wasm() | |||
| ) |
| set_producers | ( | {"alice"_n,"bob"_n,"carol"_n, "apple"_n} | ) |
| set_producers | ( | {"alice"_n,"bob"_n,"carol"_n} | ) |
| trx | ( | "requested" | , |
| vector< permission_level >{ { "alice"_n, config::active_name } } | |||
| ) |
| vector< permission_level > action_perm = {{"eosio"_n, config::active_name}} |
| alice |
| action approve_act |
| contract |
| eosio_assert_message_exception |
| params max_inline_action_size = 512 * 1024 |
| auto not_trx_hash = fc::sha256::hash( trx_hash ) |
| vector< permission_level > perm = { { "alice"_n, config::active_name }, { "bob"_n, config::active_name } } |
| permission_level |
| fc::variant pretty_trx |
| proposer |
| transaction_trace_ptr trace |
| transaction trx = reqauth( "alice"_n, {permission_level{"alice"_n, config::active_name}}, abi_serializer_max_time ) |
| auto trx1_hash = fc::sha256::hash( trx1 ) |
| auto trx2 |
| auto trx_hash = fc::sha256::hash( trx ) |
| auto wasm = contracts::util::exchange_wasm() |