diff --git a/contracts/test_api/test_api.cpp b/contracts/test_api/test_api.cpp index f55e83979256d951c81a0d6f9af33892d865c38c..7f2cc31842bfda6a9ab3004bed79170614b2c508 100644 --- a/contracts/test_api/test_api.cpp +++ b/contracts/test_api/test_api.cpp @@ -160,7 +160,7 @@ extern "C" { */ // test permission - WASM_TEST_HANDLER(test_permission, check_authorization); + WASM_TEST_HANDLER_EX(test_permission, check_authorization); //unhandled test call eosio_assert(false, "Unknown Test"); diff --git a/contracts/test_api/test_api.hpp b/contracts/test_api/test_api.hpp index 98494ef76453a99d0c2700e44fb9bc9985739509..b4a61eb5745e4b8668bf2b78135f3afe6f9e5820 100644 --- a/contracts/test_api/test_api.hpp +++ b/contracts/test_api/test_api.hpp @@ -279,5 +279,5 @@ struct test_softfloat { */ struct test_permission { - static void check_authorization(); + static void check_authorization(uint64_t receiver, uint64_t code, uint64_t action); }; diff --git a/contracts/test_api/test_permission.cpp b/contracts/test_api/test_permission.cpp index 15d5dc03fd47710be247d8693201c058c2b4ae5b..709a828cbb21e680b85f7491c37940c76c762046 100644 --- a/contracts/test_api/test_permission.cpp +++ b/contracts/test_api/test_permission.cpp @@ -13,19 +13,20 @@ #include "test_api.hpp" -using namespace eosio; - struct check_auth { account_name account; permission_name permission; - vector pubkeys; + std::vector pubkeys; EOSLIB_SERIALIZE( check_auth, (account)(permission)(pubkeys) ) }; -void test_permission::check_authorization() { - auto self = current_receiver(); +void test_permission::check_authorization(uint64_t receiver, uint64_t code, uint64_t action) { + (void)code; + (void)action; + using namespace eosio; + auto self = receiver; auto params = unpack_action_data(); uint64_t res64 = (uint64_t)::check_authorization( params.account, params.permission, (char*)params.pubkeys.data(), params.pubkeys.size()*sizeof(public_key) ); diff --git a/libraries/chain/chain_controller.cpp b/libraries/chain/chain_controller.cpp index 8abb09528a1d1e5bec90b7dad8c98fae2994905c..ee0c44fe26dc32b9ce4ce0ecfb1819eea344a18d 100644 --- a/libraries/chain/chain_controller.cpp +++ b/libraries/chain/chain_controller.cpp @@ -970,8 +970,9 @@ bool chain_controller::check_authorization( account_name account, permission_nam bool allow_unused_signatures)const { auto checker = make_auth_checker( [&](const permission_level& p){ return get_permission(p).auth; }, - get_global_properties().configuration.max_authority_depth, - provided_keys); + [](const permission_level& ) {}, + get_global_properties().configuration.max_authority_depth, + provided_keys); auto satisfied = checker.satisfied({account, permission});