Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
7a5d8ee0
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,发现更多精彩内容 >>
未验证
提交
7a5d8ee0
编写于
8月 20, 2018
作者:
K
Kevin Heifner
提交者:
GitHub
8月 20, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5306 from EOSIO/mongodb-filter-fix
MongoDB plugin filter based on action trace
上级
640bb11b
5cc9a1de
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
10 deletion
+10
-10
plugins/mongo_db_plugin/mongo_db_plugin.cpp
plugins/mongo_db_plugin/mongo_db_plugin.cpp
+10
-10
未找到文件。
plugins/mongo_db_plugin/mongo_db_plugin.cpp
浏览文件 @
7a5d8ee0
...
...
@@ -104,7 +104,7 @@ public:
void
remove_account_control
(
const
account_name
&
name
,
const
permission_name
&
permission
);
/// @return true if act should be added to mongodb, false to skip it
bool
filter_include
(
const
chain
::
action
&
act
)
const
;
bool
filter_include
(
const
chain
::
action
_trace
&
action_trace
)
const
;
void
init
();
void
wipe_database
();
...
...
@@ -200,13 +200,13 @@ const std::string mongo_db_plugin_impl::accounts_col = "accounts";
const
std
::
string
mongo_db_plugin_impl
::
pub_keys_col
=
"pub_keys"
;
const
std
::
string
mongo_db_plugin_impl
::
account_controls_col
=
"account_controls"
;
bool
mongo_db_plugin_impl
::
filter_include
(
const
chain
::
action
&
act
)
const
{
bool
mongo_db_plugin_impl
::
filter_include
(
const
chain
::
action
_trace
&
action_trace
)
const
{
bool
include
=
false
;
if
(
filter_on_star
||
filter_on
.
find
(
{
act
.
account
,
act
.
name
,
0
}
)
!=
filter_on
.
end
()
)
{
if
(
filter_on_star
||
filter_on
.
find
(
{
act
ion_trace
.
receipt
.
receiver
,
action_trace
.
act
.
name
,
0
}
)
!=
filter_on
.
end
()
)
{
include
=
true
;
}
else
{
for
(
const
auto
&
a
:
act
.
authorization
)
{
if
(
filter_on
.
find
(
{
act
.
account
,
act
.
name
,
a
.
actor
}
)
!=
filter_on
.
end
()
)
{
for
(
const
auto
&
a
:
act
ion_trace
.
act
.
authorization
)
{
if
(
filter_on
.
find
(
{
act
ion_trace
.
receipt
.
receiver
,
action_trace
.
act
.
name
,
a
.
actor
}
)
!=
filter_on
.
end
()
)
{
include
=
true
;
break
;
}
...
...
@@ -215,14 +215,14 @@ bool mongo_db_plugin_impl::filter_include( const chain::action& act ) const {
if
(
!
include
)
{
return
false
;
}
if
(
filter_out
.
find
(
{
act
.
account
,
0
,
0
}
)
!=
filter_out
.
end
()
)
{
if
(
filter_out
.
find
(
{
act
ion_trace
.
receipt
.
receiver
,
0
,
0
}
)
!=
filter_out
.
end
()
)
{
return
false
;
}
if
(
filter_out
.
find
(
{
act
.
account
,
act
.
name
,
0
}
)
!=
filter_out
.
end
()
)
{
if
(
filter_out
.
find
(
{
act
ion_trace
.
receipt
.
receiver
,
action_trace
.
act
.
name
,
0
}
)
!=
filter_out
.
end
()
)
{
return
false
;
}
for
(
const
auto
&
a
:
act
.
authorization
)
{
if
(
filter_out
.
find
(
{
act
.
account
,
act
.
name
,
a
.
actor
}
)
!=
filter_out
.
end
()
)
{
for
(
const
auto
&
a
:
act
ion_trace
.
act
.
authorization
)
{
if
(
filter_out
.
find
(
{
act
ion_trace
.
receipt
.
receiver
,
action_trace
.
act
.
name
,
a
.
actor
}
)
!=
filter_out
.
end
()
)
{
return
false
;
}
}
...
...
@@ -714,7 +714,7 @@ mongo_db_plugin_impl::add_action_trace( mongocxx::bulk_write& bulk_action_traces
}
bool
added
=
false
;
if
(
start_block_reached
&&
store_action_traces
&&
filter_include
(
atrace
.
act
)
)
{
if
(
start_block_reached
&&
store_action_traces
&&
filter_include
(
atrace
)
)
{
auto
action_traces_doc
=
bsoncxx
::
builder
::
basic
::
document
{};
const
chain
::
base_action_trace
&
base
=
atrace
;
// without inline action traces
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录