- Updated branding from "SolaceScanScout" to "Solace" across various files including deployment scripts, API responses, and documentation. - Changed default base URL for Playwright tests and updated security headers to reflect the new branding. - Enhanced README and API documentation to include new authentication endpoints and product access details. This refactor aligns the project branding and improves clarity in the API documentation.
310 lines
6.7 KiB
YAML
310 lines
6.7 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: SolaceScan API
|
|
version: 1.0.0
|
|
description: |
|
|
SolaceScan API for the Chain 138 explorer surface
|
|
|
|
Comprehensive blockchain explorer API for ChainID 138 with cross-chain bridge monitoring,
|
|
WETH utilities, and real-time transaction tracking.
|
|
contact:
|
|
name: SolaceScan Support
|
|
url: https://blockscout.defi-oracle.io
|
|
license:
|
|
name: MIT
|
|
url: https://opensource.org/licenses/MIT
|
|
|
|
servers:
|
|
- url: https://blockscout.defi-oracle.io/api
|
|
description: Production server
|
|
- url: http://localhost:8080/api
|
|
description: Local development server
|
|
|
|
tags:
|
|
- name: Blocks
|
|
description: Block information and queries
|
|
- name: Transactions
|
|
description: Transaction information and queries
|
|
- name: Addresses
|
|
description: Address information and balances
|
|
- name: Search
|
|
description: Unified search across blocks, transactions, and addresses
|
|
- name: Health
|
|
description: Health check and status endpoints
|
|
|
|
paths:
|
|
/v1/blocks:
|
|
get:
|
|
tags:
|
|
- Blocks
|
|
summary: List blocks
|
|
description: Get a paginated list of blocks
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
minimum: 1
|
|
- name: page_size
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
default: 20
|
|
minimum: 1
|
|
maximum: 100
|
|
responses:
|
|
'200':
|
|
description: List of blocks
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Block'
|
|
meta:
|
|
$ref: '#/components/schemas/PaginationMeta'
|
|
|
|
/v1/blocks/{chain_id}/{number}:
|
|
get:
|
|
tags:
|
|
- Blocks
|
|
summary: Get block by number
|
|
parameters:
|
|
- name: chain_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
example: 138
|
|
- name: number
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Block details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
$ref: '#/components/schemas/Block'
|
|
'404':
|
|
description: Block not found
|
|
'400':
|
|
description: Invalid request
|
|
|
|
/v1/transactions:
|
|
get:
|
|
tags:
|
|
- Transactions
|
|
summary: List transactions
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
- name: page_size
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
default: 20
|
|
- name: block_number
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: from_address
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: to_address
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of transactions
|
|
|
|
/v1/transactions/{chain_id}/{hash}:
|
|
get:
|
|
tags:
|
|
- Transactions
|
|
summary: Get transaction by hash
|
|
parameters:
|
|
- name: chain_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
pattern: '^0x[a-fA-F0-9]{64}$'
|
|
responses:
|
|
'200':
|
|
description: Transaction details
|
|
'404':
|
|
description: Transaction not found
|
|
|
|
/v1/addresses/{chain_id}/{address}:
|
|
get:
|
|
tags:
|
|
- Addresses
|
|
summary: Get address information
|
|
parameters:
|
|
- name: chain_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: address
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
pattern: '^0x[a-fA-F0-9]{40}$'
|
|
responses:
|
|
'200':
|
|
description: Address information
|
|
|
|
/v1/search:
|
|
get:
|
|
tags:
|
|
- Search
|
|
summary: Unified search
|
|
parameters:
|
|
- name: q
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Search results
|
|
|
|
/health:
|
|
get:
|
|
tags:
|
|
- Health
|
|
summary: Health check
|
|
responses:
|
|
'200':
|
|
description: Service is healthy
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthStatus'
|
|
|
|
components:
|
|
schemas:
|
|
Block:
|
|
type: object
|
|
properties:
|
|
chain_id:
|
|
type: integer
|
|
number:
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
parent_hash:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
miner:
|
|
type: string
|
|
transaction_count:
|
|
type: integer
|
|
gas_used:
|
|
type: integer
|
|
gas_limit:
|
|
type: integer
|
|
size:
|
|
type: integer
|
|
|
|
Transaction:
|
|
type: object
|
|
properties:
|
|
chain_id:
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
block_number:
|
|
type: integer
|
|
from_address:
|
|
type: string
|
|
to_address:
|
|
type: string
|
|
value:
|
|
type: string
|
|
gas_price:
|
|
type: integer
|
|
gas_used:
|
|
type: integer
|
|
status:
|
|
type: integer
|
|
|
|
Address:
|
|
type: object
|
|
properties:
|
|
address:
|
|
type: string
|
|
chain_id:
|
|
type: integer
|
|
balance:
|
|
type: string
|
|
transaction_count:
|
|
type: integer
|
|
token_count:
|
|
type: integer
|
|
is_contract:
|
|
type: boolean
|
|
|
|
PaginationMeta:
|
|
type: object
|
|
properties:
|
|
pagination:
|
|
type: object
|
|
properties:
|
|
page:
|
|
type: integer
|
|
page_size:
|
|
type: integer
|
|
|
|
HealthStatus:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
services:
|
|
type: object
|
|
chain_id:
|
|
type: integer
|
|
explorer:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
version:
|
|
type: string
|
|
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|