Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
ef2c3884
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,体验更适合开发者的 AI 搜索 >>
提交
ef2c3884
编写于
10月 29, 2019
作者:
W
Wang Zhi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update hddlock contract
上级
fadf302d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
80 addition
and
7 deletion
+80
-7
contracts/hddlock/hddlock.abi
contracts/hddlock/hddlock.abi
+38
-1
contracts/hddlock/hddlock.cpp
contracts/hddlock/hddlock.cpp
+31
-3
contracts/hddlock/hddlock.hpp
contracts/hddlock/hddlock.hpp
+11
-3
未找到文件。
contracts/hddlock/hddlock.abi
浏览文件 @
ef2c3884
...
...
@@ -11,6 +11,21 @@
"fields": [
]
},
{
"name": "addaccbig",
"base": "",
"fields": [
{"name":"user", "type":"account_name"},
{"name":"desc", "type":"string"}
]
},
{
"name": "rmvaccbig",
"base": "",
"fields": [
{"name":"user", "type":"account_name"}
]
},
{
"name": "clearall",
"base": "",
...
...
@@ -57,6 +72,7 @@
{"name":"from", "type":"account_name"},
{"name":"to", "type":"account_name"},
{"name":"quantity", "type":"asset"},
{"name":"amount", "type":"asset"},
{"name":"memo", "type":"string"}
]
},
...
...
@@ -89,6 +105,20 @@
"type": "uint64"
}
]
},
{
"name": "accbig",
"base": "",
"fields": [
{
"name": "user",
"type": "account_name"
},
{
"name": "desc",
"type": "string"
}
]
}
],
"actions": [
...
...
@@ -127,7 +157,14 @@
"index_type": "i64",
"key_names": [],
"key_types": []
}
},
{
"name": "accbig",
"type": "accbig",
"index_type": "i64",
"key_names": [],
"key_types": []
}
],
"ricardian_clauses": [],
"variants": []
...
...
contracts/hddlock/hddlock.cpp
浏览文件 @
ef2c3884
...
...
@@ -19,6 +19,30 @@ void hddlock::init() {
}
void
hddlock
::
addaccbig
(
account_name
user
,
std
::
string
&
desc
)
{
require_auth
(
_self
);
accbig_table
_accbig
(
_self
,
_self
);
auto
itmaccbig
=
_accbig
.
find
(
user
);
eosio_assert
(
itmaccbig
==
_accbig
.
end
(),
"user already registered as big account"
);
_accbig
.
emplace
(
_self
,
[
&
](
auto
&
row
)
{
row
.
user
=
user
;
row
.
desc
=
desc
;
});
}
void
hddlock
::
rmvaccbig
(
account_name
user
)
{
require_auth
(
_self
);
accbig_table
_accbig
(
_self
,
_self
);
auto
itmaccbig
=
_accbig
.
find
(
user
);
if
(
itmaccbig
!=
_accbig
.
end
())
{
_accbig
.
erase
(
itmaccbig
);
}
}
void
hddlock
::
addrule
(
uint64_t
lockruleid
,
std
::
vector
<
uint64_t
>&
times
,
std
::
vector
<
uint8_t
>&
percentage
,
std
::
string
&
desc
)
{
require_auth
(
_self
);
...
...
@@ -38,11 +62,15 @@ void hddlock::addrule(uint64_t lockruleid, std::vector<uint64_t>& times, std::ve
});
}
void
hddlock
::
locktransfer
(
uint64_t
lockruleid
,
account_name
from
,
account_name
to
,
asset
quantity
,
std
::
string
memo
)
void
hddlock
::
locktransfer
(
uint64_t
lockruleid
,
account_name
from
,
account_name
to
,
asset
quantity
,
asset
amount
,
std
::
string
memo
)
{
require_auth
(
from
);
eosio_assert
(
quantity
.
symbol
==
CORE_SYMBOL
,
"only core symbole support this lock transsfer"
);
accbig_table
_accbig
(
_self
,
_self
);
auto
itmaccbig
=
_accbig
.
find
(
from
);
eosio_assert
(
itmaccbig
!=
_accbig
.
end
(),
"from can not locktransfer"
);
lockrule_table
_lockrule
(
_self
,
_self
);
auto
itrule
=
_lockrule
.
find
(
lockruleid
);
eosio_assert
(
itrule
!=
_lockrule
.
end
(),
"lockruleid not existed in rule table"
);
...
...
@@ -50,7 +78,7 @@ void hddlock::locktransfer(uint64_t lockruleid, account_name from, account_name
action
(
permission_level
{
from
,
active_permission
},
token_account
,
N
(
transfer
),
std
::
make_tuple
(
from
,
to
,
quantity
,
memo
))
std
::
make_tuple
(
from
,
to
,
amount
,
memo
))
.
send
();
acclock_table
_acclock
(
_self
,
to
);
...
...
@@ -76,4 +104,4 @@ void hddlock::clearall() {
}
EOSIO_ABI
(
hddlock
,
(
init
)(
addrule
)(
locktransfer
)(
clearall
))
EOSIO_ABI
(
hddlock
,
(
init
)(
addrule
)(
locktransfer
)(
clearall
)
(
addaccbig
)(
rmvaccbig
)
)
contracts/hddlock/hddlock.hpp
浏览文件 @
ef2c3884
...
...
@@ -20,9 +20,11 @@ class hddlock : public eosio::contract {
void
init
();
void
addrule
(
uint64_t
lockruleid
,
std
::
vector
<
uint64_t
>&
times
,
std
::
vector
<
uint8_t
>&
percentage
,
std
::
string
&
desc
);
void
locktransfer
(
uint64_t
lockruleid
,
account_name
from
,
account_name
to
,
asset
quantity
,
std
::
string
memo
);
void
locktransfer
(
uint64_t
lockruleid
,
account_name
from
,
account_name
to
,
asset
quantity
,
asset
amount
,
std
::
string
memo
);
void
clearall
();
void
addaccbig
(
account_name
user
,
std
::
string
&
desc
);
void
rmvaccbig
(
account_name
user
);
inline
asset
get_lock_asset
(
account_name
user
)
const
;
...
...
@@ -33,7 +35,7 @@ class hddlock : public eosio::contract {
std
::
vector
<
uint64_t
>
times
;
std
::
vector
<
uint8_t
>
percentage
;
std
::
string
desc
;
uint64_t
primary_key
()
const
{
return
lockruleid
;
}
uint64_t
primary_key
()
const
{
return
lockruleid
;
}
};
typedef
multi_index
<
N
(
lockrule
),
lockrule
>
lockrule_table
;
...
...
@@ -44,10 +46,16 @@ class hddlock : public eosio::contract {
account_name
from
;
std
::
string
memo
;
uint64_t
time
;
uint64_t
primary_key
()
const
{
return
time
;
}
uint64_t
primary_key
()
const
{
return
time
;
}
};
typedef
multi_index
<
N
(
acclock
),
acclock
>
acclock_table
;
struct
accbig
{
account_name
user
;
std
::
string
desc
;
uint64_t
primary_key
()
const
{
return
user
;
}
};
typedef
multi_index
<
N
(
accbig
),
accbig
>
accbig_table
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录