290 lines
7.6 KiB
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
|