-
Notifications
You must be signed in to change notification settings - Fork 0
/
mintage.go
99 lines (87 loc) · 2.8 KB
/
mintage.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
94
95
96
97
98
99
package continuum
import (
"github.com/realForbis/continuum-go-sdk/pkg/types"
)
type MintageApi struct {
client *Client
}
type MintageParams struct {
SelfAddr types.Address `json:"selfAddr"`
PrevHash types.Hash `json:"prevHash"`
TokenName string `json:"tokenName"`
TokenSymbol string `json:"tokenSymbol"`
TotalSupply string `json:"totalSupply"`
Decimals uint8 `json:"decimals"`
Beneficial types.Address `json:"beneficial"`
NEP5TxId string `json:"nep5TxId"`
}
type WithdrawParams struct {
SelfAddr types.Address `json:"selfAddr"`
TokenId types.Hash `json:"tokenId"`
}
// NewMintageAPI creates mintage module for client
func NewMintageAPI(c *Client) *MintageApi {
return &MintageApi{client: c}
}
// GetMintageData returns mintage data by mintage parameters
func (m *MintageApi) GetMintageData(param *MintageParams) ([]byte, error) {
var r []byte
err := m.client.getClient().Call(&r, "mintage_getMintageData", param)
if err != nil {
return nil, err
}
return r, nil
}
// GetMintageBlock returns mintage block by mintage parameters
func (m *MintageApi) GetMintageBlock(param *MintageParams) (*types.StateBlock, error) {
var sb types.StateBlock
err := m.client.getClient().Call(&sb, "mintage_getMintageBlock", param)
if err != nil {
return nil, err
}
return &sb, nil
}
// GetRewardBlock returns reward block by mintage block
func (m *MintageApi) GetRewardBlock(input *types.StateBlock) (*types.StateBlock, error) {
var sb types.StateBlock
err := m.client.getClient().Call(&sb, "mintage_getRewardBlock", input)
if err != nil {
return nil, err
}
return &sb, nil
}
// GetWithdrawMintageData returns withdraw mintage data by token id
func (m *MintageApi) GetWithdrawMintageData(tokenId types.Hash) ([]byte, error) {
var r []byte
err := m.client.getClient().Call(&r, "mintage_getWithdrawMintageData", tokenId)
if err != nil {
return nil, err
}
return r, nil
}
// GetWithdrawMintageBlock returns withdraw mintage block by withdraw parameters
func (m *MintageApi) GetWithdrawMintageBlock(param *WithdrawParams) (*types.StateBlock, error) {
var sb types.StateBlock
err := m.client.getClient().Call(&sb, "mintage_getWithdrawMintageBlock", param)
if err != nil {
return nil, err
}
return &sb, nil
}
// GetWithdrawRewardBlock returns withdraw mintage block by mintage block
func (m *MintageApi) GetWithdrawRewardBlock(input *types.StateBlock) (*types.StateBlock, error) {
var sb types.StateBlock
err := m.client.getClient().Call(&sb, "mintage_getWithdrawRewardBlock", input)
if err != nil {
return nil, err
}
return &sb, nil
}
func (m *MintageApi) ParseTokenInfo(data []byte) (*types.TokenInfo, error) {
var ti types.TokenInfo
err := m.client.getClient().Call(&ti, "mintage_parseTokenInfo", data)
if err != nil {
return nil, err
}
return &ti, nil
}