Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
30daa923
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,体验更适合开发者的 AI 搜索 >>
提交
30daa923
编写于
6月 24, 2019
作者:
W
Wang Zhi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update hdddeposit contract
上级
0ce9d232
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
66 addition
and
16 deletion
+66
-16
contracts/hdddeposit/hdddeposit.abi
contracts/hdddeposit/hdddeposit.abi
+19
-7
contracts/hdddeposit/hdddeposit.cpp
contracts/hdddeposit/hdddeposit.cpp
+37
-5
contracts/hdddeposit/hdddeposit.hpp
contracts/hdddeposit/hdddeposit.hpp
+10
-4
未找到文件。
contracts/hdddeposit/hdddeposit.abi
浏览文件 @
30daa923
...
...
@@ -3,7 +3,7 @@
"types": [],
"structs": [
{
"name": "accdeposit",
"name": "acc
2
deposit",
"base": "",
"fields": [
{
...
...
@@ -21,7 +21,7 @@
]
},
{
"name": "miner
deposit
",
"name": "miner
2dep
",
"base": "",
"fields": [
{
...
...
@@ -35,6 +35,10 @@
{
"name": "deposit",
"type": "asset"
},
{
"name": "dep_total",
"type": "asset"
}
]
},
...
...
@@ -99,7 +103,15 @@
{
"name": "quant",
"type": "asset"
}
},
{
"name": "acc_type",
"type": "uint8"
},
{
"name": "caller",
"type": "name"
}
]
},
{
...
...
@@ -197,15 +209,15 @@
],
"tables": [
{
"name": "accdeposit",
"type": "accdeposit",
"name": "acc
2
deposit",
"type": "acc
2
deposit",
"index_type": "i64",
"key_names": [],
"key_types": []
},
{
"name": "miner
deposit
",
"type": "miner
deposit
",
"name": "miner
2dep
",
"type": "miner
2dep
",
"index_type": "i64",
"key_names": [],
"key_types": []
...
...
contracts/hdddeposit/hdddeposit.cpp
浏览文件 @
30daa923
...
...
@@ -37,18 +37,20 @@ void hdddeposit::paydeposit(name user, uint64_t minerid, asset quant) {
eosio_assert
(
real_balance
.
amount
>=
quant
.
amount
,
"user balance not enough."
);
//insert or update minerdeposit table
minerdeposit_table
_mdeposit
(
_self
,
minerid
);
minerdeposit_table
_mdeposit
(
_self
,
_self
);
auto
miner
=
_mdeposit
.
find
(
minerid
);
if
(
miner
==
_mdeposit
.
end
()
)
{
_mdeposit
.
emplace
(
_self
,
[
&
](
auto
&
a
){
a
.
minerid
=
minerid
;
a
.
account_name
=
user
;
a
.
deposit
=
quant
;
a
.
dep_total
=
quant
;
});
}
else
{
_mdeposit
.
modify
(
miner
,
0
,
[
&
](
auto
&
a
)
{
eosio_assert
(
a
.
account_name
==
user
,
"must use same account to increase deposit."
);
a
.
deposit
+=
quant
;
a
.
dep_total
+=
quant
;
});
}
...
...
@@ -70,9 +72,9 @@ void hdddeposit::undeposit(name user, uint64_t minerid, asset quant) {
require_auth
(
_self
);
// need hdd official account to sign this action.
eosio_assert
(
is_account
(
user
),
"user is not an account."
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use
YTA
for hdd deposit."
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use
core asset
for hdd deposit."
);
minerdeposit_table
_mdeposit
(
_self
,
minerid
);
minerdeposit_table
_mdeposit
(
_self
,
_self
);
accdeposit_table
_deposit
(
_self
,
user
.
value
);
const
auto
&
miner
=
_mdeposit
.
get
(
minerid
,
"no deposit record for this minerid."
);
eosio_assert
(
miner
.
deposit
.
amount
>=
quant
.
amount
,
"overdrawn deposit."
);
...
...
@@ -102,7 +104,7 @@ void hdddeposit::payforfeit(name user, uint64_t minerid, asset quant, uint8_t ac
eosio_assert
(
is_account
(
user
),
"user is not an account."
);
eosio_assert
(
quant
.
symbol
==
CORE_SYMBOL
,
"must use YTA for hdd deposit."
);
minerdeposit_table
_mdeposit
(
_self
,
minerid
);
minerdeposit_table
_mdeposit
(
_self
,
_self
);
accdeposit_table
_deposit
(
_self
,
user
.
value
);
const
auto
&
miner
=
_mdeposit
.
get
(
minerid
,
"no deposit record for this minerid."
);
eosio_assert
(
miner
.
deposit
.
amount
>=
quant
.
amount
,
"overdrawn deposit."
);
...
...
@@ -177,9 +179,39 @@ void hdddeposit::cutvote(name user, uint8_t acc_type, name caller) {
void
hdddeposit
::
clearminer
(
uint64_t
minerid
)
{
require_auth
(
_self
);
minerdeposit_table
_mdeposit
(
_self
,
minerid
);
/*
minerdeposit_table _mdeposit(_self, _self);
_mdeposit.emplace( _self, [&]( auto& a ){
a.minerid = 100001;
a.account_name = name{N(usernamefang)};
a.deposit = asset{0, CORE_SYMBOL};
});
_mdeposit.emplace( _self, [&]( auto& a ){
a.minerid = 100002;
a.account_name = name{N(usernamexiao)};
a.deposit = asset{0, CORE_SYMBOL};
});
_mdeposit.emplace( _self, [&]( auto& a ){
a.minerid = 100003;
a.account_name = name{N(usernamefang)};
a.deposit = asset{0, CORE_SYMBOL};
});
_mdeposit.emplace( _self, [&]( auto& a ){
a.minerid = 100004;
a.account_name = name{N(usernamexiao)};
a.deposit = asset{0, CORE_SYMBOL};
});
*/
minerdeposit_table
_mdeposit
(
_self
,
_self
);
const
auto
&
miner
=
_mdeposit
.
get
(
minerid
,
"no deposit record for this minerid."
);
_mdeposit
.
erase
(
miner
);
}
void
hdddeposit
::
clearacc
(
name
user
)
{
...
...
contracts/hdddeposit/hdddeposit.hpp
浏览文件 @
30daa923
...
...
@@ -7,6 +7,8 @@
using
eosio
::
name
;
using
eosio
::
asset
;
using
eosio
::
multi_index
;
using
eosio
::
indexed_by
;
using
eosio
::
const_mem_fun
;
class
hdddeposit
:
public
eosio
::
contract
{
...
...
@@ -33,22 +35,26 @@ class hdddeposit : public eosio::contract {
bool
is_bp_account
(
uint64_t
uservalue
);
//记录某个账户缴纳的押金总量和当前需要缴纳的罚款总量
struct
accdeposit
{
struct
acc
2
deposit
{
name
account_name
;
asset
deposit
;
asset
forfeit
;
uint64_t
primary_key
()
const
{
return
account_name
.
value
;
}
};
typedef
multi_index
<
N
(
acc
deposit
),
acc
deposit
>
accdeposit_table
;
typedef
multi_index
<
N
(
acc
2deposit
),
acc2
deposit
>
accdeposit_table
;
//记录哪个账户为哪个矿机抵押了多少钱
struct
miner
deposit
{
struct
miner
2dep
{
uint64_t
minerid
;
//矿机ID
name
account_name
;
asset
deposit
;
asset
dep_total
;
uint64_t
primary_key
()
const
{
return
minerid
;
}
uint64_t
by_accname
()
const
{
return
account_name
.
value
;
}
};
typedef
multi_index
<
N
(
minerdeposit
),
minerdeposit
>
minerdeposit_table
;
typedef
multi_index
<
N
(
miner2dep
),
miner2dep
,
indexed_by
<
N
(
accname
),
const_mem_fun
<
miner2dep
,
uint64_t
,
&
miner2dep
::
by_accname
>
>
>
minerdeposit_table
;
struct
deposit_rate
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录