提交 031473e1 编写于 作者: K Kevin Heifner 提交者: Bart Wyatt

Manually merging in

Merge pull request #681 from EOSIO/gcc-issue-665

Fixes for GCC compiler errors
上级 d9f880fd
......@@ -382,9 +382,9 @@ read_write::push_transactions_results read_write::push_transactions(const read_w
read_only::get_code_results read_only::get_code( const get_code_params& params )const {
get_code_results result;
result.name = params.name;
result.account_name = params.account_name;
const auto& d = db.get_database();
const auto& accnt = d.get<account_object,by_name>( params.name );
const auto& accnt = d.get<account_object,by_name>( params.account_name );
if( accnt.code.size() ) {
result.wast = wasm_to_wast( (const uint8_t*)accnt.code.data(), accnt.code.size() );
......@@ -403,11 +403,11 @@ read_only::get_account_results read_only::get_account( const get_account_params&
using namespace eosio::contracts;
get_account_results result;
result.name = params.name;
result.account_name = params.account_name;
const auto& d = db.get_database();
const auto& balance = d.get<balance_object,by_owner_name>( params.name );
const auto& staked_balance = d.get<staked_balance_object,by_owner_name>( params.name );
const auto& balance = d.get<balance_object,by_owner_name>( params.account_name );
const auto& staked_balance = d.get<staked_balance_object,by_owner_name>( params.account_name );
result.eos_balance = asset(balance.balance, EOS_SYMBOL);
result.staked_balance = asset(staked_balance.staked_balance);
......@@ -415,8 +415,8 @@ read_only::get_account_results read_only::get_account( const get_account_params&
result.last_unstaking_time = staked_balance.last_unstaking_time;
const auto& permissions = d.get_index<permission_index,by_owner>();
auto perm = permissions.lower_bound( boost::make_tuple( params.name ) );
while( perm != permissions.end() && perm->owner == params.name ) {
auto perm = permissions.lower_bound( boost::make_tuple( params.account_name ) );
while( perm != permissions.end() && perm->owner == params.account_name ) {
/// TODO: lookup perm->parent name
name parent;
......
......@@ -70,12 +70,12 @@ public:
get_info_results get_info(const get_info_params&) const;
struct producer_info {
name name;
name producer_name;
};
struct get_account_results {
name name;
name account_name;
asset eos_balance = asset(0,EOS_SYMBOL);
asset staked_balance;
asset unstaking_balance;
......@@ -84,20 +84,20 @@ public:
optional<producer_info> producer;
};
struct get_account_params {
name name;
name account_name;
};
get_account_results get_account( const get_account_params& params )const;
struct get_code_results {
name name;
name account_name;
string wast;
fc::sha256 code_hash;
optional<abi_def> abi;
};
struct get_code_params {
name name;
name account_name;
};
get_code_results get_code( const get_code_params& params )const;
......@@ -333,11 +333,11 @@ FC_REFLECT( eosio::chain_apis::read_write::push_transaction_results, (transactio
FC_REFLECT( eosio::chain_apis::read_only::get_table_rows_params, (json)(table_key)(scope)(code)(table)(lower_bound)(upper_bound)(limit) )
FC_REFLECT( eosio::chain_apis::read_only::get_table_rows_result, (rows)(more) );
FC_REFLECT( eosio::chain_apis::read_only::get_account_results, (name)(eos_balance)(staked_balance)(unstaking_balance)(last_unstaking_time)(permissions)(producer) )
FC_REFLECT( eosio::chain_apis::read_only::get_code_results, (name)(code_hash)(wast)(abi) )
FC_REFLECT( eosio::chain_apis::read_only::get_account_params, (name) )
FC_REFLECT( eosio::chain_apis::read_only::get_code_params, (name) )
FC_REFLECT( eosio::chain_apis::read_only::producer_info, (name) )
FC_REFLECT( eosio::chain_apis::read_only::get_account_results, (account_name)(eos_balance)(staked_balance)(unstaking_balance)(last_unstaking_time)(permissions)(producer) )
FC_REFLECT( eosio::chain_apis::read_only::get_code_results, (account_name)(code_hash)(wast)(abi) )
FC_REFLECT( eosio::chain_apis::read_only::get_account_params, (account_name) )
FC_REFLECT( eosio::chain_apis::read_only::get_code_params, (account_name) )
FC_REFLECT( eosio::chain_apis::read_only::producer_info, (producer_name) )
FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_params, (code)(action)(args) )
FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_result, (binargs)(required_scope)(required_auth) )
FC_REFLECT( eosio::chain_apis::read_only::abi_bin_to_json_params, (code)(action)(binargs) )
......
......@@ -380,7 +380,7 @@ struct set_account_permission_subcommand {
name parent;
if (parentStr.size() == 0) {
// see if we can auto-determine the proper parent
const auto account_result = call(get_account_func, fc::mutable_variant_object("name", accountStr));
const auto account_result = call(get_account_func, fc::mutable_variant_object("account_name", accountStr));
const auto& existing_permissions = account_result.get_object()["permissions"].get_array();
auto permissionPredicate = [this](const auto& perm) {
return perm.is_object() &&
......@@ -534,7 +534,7 @@ int main( int argc, char** argv ) {
getAccount->add_option("name", accountName, localized("The name of the account to retrieve"))->required();
getAccount->set_callback([&] {
std::cout << fc::json::to_pretty_string(call(get_account_func,
fc::mutable_variant_object("name", accountName)))
fc::mutable_variant_object("account_name", accountName)))
<< std::endl;
});
......@@ -546,7 +546,7 @@ int main( int argc, char** argv ) {
getCode->add_option("-c,--code",codeFilename, localized("The name of the file to save the contract .wast to") );
getCode->add_option("-a,--abi",abiFilename, localized("The name of the file to save the contract .abi to") );
getCode->set_callback([&] {
auto result = call(get_code_func, fc::mutable_variant_object("name", accountName));
auto result = call(get_code_func, fc::mutable_variant_object("account_name", accountName));
std::cout << localized("code hash: ${code_hash}", ("code_hash", result["code_hash"].as_string())) << std::endl;
......@@ -679,13 +679,18 @@ int main( int argc, char** argv ) {
contracts::setcode handler;
handler.account = account;
handler.code.assign(wasm.begin(), wasm.end());
//if (abi->count())
// TODO handler.abi = fc::json::from_file(abiPath).as<types::abi>();
signed_transaction trx;
trx.write_scope = sort_names({config::system_account_name, account});
trx.actions.emplace_back( vector<chain::permission_level>{{account,"active"}}, handler);
if (abi->count()) {
contracts::setabi handler;
handler.account = account;
handler.abi = fc::json::from_file(abiPath).as<contracts::abi_def>();
trx.actions.emplace_back( vector<chain::permission_level>{{account,"active"}}, handler);
}
std::cout << localized("Publishing contract...") << std::endl;
std::cout << fc::json::to_pretty_string(push_transaction(trx, !skip_sign)) << std::endl;
});
......
......@@ -526,7 +526,7 @@ BOOST_FIXTURE_TEST_CASE(test_case_name, testing_fixture)
#define RUN_CODE_ABI_WITH_TRANSFER(account_name, test_wast, test_abi) \
types::setcode handler; \
handler.abi = fc::json::from_string(test_abi).as<types::abi>(); \
handler.code_abi = fc::json::from_string(test_abi).as<types::abi>(); \
RUN_CODE_HANDLER_WITH_TRANSFER(account_name, test_wast)
#define TEST_CASE_RUN_CODE_ABI_W_XFER(test_case_name, account_name, test_wast, test_abi) \
......
......@@ -446,7 +446,7 @@ BOOST_FIXTURE_TEST_CASE(abi_cycle, testing_fixture)
BOOST_CHECK_EXCEPTION( abis.validate(), fc::assert_exception, is_assert_exception );
abi = fc::json::from_string(struct_cycle_abi).as<types::abi>();
abis.setAbi(abi);
abis.set_abi(abi);
BOOST_CHECK_EXCEPTION( abis.validate(), fc::assert_exception, is_assert_exception );
} FC_LOG_AND_RETHROW() }
......@@ -751,7 +751,7 @@ BOOST_FIXTURE_TEST_CASE(updateauth, testing_fixture)
"account" : "updauth.acct",
"permission" : "updauth.prm",
"parent" : "updauth.prnt",
"authority" : {
"new_authority" : {
"threshold" : "2147483145",
"keys" : [ {"key" : "EOS65rXebLhtk2aTTzP4e9x1AQZs7c5NNXJp89W8R3HyaA6Zyd4im", "weight" : 57005},
{"key" : "EOS5eVr9TVnqwnUBNwf9kwMTbrHvX5aPyyEG97dz2b2TNeqWRzbJf", "weight" : 57605} ],
......@@ -767,21 +767,21 @@ BOOST_FIXTURE_TEST_CASE(updateauth, testing_fixture)
BOOST_CHECK_EQUAL("updauth.acct", updateauth.account);
BOOST_CHECK_EQUAL("updauth.prm", updateauth.permission);
BOOST_CHECK_EQUAL("updauth.prnt", updateauth.parent);
BOOST_CHECK_EQUAL(2147483145u, updateauth.authority.threshold);
BOOST_REQUIRE_EQUAL(2, updateauth.authority.keys.size());
BOOST_CHECK_EQUAL("EOS65rXebLhtk2aTTzP4e9x1AQZs7c5NNXJp89W8R3HyaA6Zyd4im", (std::string)updateauth.authority.keys[0].key);
BOOST_CHECK_EQUAL(57005u, updateauth.authority.keys[0].weight);
BOOST_CHECK_EQUAL("EOS5eVr9TVnqwnUBNwf9kwMTbrHvX5aPyyEG97dz2b2TNeqWRzbJf", (std::string)updateauth.authority.keys[1].key);
BOOST_CHECK_EQUAL(57605u, updateauth.authority.keys[1].weight);
BOOST_REQUIRE_EQUAL(2, updateauth.authority.accounts.size());
BOOST_CHECK_EQUAL("prm.acct1", updateauth.authority.accounts[0].permission.account);
BOOST_CHECK_EQUAL("prm.prm1", updateauth.authority.accounts[0].permission.permission);
BOOST_CHECK_EQUAL(53005u, updateauth.authority.accounts[0].weight);
BOOST_CHECK_EQUAL("prm.acct2", updateauth.authority.accounts[1].permission.account);
BOOST_CHECK_EQUAL("prm.prm2", updateauth.authority.accounts[1].permission.permission);
BOOST_CHECK_EQUAL(53405u, updateauth.authority.accounts[1].weight);
BOOST_CHECK_EQUAL(2147483145u, updateauth.new_authority.threshold);
BOOST_REQUIRE_EQUAL(2, updateauth.new_authority.keys.size());
BOOST_CHECK_EQUAL("EOS65rXebLhtk2aTTzP4e9x1AQZs7c5NNXJp89W8R3HyaA6Zyd4im", (std::string)updateauth.new_authority.keys[0].key);
BOOST_CHECK_EQUAL(57005u, updateauth.new_authority.keys[0].weight);
BOOST_CHECK_EQUAL("EOS5eVr9TVnqwnUBNwf9kwMTbrHvX5aPyyEG97dz2b2TNeqWRzbJf", (std::string)updateauth.new_authority.keys[1].key);
BOOST_CHECK_EQUAL(57605u, updateauth.new_authority.keys[1].weight);
BOOST_REQUIRE_EQUAL(2, updateauth.new_authority.accounts.size());
BOOST_CHECK_EQUAL("prm.acct1", updateauth.new_authority.accounts[0].permission.account);
BOOST_CHECK_EQUAL("prm.prm1", updateauth.new_authority.accounts[0].permission.permission);
BOOST_CHECK_EQUAL(53005u, updateauth.new_authority.accounts[0].weight);
BOOST_CHECK_EQUAL("prm.acct2", updateauth.new_authority.accounts[1].permission.account);
BOOST_CHECK_EQUAL("prm.prm2", updateauth.new_authority.accounts[1].permission.permission);
BOOST_CHECK_EQUAL(53405u, updateauth.new_authority.accounts[1].weight);
auto var2 = verify_round_trip_conversion( abis, "updateauth", var );
auto updateauth2 = var2.as<eosio::types::updateauth>();
......@@ -789,21 +789,21 @@ BOOST_FIXTURE_TEST_CASE(updateauth, testing_fixture)
BOOST_CHECK_EQUAL(updateauth.permission, updateauth2.permission);
BOOST_CHECK_EQUAL(updateauth.parent, updateauth2.parent);
BOOST_CHECK_EQUAL(updateauth.authority.threshold, updateauth2.authority.threshold);
BOOST_REQUIRE_EQUAL(updateauth.authority.keys.size(), updateauth2.authority.keys.size());
BOOST_CHECK_EQUAL(updateauth.authority.keys[0].key, updateauth2.authority.keys[0].key);
BOOST_CHECK_EQUAL(updateauth.authority.keys[0].weight, updateauth2.authority.keys[0].weight);
BOOST_CHECK_EQUAL(updateauth.authority.keys[1].key, updateauth2.authority.keys[1].key);
BOOST_CHECK_EQUAL(updateauth.authority.keys[1].weight, updateauth2.authority.keys[1].weight);
BOOST_REQUIRE_EQUAL(updateauth.authority.accounts.size(), updateauth2.authority.accounts.size());
BOOST_CHECK_EQUAL(updateauth.authority.accounts[0].permission.account, updateauth2.authority.accounts[0].permission.account);
BOOST_CHECK_EQUAL(updateauth.authority.accounts[0].permission.permission, updateauth2.authority.accounts[0].permission.permission);
BOOST_CHECK_EQUAL(updateauth.authority.accounts[0].weight, updateauth2.authority.accounts[0].weight);
BOOST_CHECK_EQUAL(updateauth.authority.accounts[1].permission.account, updateauth2.authority.accounts[1].permission.account);
BOOST_CHECK_EQUAL(updateauth.authority.accounts[1].permission.permission, updateauth2.authority.accounts[1].permission.permission);
BOOST_CHECK_EQUAL(updateauth.authority.accounts[1].weight, updateauth2.authority.accounts[1].weight);
BOOST_CHECK_EQUAL(updateauth.new_authority.threshold, updateauth2.new_authority.threshold);
BOOST_REQUIRE_EQUAL(updateauth.new_authority.keys.size(), updateauth2.new_authority.keys.size());
BOOST_CHECK_EQUAL(updateauth.new_authority.keys[0].key, updateauth2.new_authority.keys[0].key);
BOOST_CHECK_EQUAL(updateauth.new_authority.keys[0].weight, updateauth2.new_authority.keys[0].weight);
BOOST_CHECK_EQUAL(updateauth.new_authority.keys[1].key, updateauth2.new_authority.keys[1].key);
BOOST_CHECK_EQUAL(updateauth.new_authority.keys[1].weight, updateauth2.new_authority.keys[1].weight);
BOOST_REQUIRE_EQUAL(updateauth.new_authority.accounts.size(), updateauth2.new_authority.accounts.size());
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[0].permission.account, updateauth2.new_authority.accounts[0].permission.account);
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[0].permission.permission, updateauth2.new_authority.accounts[0].permission.permission);
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[0].weight, updateauth2.new_authority.accounts[0].weight);
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[1].permission.account, updateauth2.new_authority.accounts[1].permission.account);
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[1].permission.permission, updateauth2.new_authority.accounts[1].permission.permission);
BOOST_CHECK_EQUAL(updateauth.new_authority.accounts[1].weight, updateauth2.new_authority.accounts[1].weight);
} FC_LOG_AND_RETHROW() }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册