Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
0e429577
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,发现更多精彩内容 >>
提交
0e429577
编写于
6月 29, 2018
作者:
A
arhag
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add cleos sudo exec #4430
上级
d3eb2935
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
0 deletion
+34
-0
programs/cleos/main.cpp
programs/cleos/main.cpp
+34
-0
未找到文件。
programs/cleos/main.cpp
浏览文件 @
0e429577
...
...
@@ -2703,6 +2703,40 @@ int main( int argc, char** argv ) {
}
);
// sudo subcommand
auto
sudo
=
app
.
add_subcommand
(
"sudo"
,
localized
(
"Sudo contract commands"
),
false
);
sudo
->
require_subcommand
();
// sudo exec
executer
=
""
;
string
trx_to_exec
;
auto
sudo_exec
=
sudo
->
add_subcommand
(
"exec"
,
localized
(
"Execute a transaction while bypassing authorization checks"
));
add_standard_transaction_options
(
sudo_exec
);
sudo_exec
->
add_option
(
"executer"
,
executer
,
localized
(
"Account executing the transaction and paying for the deferred transaction RAM"
))
->
required
();
sudo_exec
->
add_option
(
"transaction"
,
trx_to_exec
,
localized
(
"The JSON string or filename defining the transaction to execute"
))
->
required
();
sudo_exec
->
set_callback
([
&
]
{
fc
::
variant
trx_var
;
try
{
trx_var
=
json_from_file_or_string
(
trx_to_exec
);
}
EOS_RETHROW_EXCEPTIONS
(
transaction_type_exception
,
"Fail to parse transaction JSON '${data}'"
,
(
"data"
,
trx_to_exec
))
auto
accountPermissions
=
get_account_permissions
(
tx_permission
);
if
(
accountPermissions
.
empty
()
)
{
accountPermissions
=
vector
<
permission_level
>
{{
executer
,
config
::
active_name
},
{
"eosio.sudo"
,
config
::
active_name
}};
}
auto
arg
=
fc
::
mutable_variant_object
()
(
"code"
,
"eosio.sudo"
)
(
"action"
,
"exec"
)
(
"args"
,
fc
::
mutable_variant_object
()
(
"executer"
,
executer
)
(
"trx"
,
trx_var
)
);
auto
result
=
call
(
json_to_bin_func
,
arg
);
send_actions
({
chain
::
action
{
accountPermissions
,
"eosio.sudo"
,
"exec"
,
result
.
get_object
()[
"binargs"
].
as
<
bytes
>
()}});
});
// system subcommand
auto
system
=
app
.
add_subcommand
(
"system"
,
localized
(
"Send eosio.system contract action to the blockchain."
),
false
);
system
->
require_subcommand
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录