cic-internal-integration/apps/cic-eth/cic_eth/server/swagger/swagger.yaml

290 lines
7.6 KiB
YAML

openapi: 3.0.3
info:
title: Grassroots Economics
description: CIC ETH API
termsOfService: bzz://grassrootseconomics.eth/terms
contact:
name: Grassroots Economics
url: https://www.grassrootseconomics.org
email: will@grassecon.org
license:
name: GPLv3
version: 0.1.0
servers:
- url: /
paths:
/token:
description: Retrieves the default fallback token of the custodial network.
get:
tags:
- Token
description: Retrieve transactions
operationId: get_default_token
responses:
"200":
description: OK.
content:
application/json:
schema:
$ref: "#/components/schemas/Token"
x-openapi-router-controller: cic_eth.server.controllers.token_controller
/balance:
description: Retrieves the current token balance of the given address
get:
tags:
- Account
description: Retrieve Address Balance
operationId: account_balance
parameters:
- name: address
in: query
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: token_symbol
in: query
required: true
style: form
explode: true
schema:
type: string
- name: include_pending
in: query
required: false
style: form
explode: true
schema:
type: boolean
default: true
responses:
"200":
description: OK.
content:
application/json:
schema:
$ref: "#/components/schemas/TokenBalance"
x-openapi-router-controller: cic_eth.server.controllers.account_controller
/transactions:
description:
Retrieve an aggregate list of latest transactions of internal and
(optionally) external origin in reverse chronological order.
get:
tags:
- Account
description: Retrieve Address Balance
operationId: list_transactions
parameters:
- name: address
in: query
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: limit
in: query
required: false
style: form
explode: true
schema:
type: integer
default: 10
responses:
"200":
description: OK.
content:
application/json:
schema:
$ref: "#/components/schemas/Token"
x-openapi-router-controller: cic_eth.server.controllers.account_controller
/create_account:
description:
Creates a new blockchain address encrypted with the given password
and returns the new address
post:
tags:
- Account
description: Creates a new blockchain address
operationId: create_account_post
parameters:
- name: password
in: query
required: true
style: form
explode: true
allowReserved: true
schema:
type: string
- name: register
in: query
required: true
style: form
explode: true
allowReserved: true
schema:
type: boolean
default: true
responses:
"200":
description: OK.
content:
application/json:
schema:
type: string
example: "e88ba386f0efc7117e8d0d17a750fce492516ecb"
x-openapi-router-controller: cic_eth.server.controllers.account_controller
/transfer:
description: Performs a transfer of ERC20 tokens from one address to another.
post:
tags:
- Account
description: Performs a transfer of ERC20 tokens from one address to another.
operationId: transfer
parameters:
- name: from_address
in: query
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: to_address
in: query
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: value
in: query
required: true
style: form
explode: true
schema:
type: integer
- name: token_symbol
in: query
required: true
style: form
explode: true
schema:
type: string
responses:
"200":
description: OK.
content:
application/json:
schema:
$ref: "#/components/schemas/Token"
x-openapi-router-controller: cic_eth.server.controllers.account_controller
/transfer_from:
post:
tags:
- Account
description:
Performs a transfer of ERC20 tokens by one address on behalf of
another address to a third party.
operationId: transfer_from
parameters:
- name: from_address
in: query
description: Ethereum address of sender
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: to_address
in: query
description: Ethereum address of recipient
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
- name: value
in: query
description: Estimated return from conversion
required: true
style: form
explode: true
schema:
type: integer
- name: token_symbol
in: query
description: ERC20 token symbol of token to send
required: true
style: form
explode: true
schema:
type: string
- name: spender_address
in: query
description: Ethereum address of recipient
required: true
style: form
explode: true
schema:
$ref: "#/components/schemas/0xAddress"
responses:
"200":
description: OK.
content:
application/json:
schema:
$ref: "#/components/schemas/Token"
x-openapi-router-controller: cic_eth.server.controllers.account_controller
components:
schemas:
"0xAddress":
type: string
example: 0x-hex
Token:
type: object
properties:
symbol:
type: string
description: Token Symbol
address:
type: string
description: Token Address
name:
type: string
description: Token Name
decimals:
type: integer
description: Decimals
example:
symbol: 'GTF'
address: '3FF776B6f888980DEf9d4220858803f9dC5e341e'
decimals: 6
name: "Gift Token"
TokenBalance:
type: object
properties:
address:
type: string
converters:
type: array
items:
type: string
balance_network:
type: integer
balance_incoming:
type: integer
balance_outgoing:
type: integer
balance_available:
type: integer
example:
balance_network: 0
address: address
balance_incoming: 6
balance_available: 5
converters:
- converters
- converters
balance_outgoing: 1