Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
58b0d7f6
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,发现更多精彩内容 >>
提交
58b0d7f6
编写于
5月 06, 2018
作者:
K
Khaled Al-Hassanieh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed producer_info abi, bug in claimrewards
上级
58b78df6
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
18 deletion
+18
-18
contracts/eosio.system/eosio.system.abi
contracts/eosio.system/eosio.system.abi
+8
-5
contracts/eosio.system/eosio.system.hpp
contracts/eosio.system/eosio.system.hpp
+2
-2
contracts/eosio.system/producer_pay.cpp
contracts/eosio.system/producer_pay.cpp
+4
-4
unittests/eosio.system_tests.cpp
unittests/eosio.system_tests.cpp
+4
-7
未找到文件。
contracts/eosio.system/eosio.system.abi
浏览文件 @
58b0d7f6
...
...
@@ -131,11 +131,14 @@
"name": "producer_info",
"base": "",
"fields": [
{"name":"owner", "type":"account_name"},
{"name":"total_votes", "type":"uint128"},
{"name":"packed_key", "type":"public_key"},
{"name":"per_block_payments", "type":"uint64"},
{"name":"last_claim_time", "type":"time"}
{"name":"owner", "type":"account_name"},
{"name":"total_votes", "type":"float64"},
{"name":"producer_key", "type":"public_key"},
{"name":"produced_blocks", "type":"uint32"},
{"name":"last_claim_time", "type":"time"},
{"name":"location", "type":"uint16"},
{"name":"time_became_active", "type":"time"},
{"name":"last_produced_block_time", "type":"time"}
]
},{
"name": "regproducer",
...
...
contracts/eosio.system/eosio.system.hpp
浏览文件 @
58b0d7f6
...
...
@@ -51,7 +51,7 @@ namespace eosiosystem {
double
total_votes
=
0
;
eosio
::
public_key
producer_key
;
/// a packed public key object
uint32_t
produced_blocks
;
time
last_
rewards_claim
=
0
;
time
last_
claim_time
=
0
;
uint16_t
location
=
0
;
block_timestamp
time_became_active
=
0
;
block_timestamp
last_produced_block_time
=
0
;
...
...
@@ -62,7 +62,7 @@ namespace eosiosystem {
// explicit serialization macro is not necessary, used here only to improve compilation time
EOSLIB_SERIALIZE
(
producer_info
,
(
owner
)(
total_votes
)(
producer_key
)
(
produced_blocks
)(
last_
rewards_claim
)
(
produced_blocks
)(
last_
claim_time
)(
location
)
(
time_became_active
)(
last_produced_block_time
)
)
};
...
...
contracts/eosio.system/producer_pay.cpp
浏览文件 @
58b0d7f6
...
...
@@ -94,8 +94,8 @@ namespace eosiosystem {
auto
prod
=
_producers
.
find
(
owner
);
eosio_assert
(
prod
!=
_producers
.
end
(),
"account name is not in producer list"
);
if
(
prod
->
last_
rewards_claim
>
0
)
{
eosio_assert
(
now
()
>=
prod
->
last_
rewards_claim
+
seconds_per_day
,
"already claimed rewards within a day"
);
if
(
prod
->
last_
claim_time
>
0
)
{
eosio_assert
(
now
()
>=
prod
->
last_
claim_time
+
seconds_per_day
,
"already claimed rewards within a day"
);
}
auto
parameters
=
_global
.
get
();
...
...
@@ -118,10 +118,10 @@ namespace eosiosystem {
_global
.
set
(
parameters
,
_self
);
INLINE_ACTION_SENDER
(
eosio
::
token
,
transfer
)(
N
(
eosio
.
token
),
{
N
(
eosio
),
N
(
active
)},
{
N
(
eosio
),
owner
,
perblock_pay
+
per
block
_pay
,
std
::
string
(
"producer claiming rewards"
)
}
);
{
N
(
eosio
),
owner
,
perblock_pay
+
per
vote
_pay
,
std
::
string
(
"producer claiming rewards"
)
}
);
_producers
.
modify
(
prod
,
0
,
[
&
](
auto
&
p
)
{
p
.
last_
rewards_claim
=
now
();
p
.
last_
claim_time
=
now
();
p
.
produced_blocks
=
0
;
});
...
...
unittests/eosio.system_tests.cpp
浏览文件 @
58b0d7f6
...
...
@@ -1169,8 +1169,6 @@ BOOST_FIXTURE_TEST_CASE(producer_pay, eosio_system_tester) try {
issue
(
"alice"
,
"10000.0000 EOS"
,
config
::
system_account_name
);
BOOST_REQUIRE_EQUAL
(
asset
::
from_string
(
"10000.0000 EOS"
),
get_balance
(
"alice"
)
);
fc
::
variant
params
=
producer_parameters_example
(
50
);
// 1 block produced
BOOST_REQUIRE_EQUAL
(
success
(),
regproducer
(
N
(
alice
)));
...
...
@@ -1178,8 +1176,6 @@ BOOST_FIXTURE_TEST_CASE(producer_pay, eosio_system_tester) try {
BOOST_REQUIRE_EQUAL
(
"alice"
,
prod
[
"owner"
].
as_string
());
BOOST_REQUIRE_EQUAL
(
0
,
prod
[
"total_votes"
].
as_uint64
());
REQUIRE_EQUAL_OBJECTS
(
params
,
prod
[
"prefs"
]);
issue
(
"bob"
,
"2000.0000 EOS"
,
config
::
system_account_name
);
BOOST_REQUIRE_EQUAL
(
asset
::
from_string
(
"2000.0000 EOS"
),
get_balance
(
"bob"
)
);
...
...
@@ -1198,15 +1194,16 @@ BOOST_FIXTURE_TEST_CASE(producer_pay, eosio_system_tester) try {
)
);
produce_blocks
(
1
0
);
produce_blocks
(
2
0
);
prod
=
get_producer_info
(
"alice"
);
BOOST_REQUIRE
(
prod
[
"per_block_payments"
].
as_uint64
()
>
0
);
// this test fails as there isn't enough total activated stake and onblock is a noop
BOOST_REQUIRE
(
prod
[
"produced_blocks"
].
as
<
uint32_t
>
()
>
0
);
BOOST_REQUIRE_EQUAL
(
success
(),
push_action
(
N
(
alice
),
N
(
claimrewards
),
mvo
()
(
"owner"
,
"alice"
)
)
);
prod
=
get_producer_info
(
"alice"
);
BOOST_REQUIRE_EQUAL
(
0
,
prod
[
"p
er_block_payments"
].
as_uint64
());
BOOST_REQUIRE_EQUAL
(
0
,
prod
[
"p
roduced_blocks"
].
as
<
uint32_t
>
());
}
FC_LOG_AND_RETHROW
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录