Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
14cba7c0
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,发现更多精彩内容 >>
提交
14cba7c0
编写于
5月 30, 2018
作者:
K
Khaled Al-Hassanieh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
System contract rmvproducer testing
上级
e0c3c0b0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
2 deletion
+35
-2
contracts/eosio.system/eosio.system.abi
contracts/eosio.system/eosio.system.abi
+4
-0
contracts/eosio.system/eosio.system.cpp
contracts/eosio.system/eosio.system.cpp
+3
-1
unittests/eosio.system_tests.cpp
unittests/eosio.system_tests.cpp
+28
-1
未找到文件。
contracts/eosio.system/eosio.system.abi
浏览文件 @
14cba7c0
...
...
@@ -483,6 +483,10 @@
"name": "setpriv",
"type": "setpriv",
"ricardian_contract": ""
},{
"name": "rmvproducer",
"type": "rmvproducer",
"ricardian_contract": ""
},{
"name": "setalimits",
"type": "set_account_limits",
...
...
contracts/eosio.system/eosio.system.cpp
浏览文件 @
14cba7c0
...
...
@@ -174,7 +174,8 @@ namespace eosiosystem {
void
system_contract
::
rmvproducer
(
account_name
producer
)
{
require_auth
(
_self
);
auto
prod
=
_producers
.
get
(
producer
);
auto
prod
=
_producers
.
find
(
producer
);
eosio_assert
(
prod
!=
_producers
.
end
(),
"producer not found"
);
_producers
.
modify
(
prod
,
0
,
[
&
](
auto
&
p
)
{
p
.
deactivate
();
});
...
...
@@ -198,5 +199,6 @@ EOSIO_ABI( eosiosystem::system_contract,
//this file
(
bidname
)
(
setpriv
)
(
rmvproducer
)
(
setparams
)
)
unittests/eosio.system_tests.cpp
浏览文件 @
14cba7c0
...
...
@@ -1592,6 +1592,31 @@ BOOST_FIXTURE_TEST_CASE(multiple_producer_pay, eosio_system_tester, * boost::uni
push_action
(
prod_name
,
N
(
claimrewards
),
mvo
()(
"owner"
,
prod_name
)));
}
{
const
uint32_t
rmv_index
=
5
;
account_name
prod_name
=
producer_names
[
rmv_index
];
auto
info
=
get_producer_info
(
prod_name
);
BOOST_REQUIRE
(
info
[
"is_active"
].
as
<
bool
>
()
);
BOOST_REQUIRE
(
fc
::
crypto
::
public_key
()
!=
fc
::
crypto
::
public_key
(
info
[
"producer_key"
].
as_string
())
);
BOOST_REQUIRE_EQUAL
(
error
(
"missing authority of eosio"
),
push_action
(
prod_name
,
N
(
rmvproducer
),
mvo
()(
"producer"
,
prod_name
)));
BOOST_REQUIRE_EQUAL
(
error
(
"missing authority of eosio"
),
push_action
(
producer_names
[
rmv_index
+
2
],
N
(
rmvproducer
),
mvo
()(
"producer"
,
prod_name
)
)
);
BOOST_REQUIRE_EQUAL
(
success
(),
push_action
(
config
::
system_account_name
,
N
(
rmvproducer
),
mvo
()(
"producer"
,
prod_name
)
)
);
info
=
get_producer_info
(
prod_name
);
BOOST_REQUIRE
(
!
info
[
"is_active"
].
as
<
bool
>
()
);
BOOST_REQUIRE
(
fc
::
crypto
::
public_key
()
==
fc
::
crypto
::
public_key
(
info
[
"producer_key"
].
as_string
())
);
BOOST_REQUIRE_EQUAL
(
wasm_assert_msg
(
"producer does not have an active key"
),
push_action
(
prod_name
,
N
(
claimrewards
),
mvo
()(
"owner"
,
prod_name
)
)
);
BOOST_REQUIRE_EQUAL
(
wasm_assert_msg
(
"producer not found"
),
push_action
(
config
::
system_account_name
,
N
(
rmvproducer
),
mvo
()(
"producer"
,
"nonexistingp"
)
)
);
}
}
FC_LOG_AND_RETHROW
()
BOOST_FIXTURE_TEST_CASE
(
producers_upgrade_system_contract
,
eosio_system_tester
)
try
{
...
...
@@ -2603,9 +2628,11 @@ BOOST_FIXTURE_TEST_CASE( setram_effect, eosio_system_tester ) try {
BOOST_REQUIRE_EQUAL
(
core_from_string
(
"700.0000"
),
get_balance
(
name_b
)
);
const
uint64_t
bought_bytes_b
=
get_total_stake
(
name_b
)[
"ram_bytes"
].
as_uint64
()
-
init_bytes_b
;
// increase max_ram_size, ram bought by name_b loses part of its value
// increase max_ram_size, ram bought by name_b loses part of its value
BOOST_REQUIRE_EQUAL
(
wasm_assert_msg
(
"ram may only be increased"
),
push_action
(
config
::
system_account_name
,
N
(
setram
),
mvo
()(
"max_ram_size"
,
64ll
*
1024
*
1024
*
1024
))
);
BOOST_REQUIRE_EQUAL
(
error
(
"missing authority of eosio"
),
push_action
(
name_b
,
N
(
setram
),
mvo
()(
"max_ram_size"
,
80ll
*
1024
*
1024
*
1024
))
);
BOOST_REQUIRE_EQUAL
(
success
(),
push_action
(
config
::
system_account_name
,
N
(
setram
),
mvo
()(
"max_ram_size"
,
80ll
*
1024
*
1024
*
1024
))
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录