From a19922dc58e3cdffbb582866fbf4bba41bc74d35 Mon Sep 17 00:00:00 2001 From: Roger <50648015+RogerLamTd@users.noreply.github.com> Date: Tue, 13 Feb 2024 21:01:17 -0800 Subject: [PATCH] docs(repo): update swagger scripts and api docs for relayer and eventindexer (#15755) Co-authored-by: d1onys1us <13951458+d1onys1us@users.noreply.github.com> --- packages/eventindexer/docs/docs.go | 67 ++- packages/eventindexer/docs/index.html | 2 +- packages/eventindexer/docs/swagger.json | 563 ++++++++++-------- packages/eventindexer/docs/swagger.yaml | 135 +++-- .../indexer/index_raw_block_data.go | 3 + packages/eventindexer/indexer/subscribe.go | 7 + packages/eventindexer/pkg/http/server.go | 2 +- packages/eventindexer/pkg/repo/event_test.go | 3 + packages/eventindexer/scripts/swagger.sh | 2 +- packages/relayer/docs/docs.go | 6 - packages/relayer/docs/index.html | 2 +- packages/relayer/docs/swagger.json | 276 ++++----- packages/relayer/docs/swagger.yaml | 60 +- packages/relayer/scripts/swagger.sh | 2 +- 14 files changed, 648 insertions(+), 482 deletions(-) mode change 100644 => 100755 packages/eventindexer/scripts/swagger.sh mode change 100644 => 100755 packages/relayer/scripts/swagger.sh diff --git a/packages/eventindexer/docs/docs.go b/packages/eventindexer/docs/docs.go index 37e5dad7b77..6babd71d1cf 100644 --- a/packages/eventindexer/docs/docs.go +++ b/packages/eventindexer/docs/docs.go @@ -1,4 +1,4 @@ -// Code generated by swaggo/swag. DO NOT EDIT +// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" @@ -52,6 +52,35 @@ const docTemplate = `{ } } }, + "/chartByTask": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get time series data for displaying charts", + "operationId": "get-charts-by-task", + "parameters": [ + { + "type": "string", + "description": "task to query", + "name": "task", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/eventindexer.ChartResponse" + } + } + } + } + }, "/events": { "get": { "consumes": [ @@ -186,6 +215,28 @@ const docTemplate = `{ } }, "definitions": { + "eventindexer.ChartItem": { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "eventindexer.ChartResponse": { + "type": "object", + "properties": { + "chart": { + "type": "array", + "items": { + "$ref": "#/definitions/eventindexer.ChartItem" + } + } + } + }, "eventindexer.Stat": { "type": "object", "properties": { @@ -195,20 +246,20 @@ const docTemplate = `{ "averageProofTime": { "type": "string" }, - "averageProposerReward": { + "feeTokenAddress": { "type": "string" }, "id": { "type": "integer" }, - "numProofs": { + "numBlocksAssigned": { "type": "integer" }, - "numProposerRewards": { + "numProofs": { "type": "integer" }, - "numVerifiedBlocks": { - "type": "integer" + "statType": { + "type": "string" } } }, @@ -298,13 +349,15 @@ const docTemplate = `{ // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", - Host: "eventindexer.jolnir.taiko.xyz", + Host: "eventindexer.katla.taiko.xyz", BasePath: "", Schemes: []string{}, Title: "Taiko Eventindexer API", Description: "", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", } func init() { diff --git a/packages/eventindexer/docs/index.html b/packages/eventindexer/docs/index.html index f249d5da51b..e608ce92304 100644 --- a/packages/eventindexer/docs/index.html +++ b/packages/eventindexer/docs/index.html @@ -11,7 +11,7 @@ window.onload = function () { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - url: "docs/swagger.json", //Location of Open API spec in the repo + url: "/swagger.json", //Location of Open API spec in the repo dom_id: '#swagger-ui', deepLinking: true, presets: [ diff --git a/packages/eventindexer/docs/swagger.json b/packages/eventindexer/docs/swagger.json index b653010deae..5156e221575 100644 --- a/packages/eventindexer/docs/swagger.json +++ b/packages/eventindexer/docs/swagger.json @@ -1,264 +1,339 @@ { - "swagger": "2.0", - "info": { - "title": "Taiko Eventindexer API", - "termsOfService": "http://swagger.io/terms/", - "contact": { - "name": "API Support", - "url": "https://community.taiko.xyz/", - "email": "info@taiko.xyz" - }, - "license": { - "name": "MIT" - }, - "version": "1.0" - }, - "host": "eventindexer.jolnir.taiko.xyz", - "paths": { - "/assignedBlocks": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get assigned blocks by prover address", - "operationId": "get-assigned-blocks-by-prover-address", - "parameters": [ - { - "type": "string", - "description": "address to query", - "name": "address", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/paginate.Page" - } - } - } - } - }, - "/events": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get events by address and event name", - "operationId": "get-events-by-address-and-event-name", - "parameters": [ - { - "type": "string", - "description": "address to query", - "name": "address", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "event name to query", - "name": "event", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/paginate.Page" - } - } - } - } - }, - "/nftsByAddress": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get nft balances by address and chain ID", - "operationId": "get-nft-balances-by-address-and-chain-id", - "parameters": [ - { - "type": "string", - "description": "address to query", - "name": "address", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "chainID to query", - "name": "chainID", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/paginate.Page" - } - } - } - } - }, - "/stats": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get stats", - "operationId": "get-stats", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/eventindexer.Stat" - } - } - } - } - }, - "/uniqueProposers": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get unique proposers", - "operationId": "get-unique-proposers", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/http.uniqueProposersResp" - } - } - } - } - }, - "/uniqueProvers": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get unique provers", - "operationId": "get-unique-provers", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/http.uniqueProversResp" - } - } - } - } - } - }, - "definitions": { - "eventindexer.Stat": { - "type": "object", - "properties": { - "averageProofReward": { - "type": "string" - }, - "averageProofTime": { - "type": "string" + "swagger": "2.0", + "info": { + "title": "Taiko Eventindexer API", + "termsOfService": "http://swagger.io/terms/", + "contact": { + "name": "API Support", + "url": "https://community.taiko.xyz/", + "email": "info@taiko.xyz" }, - "averageProposerReward": { - "type": "string" + "license": { + "name": "MIT" }, - "id": { - "type": "integer" - }, - "numProofs": { - "type": "integer" + "version": "1.0" + }, + "host": "eventindexer.katla.taiko.xyz", + "paths": { + "/assignedBlocks": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get assigned blocks by prover address", + "operationId": "get-assigned-blocks-by-prover-address", + "parameters": [ + { + "type": "string", + "description": "address to query", + "name": "address", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/paginate.Page" + } + } + } + } }, - "numProposerRewards": { - "type": "integer" + "/chartByTask": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get time series data for displaying charts", + "operationId": "get-charts-by-task", + "parameters": [ + { + "type": "string", + "description": "task to query", + "name": "task", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/eventindexer.ChartResponse" + } + } + } + } }, - "numVerifiedBlocks": { - "type": "integer" - } - } - }, - "eventindexer.UniqueProposersResponse": { - "type": "object", - "properties": { - "address": { - "type": "string" + "/events": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get events by address and event name", + "operationId": "get-events-by-address-and-event-name", + "parameters": [ + { + "type": "string", + "description": "address to query", + "name": "address", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "event name to query", + "name": "event", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/paginate.Page" + } + } + } + } }, - "count": { - "type": "integer" - } - } - }, - "eventindexer.UniqueProversResponse": { - "type": "object", - "properties": { - "address": { - "type": "string" + "/nftsByAddress": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get nft balances by address and chain ID", + "operationId": "get-nft-balances-by-address-and-chain-id", + "parameters": [ + { + "type": "string", + "description": "address to query", + "name": "address", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "chainID to query", + "name": "chainID", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/paginate.Page" + } + } + } + } }, - "count": { - "type": "integer" - } - } - }, - "http.uniqueProposersResp": { - "type": "object", - "properties": { - "proposers": { - "type": "array", - "items": { - "$ref": "#/definitions/eventindexer.UniqueProposersResponse" - } + "/stats": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get stats", + "operationId": "get-stats", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/eventindexer.Stat" + } + } + } + } }, - "uniqueProposers": { - "type": "integer" - } - } - }, - "http.uniqueProversResp": { - "type": "object", - "properties": { - "provers": { - "type": "array", - "items": { - "$ref": "#/definitions/eventindexer.UniqueProversResponse" - } + "/uniqueProposers": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get unique proposers", + "operationId": "get-unique-proposers", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/http.uniqueProposersResp" + } + } + } + } }, - "uniqueProvers": { - "type": "integer" + "/uniqueProvers": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get unique provers", + "operationId": "get-unique-provers", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/http.uniqueProversResp" + } + } + } + } } - } }, - "paginate.Page": { - "type": "object", - "properties": { - "first": { - "type": "boolean" + "definitions": { + "eventindexer.ChartItem": { + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "value": { + "type": "string" + } + } }, - "items": {}, - "last": { - "type": "boolean" + "eventindexer.ChartResponse": { + "type": "object", + "properties": { + "chart": { + "type": "array", + "items": { + "$ref": "#/definitions/eventindexer.ChartItem" + } + } + } }, - "max_page": { - "type": "integer" + "eventindexer.Stat": { + "type": "object", + "properties": { + "averageProofReward": { + "type": "string" + }, + "averageProofTime": { + "type": "string" + }, + "feeTokenAddress": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "numBlocksAssigned": { + "type": "integer" + }, + "numProofs": { + "type": "integer" + }, + "statType": { + "type": "string" + } + } }, - "page": { - "type": "integer" + "eventindexer.UniqueProposersResponse": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "count": { + "type": "integer" + } + } }, - "size": { - "type": "integer" + "eventindexer.UniqueProversResponse": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "count": { + "type": "integer" + } + } }, - "total": { - "type": "integer" + "http.uniqueProposersResp": { + "type": "object", + "properties": { + "proposers": { + "type": "array", + "items": { + "$ref": "#/definitions/eventindexer.UniqueProposersResponse" + } + }, + "uniqueProposers": { + "type": "integer" + } + } }, - "total_pages": { - "type": "integer" + "http.uniqueProversResp": { + "type": "object", + "properties": { + "provers": { + "type": "array", + "items": { + "$ref": "#/definitions/eventindexer.UniqueProversResponse" + } + }, + "uniqueProvers": { + "type": "integer" + } + } }, - "visible": { - "type": "integer" + "paginate.Page": { + "type": "object", + "properties": { + "first": { + "type": "boolean" + }, + "items": {}, + "last": { + "type": "boolean" + }, + "max_page": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "visible": { + "type": "integer" + } + } } - } } - } -} +} \ No newline at end of file diff --git a/packages/eventindexer/docs/swagger.yaml b/packages/eventindexer/docs/swagger.yaml index 5b10a218cc4..71e4d047556 100644 --- a/packages/eventindexer/docs/swagger.yaml +++ b/packages/eventindexer/docs/swagger.yaml @@ -1,20 +1,34 @@ definitions: + eventindexer.ChartItem: + properties: + date: + type: string + value: + type: string + type: object + eventindexer.ChartResponse: + properties: + chart: + items: + $ref: '#/definitions/eventindexer.ChartItem' + type: array + type: object eventindexer.Stat: properties: averageProofReward: type: string averageProofTime: type: string - averageProposerReward: + feeTokenAddress: type: string id: type: integer - numProofs: - type: integer - numProposerRewards: + numBlocksAssigned: type: integer - numVerifiedBlocks: + numProofs: type: integer + statType: + type: string type: object eventindexer.UniqueProposersResponse: properties: @@ -34,7 +48,7 @@ definitions: properties: proposers: items: - $ref: "#/definitions/eventindexer.UniqueProposersResponse" + $ref: '#/definitions/eventindexer.UniqueProposersResponse' type: array uniqueProposers: type: integer @@ -43,7 +57,7 @@ definitions: properties: provers: items: - $ref: "#/definitions/eventindexer.UniqueProversResponse" + $ref: '#/definitions/eventindexer.UniqueProversResponse' type: array uniqueProvers: type: integer @@ -68,7 +82,7 @@ definitions: visible: type: integer type: object -host: eventindexer.jolnir.taiko.xyz +host: eventindexer.katla.taiko.xyz info: contact: email: info@taiko.xyz @@ -83,107 +97,126 @@ paths: /assignedBlocks: get: consumes: - - application/json + - application/json operationId: get-assigned-blocks-by-prover-address parameters: - - description: address to query - in: query - name: address - required: true - type: string + - description: address to query + in: query + name: address + required: true + type: string produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/paginate.Page" + $ref: '#/definitions/paginate.Page' summary: Get assigned blocks by prover address + /chartByTask: + get: + consumes: + - application/json + operationId: get-charts-by-task + parameters: + - description: task to query + in: query + name: task + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/eventindexer.ChartResponse' + summary: Get time series data for displaying charts /events: get: consumes: - - application/json + - application/json operationId: get-events-by-address-and-event-name parameters: - - description: address to query - in: query - name: address - required: true - type: string - - description: event name to query - in: query - name: event - required: true - type: string + - description: address to query + in: query + name: address + required: true + type: string + - description: event name to query + in: query + name: event + required: true + type: string produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/paginate.Page" + $ref: '#/definitions/paginate.Page' summary: Get events by address and event name /nftsByAddress: get: consumes: - - application/json + - application/json operationId: get-nft-balances-by-address-and-chain-id parameters: - - description: address to query - in: query - name: address - required: true - type: string - - description: chainID to query - in: query - name: chainID - required: true - type: string + - description: address to query + in: query + name: address + required: true + type: string + - description: chainID to query + in: query + name: chainID + required: true + type: string produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/paginate.Page" + $ref: '#/definitions/paginate.Page' summary: Get nft balances by address and chain ID /stats: get: consumes: - - application/json + - application/json operationId: get-stats produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/eventindexer.Stat" + $ref: '#/definitions/eventindexer.Stat' summary: Get stats /uniqueProposers: get: consumes: - - application/json + - application/json operationId: get-unique-proposers produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/http.uniqueProposersResp" + $ref: '#/definitions/http.uniqueProposersResp' summary: Get unique proposers /uniqueProvers: get: consumes: - - application/json + - application/json operationId: get-unique-provers produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/http.uniqueProversResp" + $ref: '#/definitions/http.uniqueProversResp' summary: Get unique provers swagger: "2.0" diff --git a/packages/eventindexer/indexer/index_raw_block_data.go b/packages/eventindexer/indexer/index_raw_block_data.go index edd89655d62..6a1cb0ea1e8 100644 --- a/packages/eventindexer/indexer/index_raw_block_data.go +++ b/packages/eventindexer/indexer/index_raw_block_data.go @@ -31,6 +31,7 @@ func (indxr *Indexer) indexRawBlockData( slog.Info("processing block data", "blockNum", id) block, err := indxr.ethClient.BlockByNumber(ctx, big.NewInt(int64(id))) + if err != nil { return errors.Wrap(err, "indxr.ethClient.BlockByNumber") } @@ -44,6 +45,7 @@ func (indxr *Indexer) indexRawBlockData( for _, tx := range txs { slog.Info("transaction found", "hash", tx.Hash()) receipt, err := indxr.ethClient.TransactionReceipt(ctx, tx.Hash()) + if err != nil { return err } @@ -90,6 +92,7 @@ func (indxr *Indexer) indexRawBlockData( if err := indxr.indexNFTTransfers(ctx, chainID, logs); err != nil { return errors.Wrap(err, "svc.indexNFTTransfers") } + return nil }) } diff --git a/packages/eventindexer/indexer/subscribe.go b/packages/eventindexer/indexer/subscribe.go index 80397d82f1c..06cca7d1814 100644 --- a/packages/eventindexer/indexer/subscribe.go +++ b/packages/eventindexer/indexer/subscribe.go @@ -76,6 +76,7 @@ func (indxr *Indexer) subscribeRawBlockData( if err != nil { slog.Error("indxr.SubscribeNewHead", "error", err) } + slog.Info("resubscribing to NewHead events for block data") return indxr.ethClient.SubscribeNewHead(ctx, headers) @@ -110,6 +111,7 @@ func (indxr *Indexer) subscribeTransitionProved(ctx context.Context, chainID *bi if err != nil { log.Error("indxr.taikoL1.WatchTransitionProved", "error", err) } + log.Info("resubscribing to TransitionProved events") return indxr.taikol1.WatchTransitionProved(&bind.WatchOpts{ @@ -159,6 +161,7 @@ func (indxr *Indexer) subscribeTransitionContested(ctx context.Context, chainID if err != nil { log.Error("indxr.taikoL1.WatchTransitionContested", "error", err) } + log.Info("resubscribing to TransitionContested events") return indxr.taikol1.WatchTransitionContested(&bind.WatchOpts{ @@ -210,6 +213,7 @@ func (indxr *Indexer) subscribeBlockProposed(ctx context.Context, chainID *big.I if err != nil { log.Error("indxr.taikoL1.WatchBlockProposed", "error", err) } + log.Info("resubscribing to BlockProposed events") return indxr.taikol1.WatchBlockProposed(&bind.WatchOpts{ @@ -365,6 +369,7 @@ func (indxr *Indexer) subscribeSwap(ctx context.Context, s *swap.Swap, chainID * if err != nil { slog.Error("s.WatchSwap", "error", err) } + slog.Info("resubscribing to Swap events") return s.WatchSwap(&bind.WatchOpts{ @@ -409,6 +414,7 @@ func (indxr *Indexer) subscribeLiquidityAdded(ctx context.Context, s *swap.Swap, if err != nil { slog.Error("s.WatchMint", "error", err) } + slog.Info("resubscribing to Swap events") return s.WatchMint(&bind.WatchOpts{ @@ -453,6 +459,7 @@ func (indxr *Indexer) subscribeBlockAssigned(ctx context.Context, chainID *big.I if err != nil { log.Error("assignmenthook.AssignmentHookBlockAssignedd", "error", err) } + log.Info("resubscribing to TransitionProved events") return indxr.assignmentHook.WatchBlockAssigned(&bind.WatchOpts{ diff --git a/packages/eventindexer/pkg/http/server.go b/packages/eventindexer/pkg/http/server.go index c55422147a8..d0fbeb6b099 100644 --- a/packages/eventindexer/pkg/http/server.go +++ b/packages/eventindexer/pkg/http/server.go @@ -24,7 +24,7 @@ import ( // @license.name MIT -// @host eventindexer.jolnir.taiko.xyz +// @host eventindexer.katla.taiko.xyz // Server represents an eventindexer http server instance. type Server struct { echo *echo.Echo diff --git a/packages/eventindexer/pkg/repo/event_test.go b/packages/eventindexer/pkg/repo/event_test.go index a05967ec34a..b94b4296c03 100644 --- a/packages/eventindexer/pkg/repo/event_test.go +++ b/packages/eventindexer/pkg/repo/event_test.go @@ -107,6 +107,7 @@ func TestIntegration_Event_FindUniqueProvers(t *testing.T) { resp, err := eventRepo.FindUniqueProvers(context.Background()) assert.Equal(t, tt.wantErr, err) assert.Equal(t, len(tt.wantResp), len(resp)) + for k, v := range resp { assert.Equal(t, tt.wantResp[k].Address, v.Address) assert.Equal(t, tt.wantResp[k].Count, v.Count) @@ -155,6 +156,7 @@ func TestIntegration_Event_FindUniqueProposers(t *testing.T) { spew.Dump(resp) assert.Equal(t, tt.wantErr, err) assert.Equal(t, len(tt.wantResp), len(resp)) + for k, v := range resp { assert.Equal(t, tt.wantResp[k].Address, v.Address) assert.Equal(t, tt.wantResp[k].Count, v.Count) @@ -306,6 +308,7 @@ func TestIntegration_Event_FirstByAddressAndEvent(t *testing.T) { tt.event, ) assert.Equal(t, tt.wantErr, err) + if tt.wantEventID != 0 { assert.Equal(t, tt.wantEventID, found.ID) } diff --git a/packages/eventindexer/scripts/swagger.sh b/packages/eventindexer/scripts/swagger.sh old mode 100644 new mode 100755 index b0b8dbb55e2..2ba0cac2c3a --- a/packages/eventindexer/scripts/swagger.sh +++ b/packages/eventindexer/scripts/swagger.sh @@ -1,3 +1,3 @@ #/bin/sh -swag init -g http/server.go --parseDependency \ No newline at end of file +swag init -g server.go -d pkg/http --parseDependency \ No newline at end of file diff --git a/packages/relayer/docs/docs.go b/packages/relayer/docs/docs.go index f0f8405138b..21b73bbfedb 100644 --- a/packages/relayer/docs/docs.go +++ b/packages/relayer/docs/docs.go @@ -126,12 +126,6 @@ const docTemplate = `{ "paginate.Page": { "type": "object", "properties": { - "error": { - "type": "boolean" - }, - "error_message": { - "type": "string" - }, "first": { "type": "boolean" }, diff --git a/packages/relayer/docs/index.html b/packages/relayer/docs/index.html index 40d69e0e78e..564ba3b7339 100644 --- a/packages/relayer/docs/index.html +++ b/packages/relayer/docs/index.html @@ -11,7 +11,7 @@ window.onload = function () { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - url: "docs/swagger.json", //Location of Open API spec in the repo + url: "/swagger.json", //Location of Open API spec in the repo dom_id: '#swagger-ui', deepLinking: true, presets: [ diff --git a/packages/relayer/docs/swagger.json b/packages/relayer/docs/swagger.json index 9a3bf582ecf..9b0a081a3e5 100644 --- a/packages/relayer/docs/swagger.json +++ b/packages/relayer/docs/swagger.json @@ -1,147 +1,149 @@ { - "swagger": "2.0", - "info": { - "title": "Taiko Relayer API", - "termsOfService": "http://swagger.io/terms/", - "contact": { - "name": "API Support", - "url": "https://community.taiko.xyz/", - "email": "info@taiko.xyz" - }, - "license": { - "name": "MIT" - }, - "version": "1.0" - }, - "host": "relayer.katla.taiko.xyz", - "paths": { - "/blockInfo": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get block info", - "operationId": "get-block-info", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/http.getBlockInfoResponse" - } - } - } - } - }, - "/events": { - "get": { - "consumes": ["application/json"], - "produces": ["application/json"], - "summary": "Get events by address", - "operationId": "get-events-by-address", - "parameters": [ - { - "type": "string", - "description": "address to query", - "name": "address", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "msgHash to query", - "name": "msgHash", - "in": "query" - }, - { - "type": "string", - "description": "chainID to query", - "name": "chainID", - "in": "query" - }, - { - "type": "string", - "description": "eventType to query", - "name": "eventType", - "in": "query" - }, - { - "type": "string", - "description": "event to query", - "name": "event", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/paginate.Page" - } - } - } - } - } - }, - "definitions": { - "http.blockInfo": { - "type": "object", - "properties": { - "chainID": { - "type": "integer" + "swagger": "2.0", + "info": { + "title": "Taiko Relayer API", + "termsOfService": "http://swagger.io/terms/", + "contact": { + "name": "API Support", + "url": "https://community.taiko.xyz/", + "email": "info@taiko.xyz" }, - "latestBlock": { - "type": "integer" + "license": { + "name": "MIT" }, - "latestProcessedBlock": { - "type": "integer" - } - } + "version": "1.0" }, - "http.getBlockInfoResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/definitions/http.blockInfo" - } + "host": "relayer.katla.taiko.xyz", + "paths": { + "/blockInfo": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get block info", + "operationId": "get-block-info", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/http.getBlockInfoResponse" + } + } + } + } + }, + "/events": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get events by address", + "operationId": "get-events-by-address", + "parameters": [ + { + "type": "string", + "description": "address to query", + "name": "address", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "msgHash to query", + "name": "msgHash", + "in": "query" + }, + { + "type": "string", + "description": "chainID to query", + "name": "chainID", + "in": "query" + }, + { + "type": "string", + "description": "eventType to query", + "name": "eventType", + "in": "query" + }, + { + "type": "string", + "description": "event to query", + "name": "event", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/paginate.Page" + } + } + } + } } - } }, - "paginate.Page": { - "type": "object", - "properties": { - "error": { - "type": "boolean" - }, - "error_message": { - "type": "string" - }, - "first": { - "type": "boolean" - }, - "items": {}, - "last": { - "type": "boolean" - }, - "max_page": { - "type": "integer" - }, - "page": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "total": { - "type": "integer" + "definitions": { + "http.blockInfo": { + "type": "object", + "properties": { + "chainID": { + "type": "integer" + }, + "latestBlock": { + "type": "integer" + }, + "latestProcessedBlock": { + "type": "integer" + } + } }, - "total_pages": { - "type": "integer" + "http.getBlockInfoResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/http.blockInfo" + } + } + } }, - "visible": { - "type": "integer" + "paginate.Page": { + "type": "object", + "properties": { + "first": { + "type": "boolean" + }, + "items": {}, + "last": { + "type": "boolean" + }, + "max_page": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "visible": { + "type": "integer" + } + } } - } } - } -} +} \ No newline at end of file diff --git a/packages/relayer/docs/swagger.yaml b/packages/relayer/docs/swagger.yaml index 215f1252a0d..4057391a064 100644 --- a/packages/relayer/docs/swagger.yaml +++ b/packages/relayer/docs/swagger.yaml @@ -12,15 +12,11 @@ definitions: properties: data: items: - $ref: "#/definitions/http.blockInfo" + $ref: '#/definitions/http.blockInfo' type: array type: object paginate.Page: properties: - error: - type: boolean - error_message: - type: string first: type: boolean items: {} @@ -54,49 +50,49 @@ paths: /blockInfo: get: consumes: - - application/json + - application/json operationId: get-block-info produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/http.getBlockInfoResponse" + $ref: '#/definitions/http.getBlockInfoResponse' summary: Get block info /events: get: consumes: - - application/json + - application/json operationId: get-events-by-address parameters: - - description: address to query - in: query - name: address - required: true - type: string - - description: msgHash to query - in: query - name: msgHash - type: string - - description: chainID to query - in: query - name: chainID - type: string - - description: eventType to query - in: query - name: eventType - type: string - - description: event to query - in: query - name: event - type: string + - description: address to query + in: query + name: address + required: true + type: string + - description: msgHash to query + in: query + name: msgHash + type: string + - description: chainID to query + in: query + name: chainID + type: string + - description: eventType to query + in: query + name: eventType + type: string + - description: event to query + in: query + name: event + type: string produces: - - application/json + - application/json responses: "200": description: OK schema: - $ref: "#/definitions/paginate.Page" + $ref: '#/definitions/paginate.Page' summary: Get events by address swagger: "2.0" diff --git a/packages/relayer/scripts/swagger.sh b/packages/relayer/scripts/swagger.sh old mode 100644 new mode 100755 index 31712286c00..2ba0cac2c3a --- a/packages/relayer/scripts/swagger.sh +++ b/packages/relayer/scripts/swagger.sh @@ -1,3 +1,3 @@ #/bin/sh -swag init -g indexer/http/server.go --parseDependency \ No newline at end of file +swag init -g server.go -d pkg/http --parseDependency \ No newline at end of file