Add interface layer (#23)

* implement grpc interface

* rework GetEventStream rpc

* implement Ping & GetEventStream

* remove dev_portal

* Compile protos

* Empty gitignore

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
This commit is contained in:
Louis Singer
2023-12-01 17:13:28 +01:00
committed by GitHub
parent 7c2a70db91
commit c8d9db89c5
13 changed files with 1519 additions and 516 deletions

View File

@@ -16,6 +16,37 @@
"application/json"
],
"paths": {
"/v1/events": {
"get": {
"operationId": "ArkService_GetEventStream",
"responses": {
"200": {
"description": "A successful response.(streaming responses)",
"schema": {
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/v1GetEventStreamResponse"
},
"error": {
"$ref": "#/definitions/rpcStatus"
}
},
"title": "Stream result of v1GetEventStreamResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"tags": [
"ArkService"
]
}
},
"/v1/payment/claim": {
"post": {
"operationId": "ArkService_ClaimPayment",
@@ -112,6 +143,36 @@
]
}
},
"/v1/ping/{paymentId}": {
"get": {
"operationId": "ArkService_Ping",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1PingResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "paymentId",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"ArkService"
]
}
},
"/v1/round/{txid}": {
"get": {
"operationId": "ArkService_GetRound",
@@ -141,38 +202,6 @@
"ArkService"
]
}
},
"/v1/rounds": {
"post": {
"operationId": "ArkService_ListRounds",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1ListRoundsResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v1ListRoundsRequest"
}
}
],
"tags": [
"ArkService"
]
}
}
},
"definitions": {
@@ -225,15 +254,32 @@
"v1FinalizePaymentRequest": {
"type": "object",
"properties": {
"signedVtx": {
"type": "string",
"description": "Forfeit tx signed also by the user."
"signedForfeits": {
"type": "array",
"items": {
"type": "string"
},
"description": "Forfeit txs signed by the user."
}
}
},
"v1FinalizePaymentResponse": {
"type": "object"
},
"v1GetEventStreamResponse": {
"type": "object",
"properties": {
"roundFinalization": {
"$ref": "#/definitions/v1RoundFinalizationEvent"
},
"roundFinalized": {
"$ref": "#/definitions/v1RoundFinalizedEvent"
},
"roundFailed": {
"$ref": "#/definitions/v1RoundFailed"
}
}
},
"v1GetRoundResponse": {
"type": "object",
"properties": {
@@ -242,30 +288,18 @@
}
}
},
"v1ListRoundsRequest": {
"v1Input": {
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "int64"
"txid": {
"type": "string"
},
"end": {
"type": "string",
"vout": {
"type": "integer",
"format": "int64"
}
}
},
"v1ListRoundsResponse": {
"type": "object",
"properties": {
"rounds": {
"type": "array",
"items": {
"$ref": "#/definitions/v1Round"
}
}
}
},
"v1Output": {
"type": "object",
"properties": {
@@ -278,12 +312,17 @@
}
}
},
"v1PingResponse": {
"type": "object"
},
"v1RegisterPaymentRequest": {
"type": "object",
"properties": {
"vtx": {
"type": "string",
"description": "Unsigned forfeit tx sending all funds back to the ASP."
"inputs": {
"type": "array",
"items": {
"$ref": "#/definitions/v1Input"
}
}
}
},
@@ -293,16 +332,15 @@
"id": {
"type": "string",
"description": "Mocks wabisabi's credentials."
},
"signedVtx": {
"type": "string",
"description": "Forfeit tx signed by the ASP."
}
}
},
"v1Round": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"start": {
"type": "string",
"format": "int64"
@@ -314,13 +352,58 @@
"txid": {
"type": "string"
},
"outputs": {
"congestionTree": {
"type": "array",
"items": {
"$ref": "#/definitions/v1Output"
"type": "string"
}
}
}
},
"v1RoundFailed": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"reason": {
"type": "string"
}
}
},
"v1RoundFinalizationEvent": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"poolPartialTx": {
"type": "string"
},
"forfeitTxs": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"congestionTree": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1RoundFinalizedEvent": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"poolTxid": {
"type": "string"
}
}
}
}
}