openapi: 3.0.0 info: title: Test swagger description: Testing the Fastify swagger API version: 0.1.0 components: securitySchemes: apiKey: type: apiKey name: apiKey in: header schemas: def-0: type: object properties: authorization: type: string description: "Bearer token. Format: Bearer " pattern: ^Bearer [A-Za-z0-9-_=]+.[A-Za-z0-9-_=]+.[A-Za-z0-9-_.+/=]*$ title: authHeaderSchema def-1: type: object required: - error - message - statusCode properties: error: type: string message: type: string statusCode: type: number title: errorResponse paths: /auth/challenge: get: parameters: - schema: type: string in: query name: address required: true responses: "200": description: Default Response content: application/json: schema: type: object required: - message properties: message: type: string "400": description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: number /auth/verify: post: requestBody: content: application/json: schema: type: object required: - address - signature properties: address: type: string signature: type: string required: true responses: "200": description: Default Response content: application/json: schema: type: object required: - token - expiresAt - refreshToken properties: token: type: string expiresAt: type: number refreshToken: type: string "400": description: Default Response content: application/json: schema: type: object required: - error - message - statusCode properties: error: type: string message: type: string statusCode: type: number "401": description: Default Response content: application/json: schema: type: object required: - error - message - statusCode properties: error: type: string message: type: string statusCode: type: number /auth/refresh: post: requestBody: content: application/json: schema: type: object required: - address - refreshToken properties: address: type: string refreshToken: type: string required: true responses: "200": description: Default Response content: application/json: schema: type: object required: - token - expiresAt - refreshToken properties: token: type: string expiresAt: type: number refreshToken: type: string "400": description: Default Response content: application/json: schema: type: object required: - error - message - statusCode properties: error: type: string message: type: string statusCode: type: number "401": description: Default Response content: application/json: schema: type: object required: - error - message - statusCode properties: error: type: string message: type: string statusCode: type: number /airdrops: post: requestBody: content: application/json: schema: type: object required: - batches properties: batches: type: array minItems: 1 maxItems: 100 items: type: array minItems: 1 maxItems: 6 items: type: object required: - address - lamports properties: address: type: string lamports: type: integer minimum: 1 required: true parameters: - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "201": description: Default Response content: application/json: schema: type: object properties: id: type: string status: type: string enum: - created "400": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "500": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" get: parameters: - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "200": description: Default Response content: application/json: schema: type: array items: type: object required: - id - totalAmount - recipientCount - status - createdAt - updatedAt - recipients properties: id: type: string totalAmount: type: number recipientCount: type: number status: type: string enum: - created - processing - completed - failed createdAt: type: number updatedAt: type: number recipients: type: array items: type: object required: - address - lamports properties: address: type: string lamports: type: number "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" /airdrops/{id}: delete: parameters: - schema: type: string in: path name: id required: true - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "204": description: Default Response content: application/json: schema: {} "400": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "404": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" get: parameters: - schema: type: string in: path name: id required: true - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "200": description: Default Response content: application/json: schema: type: object required: - id - status - recipientCount - totalAmount - transactions - createdAt - updatedAt properties: id: type: string status: type: string enum: - created - processing - completed - failed recipientCount: type: integer totalAmount: type: integer createdAt: type: integer updatedAt: type: integer transactions: type: array items: type: object required: - id - status - recipients - createdAt - updatedAt - signature - bullJobId - retryCount - errorMessage properties: id: type: number status: type: string enum: - pending - confirming - confirmed - failed - expired createdAt: type: integer updatedAt: type: integer retryCount: type: number signature: type: string nullable: true bullJobId: type: string nullable: true errorMessage: type: string nullable: true recipients: type: array items: type: object required: - address - lamports properties: address: type: string lamports: type: number "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "404": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" /airdrops/{id}/start: post: requestBody: content: application/json: schema: type: array minItems: 1 items: type: object required: - batchId - blockhash - lastValidBlockHeight - minContextSlot - txBase64 properties: batchId: type: number blockhash: type: string lastValidBlockHeight: type: integer minimum: 1 minContextSlot: type: integer minimum: 1 txBase64: type: string parameters: - schema: type: string in: path name: id required: true - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "200": description: Default Response content: application/json: schema: type: object properties: id: type: string status: type: string enum: - processing message: type: string jobs: type: array items: type: object properties: id: type: number jobId: type: string "400": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "404": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "500": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" /airdrops/{airdropId}/retry-batch/{batchId}: post: requestBody: content: application/json: schema: type: object properties: blockhash: type: string lastValidBlockHeight: type: integer minimum: 0 minContextSlot: type: integer minimum: 0 txBase64: type: string parameters: - schema: type: string in: path name: airdropId required: true - schema: type: string in: path name: batchId required: true - schema: $ref: "#/components/schemas/def-0/properties/authorization" in: header name: authorization required: false responses: "200": description: Default Response content: application/json: schema: type: object required: - success properties: success: type: boolean "400": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "401": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" "404": description: Default Response content: application/json: schema: $ref: "#/components/schemas/def-1" /health: get: responses: "200": description: Default Response content: application/json: schema: {} servers: - url: http://localhost:3000 description: Development server tags: - name: user description: User related end-points - name: code description: Code related end-points