Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
04b8edce
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
04b8edce
编写于
12月 16, 2019
作者:
W
wangxxzhiyy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update contracts
上级
d71bc4ac
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
33 addition
and
10 deletion
+33
-10
contracts/hdddeposit/hdddeposit.cpp
contracts/hdddeposit/hdddeposit.cpp
+6
-4
contracts/hddpool/hddpool.cpp
contracts/hddpool/hddpool.cpp
+27
-6
未找到文件。
contracts/hdddeposit/hdddeposit.cpp
浏览文件 @
04b8edce
...
...
@@ -20,7 +20,9 @@ static constexpr eosio::name hdd_lock_account{N(hddlock12345)};
void
hdddeposit
::
paydeppool
(
account_name
user
,
asset
quant
)
{
require_auth
(
user
);
account_name
payer
=
user
;
bool
is_frozen
=
hddlock
(
hdd_lock_account
).
is_frozen
(
user
);
eosio_assert
(
!
is_frozen
,
"frozen user can not create deposit pool"
);
...
...
@@ -41,7 +43,7 @@ void hdddeposit::paydeppool(account_name user, asset quant) {
//insert or update accdeposit table
if
(
it
==
_deposit
.
end
()
)
{
//_deposit.emplace( _self, [&]( auto& a ){
_deposit
.
emplace
(
us
er
,
[
&
](
auto
&
a
){
_deposit
.
emplace
(
pay
er
,
[
&
](
auto
&
a
){
a
.
account_name
=
name
{
user
};
a
.
pool_type
=
0
;
a
.
deposit_total
=
quant
;
...
...
@@ -96,7 +98,7 @@ void hdddeposit::unpaydeppool(account_name user, asset quant) {
void
hdddeposit
::
paydeposit
(
account_name
user
,
uint64_t
minerid
,
asset
quant
)
{
require_auth
(
user
);
eosio_assert
(
1
==
2
,
"can not paydeposit now"
)
;
account_name
payer
=
_self
;
eosio_assert
(
hddpool
::
is_miner_exist
(
minerid
),
"miner not registered"
);
...
...
@@ -119,7 +121,7 @@ void hdddeposit::paydeposit(account_name user, uint64_t minerid, asset quant) {
auto
miner
=
_mdeposit
.
find
(
minerid
);
eosio_assert
(
miner
==
_mdeposit
.
end
(),
"already deposit."
);
if
(
miner
==
_mdeposit
.
end
()
)
{
_mdeposit
.
emplace
(
_self
,
[
&
](
auto
&
a
){
_mdeposit
.
emplace
(
payer
,
[
&
](
auto
&
a
){
a
.
minerid
=
minerid
;
a
.
miner_type
=
0
;
a
.
account_name
=
name
{
user
};
...
...
contracts/hddpool/hddpool.cpp
浏览文件 @
04b8edce
...
...
@@ -198,9 +198,10 @@ void hddpool::buyhdd(name from, name receiver, int64_t amount)
userhdd_index
_userhdd
(
_self
,
receiver
.
value
);
auto
it
=
_userhdd
.
find
(
receiver
.
value
);
account_name
payer
=
from
;
if
(
it
==
_userhdd
.
end
())
{
new_user_hdd
(
_userhdd
,
receiver
,
amount
,
from
);
new_user_hdd
(
_userhdd
,
receiver
,
amount
,
payer
);
}
else
{
...
...
@@ -452,7 +453,6 @@ void hddpool::delminer(uint64_t minerid, uint8_t acc_type, name caller)
}
else
if
(
acc_type
==
2
)
{
require_auth
(
itminerinfo
->
admin
);
}
else
{
//require_auth(_self);
require_auth
(
N
(
hddpooladmin
));
}
...
...
@@ -468,7 +468,21 @@ void hddpool::delminer(uint64_t minerid, uint8_t acc_type, name caller)
maccount_index
_maccount
(
_self
,
itminerinfo
->
owner
.
value
);
auto
itmaccount
=
_maccount
.
find
(
minerid
);
if
(
itmaccount
!=
_maccount
.
end
())
{
_maccount
.
erase
(
itmaccount
);
userhdd_index
_userhdd
(
_self
,
itminerinfo
->
owner
.
value
);
auto
userhdd_itr
=
_userhdd
.
find
(
itminerinfo
->
owner
.
value
);
eosio_assert
(
userhdd_itr
!=
_userhdd
.
end
(),
"no owner exists in userhdd table"
);
_userhdd
.
modify
(
userhdd_itr
,
_self
,
[
&
](
auto
&
row
)
{
uint64_t
newspace
=
0
;
if
(
row
.
hdd_space_profit
>=
itmaccount
->
space
)
{
newspace
=
row
.
hdd_space_profit
-
itmaccount
->
space
;
}
row
.
hdd_space_profit
=
newspace
;
row
.
hdd_per_cycle_profit
=
(
int64_t
)(((
double
)(
newspace
*
data_slice_size
)
/
(
double
)
one_gb
)
*
((
double
)
fee_cycle
/
(
double
)
seconds_in_one_year
)
*
100000000
);
});
}
}
...
...
@@ -588,11 +602,14 @@ void hddpool::newminer(uint64_t minerid, name adminacc, name dep_acc, asset dep_
auto
itmstorepool
=
_storepool
.
find
(
dep_acc
.
value
);
eosio_assert
(
itmstorepool
!=
_storepool
.
end
(),
"dep_acc must use a stroepool name"
);
eosio_assert
(
itmstorepool
->
space_left
>
0
,
"dep_acc's storepool doesn't have enough space"
);
minerinfo_table
_minerinfo
(
_self
,
_self
);
auto
itminerinfo
=
_minerinfo
.
find
(
minerid
);
eosio_assert
(
itminerinfo
==
_minerinfo
.
end
(),
"miner already registered
\n
"
);
_minerinfo
.
emplace
(
dep_acc
.
value
,
[
&
](
auto
&
row
)
{
account_name
payer
=
_self
;
_minerinfo
.
emplace
(
payer
,
[
&
](
auto
&
row
)
{
row
.
minerid
=
minerid
;
row
.
admin
=
adminacc
;
row
.
pool_id
=
dep_acc
;
...
...
@@ -631,7 +648,9 @@ void hddpool::regstrpool(name pool_id, name pool_owner, uint64_t max_space)
storepool_index
_storepool
(
_self
,
_self
);
auto
itmstorepool
=
_storepool
.
find
(
pool_id
.
value
);
eosio_assert
(
itmstorepool
==
_storepool
.
end
(),
"storepool already registered"
);
_storepool
.
emplace
(
_self
,
[
&
](
auto
&
row
)
{
account_name
payer
=
pool_owner
;
_storepool
.
emplace
(
payer
,
[
&
](
auto
&
row
)
{
row
.
pool_id
=
pool_id
;
row
.
pool_owner
=
pool_owner
;
//row.max_space = max_space;
...
...
@@ -705,7 +724,8 @@ void hddpool::addm2pool(uint64_t minerid, name pool_id, name minerowner, uint64_
auto
itmaccount
=
_maccount
.
find
(
minerid
);
eosio_assert
(
itmaccount
==
_maccount
.
end
(),
"miner already bind to a owner"
);
_maccount
.
emplace
(
_self
,
[
&
](
auto
&
row
)
{
account_name
payer
=
_self
;
_maccount
.
emplace
(
payer
,
[
&
](
auto
&
row
)
{
row
.
minerid
=
minerid
;
row
.
owner
=
minerowner
;
row
.
space
=
0
;
...
...
@@ -895,7 +915,8 @@ void hddpool::mchgowneracc(uint64_t minerid, name new_owneracc)
eosio_assert
(
itmaccount_new
==
_maccount_new
.
end
(),
"new owner already own this miner"
);
//将该矿机加入新的收益账户的矿机收益列表中
_maccount_new
.
emplace
(
_self
,
[
&
](
auto
&
row
)
{
account_name
payer
=
_self
;
_maccount_new
.
emplace
(
payer
,
[
&
](
auto
&
row
)
{
row
.
minerid
=
minerid
;
row
.
owner
=
new_owneracc
;
row
.
space
=
itmaccount_old
->
space
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录