diff --git a/docs/sdk/lcd-rest-api.yaml b/docs/sdk/lcd-rest-api.yaml index 7d38274c0..07ff6a030 100644 --- a/docs/sdk/lcd-rest-api.yaml +++ b/docs/sdk/lcd-rest-api.yaml @@ -1,11 +1,14 @@ -openapi: 3.0.0 -servers: - - url: 'http://localhost:8998' +swagger: '2.0' info: - version: "1.0.0-oas3" + version: '1.0.1' title: Light client daemon to interface with Cosmos baseserver via REST - description: Specification for the LCD provided by `gaia rest-server` - + description: Specification for the LCD provided by `gaiacli rest-server` + + +securityDefinitions: + kms: + type: basic + paths: /version: get: @@ -15,123 +18,129 @@ paths: 200: description: Plaintext version i.e. "v0.5.0" /node_info: - description: Only the node info. Block information can be queried via /block/latest get: + description: Only the node info. Block information can be queried via /block/latest summary: The propertied of the connected node + produces: + - application/json responses: 200: description: Node status - content: - application/json: - schema: - type: object - properties: - pub_key: - $ref: '#/components/schemas/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:46656 - version: - description: Tendermint version - type: string - example: 0.15.0 - other: - description: more information on versions - type: array + 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:46656 + 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 description: Get if the node is currently syning with other nodes responses: 200: - description: "true" or "false" + description: '"true" or "false"' /keys: get: summary: List of accounts stored locally + produces: + - application/json responses: 200: description: Array of accounts - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Account' + schema: + type: array + items: + $ref: '#/definitions/Account' post: summary: Create a new account locally + 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 - requestBody: - content: - application/json: - schema: - type: object - required: - - name - - password - - seed - properties: - name: - type: string - password: - type: string - seed: - type: string - description: The account to create. /keys/seed: get: summary: Create a new seed to create a new account with + produces: + - application/json responses: 200: description: 12 word Seed - content: - application/json: - schema: - type: string + schema: + type: string /keys/{name}: parameters: - in: path name: name description: Account name required: true - schema: - type: string + type: string get: summary: Get a certain locally stored account + produces: + - application/json responses: 200: description: Locally stored account - content: - application/json: - schema: - $ref: "#/components/schemas/Account" + schema: + $ref: "#/definitions/Account" 404: description: Account is not available put: - summary: Update the password for this account - requestBody: - content: - application/json: - schema: - type: object - required: - - new_password - - old_password - properties: - new_password: - type: string - old_password: - type: string + summary: Update the password for this account in the KMS + 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 @@ -141,16 +150,19 @@ paths: description: Account is not available delete: summary: Remove an account - requestBody: - content: - application/json: - schema: - type: object - required: - - password - properties: - password: - type: string + 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 @@ -158,7 +170,7 @@ paths: description: Password is wrong 404: description: Account is not available - # /accounts/send: +# /accounts/send: # post: # summary: Send coins (build -> sign -> send) # security: @@ -170,18 +182,18 @@ paths: # type: object # properties: # fees: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # outputs: # type: array # items: # type: object # properties: # pub_key: - # $ref: "#/components/schemas/PubKey" + # $ref: "#/definitions/PubKey" # amount: # type: array # items: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block @@ -194,17 +206,16 @@ paths: name: address description: Account address required: true - schema: - $ref: "#/components/schemas/Address" + type: string get: summary: Get the account balances + produces: + - application/json responses: 200: description: Account balances - content: - application/json: - schema: - $ref: "#/components/schemas/Balance" + 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: @@ -213,30 +224,32 @@ paths: name: address description: Account address required: true - schema: - $ref: "#/components/schemas/Address" + type: string post: summary: Send coins (build -> sign -> send) security: - - sign: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - name: - type: string - password: - type: string - amount: - type: array - items: - $ref: "#/components/schemas/Coins" - chain_id: - type: string - squence: - type: number + - 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 @@ -248,8 +261,7 @@ paths: name: address description: Account address required: true - schema: - $ref: "#/components/schemas/Address" + type: string get: summary: Get the nonce for a certain account responses: @@ -258,63 +270,61 @@ paths: /blocks/latest: get: summary: Get the latest block + produces: + - application/json responses: 200: description: The latest block - content: - application/json: - schema: - $ref: "#/components/schemas/Block" + schema: + $ref: "#/definitions/Block" /blocks/{height}: parameters: - in: path name: height description: Block height required: true - schema: - type: number + type: number get: summary: Get a block at a certain height + produces: + - application/json responses: 200: description: The block at a specific height - content: - application/json: - schema: - $ref: "#/components/schemas/Block" + schema: + $ref: "#/definitions/Block" 404: description: Block at height is not available /validatorsets/latest: get: summary: Get the latest validator set + produces: + - application/json responses: 200: description: The validator set at the latest block height - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Delegate" + schema: + type: array + items: + $ref: "#/definitions/Delegate" /validatorsets/{height}: parameters: - in: path name: height description: Block height required: true - schema: - type: number + type: number get: summary: Get a validator set a certain height + produces: + - application/json responses: 200: description: The validator set at a specific block height - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Delegate" + schema: + type: array + items: + $ref: "#/definitions/Delegate" 404: description: Block at height not available # /txs: @@ -347,7 +357,7 @@ paths: # schema: # type: array # items: - # $ref: "#/components/schemas/Tx" + # $ref: "#/definitions/Tx" # 404: # description: Pagination is out of bounds # /txs/sign: @@ -360,14 +370,14 @@ paths: # content: # application/json: # schema: - # $ref: "#/components/schemas/TxBuild" + # $ref: "#/definitions/TxBuild" # responses: # 200: # description: The signed Tx # content: # application/json: # schema: - # $ref: "#/components/schemas/TxSigned" + # $ref: "#/definitions/TxSigned" # 401: # description: Account name and/or password where wrong # /txs/broadcast: @@ -377,7 +387,7 @@ paths: # content: # application/json: # schema: - # $ref: "#/components/schemas/TxSigned" + # $ref: "#/definitions/TxSigned" # responses: # 202: # description: Tx was send and will probably be added to the next block @@ -389,17 +399,16 @@ paths: name: hash description: Tx hash required: true - schema: - $ref: "#/components/schemas/Hash" + type: string get: summary: Get a Tx by hash + produces: + - application/json responses: 200: description: Tx with the provided hash - content: - application/json: - schema: - $ref: "#/components/schemas/Tx" + schema: + $ref: "#/definitions/Tx" 404: description: Tx not available for provided hash # /delegates: @@ -408,7 +417,7 @@ paths: # name: delegator # description: Query for all delegates a delegator has stake with # schema: - # $ref: "#/components/schemas/Address" + # $ref: "#/definitions/Address" # get: # summary: Get a list of canidates/delegates/validators (optionally filtered by delegator) # responses: @@ -419,7 +428,7 @@ paths: # schema: # type: array # items: - # $ref: "#/components/schemas/Delegate" + # $ref: "#/definitions/Delegate" # /delegates/bond: # post: # summary: Bond atoms (build -> sign -> send) @@ -434,9 +443,9 @@ paths: # type: object # properties: # amount: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # pub_key: - # $ref: "#/components/schemas/PubKey" + # $ref: "#/definitions/PubKey" # responses: # 202: # description: Tx was send and will probably be added to the next block @@ -456,9 +465,9 @@ paths: # type: object # properties: # amount: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # pub_key: - # $ref: "#/components/schemas/PubKey" + # $ref: "#/definitions/PubKey" # responses: # 202: # description: Tx was send and will probably be added to the next block @@ -481,7 +490,7 @@ paths: # content: # application/json: # schema: - # $ref: "#/components/schemas/Delegate" + # $ref: "#/definitions/Delegate" # 404: # description: No delegate found for provided pub_key # /delegates/{pubkey}/bond: @@ -504,7 +513,7 @@ paths: # type: object # properties: # amount: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block @@ -530,229 +539,233 @@ paths: # type: object # properties: # amount: - # $ref: "#/components/schemas/Coins" + # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated - -components: - schemas: - Address: - type: string - example: DF096FDE8D380FA5B2AD20DB2962C82DDEA1ED9B - 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: + +definitions: + Address: + type: string + example: DF096FDE8D380FA5B2AD20DB2962C82DDEA1ED9B + 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" + PubKey: + type: object + properties: + type: + type: string + enum: + - ed25519 + data: + type: string + example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 + 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 - TxChain: - type: object - properties: - type: - type: string - default: chain/tx - data: + 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 - properties: - chain_id: - type: string - example: gaia-2 - expires_at: - type: number - example: 0 - tx: + last_commit: + type: object + properties: + blockID: + $ref: "#/definitions/BlockID" + precommits: + type: array + items: 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: "#/components/schemas/Address" - tx: - $ref: "#/components/schemas/Tx" - TxBuild: - type: object - properties: - type: - type: string - default: sigs/one - data: - type: object - properties: - tx: - $ref: "#/components/schemas/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: "#/components/schemas/Tx" - signature: - type: object - properties: - Sig: - type: string - example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 - Pubkey: - $ref: "#/components/schemas/PubKey" - PubKey: - type: object - properties: - type: - type: string - enum: - - ed25519 - data: - type: string - example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 - Account: - type: object - properties: - name: - type: string - example: Main Account - address: - $ref: "#/components/schemas/Address" - pub_key: - $ref: "#/components/schemas/PubKey" - Balance: - type: object - properties: - height: - type: number - example: 123456 - coins: - type: array - items: - $ref: "#/components/schemas/Coins" - credit: - type: array - BlockID: - type: object - properties: - hash: - $ref: "#/components/schemas/Hash" - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - $ref: "#/components/schemas/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: "#/components/schemas/BlockID" - total_txs: - type: number - example: 35 - last_commit_hash: - $ref: "#/components/schemas/Hash" - data_hash: - $ref: "#/components/schemas/Hash" - validators_hash: - $ref: "#/components/schemas/Hash" - consensus_hash: - $ref: "#/components/schemas/Hash" - app_hash: - $ref: "#/components/schemas/Hash" - last_results_hash: - $ref: "#/components/schemas/Hash" - evidence_hash: - $ref: "#/components/schemas/Hash" - txs: - type: array - items: - $ref: "#/components/schemas/Tx" - evidence: - type: array - last_commit: - type: object - properties: - blockID: - $ref: "#/components/schemas/BlockID" - precommits: - type: array - Delegate: - type: object - properties: - pub_key: - $ref: "#/components/schemas/PubKey" - power: - type: number - example: 1000 - name: - type: string - example: "159.89.3.34" - - - securitySchemes: - sign: - type: http - scheme: basic + Delegate: + type: object + properties: + pub_key: + $ref: "#/definitions/PubKey" + power: + type: number + example: 1000 + name: + type: string + example: "159.89.3.34" +# Added by API Auto Mocking Plugin +host: virtserver.swaggerhub.com +basePath: /faboweb1/Cosmos-LCD-2/1.0.0 +schemes: + - https