Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
c9f579db
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,发现更多精彩内容 >>
提交
c9f579db
编写于
6月 19, 2020
作者:
W
wangxxzhiyy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support hdds transfer
上级
f107a21e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
64 addition
and
1 deletion
+64
-1
contracts/hddpool/hddpool.abi
contracts/hddpool/hddpool.abi
+27
-0
contracts/hddpool/hddpool.cpp
contracts/hddpool/hddpool.cpp
+36
-1
contracts/hddpool/hddpool.hpp
contracts/hddpool/hddpool.hpp
+1
-0
未找到文件。
contracts/hddpool/hddpool.abi
浏览文件 @
c9f579db
...
...
@@ -78,6 +78,28 @@
}
]
},
{
"name": "transhdds",
"base": "",
"fields": [
{
"name": "from",
"type": "name"
},
{
"name": "to",
"type": "name"
},
{
"name": "amount",
"type": "int64"
},
{
"name":"memo",
"type":"string"
}
]
},
{
"name": "delminer",
"base": "",
...
...
@@ -704,6 +726,11 @@
"type": "buyhdd",
"ricardian_contract": ""
},
{
"name": "transhdds",
"type": "transhdds",
"ricardian_contract": ""
},
{
"name": "delminer",
"type": "delminer",
...
...
contracts/hddpool/hddpool.cpp
浏览文件 @
c9f579db
...
...
@@ -241,6 +241,41 @@ void hddpool::buyhdd(name from, name receiver, int64_t amount, std::string memo)
}
void
hddpool
::
transhdds
(
name
from
,
name
to
,
int64_t
amount
,
std
::
string
memo
)
{
require_auth
(
from
);
eosio_assert
(
is_account
(
from
),
"user not a account"
);
eosio_assert
(
is_account
(
to
),
"to not a account"
);
eosio_assert
(
amount
>
0
,
"cannot transfer negative hdd amount"
);
eosio_assert
(
is_hdd_amount_within_range
(
amount
),
"magnitude of amount must be less than 2^62"
);
userhdd_index
_userhddfrom
(
_self
,
from
.
value
);
auto
itfrom
=
_userhddfrom
.
find
(
from
.
value
);
eosio_assert
(
itfrom
!=
_userhddfrom
.
end
(),
"from not exists in userhdd table"
);
eosio_assert
(
itfrom
->
hdd_storehhdd
>=
amount
,
"hdd overdrawn."
);
_userhddfrom
.
modify
(
itfrom
,
_self
,
[
&
](
auto
&
row
)
{
row
.
hdd_storehhdd
-=
amount
;
eosio_assert
(
is_hdd_amount_within_range
(
row
.
hdd_storehhdd
),
"magnitude of user hdd_storehhdd must be less than 2^62"
);
});
userhdd_index
_userhddto
(
_self
,
to
.
value
);
auto
itto
=
_userhddto
.
find
(
to
.
value
);
account_name
payer
=
from
;
if
(
itto
==
_userhddto
.
end
())
{
new_user_hdd
(
_userhddto
,
to
,
amount
,
payer
);
}
else
{
_userhddto
.
modify
(
itto
,
_self
,
[
&
](
auto
&
row
)
{
row
.
hdd_storehhdd
+=
amount
;
eosio_assert
(
is_hdd_amount_within_range
(
row
.
hdd_storehhdd
),
"magnitude of user hdd_storehhdd must be less than 2^62"
);
});
}
}
void
hddpool
::
sellhdd
(
name
user
,
int64_t
amount
,
std
::
string
memo
)
{
require_auth
(
user
);
...
...
@@ -1104,7 +1139,7 @@ void hddpool::addhddcnt(int64_t count, uint8_t acc_type) {
EOSIO_ABI
(
hddpool
,
(
getbalance
)(
buyhdd
)(
sellhdd
)(
sethfee
)(
subbalance
)(
addhspace
)(
subhspace
)(
addmprofit
)(
delminer
)
EOSIO_ABI
(
hddpool
,
(
getbalance
)(
buyhdd
)(
transhdds
)(
sellhdd
)(
sethfee
)(
subbalance
)(
addhspace
)(
subhspace
)(
addmprofit
)(
delminer
)
(
calcmbalance
)(
delstrpool
)(
regstrpool
)(
chgpoolspace
)(
newminer
)(
addm2pool
)
(
mchgspace
)(
mchgstrpool
)(
mchgadminacc
)(
mchgowneracc
)(
calcprofit
)
(
mdeactive
)(
mactive
)(
sethddprice
)(
setytaprice
)(
setdrratio
)(
setdrdratio
)(
addhddcnt
))
contracts/hddpool/hddpool.hpp
浏览文件 @
c9f579db
...
...
@@ -25,6 +25,7 @@ public:
void
getbalance
(
name
user
,
uint8_t
acc_type
,
name
caller
);
void
calcprofit
(
name
user
);
void
buyhdd
(
name
from
,
name
receiver
,
int64_t
amount
,
std
::
string
memo
);
void
transhdds
(
name
from
,
name
to
,
int64_t
amount
,
std
::
string
memo
);
void
sellhdd
(
name
user
,
int64_t
amount
,
std
::
string
memo
);
void
sethfee
(
name
user
,
int64_t
fee
,
name
caller
);
void
subbalance
(
name
user
,
int64_t
balance
,
uint8_t
acc_type
,
name
caller
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录