Remove docs/clients/lcd-rest-api.yaml and add its content to client/lcd/swagger-ui/swagger.json
This commit is contained in:
parent
bff2f33ac5
commit
c5affaa7bf
|
@ -304,14 +304,6 @@
|
||||||
pruneopts = "UT"
|
pruneopts = "UT"
|
||||||
revision = "05ee40e3a273f7245e8777337fc7b46e533a9a92"
|
revision = "05ee40e3a273f7245e8777337fc7b46e533a9a92"
|
||||||
|
|
||||||
[[projects]]
|
|
||||||
digest = "1:ea0700160aca4ef099f4e06686a665a87691f4248dddd40796925eda2e46bd64"
|
|
||||||
name = "github.com/rakyll/statik"
|
|
||||||
packages = ["fs"]
|
|
||||||
pruneopts = "UT"
|
|
||||||
revision = "aa8a7b1baecd0f31a436bf7956fcdcc609a83035"
|
|
||||||
version = "v0.1.4"
|
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
digest = "1:c4556a44e350b50a490544d9b06e9fba9c286c21d6c0e47f54f3a9214597298c"
|
digest = "1:c4556a44e350b50a490544d9b06e9fba9c286c21d6c0e47f54f3a9214597298c"
|
||||||
name = "github.com/rcrowley/go-metrics"
|
name = "github.com/rcrowley/go-metrics"
|
||||||
|
@ -647,7 +639,6 @@
|
||||||
"github.com/gorilla/mux",
|
"github.com/gorilla/mux",
|
||||||
"github.com/mattn/go-isatty",
|
"github.com/mattn/go-isatty",
|
||||||
"github.com/pkg/errors",
|
"github.com/pkg/errors",
|
||||||
"github.com/rakyll/statik/fs",
|
|
||||||
"github.com/spf13/cobra",
|
"github.com/spf13/cobra",
|
||||||
"github.com/spf13/pflag",
|
"github.com/spf13/pflag",
|
||||||
"github.com/spf13/viper",
|
"github.com/spf13/viper",
|
||||||
|
|
|
@ -18,12 +18,12 @@ import (
|
||||||
slashing "github.com/cosmos/cosmos-sdk/x/slashing/client/rest"
|
slashing "github.com/cosmos/cosmos-sdk/x/slashing/client/rest"
|
||||||
stake "github.com/cosmos/cosmos-sdk/x/stake/client/rest"
|
stake "github.com/cosmos/cosmos-sdk/x/stake/client/rest"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/rakyll/statik/fs"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
cmn "github.com/tendermint/tendermint/libs/common"
|
cmn "github.com/tendermint/tendermint/libs/common"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
tmserver "github.com/tendermint/tendermint/rpc/lib/server"
|
tmserver "github.com/tendermint/tendermint/rpc/lib/server"
|
||||||
"github.com/rakyll/statik/fs"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -134,119 +134,6 @@ func createHandler(cdc *codec.Codec) http.Handler {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cliCtx := context.NewCLIContext().WithCodec(cdc).WithLogger(os.Stdout)
|
|
||||||
|
|
||||||
// TODO: make more functional? aka r = keys.RegisterRoutes(r)
|
|
||||||
r.HandleFunc("/version", CLIVersionRequestHandler).Methods("GET")
|
|
||||||
r.HandleFunc("/node_version", NodeVersionRequestHandler(cliCtx)).Methods("GET")
|
|
||||||
|
|
||||||
keys.RegisterRoutes(r)
|
|
||||||
rpc.RegisterRoutes(cliCtx, r)
|
|
||||||
tx.RegisterRoutes(cliCtx, r, cdc)
|
|
||||||
auth.RegisterRoutes(cliCtx, r, cdc, "acc")
|
|
||||||
bank.RegisterRoutes(cliCtx, r, cdc, kb)
|
|
||||||
stake.RegisterRoutes(cliCtx, r, cdc, kb)
|
|
||||||
slashing.RegisterRoutes(cliCtx, r, cdc, kb)
|
|
||||||
gov.RegisterRoutes(cliCtx, r, cdc)
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServeLiteCommand will generate a long-running rest server for gaia-lite
|
|
||||||
func ServeLiteCommand(cdc *codec.Codec) *cobra.Command {
|
|
||||||
cmd := &cobra.Command{
|
|
||||||
Use: "lite-server",
|
|
||||||
Short: "Start Gaia-lite (light-client daemon), a local REST server with swagger-ui, default url: http://localhost:1317/swagger-ui/",
|
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
|
||||||
listenAddr := viper.GetString(flagListenAddr)
|
|
||||||
handler := createLiteHandler(cdc)
|
|
||||||
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "gaia-lite")
|
|
||||||
maxOpen := viper.GetInt(flagMaxOpenConnections)
|
|
||||||
sslHosts := viper.GetString(flagSSLHosts)
|
|
||||||
certFile := viper.GetString(flagSSLCertFile)
|
|
||||||
keyFile := viper.GetString(flagSSLKeyFile)
|
|
||||||
cleanupFunc := func() {}
|
|
||||||
|
|
||||||
var listener net.Listener
|
|
||||||
var fingerprint string
|
|
||||||
if viper.GetBool(flagInsecure) {
|
|
||||||
listener, err = tmserver.StartHTTPServer(
|
|
||||||
listenAddr, handler, logger,
|
|
||||||
tmserver.Config{MaxOpenConnections: maxOpen},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if certFile != "" {
|
|
||||||
// validateCertKeyFiles() is needed to work around tendermint/tendermint#2460
|
|
||||||
err = validateCertKeyFiles(certFile, keyFile)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// cert/key pair is provided, read the fingerprint
|
|
||||||
fingerprint, err = fingerprintFromFile(certFile)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// if certificate is not supplied, generate a self-signed one
|
|
||||||
certFile, keyFile, fingerprint, err = genCertKeyFilesAndReturnFingerprint(sslHosts)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
cleanupFunc = func() {
|
|
||||||
os.Remove(certFile)
|
|
||||||
os.Remove(keyFile)
|
|
||||||
}
|
|
||||||
defer cleanupFunc()
|
|
||||||
}
|
|
||||||
listener, err = tmserver.StartHTTPAndTLSServer(
|
|
||||||
listenAddr, handler,
|
|
||||||
certFile, keyFile,
|
|
||||||
logger,
|
|
||||||
tmserver.Config{MaxOpenConnections: maxOpen},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
logger.Info(fingerprint)
|
|
||||||
}
|
|
||||||
logger.Info("Gaia-lite REST server started")
|
|
||||||
|
|
||||||
// wait forever and cleanup
|
|
||||||
cmn.TrapSignal(func() {
|
|
||||||
defer cleanupFunc()
|
|
||||||
err := listener.Close()
|
|
||||||
logger.Error("error closing listener", "err", err)
|
|
||||||
})
|
|
||||||
|
|
||||||
return nil
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd.Flags().String(flagListenAddr, "tcp://localhost:1317", "The address for the server to listen on")
|
|
||||||
cmd.Flags().Bool(flagInsecure, false, "Do not set up SSL/TLS layer")
|
|
||||||
cmd.Flags().String(flagSSLHosts, "", "Comma-separated hostnames and IPs to generate a certificate for")
|
|
||||||
cmd.Flags().String(flagSSLCertFile, "", "Path to a SSL certificate file. If not supplied, a self-signed certificate will be generated.")
|
|
||||||
cmd.Flags().String(flagSSLKeyFile, "", "Path to a key file; ignored if a certificate file is not supplied.")
|
|
||||||
cmd.Flags().String(flagCORS, "", "Set the domains that can make CORS requests (* for all)")
|
|
||||||
cmd.Flags().String(client.FlagChainID, "", "Chain ID of Tendermint node")
|
|
||||||
cmd.Flags().String(client.FlagNode, "tcp://localhost:26657", "Address of the node to connect to")
|
|
||||||
cmd.Flags().Int(flagMaxOpenConnections, 1000, "The number of maximum open connections")
|
|
||||||
cmd.Flags().Bool(client.FlagTrustNode, false, "Trust connected full node (don't verify proofs for responses)")
|
|
||||||
|
|
||||||
return cmd
|
|
||||||
}
|
|
||||||
|
|
||||||
func createLiteHandler(cdc *codec.Codec) *mux.Router {
|
|
||||||
r := mux.NewRouter()
|
|
||||||
|
|
||||||
kb, err := keys.GetKeyBase() //XXX
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
statikFS, err := fs.New()
|
statikFS, err := fs.New()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -61,7 +61,7 @@ func getBlock(cliCtx context.CLIContext, height *int64) ([]byte, error) {
|
||||||
|
|
||||||
// TODO move maarshalling into cmd/rest functions
|
// TODO move maarshalling into cmd/rest functions
|
||||||
// output, err := tmcodec.MarshalJSON(res)
|
// output, err := tmcodec.MarshalJSON(res)
|
||||||
output, err := cdc.MarshalJSON(res)
|
output, err := cdc.MarshalJSONIndent(res, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ func NodeInfoRequestHandlerFn(cliCtx context.CLIContext) http.HandlerFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeInfo := status.NodeInfo
|
nodeInfo := status.NodeInfo
|
||||||
output, err := cdc.MarshalJSON(nodeInfo)
|
output, err := cdc.MarshalJSONIndent(nodeInfo, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
w.Write([]byte(err.Error()))
|
w.Write([]byte(err.Error()))
|
||||||
|
|
|
@ -94,7 +94,7 @@ func getValidators(cliCtx context.CLIContext, height *int64) ([]byte, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
output, err := cdc.MarshalJSON(outputValidatorsRes)
|
output, err := cdc.MarshalJSONIndent(outputValidatorsRes, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,6 @@ func main() {
|
||||||
rootCmd.AddCommand(
|
rootCmd.AddCommand(
|
||||||
tendermintCmd,
|
tendermintCmd,
|
||||||
lcd.ServeCommand(cdc),
|
lcd.ServeCommand(cdc),
|
||||||
lcd.ServeLiteCommand(cdc),
|
|
||||||
client.LineBreak,
|
client.LineBreak,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,936 +0,0 @@
|
||||||
swagger: '2.0'
|
|
||||||
info:
|
|
||||||
version: '1.1.0'
|
|
||||||
title: Gaia-Lite (former LCD) to interface with Cosmos BaseServer via REST
|
|
||||||
description: Specification for Gaia-lite provided by `gaiacli rest-server`
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- name: keys
|
|
||||||
description: Key management to add or view local private keys
|
|
||||||
- name: send
|
|
||||||
description: Create and sign a send tx
|
|
||||||
- name: stake
|
|
||||||
description: Stake module API for staking and validation
|
|
||||||
- name: account
|
|
||||||
description: Query account balance
|
|
||||||
- name: query
|
|
||||||
description: Information about blocks and txs
|
|
||||||
- name: validator set
|
|
||||||
description: Check the state of the validator set
|
|
||||||
- name: node
|
|
||||||
description: Information of the connected node
|
|
||||||
- name: version
|
|
||||||
description: Information about the app version
|
|
||||||
|
|
||||||
|
|
||||||
securityDefinitions:
|
|
||||||
kms:
|
|
||||||
type: basic
|
|
||||||
|
|
||||||
paths:
|
|
||||||
/version:
|
|
||||||
get:
|
|
||||||
summary: Version of Gaia-lite
|
|
||||||
tags:
|
|
||||||
- version
|
|
||||||
description: Get the version of gaia-lite running locally to compare against expected
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Plaintext version i.e. "v0.5.0"
|
|
||||||
/node_version:
|
|
||||||
get:
|
|
||||||
summary: Version of the connected node
|
|
||||||
tags:
|
|
||||||
- node
|
|
||||||
description: Get the version of the SDK running on the connected node to compare against expected
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Plaintext version i.e. "v0.5.0"
|
|
||||||
/node_info:
|
|
||||||
get:
|
|
||||||
description: Information about the connected node
|
|
||||||
summary: The properties of the connected node
|
|
||||||
tags:
|
|
||||||
- node
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Node status
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
pub_key:
|
|
||||||
$ref: '#/definitions/PubKey'
|
|
||||||
moniker:
|
|
||||||
type: string
|
|
||||||
example: 159.89.198.221
|
|
||||||
network:
|
|
||||||
type: string
|
|
||||||
example: gaia-2
|
|
||||||
remote_addr:
|
|
||||||
type: string
|
|
||||||
listen_addr:
|
|
||||||
type: string
|
|
||||||
example: 192.168.56.1:26656
|
|
||||||
version:
|
|
||||||
description: Tendermint version
|
|
||||||
type: string
|
|
||||||
example: 0.15.0
|
|
||||||
other:
|
|
||||||
description: more information on versions
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
/syncing:
|
|
||||||
get:
|
|
||||||
summary: Syncing state of node
|
|
||||||
tags:
|
|
||||||
- node
|
|
||||||
description: Get if the node is currently syning with other nodes
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: '"true" or "false"'
|
|
||||||
|
|
||||||
/keys:
|
|
||||||
get:
|
|
||||||
summary: List of accounts stored locally
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Array of accounts
|
|
||||||
schema:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/definitions/Account'
|
|
||||||
post:
|
|
||||||
summary: Create a new account locally
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
parameters:
|
|
||||||
- in: body
|
|
||||||
name: account
|
|
||||||
description: The account to create
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- password
|
|
||||||
- seed
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
password:
|
|
||||||
type: string
|
|
||||||
seed:
|
|
||||||
type: string
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Returns address of the account created
|
|
||||||
/keys/seed:
|
|
||||||
get:
|
|
||||||
summary: Create a new seed to create a new account with
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: 16 word Seed
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
/keys/{name}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: name
|
|
||||||
description: Account name
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Get a certain locally stored account
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Locally stored account
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Account"
|
|
||||||
404:
|
|
||||||
description: Account is not available
|
|
||||||
put:
|
|
||||||
summary: Update the password for this account in the KMS
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
parameters:
|
|
||||||
- in: body
|
|
||||||
name: account
|
|
||||||
description: The new and old password
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- new_password
|
|
||||||
- old_password
|
|
||||||
properties:
|
|
||||||
new_password:
|
|
||||||
type: string
|
|
||||||
old_password:
|
|
||||||
type: string
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Updated password
|
|
||||||
401:
|
|
||||||
description: Password is wrong
|
|
||||||
404:
|
|
||||||
description: Account is not available
|
|
||||||
delete:
|
|
||||||
summary: Remove an account
|
|
||||||
tags:
|
|
||||||
- keys
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
parameters:
|
|
||||||
- in: body
|
|
||||||
name: account
|
|
||||||
description: The password of the account to remove from the KMS
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- password
|
|
||||||
properties:
|
|
||||||
password:
|
|
||||||
type: string
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Removed account
|
|
||||||
401:
|
|
||||||
description: Password is wrong
|
|
||||||
404:
|
|
||||||
description: Account is not available
|
|
||||||
# /accounts/send:
|
|
||||||
# post:
|
|
||||||
# summary: Send coins (build -> sign -> send)
|
|
||||||
# security:
|
|
||||||
# - sign: []
|
|
||||||
# requestBody:
|
|
||||||
# content:
|
|
||||||
# application/json:
|
|
||||||
# schema:
|
|
||||||
# type: object
|
|
||||||
# properties:
|
|
||||||
# fees:
|
|
||||||
# $ref: "#/definitions/Coins"
|
|
||||||
# outputs:
|
|
||||||
# type: array
|
|
||||||
# items:
|
|
||||||
# type: object
|
|
||||||
# properties:
|
|
||||||
# pub_key:
|
|
||||||
# $ref: "#/definitions/PubKey"
|
|
||||||
# amount:
|
|
||||||
# type: array
|
|
||||||
# items:
|
|
||||||
# $ref: "#/definitions/Coins"
|
|
||||||
# responses:
|
|
||||||
# 202:
|
|
||||||
# description: Tx was send and will probably be added to the next block
|
|
||||||
# 400:
|
|
||||||
# description: The Tx was malformated
|
|
||||||
|
|
||||||
/accounts/{address}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: address
|
|
||||||
description: Account address in bech32 format
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Get the account balances
|
|
||||||
tags:
|
|
||||||
- account
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Account balances
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Balance"
|
|
||||||
204:
|
|
||||||
description: There is no data for the requested account. This is not a 404 as the account might exist, just does not hold data.
|
|
||||||
/accounts/{address}/send:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: address
|
|
||||||
description: Account address in bech32 format
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
post:
|
|
||||||
summary: Send coins (build -> sign -> send)
|
|
||||||
tags:
|
|
||||||
- send
|
|
||||||
security:
|
|
||||||
- kms: []
|
|
||||||
consumes:
|
|
||||||
- application/json
|
|
||||||
parameters:
|
|
||||||
- in: body
|
|
||||||
name: account
|
|
||||||
description: The password of the account to remove from the KMS
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
password:
|
|
||||||
type: string
|
|
||||||
amount:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: "#/definitions/Coins"
|
|
||||||
chain_id:
|
|
||||||
type: string
|
|
||||||
squence:
|
|
||||||
type: number
|
|
||||||
responses:
|
|
||||||
202:
|
|
||||||
description: Tx was send and will probably be added to the next block
|
|
||||||
400:
|
|
||||||
description: The Tx was malformated
|
|
||||||
/blocks/latest:
|
|
||||||
get:
|
|
||||||
summary: Get the latest block
|
|
||||||
tags:
|
|
||||||
- query
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: The latest block
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Block"
|
|
||||||
/blocks/{height}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: height
|
|
||||||
description: Block height
|
|
||||||
required: true
|
|
||||||
type: number
|
|
||||||
get:
|
|
||||||
summary: Get a block at a certain height
|
|
||||||
tags:
|
|
||||||
- query
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: The block at a specific height
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Block"
|
|
||||||
404:
|
|
||||||
description: Block at height is not available
|
|
||||||
/validatorsets/latest:
|
|
||||||
get:
|
|
||||||
summary: Get the latest validator set
|
|
||||||
tags:
|
|
||||||
- validator set
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: The validator set at the latest block height
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
block_height:
|
|
||||||
type: number
|
|
||||||
validators:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: "#/definitions/Validator"
|
|
||||||
/validatorsets/{height}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: height
|
|
||||||
description: Block height
|
|
||||||
required: true
|
|
||||||
type: number
|
|
||||||
get:
|
|
||||||
summary: Get a validator set a certain height
|
|
||||||
tags:
|
|
||||||
- validator set
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: The validator set at a specific block height
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
block_height:
|
|
||||||
type: number
|
|
||||||
validators:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: "#/definitions/Validator"
|
|
||||||
404:
|
|
||||||
description: Block at height not available
|
|
||||||
# /txs:
|
|
||||||
# parameters:
|
|
||||||
# - in: query
|
|
||||||
# name: tag
|
|
||||||
# schema:
|
|
||||||
# type: string
|
|
||||||
# example: "coin.sender=EE5F3404034C524501629B56E0DDC38FAD651F04"
|
|
||||||
# required: true
|
|
||||||
# - in: query
|
|
||||||
# name: page
|
|
||||||
# description: Pagination page
|
|
||||||
# schema:
|
|
||||||
# type: number
|
|
||||||
# default: 0
|
|
||||||
# - in: query
|
|
||||||
# name: size
|
|
||||||
# description: Pagination size
|
|
||||||
# schema:
|
|
||||||
# type: number
|
|
||||||
# default: 50
|
|
||||||
# get:
|
|
||||||
# summary: Query Tx
|
|
||||||
# responses:
|
|
||||||
# 200:
|
|
||||||
# description: All Tx matching the provided tags
|
|
||||||
# content:
|
|
||||||
# application/json:
|
|
||||||
# schema:
|
|
||||||
# type: array
|
|
||||||
# items:
|
|
||||||
# $ref: "#/definitions/Tx"
|
|
||||||
# 404:
|
|
||||||
# description: Pagination is out of bounds
|
|
||||||
# /txs/sign:
|
|
||||||
# post:
|
|
||||||
# summary: Sign a Tx
|
|
||||||
# description: Sign a Tx providing locally stored account and according password
|
|
||||||
# security:
|
|
||||||
# - sign: []
|
|
||||||
# requestBody:
|
|
||||||
# content:
|
|
||||||
# application/json:
|
|
||||||
# schema:
|
|
||||||
# $ref: "#/definitions/TxBuild"
|
|
||||||
# responses:
|
|
||||||
# 200:
|
|
||||||
# description: The signed Tx
|
|
||||||
# content:
|
|
||||||
# application/json:
|
|
||||||
# schema:
|
|
||||||
# $ref: "#/definitions/TxSigned"
|
|
||||||
# 401:
|
|
||||||
# description: Account name and/or password where wrong
|
|
||||||
# /txs/broadcast:
|
|
||||||
# post:
|
|
||||||
# summary: Send signed Tx
|
|
||||||
# requestBody:
|
|
||||||
# content:
|
|
||||||
# application/json:
|
|
||||||
# schema:
|
|
||||||
# $ref: "#/definitions/TxSigned"
|
|
||||||
# responses:
|
|
||||||
# 202:
|
|
||||||
# description: Tx was send and will probably be added to the next block
|
|
||||||
# 400:
|
|
||||||
# description: The Tx was malformated
|
|
||||||
/txs/{hash}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: hash
|
|
||||||
description: Tx hash
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Get a Tx by hash
|
|
||||||
tags:
|
|
||||||
- query
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: Tx with the provided hash
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
404:
|
|
||||||
description: Tx not available for provided hash
|
|
||||||
|
|
||||||
# ================== Staking Module # ==================
|
|
||||||
|
|
||||||
# TODO create D
|
|
||||||
/stake/delegators/{delegatorAddr}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Get all delegations (delegation, undelegation) from a delegator
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/validators:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: Bech32 AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Query all validators that a delegator is bonded to
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/validators/{validatorAddr}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: Bech32 AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
- in: path
|
|
||||||
name: validatorAddr
|
|
||||||
description: Bech32 ValAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Query a validator that a delegator is bonded to
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/txs:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Get all staking txs (i.e msgs) from a delegator
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/delegations:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: Bech32 AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
post:
|
|
||||||
summary: Submit delegation
|
|
||||||
parameters:
|
|
||||||
- in: body
|
|
||||||
name: delegation
|
|
||||||
description: The password of the account to remove from the KMS
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
password:
|
|
||||||
type: string
|
|
||||||
account_number:
|
|
||||||
type: number
|
|
||||||
delegations:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
begin_unbondings:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
complete_unbondings:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
begin_redelegates:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
complete_redelegates:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
chain_id:
|
|
||||||
type: string
|
|
||||||
gas:
|
|
||||||
type: number
|
|
||||||
sequence:
|
|
||||||
type: number
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
schema:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/delegations/{validatorAddr}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: Bech32 AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
- in: path
|
|
||||||
name: validatorAddr
|
|
||||||
description: Bech32 ValAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Query the current delegation status between a delegator and a validator
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
|
|
||||||
/stake/delegators/{delegatorAddr}/unbonding_delegations/{validatorAddr}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: delegatorAddr
|
|
||||||
description: Bech32 AccAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
- in: path
|
|
||||||
name: validatorAddr
|
|
||||||
description: Bech32 ValAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Query all unbonding delegations between a delegator and a validator
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
/stake/validators:
|
|
||||||
get:
|
|
||||||
summary: Get all validator candidates
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
/stake/validators/{validatorAddr}:
|
|
||||||
parameters:
|
|
||||||
- in: path
|
|
||||||
name: validatorAddr
|
|
||||||
description: Bech32 ValAddress of Delegator
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
get:
|
|
||||||
summary: Query the information from a single validator
|
|
||||||
tags:
|
|
||||||
- stake
|
|
||||||
produces:
|
|
||||||
- application/json
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: OK
|
|
||||||
404:
|
|
||||||
description: Not Found
|
|
||||||
500:
|
|
||||||
description: Internal Server Error
|
|
||||||
|
|
||||||
# TODO Add staking definitions
|
|
||||||
definitions:
|
|
||||||
Address:
|
|
||||||
type: string
|
|
||||||
description: bech32 encoded addres
|
|
||||||
example: cosmos:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq
|
|
||||||
ValidatorAddress:
|
|
||||||
type: string
|
|
||||||
description: bech32 encoded addres
|
|
||||||
example: cosmosvaloper:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq
|
|
||||||
PubKey:
|
|
||||||
type: string
|
|
||||||
description: bech32 encoded public key
|
|
||||||
example: cosmospub:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq
|
|
||||||
ValidatorPubKey:
|
|
||||||
type: string
|
|
||||||
description: bech32 encoded public key
|
|
||||||
example: cosmosvalconspub:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq
|
|
||||||
Coins:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
denom:
|
|
||||||
type: string
|
|
||||||
example: steak
|
|
||||||
amount:
|
|
||||||
type: number
|
|
||||||
example: 50
|
|
||||||
Hash:
|
|
||||||
type: string
|
|
||||||
example: EE5F3404034C524501629B56E0DDC38FAD651F04
|
|
||||||
Tx:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
enum:
|
|
||||||
- stake/delegate
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
TxChain:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
default: chain/tx
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
chain_id:
|
|
||||||
type: string
|
|
||||||
example: gaia-2
|
|
||||||
expires_at:
|
|
||||||
type: number
|
|
||||||
example: 0
|
|
||||||
tx:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
default: nonce
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
sequence:
|
|
||||||
type: number
|
|
||||||
example: 0
|
|
||||||
signers:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
chain:
|
|
||||||
type: string
|
|
||||||
example: ''
|
|
||||||
app:
|
|
||||||
type: string
|
|
||||||
default: sigs
|
|
||||||
addr:
|
|
||||||
$ref: "#/definitions/Address"
|
|
||||||
tx:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
TxBuild:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
default: sigs/one
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
tx:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
signature:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
Sig:
|
|
||||||
type: string
|
|
||||||
default: ''
|
|
||||||
Pubkey:
|
|
||||||
type: string
|
|
||||||
default: ''
|
|
||||||
TxSigned:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
default: sigs/one
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
tx:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
signature:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
Sig:
|
|
||||||
type: string
|
|
||||||
example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958
|
|
||||||
Pubkey:
|
|
||||||
$ref: "#/definitions/PubKey"
|
|
||||||
Account:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
example: Main Account
|
|
||||||
address:
|
|
||||||
$ref: "#/definitions/Address"
|
|
||||||
pub_key:
|
|
||||||
$ref: "#/definitions/PubKey"
|
|
||||||
Balance:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
height:
|
|
||||||
type: number
|
|
||||||
example: 123456
|
|
||||||
coins:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: "#/definitions/Coins"
|
|
||||||
credit:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
BlockID:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
parts:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
total:
|
|
||||||
type: number
|
|
||||||
example: 0
|
|
||||||
hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
Block:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
header:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
chain_id:
|
|
||||||
type: string
|
|
||||||
example: gaia-2
|
|
||||||
height:
|
|
||||||
type: number
|
|
||||||
example: 1
|
|
||||||
time:
|
|
||||||
type: string
|
|
||||||
example: '2017-12-30T05:53:09.287+01:00'
|
|
||||||
num_txs:
|
|
||||||
type: number
|
|
||||||
example: 0
|
|
||||||
last_block_id:
|
|
||||||
$ref: "#/definitions/BlockID"
|
|
||||||
total_txs:
|
|
||||||
type: number
|
|
||||||
example: 35
|
|
||||||
last_commit_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
data_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
validators_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
consensus_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
app_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
last_results_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
evidence_hash:
|
|
||||||
$ref: "#/definitions/Hash"
|
|
||||||
txs:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: "#/definitions/Tx"
|
|
||||||
evidence:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
last_commit:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
blockID:
|
|
||||||
$ref: "#/definitions/BlockID"
|
|
||||||
precommits:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
Validator:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
address:
|
|
||||||
$ref: '#/definitions/ValidatorAddress'
|
|
||||||
pub_key:
|
|
||||||
$ref: "#/definitions/ValidatorPubKey"
|
|
||||||
power:
|
|
||||||
type: number
|
|
||||||
example: 1000
|
|
||||||
accum:
|
|
||||||
type: number
|
|
||||||
example: 1000
|
|
||||||
# Added by API Auto Mocking Plugin
|
|
||||||
host: virtserver.swaggerhub.com
|
|
||||||
basePath: /faboweb1/Cosmos-LCD-2/1.0.0
|
|
||||||
schemes:
|
|
||||||
- https
|
|
|
@ -80,7 +80,6 @@ func main() {
|
||||||
rootCmd.AddCommand(
|
rootCmd.AddCommand(
|
||||||
client.LineBreak,
|
client.LineBreak,
|
||||||
lcd.ServeCommand(cdc),
|
lcd.ServeCommand(cdc),
|
||||||
lcd.ServeLiteCommand(cdc),
|
|
||||||
keys.Commands(),
|
keys.Commands(),
|
||||||
client.LineBreak,
|
client.LineBreak,
|
||||||
version.VersionCmd,
|
version.VersionCmd,
|
||||||
|
|
Loading…
Reference in New Issue