Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
7e8dc29b
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,发现更多精彩内容 >>
提交
7e8dc29b
编写于
6月 22, 2019
作者:
W
Wang Zhi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support outer votes for test net requirement
上级
418a7f79
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
46 addition
and
6 deletion
+46
-6
contracts/eosio.system/eosio.system.abi
contracts/eosio.system/eosio.system.abi
+13
-2
contracts/eosio.system/eosio.system.hpp
contracts/eosio.system/eosio.system.hpp
+6
-1
contracts/eosio.system/voting.cpp
contracts/eosio.system/voting.cpp
+27
-3
未找到文件。
contracts/eosio.system/eosio.system.abi
浏览文件 @
7e8dc29b
...
...
@@ -296,8 +296,8 @@
"base": "",
"fields": [
{"name":"owner", "type":"account_name"},
{"name":"seq_num",
"type":"uint16"}
{"name":"seq_num",
"type":"uint16"},
{"name":"out_votes", "type":"int64"}
]
},{
"name": "producers_seq",
...
...
@@ -343,6 +343,13 @@
"name": "testnewelec",
"base": "",
"fields": []
},{
"name": "tmpvotennn",
"base": "",
"fields": [
{"name":"producer", "type":"account_name"},
{"name":"tickets", "type":"int64"}
]
},{
"name": "setram",
"base": "",
...
...
@@ -549,6 +556,10 @@
"name": "testnewelec",
"type": "testnewelec",
"ricardian_contract": ""
},{
"name": "tmpvotennn",
"type": "tmpvotennn",
"ricardian_contract": ""
},{
"name": "regproxy",
"type": "regproxy",
...
...
contracts/eosio.system/eosio.system.hpp
浏览文件 @
7e8dc29b
...
...
@@ -93,9 +93,10 @@ namespace eosiosystem {
struct
producer_info_ext
{
account_name
owner
;
uint16_t
seq_num
=
1
;
// from 1 to 21
int64_t
out_votes
=
0
;
uint64_t
primary_key
()
const
{
return
owner
;
}
EOSLIB_SERIALIZE
(
producer_info_ext
,
(
owner
)(
seq_num
)
)
EOSLIB_SERIALIZE
(
producer_info_ext
,
(
owner
)(
seq_num
)
(
out_votes
)
)
};
...
...
@@ -124,6 +125,8 @@ namespace eosiosystem {
EOSLIB_SERIALIZE
(
producers_seq
,
(
seq_num
)(
is_org
)(
prods_l1
)(
prods_l2
)(
prods_l3
)(
prods_all
)
)
};
//struct remove
//##YTA-Change end:
struct
voter_info
{
...
...
@@ -262,6 +265,8 @@ namespace eosiosystem {
void
seqproducer
(
const
account_name
producer
,
uint16_t
seq
,
uint8_t
level
);
void
tmpvotennn
(
const
account_name
producer
,
int64_t
tickets
);
void
testnewelec
();
//##YTA-Change end:
...
...
contracts/eosio.system/voting.cpp
浏览文件 @
7e8dc29b
...
...
@@ -90,8 +90,10 @@ namespace eosiosystem {
void
system_contract
::
seqproducer
(
const
account_name
producer
,
uint16_t
seq
,
uint8_t
level
)
{
require_auth
(
_self
);
const
auto
&
prod
=
_producers
.
get
(
producer
,
"producer not found"
);
//const auto& prod = _producers.get( producer, "producer not found" );
auto
itp
=
_producers
.
find
(
producer
);
eosio_assert
(
itp
!=
_producers
.
end
()
,
"producer not found"
);
eosio_assert
(
seq
>=
1
&&
seq
<=
21
,
"invalidate seq number"
);
eosio_assert
(
level
>=
1
&&
level
<=
3
,
"invalidate level number"
);
//const auto& prod = _producers.get( producer, "producer not found" );
...
...
@@ -335,6 +337,29 @@ namespace eosiosystem {
}
void
system_contract
::
tmpvotennn
(
const
account_name
producer
,
int64_t
tickets
)
{
require_auth
(
_self
);
const
auto
&
prod
=
_producers
.
get
(
producer
,
"producer not found"
);
//auto it = _producers.find(producer);
//eosio_assert( it != _producers.end() , "producer not found");
_producers
.
modify
(
prod
,
0
,
[
&
](
producer_info
&
info
){
int64_t
vote_delta
=
0
;
auto
pitr2
=
_producers2
.
find
(
producer
);
if
(
pitr2
!=
_producers2
.
end
()
)
{
vote_delta
=
tickets
-
pitr2
->
out_votes
;
info
.
total_votes
+=
vote_delta
;
_producers2
.
modify
(
pitr2
,
0
,
[
&
](
producer_info_ext
&
info2
){
info2
.
out_votes
=
tickets
;
});
update_producers_seq_totalvotes
(
pitr2
->
seq_num
,
producer
,
info
.
total_votes
);
}
});
_gstate
.
total_producer_vote_weight
+=
tickets
;
}
void
system_contract
::
update_elected_producers_yta
(
block_timestamp
block_time
)
{
_gstate
.
last_producer_schedule_update
=
block_time
;
print
(
"update_elected_producers_yta start------------------------------
\n
"
);
...
...
@@ -420,7 +445,6 @@ namespace eosiosystem {
return
std
::
pair
<
eosio
::
producer_key
,
uint16_t
>
({{
0
,
eosio
::
public_key
{}},
0
});
}
//##YTA-Change end:
void
system_contract
::
update_elected_producers
(
block_timestamp
block_time
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录