Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
ebcf4e12
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,发现更多精彩内容 >>
提交
ebcf4e12
编写于
3月 27, 2018
作者:
D
Daniel Larimer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #1848 - signatures no include CFA data if it is present, otherwise are unchanged
上级
360e3329
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
15 addition
and
16 deletion
+15
-16
contracts/test_api_multi_index/test_api_multi_index.cpp
contracts/test_api_multi_index/test_api_multi_index.cpp
+0
-5
libraries/chain/chain_controller.cpp
libraries/chain/chain_controller.cpp
+3
-2
libraries/chain/include/eosio/chain/chain_controller.hpp
libraries/chain/include/eosio/chain/chain_controller.hpp
+1
-0
libraries/chain/include/eosio/chain/transaction.hpp
libraries/chain/include/eosio/chain/transaction.hpp
+2
-2
libraries/chain/transaction.cpp
libraries/chain/transaction.cpp
+8
-6
libraries/testing/tester.cpp
libraries/testing/tester.cpp
+1
-1
未找到文件。
contracts/test_api_multi_index/test_api_multi_index.cpp
浏览文件 @
ebcf4e12
...
@@ -8,11 +8,6 @@
...
@@ -8,11 +8,6 @@
#include "test_multi_index.cpp"
#include "test_multi_index.cpp"
extern
"C"
{
extern
"C"
{
void
init
()
{
}
void
apply
(
uint64_t
receiver
,
uint64_t
code
,
uint64_t
action
)
{
void
apply
(
uint64_t
receiver
,
uint64_t
code
,
uint64_t
action
)
{
WASM_TEST_HANDLER_EX
(
test_multi_index
,
idx64_general
);
WASM_TEST_HANDLER_EX
(
test_multi_index
,
idx64_general
);
...
...
libraries/chain/chain_controller.cpp
浏览文件 @
ebcf4e12
...
@@ -260,7 +260,7 @@ transaction_trace chain_controller::_push_transaction(const packed_transaction&
...
@@ -260,7 +260,7 @@ transaction_trace chain_controller::_push_transaction(const packed_transaction&
{
try
{
{
try
{
transaction_metadata
mtrx
(
trx
,
get_chain_id
(),
head_block_time
());
transaction_metadata
mtrx
(
trx
,
get_chain_id
(),
head_block_time
());
check_transaction_authorization
(
mtrx
.
trx
(),
trx
.
signatures
);
check_transaction_authorization
(
mtrx
.
trx
(),
trx
.
signatures
,
trx
.
context_free_data
);
auto
result
=
_push_transaction
(
std
::
move
(
mtrx
));
auto
result
=
_push_transaction
(
std
::
move
(
mtrx
));
// notify anyone listening to pending transactions
// notify anyone listening to pending transactions
...
@@ -833,9 +833,10 @@ void chain_controller::check_authorization( const vector<action>& actions,
...
@@ -833,9 +833,10 @@ void chain_controller::check_authorization( const vector<action>& actions,
void
chain_controller
::
check_transaction_authorization
(
const
transaction
&
trx
,
void
chain_controller
::
check_transaction_authorization
(
const
transaction
&
trx
,
const
vector
<
signature_type
>&
signatures
,
const
vector
<
signature_type
>&
signatures
,
const
vector
<
bytes
>&
cfd
,
bool
allow_unused_signatures
)
const
bool
allow_unused_signatures
)
const
{
{
check_authorization
(
trx
.
actions
,
trx
.
get_signature_keys
(
signatures
,
chain_id_type
{}
),
allow_unused_signatures
);
check_authorization
(
trx
.
actions
,
trx
.
get_signature_keys
(
signatures
,
chain_id_type
{}
,
cfd
),
allow_unused_signatures
);
}
}
optional
<
permission_name
>
chain_controller
::
lookup_minimum_permission
(
account_name
authorizer_account
,
optional
<
permission_name
>
chain_controller
::
lookup_minimum_permission
(
account_name
authorizer_account
,
...
...
libraries/chain/include/eosio/chain/chain_controller.hpp
浏览文件 @
ebcf4e12
...
@@ -339,6 +339,7 @@ namespace eosio { namespace chain {
...
@@ -339,6 +339,7 @@ namespace eosio { namespace chain {
void
check_transaction_authorization
(
const
transaction
&
trx
,
void
check_transaction_authorization
(
const
transaction
&
trx
,
const
vector
<
signature_type
>&
signatures
,
const
vector
<
signature_type
>&
signatures
,
const
vector
<
bytes
>&
cfd
=
vector
<
bytes
>
(),
bool
allow_unused_signatures
=
false
)
const
;
bool
allow_unused_signatures
=
false
)
const
;
...
...
libraries/chain/include/eosio/chain/transaction.hpp
浏览文件 @
ebcf4e12
...
@@ -138,8 +138,8 @@ namespace eosio { namespace chain {
...
@@ -138,8 +138,8 @@ namespace eosio { namespace chain {
vector
<
action
>
actions
;
vector
<
action
>
actions
;
transaction_id_type
id
()
const
;
transaction_id_type
id
()
const
;
digest_type
sig_digest
(
const
chain_id_type
&
chain_id
)
const
;
digest_type
sig_digest
(
const
chain_id_type
&
chain_id
,
const
vector
<
bytes
>&
cfd
=
vector
<
bytes
>
()
)
const
;
flat_set
<
public_key_type
>
get_signature_keys
(
const
vector
<
signature_type
>&
signatures
,
const
chain_id_type
&
chain_id
)
const
;
flat_set
<
public_key_type
>
get_signature_keys
(
const
vector
<
signature_type
>&
signatures
,
const
chain_id_type
&
chain_id
,
const
vector
<
bytes
>&
cfd
=
vector
<
bytes
>
()
)
const
;
};
};
...
...
libraries/chain/transaction.cpp
浏览文件 @
ebcf4e12
...
@@ -64,20 +64,22 @@ transaction_id_type transaction::id() const {
...
@@ -64,20 +64,22 @@ transaction_id_type transaction::id() const {
}
}
digest_type
transaction
::
sig_digest
(
const
chain_id_type
&
chain_id
)
const
{
digest_type
transaction
::
sig_digest
(
const
chain_id_type
&
chain_id
,
const
vector
<
bytes
>&
cfd
)
const
{
digest_type
::
encoder
enc
;
digest_type
::
encoder
enc
;
fc
::
raw
::
pack
(
enc
,
chain_id
);
fc
::
raw
::
pack
(
enc
,
chain_id
);
fc
::
raw
::
pack
(
enc
,
*
this
);
fc
::
raw
::
pack
(
enc
,
*
this
);
if
(
cfd
.
size
()
)
fc
::
raw
::
pack
(
enc
,
cfd
);
return
enc
.
result
();
return
enc
.
result
();
}
}
flat_set
<
public_key_type
>
transaction
::
get_signature_keys
(
const
vector
<
signature_type
>&
signatures
,
const
chain_id_type
&
chain_id
)
const
flat_set
<
public_key_type
>
transaction
::
get_signature_keys
(
const
vector
<
signature_type
>&
signatures
,
const
chain_id_type
&
chain_id
,
const
vector
<
bytes
>&
cfd
)
const
{
try
{
{
try
{
using
boost
::
adaptors
::
transformed
;
using
boost
::
adaptors
::
transformed
;
constexpr
size_t
recovery_cache_size
=
100000
;
constexpr
size_t
recovery_cache_size
=
100000
;
static
recovery_cache_type
recovery_cache
;
static
recovery_cache_type
recovery_cache
;
const
digest_type
digest
=
sig_digest
(
chain_id
);
const
digest_type
digest
=
sig_digest
(
chain_id
,
cfd
);
flat_set
<
public_key_type
>
recovered_pub_keys
;
flat_set
<
public_key_type
>
recovered_pub_keys
;
for
(
const
signature_type
&
sig
:
signatures
)
{
for
(
const
signature_type
&
sig
:
signatures
)
{
...
@@ -100,17 +102,17 @@ flat_set<public_key_type> transaction::get_signature_keys( const vector<signatur
...
@@ -100,17 +102,17 @@ flat_set<public_key_type> transaction::get_signature_keys( const vector<signatur
const
signature_type
&
signed_transaction
::
sign
(
const
private_key_type
&
key
,
const
chain_id_type
&
chain_id
)
{
const
signature_type
&
signed_transaction
::
sign
(
const
private_key_type
&
key
,
const
chain_id_type
&
chain_id
)
{
signatures
.
push_back
(
key
.
sign
(
sig_digest
(
chain_id
)));
signatures
.
push_back
(
key
.
sign
(
sig_digest
(
chain_id
,
context_free_data
)));
return
signatures
.
back
();
return
signatures
.
back
();
}
}
signature_type
signed_transaction
::
sign
(
const
private_key_type
&
key
,
const
chain_id_type
&
chain_id
)
const
{
signature_type
signed_transaction
::
sign
(
const
private_key_type
&
key
,
const
chain_id_type
&
chain_id
)
const
{
return
key
.
sign
(
sig_digest
(
chain_id
));
return
key
.
sign
(
sig_digest
(
chain_id
,
context_free_data
));
}
}
flat_set
<
public_key_type
>
signed_transaction
::
get_signature_keys
(
const
chain_id_type
&
chain_id
)
const
flat_set
<
public_key_type
>
signed_transaction
::
get_signature_keys
(
const
chain_id_type
&
chain_id
)
const
{
{
return
transaction
::
get_signature_keys
(
signatures
,
chain_id
);
return
transaction
::
get_signature_keys
(
signatures
,
chain_id
,
context_free_data
);
}
}
namespace
bio
=
boost
::
iostreams
;
namespace
bio
=
boost
::
iostreams
;
...
...
libraries/testing/tester.cpp
浏览文件 @
ebcf4e12
...
@@ -397,7 +397,7 @@ namespace eosio { namespace testing {
...
@@ -397,7 +397,7 @@ namespace eosio { namespace testing {
void
base_tester
::
set_code
(
account_name
account
,
const
char
*
wast
)
try
{
void
base_tester
::
set_code
(
account_name
account
,
const
char
*
wast
)
try
{
set_code
(
account
,
wast_to_wasm
(
wast
));
set_code
(
account
,
wast_to_wasm
(
wast
));
}
FC_CAPTURE_AND_RETHROW
(
(
account
)
(
wast
)
)
}
FC_CAPTURE_AND_RETHROW
(
(
account
)
)
void
base_tester
::
set_code
(
account_name
account
,
const
vector
<
uint8_t
>
wasm
)
try
{
void
base_tester
::
set_code
(
account_name
account
,
const
vector
<
uint8_t
>
wasm
)
try
{
signed_transaction
trx
;
signed_transaction
trx
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录