github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/token/types/token.go (about) 1 package types 2 3 import ( 4 "encoding/json" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 ) 8 9 type Token struct { 10 Description string `json:"description" v2:"description"` // e.g. "OK Group Global Utility Token" 11 Symbol string `json:"symbol" v2:"symbol"` // e.g. "fibo" 12 OriginalSymbol string `json:"original_symbol" v2:"original_symbol"` // e.g. "fibo" 13 WholeName string `json:"whole_name" v2:"whole_name"` // e.g. "fibo" 14 OriginalTotalSupply sdk.Dec `json:"original_total_supply" v2:"original_total_supply"` // e.g. 1000000000.00000000 15 Type int `json:"type"` //e.g. 1 common token, 2 interest token 16 Owner sdk.AccAddress `json:"owner" v2:"owner"` // e.g. fb1cftp8q8g4aa65nw9s5trwexe77d9t6cr8ndu02 17 Mintable bool `json:"mintable" v2:"mintable"` // e.g. false 18 } 19 20 func (token Token) String() string { 21 b, err := json.Marshal(token) 22 if err != nil { 23 return "{}" 24 } 25 return string(b) 26 } 27 28 type TokenResp struct { 29 Description string `json:"description" v2:"description"` 30 Symbol string `json:"symbol" v2:"symbol"` 31 OriginalSymbol string `json:"original_symbol" v2:"original_symbol"` 32 WholeName string `json:"whole_name" v2:"whole_name"` 33 OriginalTotalSupply sdk.Dec `json:"original_total_supply" v2:"original_total_supply"` 34 Type int `json:"type"` 35 Owner sdk.AccAddress `json:"owner" v2:"owner"` 36 Mintable bool `json:"mintable" v2:"mintable"` 37 TotalSupply sdk.Dec `json:"total_supply" v2:"total_supply"` 38 } 39 40 func (token TokenResp) String() string { 41 b, err := json.Marshal(token) 42 if err != nil { 43 return "{}" 44 } 45 return string(b) 46 } 47 48 type Tokens []TokenResp 49 50 func (tokens Tokens) String() string { 51 b, err := json.Marshal(tokens) 52 if err != nil { 53 return "[{}]" 54 } 55 return string(b) 56 } 57 58 type Currency struct { 59 Description string `json:"description"` 60 Symbol string `json:"symbol"` 61 TotalSupply sdk.Dec `json:"total_supply"` 62 } 63 64 func (currency Currency) String() string { 65 b, err := json.Marshal(currency) 66 if err != nil { 67 return "[{}]" 68 } 69 return string(b) 70 } 71 72 type Transfer struct { 73 To string `json:"to"` 74 Amount string `json:"amount"` 75 } 76 77 type TransferUnit struct { 78 To sdk.AccAddress `json:"to"` 79 Coins sdk.SysCoins `json:"coins"` 80 } 81 82 type CoinsInfo []CoinInfo 83 84 func (d CoinsInfo) Len() int { return len(d) } 85 func (d CoinsInfo) Swap(i, j int) { d[i], d[j] = d[j], d[i] } 86 func (d CoinsInfo) Less(i, j int) bool { return d[i].Symbol < d[j].Symbol } 87 88 type AccountResponse struct { 89 Address string `json:"address"` 90 Currencies CoinsInfo `json:"currencies"` 91 } 92 93 func NewAccountResponse(addr string) AccountResponse { 94 var accountResponse AccountResponse 95 accountResponse.Address = addr 96 accountResponse.Currencies = []CoinInfo{} 97 return accountResponse 98 } 99 100 type CoinInfo struct { 101 Symbol string `json:"symbol" v2:"currency"` 102 Available string `json:"available" v2:"available"` 103 Locked string `json:"locked" v2:"locked"` 104 } 105 106 func NewCoinInfo(symbol, available, locked string) *CoinInfo { 107 return &CoinInfo{ 108 Symbol: symbol, 109 Available: available, 110 Locked: locked, 111 } 112 } 113 114 type AccountParam struct { 115 Symbol string `json:"symbol"` 116 Show string `json:"show"` 117 } 118 119 type AccountParamV2 struct { 120 Currency string `json:"currency"` 121 HideZero string `json:"hide_zero"` 122 } 123 124 type AccCoins struct { 125 Acc sdk.AccAddress `json:"address"` 126 Coins sdk.SysCoins `json:"coins"` 127 }