Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
7f749ae1
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,发现更多精彩内容 >>
提交
7f749ae1
编写于
12月 16, 2019
作者:
W
wangxxzhiyy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update contract
上级
7ffa7e72
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
35 deletion
+15
-35
contracts/hdddeposit/hdddeposit.cpp
contracts/hdddeposit/hdddeposit.cpp
+8
-7
contracts/hddpool/hddpool.cpp
contracts/hddpool/hddpool.cpp
+7
-28
未找到文件。
contracts/hdddeposit/hdddeposit.cpp
浏览文件 @
7f749ae1
...
...
@@ -18,6 +18,8 @@ static constexpr eosio::name token_account{N(eosio.token)};
static
constexpr
eosio
::
name
system_account
{
N
(
eosio
)};
static
constexpr
eosio
::
name
hdd_lock_account
{
N
(
hddlock12345
)};
const
uint32_t
min_miner_space
=
100
*
(
1024
*
64
);
//100GB,以16k分片为单位
void
hdddeposit
::
paydeppool
(
account_name
user
,
asset
quant
)
{
require_auth
(
user
);
...
...
@@ -28,7 +30,7 @@ void hdddeposit::paydeppool(account_name user, asset quant) {
eosio_assert
(
is_account
(
user
),
"user is not an account."
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use core asset for hdd deposit."
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
//check if user has enough YTA balance for deposit
auto
balance
=
eosio
::
token
(
N
(
eosio
.
token
)).
get_balance
(
user
,
quant
.
symbol
.
name
()
);
...
...
@@ -70,7 +72,7 @@ void hdddeposit::unpaydeppool(account_name user, asset quant) {
require_auth
(
user
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use core asset for hdd deposit."
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
depositpool_table
_deposit
(
_self
,
user
);
const
auto
&
it
=
_deposit
.
get
(
user
,
"no deposit pool record for this user."
);
...
...
@@ -103,7 +105,9 @@ void hdddeposit::paydeposit(account_name user, uint64_t minerid, asset quant) {
eosio_assert
(
hddpool
::
is_miner_exist
(
minerid
),
"miner not registered"
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use core asset for hdd deposit."
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
eosio_assert
(
is_deposit_enough
(
quant
,
min_miner_space
),
"deposit quant is too low!"
);
//check if user has enough YTA balance for deposit
depositpool_table
_deposit
(
_self
,
user
);
...
...
@@ -135,7 +139,7 @@ void hdddeposit::chgdeposit(name user, uint64_t minerid, bool is_increace, asset
require_auth
(
user
);
// need hdd official account to sign this action.
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use core asset for hdd deposit."
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
eosio_assert
(
quant
.
amount
>
0
,
"must use positive quant"
);
minerdeposit_table
_mdeposit
(
_self
,
_self
);
...
...
@@ -276,9 +280,6 @@ 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
(
hddpool
::
get_miner_pool_owner
(
minerid
)
==
new_depacc
,
"minerid not exist in new_depacc's storepool "
);
//变更原抵押账户的押金数量
_deposit_old
.
modify
(
acc_old
,
0
,
[
&
](
auto
&
a
)
{
a
.
deposit_free
+=
miner
.
deposit
;
...
...
contracts/hddpool/hddpool.cpp
浏览文件 @
7f749ae1
...
...
@@ -570,12 +570,6 @@ void hddpool::newminer(uint64_t minerid, name adminacc, name dep_acc, asset dep_
eosio_assert
(
is_account
(
dep_acc
),
"dep_acc invalidate"
);
eosio_assert
(
dep_amount
.
amount
>
0
,
"must use positive dep_amount"
);
storepool_index
_storepool
(
_self
,
_self
);
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
"
);
...
...
@@ -613,8 +607,6 @@ void hddpool::regstrpool(name pool_id, name pool_owner, uint64_t max_space)
((
void
)
max_space
);
eosio_assert
(
is_account
(
pool_owner
),
"pool_owner invalidate"
);
eosio_assert
(
pool_owner
==
pool_id
,
"pool_owner and pool_id must equal"
);
require_auth
(
pool_owner
);
storepool_index
_storepool
(
_self
,
_self
);
...
...
@@ -625,8 +617,6 @@ void hddpool::regstrpool(name pool_id, name pool_owner, uint64_t max_space)
_storepool
.
emplace
(
payer
,
[
&
](
auto
&
row
)
{
row
.
pool_id
=
pool_id
;
row
.
pool_owner
=
pool_owner
;
//row.max_space = max_space;
//row.space_left = max_space;
row
.
max_space
=
0
;
row
.
space_left
=
0
;
});
...
...
@@ -662,12 +652,10 @@ void hddpool::addm2pool(uint64_t minerid, name pool_id, name minerowner, uint64_
minerinfo_table
_minerinfo
(
_self
,
_self
);
auto
itminerinfo
=
_minerinfo
.
find
(
minerid
);
eosio_assert
(
itminerinfo
!=
_minerinfo
.
end
(),
"miner not registered
\n
"
);
eosio_assert
(
itminerinfo
->
pool_id
==
pool_id
,
"pool_id invalidate
\n
"
);
require_auth
(
itminerinfo
->
admin
);
eosio_assert
(
itminerinfo
->
max_space
==
0
,
"miner already join to a pool(@@err:alreadyinpool@@)
\n
"
);
eosio_assert
(
itminerinfo
->
pool_id
.
value
==
0
,
"miner already join to a pool(@@err:alreadyinpool@@)
\n
"
);
eosio_assert
(
max_space
<=
max_minerspace
,
"miner max_space overflow
\n
"
);
eosio_assert
((
itstorepool
->
space_left
>
0
&&
itstorepool
->
space_left
>
max_space
),
"pool space not enough"
);
...
...
@@ -744,17 +732,10 @@ void hddpool::mchgstrpool(uint64_t minerid, name new_poolid)
});
//修改minerinfo表中该矿机的矿
机
id
//修改minerinfo表中该矿机的矿
池
id
_minerinfo
.
modify
(
itminerinfo
,
_self
,
[
&
](
auto
&
row
)
{
row
.
pool_id
=
new_poolid
;
});
//变更矿池其实就是变更抵押
action
(
permission_level
{
itstorepool
->
pool_owner
,
active_permission
},
hdd_deposit
,
N
(
mchgdepacc
),
std
::
make_tuple
(
minerid
,
itstorepool
->
pool_owner
))
.
send
();
}
void
hddpool
::
mchgspace
(
uint64_t
minerid
,
uint64_t
max_space
)
...
...
@@ -820,21 +801,19 @@ void hddpool::mchgowneracc(uint64_t minerid, name new_owneracc)
minerinfo_table
_minerinfo
(
_self
,
_self
);
auto
itminerinfo
=
_minerinfo
.
find
(
minerid
);
eosio_assert
(
itminerinfo
!=
_minerinfo
.
end
(),
"miner not registered
\n
"
);
require_auth
(
itminerinfo
->
admin
);
eosio_assert
(
is_account
(
new_owneracc
),
"new owner is not an account."
);
eosio_assert
(
itminerinfo
->
owner
.
value
!=
0
,
"no owner for this miner"
);
name
pool_owner
=
get_miner_pool_owner
(
minerid
);
require_auth
(
itminerinfo
->
admin
);
require_auth
(
pool_owner
);
maccount_index
_maccount_old
(
_self
,
itminerinfo
->
owner
.
value
);
auto
itmaccount_old
=
_maccount_old
.
find
(
minerid
);
eosio_assert
(
itmaccount_old
!=
_maccount_old
.
end
(),
"minerid not register"
);
uint64_t
space
=
itmaccount_old
->
space
;
name
pool_owner
=
get_miner_pool_owner
(
minerid
);
require_auth
(
pool_owner
);
uint64_t
tmp_t
=
current_time
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录