-
Notifications
You must be signed in to change notification settings - Fork 1
/
query.go
93 lines (84 loc) · 2.51 KB
/
query.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package executor
import (
"github.com/assetcloud/chain/types"
tokenty "github.com/assetcloud/plugin/plugin/dapp/token/types"
)
// Query_GetTokens 获取token
func (t *token) Query_GetTokens(in *tokenty.ReqTokens) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
return t.getTokens(in)
}
// Query_GetTokenInfo 获取token信息
func (t *token) Query_GetTokenInfo(in *types.ReqString) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
return t.getTokenInfo(in.GetData())
}
// Query_GetTotalAmount 获取token总量
func (t *token) Query_GetTotalAmount(in *types.ReqString) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
ret, err := t.getTokenInfo(in.GetData())
if err != nil {
return nil, err
}
tokenInfo, ok := ret.(*tokenty.LocalToken)
if !ok {
return nil, types.ErrTypeAsset
}
return &types.TotalAmount{
Total: tokenInfo.Total,
}, nil
}
// Query_GetAddrReceiverforTokens 获取token接受人数据
func (t *token) Query_GetAddrReceiverforTokens(in *tokenty.ReqAddrTokens) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
return t.getAddrReceiverforTokens(in)
}
// Query_GetAccountTokenAssets 获取账户的token资产
func (t *token) Query_GetAccountTokenAssets(in *tokenty.ReqAccountTokenAssets) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
return t.getAccountTokenAssets(in)
}
// Query_GetTxByToken 获取token相关交易
func (t *token) Query_GetTxByToken(in *tokenty.ReqTokenTx) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
if !subCfg.SaveTokenTxList {
return nil, types.ErrActionNotSupport
}
return t.getTxByToken(in)
}
// Query_GetTokenHistory 获取token 的变更历史
func (t *token) Query_GetTokenHistory(in *types.ReqString) (types.Message, error) {
if in == nil {
return nil, types.ErrInvalidParam
}
rows, err := list(t.GetLocalDB(), "symbol", &tokenty.LocalLogs{Symbol: in.Data}, -1, 0)
if err != nil {
tokenlog.Error("Query_GetTokenHistory", "err", err)
return nil, err
}
var replys tokenty.ReplyTokenLogs
for _, row := range rows {
o, ok := row.Data.(*tokenty.LocalLogs)
if !ok {
tokenlog.Error("Query_GetTokenHistory", "err", "bad row type")
return nil, types.ErrTypeAsset
}
replys.Logs = append(replys.Logs, o)
}
return &replys, nil
}