提交 d71bc4ac 编写于 作者: W wangxxzhiyy

update contracts

上级 4ad559c7
...@@ -274,7 +274,7 @@ void hdddeposit::mchgdepacc(uint64_t minerid, name new_depacc) { ...@@ -274,7 +274,7 @@ void hdddeposit::mchgdepacc(uint64_t minerid, name new_depacc) {
eosio_assert( acc_new.deposit_free.amount >= miner.dep_total.amount, "new deposit user free deposit not enough" ); eosio_assert( acc_new.deposit_free.amount >= miner.dep_total.amount, "new deposit user free deposit not enough" );
eosio_assert(hddpool::get_miner_pool(minerid) == new_depacc, "minerid not exist in new_depacc's storepool "); eosio_assert(hddpool::get_miner_pool_owner(minerid) == new_depacc, "minerid not exist in new_depacc's storepool ");
//变更原抵押账户的押金数量 //变更原抵押账户的押金数量
......
...@@ -732,7 +732,7 @@ void hddpool::mchgstrpool(uint64_t minerid, name new_poolid) ...@@ -732,7 +732,7 @@ void hddpool::mchgstrpool(uint64_t minerid, name new_poolid)
auto itstorepool = _storepool.find(new_poolid.value); auto itstorepool = _storepool.find(new_poolid.value);
eosio_assert(itstorepool != _storepool.end(), "storepool not registered"); eosio_assert(itstorepool != _storepool.end(), "storepool not registered");
//require_auth(itminerinfo->admin); require_auth(itminerinfo->admin);
require_auth(itstorepool->pool_owner); require_auth(itstorepool->pool_owner);
//归还旧矿池空间 //归还旧矿池空间
...@@ -773,6 +773,9 @@ void hddpool::mchgspace(uint64_t minerid, uint64_t max_space) ...@@ -773,6 +773,9 @@ void hddpool::mchgspace(uint64_t minerid, uint64_t max_space)
require_auth(itminerinfo->admin); require_auth(itminerinfo->admin);
name pool_owner = get_miner_pool_owner(minerid);
require_auth(pool_owner);
//--- check miner deposit and max_space //--- check miner deposit and max_space
asset deposit = hdddeposit(hdd_deposit).get_miner_deposit(minerid); asset deposit = hdddeposit(hdd_deposit).get_miner_deposit(minerid);
eosio_assert(hdddeposit(hdd_deposit).is_deposit_enough(deposit, max_space),"deposit not enough for miner's max_space -- addm2pool"); eosio_assert(hdddeposit(hdd_deposit).is_deposit_enough(deposit, max_space),"deposit not enough for miner's max_space -- addm2pool");
...@@ -837,6 +840,10 @@ void hddpool::mchgowneracc(uint64_t minerid, name new_owneracc) ...@@ -837,6 +840,10 @@ void hddpool::mchgowneracc(uint64_t minerid, name new_owneracc)
eosio_assert(itmaccount_old != _maccount_old.end(), "minerid not register"); eosio_assert(itmaccount_old != _maccount_old.end(), "minerid not register");
uint64_t space = itmaccount_old->space; uint64_t space = itmaccount_old->space;
name pool_owner = get_miner_pool_owner(minerid);
require_auth(pool_owner);
uint64_t tmp_t = current_time(); uint64_t tmp_t = current_time();
//结算旧owner账户当前的收益 //结算旧owner账户当前的收益
......
...@@ -215,15 +215,31 @@ public: ...@@ -215,15 +215,31 @@ public:
return 0; return 0;
} }
static name get_miner_pool(uint64_t minerid) static name get_miner_pool_id(uint64_t minerid)
{ {
name pool; name pool_id;
minerinfo_table _minerinfo( N(hddpool12345) , N(hddpool12345) ); minerinfo_table _minerinfo( N(hddpool12345) , N(hddpool12345) );
auto itminerinfo = _minerinfo.find(minerid); auto itminerinfo = _minerinfo.find(minerid);
if(itminerinfo != _minerinfo.end()) { if(itminerinfo != _minerinfo.end()) {
pool = itminerinfo->owner; pool_id = itminerinfo->pool_id;
} }
return pool; return pool_id;
}
static name get_miner_pool_owner(uint64_t minerid)
{
name pool_owner;
minerinfo_table _minerinfo( N(hddpool12345) , N(hddpool12345) );
auto itminerinfo = _minerinfo.find(minerid);
if(itminerinfo != _minerinfo.end()) {
storepool_index _storepool( N(hddpool12345) , N(hddpool12345));
auto itstorepool = _storepool.find(itminerinfo->pool_id);
if(itstorepool != _storepool.end()) {
pool_owner = itstorepool->pool_owner;
}
}
return pool_owner;
} }
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册