package commands import ( stdjson "encoding/json" "os" "time" jww "github.com/spf13/jwalterweatherman" "github.com/vapor/crypto/ed25519/chainkd" "github.com/vapor/encoding/json" chainjson "github.com/vapor/encoding/json" "github.com/vapor/util" ) // accountIns is used for account related request. type accountIns struct { RootXPubs []chainkd.XPub `json:"root_xpubs"` Quorum int `json:"quorum"` Alias string `json:"alias"` AccessToken string `json:"access_token"` } // assetIns is used for asset related request. type assetIns struct { RootXPubs []chainkd.XPub `json:"root_xpubs"` Quorum int `json:"quorum"` Alias string `json:"alias"` Definition map[string]interface{} `json:"definition"` IssuanceProgram chainjson.HexBytes `json:"issuance_program"` AccessToken string `json:"access_token"` } type requestQuery struct { Filter string `json:"filter,omitempty"` FilterParams []interface{} `json:"filter_params,omitempty"` SumBy []string `json:"sum_by,omitempty"` PageSize int `json:"page_size"` AscLongPoll bool `json:"ascending_with_long_poll,omitempty"` Timeout json.Duration `json:"timeout"` After string `json:"after"` StartTimeMS uint64 `json:"start_time,omitempty"` EndTimeMS uint64 `json:"end_time,omitempty"` TimestampMS uint64 `json:"timestamp,omitempty"` Type string `json:"type"` Aliases []string `json:"aliases,omitempty"` } // txFeed type txFeed struct { Alias string `json:"alias"` Filter string `json:"filter,omitempty"` } type respArrayTxFeed struct { Status string `json:"status,omitempty"` Msg string `json:"msg,omitempty"` Data []*txFeed `json:"data,omitempty"` } type respTxFeed struct { Status string `json:"status,omitempty"` Msg string `json:"msg,omitempty"` Data txFeed `json:"data,omitempty"` } type accessToken struct { ID string `json:"id,omitempty"` Token string `json:"token,omitempty"` Type string `json:"type,omitempty"` Secret string `json:"secret,omitempty"` Created time.Time `json:"created_at,omitempty"` } func printJSON(data interface{}) { dataMap, ok := data.(map[string]interface{}) if ok != true { jww.ERROR.Println("invalid type assertion") os.Exit(util.ErrLocalParse) } rawData, err := stdjson.MarshalIndent(dataMap, "", " ") if err != nil { jww.ERROR.Println(err) os.Exit(util.ErrLocalParse) } jww.FEEDBACK.Println(string(rawData)) } func printJSONList(data interface{}) { dataList, ok := data.([]interface{}) if ok != true { jww.ERROR.Println("invalid type assertion") os.Exit(util.ErrLocalParse) } for idx, item := range dataList { jww.FEEDBACK.Println(idx, ":") rawData, err := stdjson.MarshalIndent(item, "", " ") if err != nil { jww.ERROR.Println(err) os.Exit(util.ErrLocalParse) } jww.FEEDBACK.Println(string(rawData)) } }