From 47457361009b2c2de7209ad3a91e6b7784df5b50 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 16 Mar 2021 18:22:33 +0000 Subject: [PATCH] fix after review --- build/contracts/eosio.system/eosio.system.abi | 4 +-- .../contracts/eosio.system/eosio.system.wasm | Bin 367845 -> 367329 bytes .../include/eosio.system/eosio.system.hpp | 16 +++++----- .../eosio.system/src/delegate_bandwidth.cpp | 28 ++++++++---------- contracts/eosio.system/src/eosio.system.cpp | 6 ++-- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/build/contracts/eosio.system/eosio.system.abi b/build/contracts/eosio.system/eosio.system.abi index 9d37988..116ddae 100644 --- a/build/contracts/eosio.system/eosio.system.abi +++ b/build/contracts/eosio.system/eosio.system.abi @@ -1102,7 +1102,7 @@ }, { "name": "ramlimit", - "type": "int64" + "type": "uint64" } ] }, @@ -1490,7 +1490,7 @@ }, { "name": "bytes", - "type": "int64" + "type": "uint64" } ] }, diff --git a/build/contracts/eosio.system/eosio.system.wasm b/build/contracts/eosio.system/eosio.system.wasm index 611674cba5898e90e68cf74f9b0e85e23d91faf3..be9449c3ba761f0a2f7b9d8be38cd27190011cfd 100755 GIT binary patch delta 19998 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 diff --git a/contracts/eosio.system/include/eosio.system/eosio.system.hpp b/contracts/eosio.system/include/eosio.system/eosio.system.hpp index 4989b9e..79c52f1 100644 --- a/contracts/eosio.system/include/eosio.system/eosio.system.hpp +++ b/contracts/eosio.system/include/eosio.system/eosio.system.hpp @@ -1186,11 +1186,8 @@ namespace eosiosystem { void undelegatebw( const name& from, const name& receiver, const asset& unstake_net_quantity, const asset& unstake_cpu_quantity ); - - - // PROTON RAM CHANGE: - // old actions `buyrambytes/buyram/sellram` renamed to `buyrambsys/buyramsys/sellramsys` + // old action `buyram` renamed to `buyramsys` /** * Buy ram action, increases receiver's ram quota based upon current price and quantity of SYS * tokens provided. An inline transfer from receiver to system contract of @@ -1198,13 +1195,14 @@ namespace eosiosystem { * * @param payer - the ram buyer, * @param receiver - the ram receiver, - * @param quant - the quntity of tokens to buy ram with. + * @param quant - the quantity of tokens to buy ram with. */ [[eosio::action]] void buyramsys( const name& payer, const name& receiver, const asset& quant ); // PROTON RAM CHANGE + // old action `buyrambytes` renamed to `buyrambsys` /** * Buy a specific amount of ram bytes action. Increases receiver's ram in quantity of bytes provided. * An inline transfer from receiver to system contract of tokens will be executed. @@ -1218,6 +1216,7 @@ namespace eosiosystem { // PROTON RAM CHANGE + // old actions `sellram` renamed to `sellramsys` /** * Sell ram action, reduces quota by bytes and then performs an inline transfer of tokens * to receiver based upon the average purchase price of the original quota. @@ -1230,6 +1229,7 @@ namespace eosiosystem { // PROTON RAM CHANGE + // old action `buyram` renamed to `buyramsys` /** * Buy ram action, increases receiver's ram quota based upon fixed price and quantity of XPR * tokens provided. An inline transfer from receiver to system contract of @@ -1244,6 +1244,7 @@ namespace eosiosystem { // PROTON RAM CHANGE + // old action `buyrambytes` renamed to `buyrambsys` /** * Buy a specific amount of ram bytes action. Increases receiver's ram in quantity of bytes provided. * An inline transfer from payer to system contract of XPR tokens will be executed. @@ -1257,6 +1258,7 @@ namespace eosiosystem { // PROTON RAM CHANGE + // old action `sellram` renamed to `sellramsys` /** * Sell ram action, reduces quota by bytes and then performs an inline transfer of tokens * to receiver based upon the fixed price. @@ -1265,7 +1267,7 @@ namespace eosiosystem { * @param bytes - the amount of ram to sell in bytes. */ [[eosio::action]] - void sellram( const name& account, int64_t bytes ); + void sellram( const name& account, uint64_t bytes ); // PROTON RAM @@ -1287,7 +1289,7 @@ namespace eosiosystem { * @param bytes */ [[eosio::action]] - void ramlimitset( const name& account, int64_t ramlimit ); + void ramlimitset( const name& account, uint64_t ramlimit ); /** diff --git a/contracts/eosio.system/src/delegate_bandwidth.cpp b/contracts/eosio.system/src/delegate_bandwidth.cpp index e2592ac..180c75a 100644 --- a/contracts/eosio.system/src/delegate_bandwidth.cpp +++ b/contracts/eosio.system/src/delegate_bandwidth.cpp @@ -25,11 +25,13 @@ namespace eosiosystem { // PROTON RAM void system_contract::buyrambytes( const name& payer, const name& receiver, uint32_t bytes ) { - check(!(_gstateram.ram_price_per_byte.amount == 0), "Wrong price per byte. Buy RAM is not configured"); check(!(bytes == 0), "parameter bytes cannot be zero"); - int64_t cost = _gstateram.ram_price_per_byte.amount * bytes; - int64_t costwfee = 100 * cost / (100 - (double)_gstateram.ram_fee_percent / (double)ram_fee_precision ) ; + const uint64_t cost = _gstateram.ram_price_per_byte.amount * bytes; + + const double fee_percentage = ((double)_gstateram.ram_fee_percent / ram_fee_precision) / 100; + + const int64_t costwfee = cost / (1.0 - fee_percentage); buyram(payer, receiver, asset{ costwfee, _gstateram.ram_price_per_byte.symbol }); } @@ -37,14 +39,12 @@ namespace eosiosystem { // PROTON RAM void system_contract::buyram( const name& payer, const name& receiver, const asset& quant ){ require_auth(payer); - //update_ram_supply(); + + check(!(_gstateram.ram_price_per_byte.amount <= 0), "Wrong price per byte. Buy RAM is not configured"); check(quant.symbol == _gstateram.ram_price_per_byte.symbol, "must buy ram with " + _gstateram.ram_price_per_byte.symbol.code().to_string()); check(quant.amount > 0, "must purchase a positive amount"); update_ram_supply(); - check(quant.symbol == _gstateram.ram_price_per_byte.symbol, "Buy ram using " + _gstateram.ram_price_per_byte.symbol.code().to_string()); - check(quant.amount > 0, "must purchase a positive amount"); - auto fee = quant; fee.amount *= ((double)_gstateram.ram_fee_percent / (double)ram_fee_precision) / 100; @@ -59,12 +59,11 @@ namespace eosiosystem { transfer_act.send( payer, ramfee_account, fee, "ram fee" ); } - int64_t bytes_out = quant_after_fee.amount / _gstateram.ram_price_per_byte.amount; + const uint64_t bytes_out = quant_after_fee.amount / _gstateram.ram_price_per_byte.amount; const auto& market = _rammarket.get(ramcore_symbol.raw(), "ram market does not exist"); check ( market.base.balance.amount >= bytes_out, "Out of RAM" ); - _rammarket.modify( market, same_payer, [&]( auto& es ) { es.base.balance -= asset(bytes_out, ram_symbol); @@ -121,11 +120,11 @@ namespace eosiosystem { // PROTON RAM - void system_contract::sellram( const name& account, int64_t bytes ) { + void system_contract::sellram( const name& account, uint64_t bytes ) { require_auth( account ); update_ram_supply(); - - check( bytes > 0, "cannot sell negative byte" ); + + check(!(bytes == 0), "parameter bytes cannot be zero"); user_resources_table userres( get_self(), account.value ); auto res_itr = userres.find( account.value ); @@ -137,13 +136,12 @@ namespace eosiosystem { check( resram_itr != userram.end(), "no purchased ram" ); check( resram_itr->ram >= bytes, "insufficient purchased quota" ); - asset tokens_out = asset(0, _gstateram.ram_price_per_byte.symbol); + auto tokens_out = asset(0, _gstateram.ram_price_per_byte.symbol); tokens_out.amount = bytes * resram_itr->quantity.amount / resram_itr->ram; auto itr = _rammarket.find(ramcore_symbol.raw()); _rammarket.modify( itr, same_payer, [&]( auto& es ) { - //tokens_out = es.direct_convert(asset(bytes, ram_symbol), _gstateram.ram_price_per_byte.symbol); es.base.balance += asset(bytes, ram_symbol); }); @@ -230,7 +228,7 @@ namespace eosiosystem { channel_to_rex( ramfee_account, fee ); } - int64_t bytes_out; + int64_t bytes_out = 0; const auto& market = _rammarket.get(ramcore_symbol.raw(), "ram market does not exist"); _rammarket.modify( market, same_payer, [&]( auto& es ) { diff --git a/contracts/eosio.system/src/eosio.system.cpp b/contracts/eosio.system/src/eosio.system.cpp index cb39a32..97cf72a 100644 --- a/contracts/eosio.system/src/eosio.system.cpp +++ b/contracts/eosio.system/src/eosio.system.cpp @@ -172,7 +172,7 @@ namespace eosiosystem { // PROTON RAM - void system_contract::ramlimitset( const name& account, int64_t ramlimit ) { + void system_contract::ramlimitset( const name& account, uint64_t ramlimit ) { require_auth(permission_level("admin.proton"_n, "light"_n)); userram_table userram( get_self(), account.value ); @@ -186,11 +186,9 @@ namespace eosiosystem { }); } else { userram.modify( resram_itr, account, [&]( auto& res ) { - res.ramlimit += ramlimit; + res.ramlimit = ramlimit; }); } - - } void system_contract::setacctram( const name& account, const std::optional& ram_bytes ) {